SO-11 Winux: Laboratório de Sistemas Operacionais
-
Upload
nicola-zagari -
Category
Technology
-
view
2.509 -
download
1
description
Transcript of SO-11 Winux: Laboratório de Sistemas Operacionais
Sistema Operacional Simplificado
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
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
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
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
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 }
7 Sistemas Operacionais Eduardo Nicola F Zagari
8 Sistemas Operacionais Eduardo Nicola F Zagari
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
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…
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.
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
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
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.
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.
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
17 Sistemas Operacionais Eduardo Nicola F Zagari
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
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:
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
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
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
23 Sistemas Operacionais Eduardo Nicola F Zagari
24 Sistemas Operacionais Eduardo Nicola F Zagari
25 Sistemas Operacionais Eduardo Nicola F Zagari