A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Operacionais

Apresentações semelhantes


Apresentação em tema: "Sistemas Operacionais"— Transcrição da apresentação:

1 Sistemas Operacionais
2. Processos Texto base: capítulos 3 e 4 Operating Systems: Internals and Design Principles W. Stallings IC - UFF

2 O conceito de processos
No capítulo 1, fizemos as seguintes afirmativas quanto aos processos: Mais geral que programa Consiste em um código executável e seus dados associados, além de um contexto de execução IC - UFF

3 Enfim, ... Um processo é uma abstração de um programa em execução
Exemplo: fazer um bolo ... ... primeiros socorros! IC - UFF

4 O que esperar do SO? Alternar a execução de processos de forma a maximizar a utilização da UCP e fornecer tempo de resposta razoável Alocar recursos a processos Suportar criação de processos pelo usuário Suportar comunicação entre processos IC - UFF

5 Modelo simples de processo
executando não- despacho pausa entra sai (a) diagrama de transição de estado UCP sai entra despacho pausa fila (b) possível implementação IC - UFF

6 Criando de processos O que faz o SO para criar processos? Quando cria?
constrói estruturas de dados aloca espaço de endereçamento Quando cria? quando usuário abre sessão; quando gerado por outro processo (e.g., servidor de FTP); ... IC - UFF

7 Terminando processos Quando terminar? Algumas razões para o término:
execução da instrução Halt; condições de erro; ... Algumas razões para o término: tempo excedido; falta de memória; uso de instrução privilegiada; término do processo pai; ... IC - UFF

8 Problema com o modelo simples
Um processo que não está executando estará sempre pronto a executar? Não:  pode estar bloqueado esperando E/S!  despachante não pode simplesmente ppegar um processo que esteja na fila IC - UFF

9 Um modelo mais elaborado
executando pronto despacho pausa admissão liberação saída novo bloqueado espera evento ocorre IC - UFF

10 Implementando o modelo (1)
fila dos prontos despacho liberação admissão UCP pausa fila dos bloqueados espera evento evento ocorre IC - UFF

11 Implementando o modelo (2)
UCP liberação admissão despacho pausa fila dos prontos evento 1 ocorre espera evento 1 fila evento 1 espera evento 2 fila evento 2 evento 2 ocorre IC - UFF

12 Implementando o modelo (3)
UCP liberação admissão despacho pausa prioridade 1 espera evento 1 fila evento 1 espera evento 2 fila evento 2 prioridade 2 evento 1 ocorre evento 2 ocorre IC - UFF

13 O estado Suspenso O processador é muito mais rápido que E/S: todos os processos podem estar bloqueados Swapping Necessidade de novo estado: representação de processo suspenso IC - UFF

14 Diagrama com estado Suspenso
executando pronto despacho pausa admissão liberação saída novo bloqueado espera evento ocorre suspenso ativação suspensão IC - UFF

15 Pensando melhor ... suspende novo admissão admissão despacho liberação
ativa pronto- suspenso pronto executando saída evento ocorre suspende pausa evento ocorre espera evento ativa suspenso- bloqueado bloqueado suspende IC - UFF

16 O que o SO deve fazer? Em um sistema multi-tarefas, o SO deverá:
escalonar e despachar processos para execução alocar recursos aos processos responder a pedidos de recursos feitos pelos programas dos usuários Como fazer? IC - UFF

17 Tabelas! Tabelas de memória Tabelas de E/S Tabelas de arquivos
e.g., alocação de MP aos processos Tabelas de E/S e.g., estado de dispositivo de E/S Tabelas de arquivos localização de arquivos em MS Tabelas de processos e.g., lista de processos existentes IC - UFF

18 Controlando processos
Para gerenciar processos o SO precisa conhecer: onde o processo está localizado os atributos do processo Como é representado um processo? imagem do processo: programa + dados + pilha(s) + atributos IC - UFF

19 Atributos do processo O conjunto dos atributos de um processo é conhecido como bloco de controle do processo (PCB, em inglês) PCB pode ser dividido em três partes: identificação do processo informação de estado do processador informação de controle do processo IC - UFF

