SO-11 Winux: Laboratório de Sistemas Operacionais

25
Sistema Operacional Simplificado

description

Winux: software de simulação simplificada de sistemas operacionais

Transcript of SO-11 Winux: Laboratório de Sistemas Operacionais

Page 1: SO-11 Winux: Laboratório de Sistemas Operacionais

Sistema Operacional Simplificado

Page 2: SO-11 Winux: Laboratório de Sistemas Operacionais

2 Sistemas Operacionais Eduardo Nicola F Zagari

  Introdução   Descrição do Sistema Operacional Simplificado   Descritor de Programa: BCP   Filas de Programas   Transição de Estados dos Programas   Organização dos Programas no Disco   Processos Simples   Tratamento de Interrupções   Hardware   Hardware Simulado

Page 3: SO-11 Winux: Laboratório de Sistemas Operacionais

3 Sistemas Operacionais Eduardo Nicola F Zagari

  SO: interface entre um usuário e o hardware   Funções:

  Máquina Virtual   Gerenciador de Recursos

  Suporte à Multiprogramação   Políticas de Escalonamento

  Armazenamento Simultâneo e Compartilhamento de Memória   Algoritmos de substituição de processos na memória

  Paralelismo nas operações de Entrada/Saída   Canais de Entrada e de Saída, buffers e interrupções

Page 4: SO-11 Winux: Laboratório de Sistemas Operacionais

4 Sistemas Operacionais Eduardo Nicola F Zagari

  Sistema de SPOOL (“Simultaneous Peripherals Operation On Line”)   Utilização do disco nas operações de E/S

  Sistema de Interrupções   Compartilhamento da CPU pelos programas   Paralelismo das operações de E/S

  BCP

Page 5: SO-11 Winux: Laboratório de Sistemas Operacionais

5 Sistemas Operacionais Eduardo Nicola F Zagari

  Processos Simples e Processos Especiais   Atuam sobre periféricos, buffers, disco, memória, etc

  Processos simples: 7 processos concorrentes 1.  Leitura 2.  Spool de entrada 3.  Spool de saída 4.  Impressão 5.  Loader 6.  E/S do Usuário 7.  Paginação

  Processos especiais:   Tratador de Interrupções   Escalonador   Espera de Interrupção

Spooling do sistema operacional

Page 6: SO-11 Winux: Laboratório de Sistemas Operacionais

6 Sistemas Operacionais Eduardo Nicola F Zagari

repeat EXECUTA_PROCESSOS_SIMPLES; if not VAZIA ( FILA_DE_PROGRAMAS_EXECUTÁVEIS ) then begin ESCALA_PROGRAMA_DE_USUÁRIO; HARDWARE end; if not Interrupção then ESPERA_INTERRUPÇÃO; { BUSY WAIT } TRATA_INTERRUPÇÃO until FALSE; { REPEAT FOREVER }

Page 7: SO-11 Winux: Laboratório de Sistemas Operacionais

7 Sistemas Operacionais Eduardo Nicola F Zagari

Page 8: SO-11 Winux: Laboratório de Sistemas Operacionais

8 Sistemas Operacionais Eduardo Nicola F Zagari

Page 9: SO-11 Winux: Laboratório de Sistemas Operacionais

9 Sistemas Operacionais Eduardo Nicola F Zagari

  Fila 0: Fila dos BCPʼs disponíveis   Fila 1: Programa em processo de entrada (Spool In)   Fila 2: Programas residentes em disco   Fila 3: Programas prontos para execução   Fila 4: Programa sendo executado   Fila 5: Programas suspensos aguardando operações de E/S   Fila 6: Programas suspensos por falta de páginas   Fila 7: Programas acabados   Fila 8: Programa em estado de saída

Page 10: SO-11 Winux: Laboratório de Sistemas Operacionais

