Title: Sistemas Operacionais
1Sistemas Operacionais
- 2. Processos
- Texto base capítulos 3 e 4
- Operating Systems Internals and Design
Principles - W. Stallings
2O 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
3Enfim, ...
- Um processo é uma abstração de um programa em
execução - Exemplo
- fazer um bolo ...
4O 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
5Modelo simples de processo
(a) diagrama de transição de estado
6Criando de processos
- O que faz o SO para criar processos?
- 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) ...
7Terminando processos
- Quando terminar?
- 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 ...
8Problema 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
9Um modelo mais elaborado
10Implementando o modelo (1)
fila dos prontos
liberação
despacho
admissão
UCP
pausa
fila dos bloqueados
espera evento
evento ocorre
11Implementando o modelo (2)
12Implementando o modelo (3)
evento 1 ocorre
evento 2 ocorre
13O 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
14Diagrama com estado Suspenso
15Pensando melhor ...
novo
admissão
despacho
liberação
ativa
pronto- suspenso
executando
saída
suspende
pausa
evento ocorre
evento ocorre
espera evento
ativa
suspenso- bloqueado
bloqueado
suspende
16O 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?
17Tabelas!
- Tabelas de memória
- 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
18Controlando 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
19Atributos 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
20Identificação do processo
- Feita por identificadores numéricos que incluem
- identificador do processo
- identificador do processo que o criou
- identificador do usuário
21Informaçã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
22Informaçã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)
23Informaçã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)
24Funçõ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
25Funçõ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
26Gerenciamento de processos (1)
- criação e término de processos
- escalonamento e despacho
- chaveamento
- sincronização e suporte a IPC
- gerenciamento de PCBs
27Gerenciamento de processos (2)
- 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
28Gerenciamento de processos (3)
- 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)
29Unix Fork
include ltstdio.hgt int main (int argc, char
argv ) int pid / criação de outro
processo por fork / pid fork() if (pid lt
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)
30Gerenciamento de memória
- Funções típicas
- alocação de espaço de endereçamento aos processos
- swapping
- gerenciamento de páginas e segmentos
31Gerenciamento de E/S
- Funções típicas
- gerenciamento de buffers
- alocação de canais e dispositivos de E/S
32Funções de suporte
- Funções típicas
- tratamento de interrupção
- monitoramento
- contabilidade
33Leitura suplementar
- Operating Systems Concepts, A. Silberschatz e
P.B. Galvin, Addison-Wesley - Modern Operating Systems, A.S. Tanenbaum,
Prentice Hall