Fundamentos de Sistemas Operacionais

Documentos relacionados
Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Sistemas Operacionais. Processos e Threads

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Sistemas Operacionais

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas Operacionais

Sistemas Operacionais. Processos IC - UFF

Sistemas Operacionais

MEMÓRIA LÓGICA E FÍSICA (1)

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Fundamentos de Sistemas Operacionais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Davidson Rodrigo Boccardo

Algoritmos Computacionais

Processos. Adão de Melo Neto

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Sistemas Operacionais. Conceito de Processos

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos

Gerenciamento de memória

Sistemas Operacionais I

Sistemas Operacionais

Segmentação de Memória

Técnicas Avançadas de Programação

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais I

Sistemas Operacionais

- Mapa de memória de um processo - Ponteiros

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

Processos e Threads. Ciclo 2 AT3. Prof. Hermes Senger

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Sistemas Operacionais

EEL770 - Sistemas Operacionais Notas de Aula

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Sistemas de Informação. Sistemas Operacionais

SSC510 Arquitetura de Computadores 1ª AULA

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

SOP - TADS Processos. Revisão Ultima aula

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

Processos. Prof. Gustavo Leitão

Fundamentos de Sistemas Operacionais

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores

SISTEMAS OPERACIONAIS

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Sistemas Operacionais

Estrutura de Dados. Aula 07 Alocação Dinâmica

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Nível da Arquitetura do Conjunto das Instruções

Sistemas de Computação. Gerenciamento de memória

Prof. Kleber R. Rovai

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 08. Conceitos sobre processos. Modelos de processos, BCP, contextos, estados de processos.

Computadores e Programação (DCC/UFRJ)

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Estrutura dos Sistemas Operacionais. Sérgio Portari Júnior

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Capítulo 6 Nível do Sistema Operacional

Fundamentos de Programação

Sistemas Operacionais. Rodrigo Rubira Branco

Conceitos básicos e serviços dos Sistemas Operacionais

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Processo. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

SISTEMAS OPERACIONAIS

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Sistemas Operacionais. Visão Geral

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Fundamentos de Sistemas Operacionais

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Modulo 12: alocação dinâmica de memória

Fundamentos de Sistemas Operacionais

Noções de Processos. Plano da aula. Serviços oferecidos. Definição & Objetivos. Definição & Objetivos. Sistemas Operacionais : introdução

Ferramentas para Programação em Processadores Multi-Core

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Gerência do Sistema de Arquivos. Adão de Melo Neto

Sistemas Operacionais

Sistemas Operacionais

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Sistemas Operacionais. Estrutura do Sistema Operacional: Modos de Acesso

Transcrição:

Fundamentos de Sistemas Operacionais Aula 7: Implementação de Processos e Threads Diego Passos

Revisão

Programação Concorrente e Multiprogramação SOs modernos permitem diversos processos em memória. Cada um tem seu estado, código. Processos podem ser alternados no processador. Batch com multiprogramação Timesharing. Quando um processo volta ao processador, seu estado tem que ser restaurado. Execução continua de onde havia parado. Processos podem ter várias threads. Linhas de execução.

Organização de um Processo em Memória

Várias Áreas O espaço de endereçamento é dividido em várias áreas: Texto. Dados. BSS. Heap. Pilha. Cada área tem propriedades diferentes. Cada área tem utilidades diferentes.

Distribuição de Áreas Fonte: "Sistemas Operacionais". Rômulo Oliveira, Alexandre Carissimi, Simão Toscani. 2a edição (slides).

Área de Texto Armazena o código executável do processo. Sequência de instruções a serem executadas. O registrador PC sempre aponta para algum lugar desta região. Em geral, não processo não tem permissão de escrita.

Área de Dados Variáveis globais inicializadas são guardadas nesta área. Toda variável global declarada no código fonte cujo valor inicial foi especificado pelo programador. Exemplo: Programador faz a declaração global: int x = 10; Ao carregar o programa em memória, o SO escreve o valor 10 em uma posição de memória nesta área. Processos podem ler e escrever nesta área.

Área de BSS Block Started by Symbol. Contém variáveis globais que não foram inicializadas em tempo de compilação. Exemplo: Programador faz a declaração global: int x; Um espaço nesta área é criado, geralmente com o valor 0. Processo pode ler e escrever nesta área.

Área do Heap Área destinada à memória dinâmica. Alocação de grandes vetores. Quando não se conhece a dimensão em tempo de compilação. Em tempo de execução, processo aloca regiões do heap. Exemplo: Funções malloc() e free() no C. Processo pode ler e escrever nesta área.

Área da Pilha Área utilizada para armazenar informações sobre funções. Variáveis locais. Endereço de retorno. Parâmetros. Chamadas de funções podem ser aninhadas. A área de memória destinada a uma função é "empilhada" sobre a área da função que a chamou. Processo pode ler e escrever nesta área.

Permissões das Áreas de Memória Cada área tem sua política de controle de acesso. Somente leitura, leitura e escrita, execução... Por que? Questões de segurança. Se as áreas de dados pudessem ser executadas, programas que lêem dados de usuários ou máquinas remotas seriam focos de ataques. Processo pode requisitar alteração nas permissões. Exemplo: self-modifying code.

Contexto de um Processo