10 Sistemas Operacionais Eduardo Nicola F Zagari

  Fila 1 Fila 2   Fila 2 Fila 3   Fila 3 Fila 4   Um processo pode ser interrompido (por gerar uma interrupção):

  Quando requer a execução de uma operação de E/S Fila 5   Quando a requer a execução de uma instrução que não está na

memória Fila 6   Quando do seu término normal ( Fila 8), do término de seu tempo

de execução ( Fila 3) ou ocorrência de situações de erro (proteção de memória, código inválido, overflow) ( Fila 7)

  Nas filas 1, 4 e 8 só poderá haver um programa de cada vez…

Page 11: SO-11 Winux: Laboratório de Sistemas Operacionais

11 Sistemas Operacionais Eduardo Nicola F Zagari

 Em disco, o processo é dividido em 3 áreas:   Área de Programa   Área de Dados   Área de Impressão

  8 Buffers de E/S organizados em 3 Filas:   Livres   Spool In   Impressão

 Prevenção de Deadlock na alocação de buffers:   Disco cheio e buffers preenchidos com dados de entrada

 Spool In não opera  Spool out também não…

– Solução: nunca permitir que todos os buffers sejam usados para Spool In.

Page 12: SO-11 Winux: Laboratório de Sistemas Operacionais

12 Sistemas Operacionais Eduardo Nicola F Zagari

  Operações de E/S do sistema   Paginação   Instruções de E/S dos programas

Concorrentes, mas com supervisão da CPU

Processos Simples

  Controlam a utilização dos recursos envolvidos em operações de E/S e armazenamento de dados e programas

  Podem estar ativos ou inativos, dependendo de certas condições

Page 13: SO-11 Winux: Laboratório de Sistemas Operacionais

13 Sistemas Operacionais Eduardo Nicola F Zagari

  “Leitura” :   existem dados no dispositivo de entrada   existe buffer disponível   o canal de leitura não está sendo utilizado

  “Spool In” :   existe buffer na fila de buffers p/ Spool In   existe espaço disponível em disco   existe BCP disponível ou em estado de Spool In   o canal de controle do disco não está em uso

  “Loader”:   existe espaço na memória ( pelo menos 2 páginas : uma para a Tabela de

Páginas e uma para a primeira página de código do programa )   existe BCP na fila dos programas residentes em disco, aguardando

carregamento na memória.   o canal de controle do disco não está em uso

  “Paginação”:   existe BCP na fila de programas aguardando paginação   o canal de controle do disco não está em uso

Page 14: SO-11 Winux: Laboratório de Sistemas Operacionais

14 Sistemas Operacionais Eduardo Nicola F Zagari

  “E/S usuário”:   existe BCP na fila de programas aguardando a realização de operações de

E/S   o canal de controle do disco não está em uso

  “Spool Out”:   existe BCP na fila de programas que já terminaram suas execuções   existe buffer disponível   o canal de controle do disco não está em uso

  “Impressão”:   existe buffer na fila de buffers para impressão   o canal de controle do dispositivo de saída não está sendo utilizado

  Ao completar a leitura ou escrita que estava executando, o canal gera uma INTERRUPÇÃO, indicando à CPU que os dados já foram lidos e podem ser tratados, ou já foram escritos e que o dispositvo está pronto para reutilização.

  O Processo Simples que havia sido suspenso, volta a ser executadfo e faz o tratamento da situação.

Page 15: SO-11 Winux: Laboratório de Sistemas Operacionais

15 Sistemas Operacionais Eduardo Nicola F Zagari

  Interrupção: evento que altera a seqüência de execução de instruções por um processador   Gerada pelo hardware   Pode ser de programa ou de periférico

  Quando ocorre, causa a execução dos seguintes passos:   O controle da CPU é retornado para o SO   O SO salva o estado do processo que está sendo executado   A interrupção é analisada e o SO passa a executar a rotina de

tratamento correspondente  Se é de programa, ele vai para a fila correspondente;  Se é de periférico, então o Processo Simples correspondente é