20 Identificação do processo
Feita por identificadores numéricos que incluem: identificador do processo identificador do processo que o criou identificador do usuário IC - UFF

21 Informação do processador
Contida nos registradores do processador: registradores visíveis ao usuário (aqueles referenciados por programa) registradores de controle e estado (e.g., PC, códigos de condição) apontadores de pilha IC - UFF

22 Informação de controle (1)
Estado e escalonamento, que inclue: estado do processo (e.g., pronto) nível corrente de prioridade suporte ao escalonamento (e.g., há quanto tempo o processo está esperando) evento (e.g., identificação do evento que o processo está esperando) IC - UFF

23 Informação de controle (2)
Estruturação de dados (e.g., relação pai-filho) Comunicação entre processos (e.g., sinais) Privilégios (e.g., tipos de instruções que podem ser executadas) Gerenciamento de memória (e.g., ponteiro para tabela de páginas) Propriedade e uso de recursos (e.g., arquivos abertos) IC - UFF

24 Funções típicas do núcleo do SO
Preliminares: O que é modo dual de operação? O que é o núcleo do SO? Funções do núcleo: gerenciamento de processos gerenciamento de memória gerenciamento de E/S funções de suporte IC - UFF

25 Funções típicas do núcleo do SO
Preliminares: O que é modo dual de operação? O que é o núcleo do SO? Funções do núcleo: gerenciamento de processos gerenciamento de memória gerenciamento de E/S funções de suporte IC - UFF

26 Gerenciamento de processos (1)
Funções típicas: criação e término de processos escalonamento e despacho chaveamento sincronização e suporte a IPC gerenciamento de PCBs IC - UFF

27 Gerenciamento de processos (2)
Criação de processos atribuição de identificador único e adicionar nova linha à tabela primária de processos alocação de espaço para a imagem iniciação do PCB adicionar apontador nas listas apropriadas (e.g., lista de prontos para escalonamento) outras estruturas: e.g., arquivo de contabilização IC - UFF

28 Gerenciamento de processos (3)
Quando chavear? interrupções relógio ( mudança de estado, escalonamento) E/S falta de memória (página ou segmento) traps: condições anormais chamada ao sistema (e.g., operação de E/S) IC - UFF

29 Unix: Fork #include <stdio.h> int main (int argc, char *argv[ ])
{ int pid; /* criação de outro processo por fork */ pid = fork(); if (pid < 0) { /* ocorreu erro */ fprintf(stderr, "Fork falhou"); exit(-1); } else if (pid == 0) { /* processo filho */ execlp ("/bin/ls", "ls", NULL); else { /* processo pai */ /* processo pai vai esperar o filho terminar */ wait(NULL); printf("Filho terminou\n"); exit(0); IC - UFF

30 Gerenciamento de memória
Funções típicas: alocação de espaço de endereçamento aos processos swapping gerenciamento de páginas e segmentos IC - UFF

31 Gerenciamento de E/S Funções típicas: gerenciamento de buffers
alocação de canais e dispositivos de E/S IC - UFF

32 Funções de suporte Funções típicas: tratamento de interrupção
monitoramento contabilidade IC - UFF

33 Executando o SO O SO é um programa. Ele é um processo?
núcleo não é processo: conceito de processo só para programas do usuário funções executadas como processo de usuário: só há chaveamento de modo SO como conjunto de processos de sistema: funções principais do núcleo como processos IC - UFF

34 Núcleo separado P1 P2    Pn Núcleo IC - UFF

35 Funções em modo usuário
P1 Funções de chaveamento de processos Funções do SO P2 Pn    IC - UFF

36 Como processos de sistema
U1 Funções de chaveamento de processos Un Funções do SO1 do SOm    IC - UFF

37 Leitura suplementar Operating Systems Concepts, A. Silberschatz e P.B. Galvin, Addison-Wesley Modern Operating Systems, A.S. Tanenbaum, Prentice Hall IC - UFF


Carregar ppt "Sistemas Operacionais"

Apresentações semelhantes


Anúncios Google