Chaveamento entre Processos SO pode decidir tirar um processo do processador e colocar outro no lugar. Quando o processo original retorna ao processador, estado tem que ser o mesmo. Salvar e Restaurar o Contexto do Processo. Fazem parte do estado de um processo: Registradores. Memória (espaço de endereçamento).

Quais Informações Precisam ser Salvas/Restauradas? Espaço de endereçamento só pode ser acessado pelo próprio processo. Outros processos em execução não mudarão variáveis do processo original. Únicos valores que mudam são os registradores. Usados por qualquer processo que utilize o processador. O contexto do processo (do ponto de vista do que precisa ser salvo): Valores dos registradores no momento em que o processo é interrompido.

Troca (ou Chaveamento) de Contexto Processo é interrompido. Requisição de E/S ou fim do slice de tempo. SO salva o contexto atual. Valores dos registradores. SO escolhe um processo para utilizar o processador a partir de agora. Seu contexto é buscado e recarregado no processador. Novo processo (re)começa sua execução.

Onde Salvar o Contexto? Contexto é salvo na memória principal. Poderia ser salvo no espaço de endereçamento do processo. Não é interessante. Processo gerencia o uso do espaço de endereçamento. SO pode sobrescrever dados do processo. Opção: Salvar o contexto em uma área de memória pertencente ao SO. Processos de aplicação não têm acesso.

Representação de um Processos no Kernel

Bloco de Descritor de Processo Estrutura de dados que o SO utiliza para armazenar informações sobre cada processo. São armazenadas informações relevantes ao gerenciamento do processo. Prioridade. Localização do espaço de endereçamento. Recursos alocados para o processo. Estado. Contexto. Contabilidade. Parentesco....

Tabela (ou Lista) de Descritores Há um descritor por processo carregado no sistema. SO precisa de uma maneira de organizar os descritores em memória. Várias opções: Lista encadeada de descritores. Tabela (vetor) de descritores. Número de processos é limitado. Manipulação mais eficiente.

Filas do Sistema SO guarda inúmeras filas: Filas de processos aptos. Filas de requisições de recursos. Elementos destas filas são ponteiros para os blocos descritores ou índices na tabela de descritores.

Criação de um Processo SO aloca memória para o espaço de endereçamento do processo. SO aloca um bloco descritor para o novo processo. Valores iniciais dos campos são preenchidos. Endereços do espaço de endereçamento. Contadores. Etc. Referência para o bloco é colocada na fila de processos aptos.

Término de um Processo Recursos do processo são liberados. Percorre-se as listas de recursos alocados. Sockets, arquivos abertos, dispositivos de hardware. Referências ao processo em filas do sistema são retiradas. Bloco descritor do processo é desalocado. Ou marcado como inativo. Ou retornado para uma lista de livres. Ou...

Threads

Threads São Diferentes de Processos Processos: Compostos por código, memória, estado dos registradores, lista de recursos alocados... Threads: Linhas de execução dentro de um processo. Dizem qual sequência de instruções deve ser executada. Têm estado, mas bem menor que os processos. Apenas alguns registradores. Sub-conjunto do estado de um processo. Todo processo tem ao menos uma thread.

Programação Concorrente Leve vs. Pesada Threads vs. Processos. Chaveamento de processos é mais lento. Maior contexto para alternar. Threads de um mesmo processo diferem o estado por alguns registradores. Criação e término de threads também é mais rápido. Sem necessidade de alocar outro espaço de endereçamento. Sem necessidade de um bloco descritor de processo.

Threads no Nível do Usuário Alguns SOs não implementam threads nativamente. Conhecem apenas processos. Threads podem ser implementados na própria aplicação. Através de bibliotecas. Bibliotecas se encarregam de dividir o slice do processo entre várias threads. Chaveamento é feito pela biblioteca. Sem interferência do SO. Contexto é guardado no espaço de endereçamento do processo. Chamado de Modelo N:1. SO conhece apenas uma entidade (processo). Processo equivale a N linhas de execução.

Threads no Nível do Sistema SO implementa o conceito de thread. Escalonamento se dá sobre as threads, e não sobre processos. Operações são todas feitas pelo SO. Criação, encerramento, chaveamento de threads. Modelo conhecido como 1:1. Cada entidade manipulada no escalonamento corresponde a uma linha de execução.

Comparação Entre os Modelos Operações nas threads do usuário são mais rápidas que nas threads do sistema. Não há interação com o SO. Sem interrupções, trocas de contexto, etc. Escalonamento das threads do usuário é menos eficiente. Todas as threads usam o mesmo processador. Atribuído ao processo. Pedido de E/S de uma thread do usuário faz todas serem bloqueadas. Processo inteiro é bloqueado

Modelo M:N Combinação de threads do usuário com threads do sistema. Biblioteca de threads requisita criação de M threads do sistema. Cada thread do sistema executa N threads do usuário. Dependendo da aplicação, pode unir os benefícios das duas abordagens. Depende da escolha correta de M e N. Depende das características da aplicação. Escolha não é trivial.

Revisão

Para Lembrar Memória de um processo é dividida em áreas. Áreas diferentes têm permissões diferentes. O contexto de um processo: Estado dos registradores. Bloco descritor do processo: O que é. Exemplos de informações guardadas nele. Threads: O que são. Threads vs. Processos Nível do usuário vs. Nível do Sistema