reativado e o periférico é liberado.

Page 16: SO-11 Winux: Laboratório de Sistemas Operacionais

16 Sistemas Operacionais Eduardo Nicola F Zagari

  Computador Simplificado (CS): hardware simulado por software   Composto por:

  Unidade Central de Processamento (CPU)   Memória principal de acesso rápido   Uma unidade de armazenamento externo (disco)   Registradores específicos e de uso geral   Contador de tempo para execução de programas (TIMER)   Contador da fatia de tempo da CPU para a execução de cada

programa (TIME-SLICE)   Relógio (CLOCK)   Unidades de Entrada/Saída de dados controlado por canais

autônomos   Vetor de interrupções

Page 17: SO-11 Winux: Laboratório de Sistemas Operacionais

17 Sistemas Operacionais Eduardo Nicola F Zagari

Page 18: SO-11 Winux: Laboratório de Sistemas Operacionais

18 Sistemas Operacionais Eduardo Nicola F Zagari

  “Palavra”: unidade básica do seu sistema de armazenamento   Especificada no CS através de uma estrutura de dados

  Se for uma palavra de instrução:  C1: Código da operação  C2: Página referida pela instrução  C3: Deslocamento dentro da pág. referida (palavra)

  Se for uma palavra de dado:  C1: Valor do dado armazenado  C2: - (Irrelevante)  C3: - (Irrelevante)

C1 C2 C3

Page 19: SO-11 Winux: Laboratório de Sistemas Operacionais

19 Sistemas Operacionais Eduardo Nicola F Zagari

  O CS utiliza esquema de paginação com páginas de 8 palavras

0 . . 7 8 . .

248 . .

255

C1 C2 C3

C1 C2 C3 C1 C2 C3

C1 C2 C3

C1 C2 C3

0 . . 7 0 . . 0 . . 7

Pág 0

Pág 31

End Absoluto:

Deslocamento:

Page 20: SO-11 Winux: Laboratório de Sistemas Operacionais

20 Sistemas Operacionais Eduardo Nicola F Zagari

  Tabela de Páginas   Cada palavra na TP representa a presença e o endereço

efetivo de uma página do programa do usuário na memória:  C1: indica presença ou ausência de uma página na

memória  C2: endereço efetivo da página na memória  C3: não utilizado

  Para obter o endereço efetivo de uma palavra, o SO:  Identifica a página de memória que contém a TP do

programa  Pesquisa nesta página, a presença e o endereço

efetivo da página   Páginas de código localização direta   Páginas de rascunho localização inversa

Page 21: SO-11 Winux: Laboratório de Sistemas Operacionais

21 Sistemas Operacionais Eduardo Nicola F Zagari

  Os principais registradores:   ACC: acumulador   PC: contador de programa   TP: tabela de páginas   FP: falta página   CK: clock   TIMER: tempo máximo previsto   TS: time slice

Page 22: SO-11 Winux: Laboratório de Sistemas Operacionais

22 Sistemas Operacionais Eduardo Nicola F Zagari

  Conjunto de instruções de máquina do CS   Operações que fazem referência à área de código

 HLT  JMP XY Z  JNG XY Z (Se ACC<0, então JMP XY Z)

  Operações que manipulam a área reservada para rascunho  RD XY 0  PRN XY 0  LD XY Z  STR XY Z  SUB XY Z  ADD XY Z

Referem-se a páginas

Referem-se a palavras

Page 23: SO-11 Winux: Laboratório de Sistemas Operacionais

23 Sistemas Operacionais Eduardo Nicola F Zagari

Page 24: SO-11 Winux: Laboratório de Sistemas Operacionais

24 Sistemas Operacionais Eduardo Nicola F Zagari

Page 25: SO-11 Winux: Laboratório de Sistemas Operacionais

25 Sistemas Operacionais Eduardo Nicola F Zagari