Sistemas Operacionais - PowerPoint PPT Presentation

About This Presentation
Title:

Sistemas Operacionais

Description:

Sistemas Operacionais 2. Processos Texto base: cap tulos 3 e 4 Operating Systems: Internals and Design Principles W. Stallings O conceito de processos No cap tulo 1 ... – PowerPoint PPT presentation

Number of Views:108
Avg rating:3.0/5.0
Slides: 34
Provided by: uff51
Category:

less

Transcript and Presenter's Notes

Title: Sistemas Operacionais


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

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

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

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

5
Modelo simples de processo
(a) diagrama de transição de estado
6
Criando 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) ...

7
Terminando 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 ...

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

9
Um modelo mais elaborado
10
Implementando o modelo (1)
fila dos prontos
liberação
despacho
admissão
UCP
pausa
fila dos bloqueados
espera evento
evento ocorre
11
Implementando o modelo (2)
12
Implementando o modelo (3)
evento 1 ocorre
evento 2 ocorre
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

14
Diagrama com estado Suspenso
15
Pensando 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
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?

17
Tabelas!
  • 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

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

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

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

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

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)

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)

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

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

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

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

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)

29
Unix 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)
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

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

32
Funções de suporte
  • Funções típicas
  • tratamento de interrupção
  • monitoramento
  • contabilidade

33
Leitura suplementar
  • Operating Systems Concepts, A. Silberschatz e
    P.B. Galvin, Addison-Wesley
  • Modern Operating Systems, A.S. Tanenbaum,
    Prentice Hall
Write a Comment
User Comments (0)
About PowerShow.com