Buscar

Projeto Logico de Computadores 04 Nivel do Sistema Operacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 49 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 49 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 49 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Projeto Lógico de Computadores
Nível do Sistema Operacional
Projeto Lógico de Computadores
Prof. Arthur
arthur@unip.br
2016
Nível do Sistema Operacional
Conceituação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Máquina Multinível
Nível Lógico-Digital
Nível da Micro-arquitetura
Nível ISA
Nível do Sistema Operacional
Nível da Linguagem de Montagem
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Um Sistema Operacional - SO é um programa que, do ponto de vista do programador, adiciona um conjunto de novas instruções e de funcionalidades, além daquelas suportadas no nível ISA.
Normalmente um SO é implementado por software, mas nada impede que ele o seja por hardware. 
Nível do SO
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
O conjunto de instruções do nível do SO é aquele que está disponível para os programadores de aplicações.
Uma Chamada de Sistema ativa um determinado serviço prestado pelo SO ao nível da aplicação.
Um exemplo de uma chamada de serviço é o comando de leitura de um dado num arquivo. 
Nível do SO
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Memória Virtual
Em tempos passados as máquinas tinham memórias pequenas e caras.
A busca do programador não era pelo melhor algoritmo, mas sim pelo algoritmo que coubesse na memória.
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Memória Virtual
Nesta época surgiu a técnica dos “overlays”, os quais eram totalmente controlados pelo programador.
Os “overlays” eram pedaços de um programa que ficavam em disco, e eram chamados para a memória no momento de serem executados.
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Overlays
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Overlays
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
O método dos “overlays” era muito trabalhosa para o programador.
Surgiu, então, um método para processar os “overlays” automaticamente, sem que o programador precisasse saber da sua existência.
Este método ficou conhecido como Paginação.
Memória Virtual
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
A memória virtual opera com base na técnica da paginação a qual, por sua vez, vem do conceito de espaço de endereçamento.
Memória Virtual
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Vamos definir espaço de endereçamento como sendo o número de palavras endereçáveis.
Se tivermos 16 bits para endereçamento, teremos 216 = 65.536 endereços possíveis, portanto o espaço de endereçamento compreende os endereços de zero a 65.535.
Vamos considerar uma memória com 4 KB, ou seja, se cada palavra for do tamanho de um byte, teremos uma memória de 4.096 palavras.
Espaço de Endereçamento
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Espaço de Endereçamento
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Esta técnica de “overlay” automático é denominada paginação, e o conjunto de endereços lidos do disco é chamado de página.
A memória física pode ser, então, menor que o espaço de endereçamento.
Retomando o exemplo anterior, as páginas serão blocos de 4 KB que serão carregados na memória na medida da necessidade.
Paginação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
A memória principal contém sempre 4 KB de informação, mas não necessariamente os primeiros 4 KB do espaço de endereçamento, mas qualquer bloco de 4 KB.
Paginação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
A paginação é, na prática, mais complexa, uma vez que uma determinada memória física pode abrigar mais de um bloco de dados.
Retomando novamente o exemplo anterior, com páginas de 4 KB, temos:
Paginação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Paginação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
O controle deste processo ocorre através de uma Tabela de Paginação:
Página no
Indicador de
paginação
Endereço
no disco
Frame no
Paginação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Voltando ao exemplo anterior:
Página no
Indicador de
paginação
Endereço
no disco
Frame no
0
1
xxx
2
1
1
yyy
0
16
0
zzz
Paginação
Indicador de Paginação:
0 – A página não está na memória
1 – A página está na memória
Tabela de Paginação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Se por sorte o programa do usuário e seus dados couberem exatamente em um número inteiro de páginas, não haverá desperdício de espaço de memória quando essas informações estiverem armazenadas na memória principal.
Por outro lado, se tais informações não puderem ser acomodadas em um número inteiro de páginas, haverá espaço disponível (não utilizado) na última página.
Fragmentação Interna
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Por exemplo, se um programa e seus respectivos dados ocuparem 26.000 bytes em uma máquina com 4.096 bytes por página (4 KB), as seis primeiras páginas estarão cheias, e a última conterá apenas 1.424 bytes.
Este tipo de problema é denominado fragmentação.
Fragmentação Interna
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Páginas repletas: 6 x 4.096 = 24.576 bytes
Portanto: 26.000 – 24.576 = 1.424
Fragmentação Interna
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
O sistema de memória virtual visto até agora é unidimensional, pois os endereços variam consecutivamente de zero até um endereço máximo.
Na solução de alguns problemas é conveniente a existência de mais de um espaço de endereçamento.
Segmentação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Por exemplo, um compilador gera muitas tabelas que precisam ser construídas na medida em que o processo de compilação evolui.
Destas tabelas pode-se citar:
A tabela de símbolos, contendo o nome e os atributos das variáveis.
A tabela com o código fonte.
Uma tabela contendo todas as constantes.
Uma tabela analítica, contendo a análise sintática do programa.
Etc.
Segmentação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Segmentação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Estas tabelas vão sendo preenchidas na medida em que o processo de compilação avança.
Se o espaço de endereçamento for único, as faixas destinadas às diversas tabelas podem estourar sua capacidade:
Segmentação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Segmentação
Instante “t” do processo de compilação
Faixa estourada
O que fazer?
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Segmentação
Instante “t” do processo de compilação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
A solução é segmentar o espaço de endereçamento em vários espaços independentes entre si.
Desta forma, os espaços podem crescer, ou diminuir, na medida da necessidade.
Além disto, é possível atribuir níveis diferentes de segurança para cada espaço.
Segmentação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Comparando
Consideração
Paginação
Segmentação
O programador precisa saber que o sistema usa esta técnica?
Quantos espaços lineares de endereços existem?
O espaço de endereçamento virtual pode exceder o tamanho da memória?
As tabelas de tamanho variável podem ser tratadas com facilidade?
Por que esta técnica foi inventada?
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Comparando
Consideração
Paginação
Segmentação
O programador precisa saber que o sistema usa esta técnica?
Não
Sim
Quantosespaços lineares de endereços existem?
O espaço de endereçamento virtual pode exceder o tamanho da memória?
As tabelas de tamanho variável podem ser tratadas com facilidade?
Por que esta técnica foi inventada?
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Comparando
Consideração
Paginação
Segmentação
O programador precisa saber que o sistema usa esta técnica?
Não
Sim
Quantos espaços lineares de endereços existem?
1
Muitos
O espaço de endereçamento virtual pode exceder o tamanho da memória?
As tabelas de tamanho variável podem ser tratadas com facilidade?
Por que esta técnica foi inventada?
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Comparando
Consideração
Paginação
Segmentação
O programador precisa saber que o sistema usa esta técnica?
Não
Sim
Quantos espaços lineares de endereços existem?
1
Muitos
O espaço de endereçamento virtual pode exceder o tamanho da memória?
Sim
Sim
As tabelas de tamanho variável podem ser tratadas com facilidade?
Por que esta técnica foi inventada?
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Comparando
Consideração
Paginação
Segmentação
O programador precisa saber que o sistema usa esta técnica?
Não
Sim
Quantos espaços lineares de endereços existem?
1
Muitos
O espaço de endereçamento virtual pode exceder o tamanho da memória?
Sim
Sim
As tabelas de tamanho variável podem ser tratadas com facilidade?
Não
Sim
Por que esta técnica foi inventada?
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Comparando
Consideração
Paginação
Segmentação
O programador precisa saber que o sistema usa esta técnica?
Não
Sim
Quantos espaços lineares de endereços existem?
1
Muitos
O espaço de endereçamento virtual pode exceder o tamanho da memória?
Sim
Sim
As tabelas de tamanho variável podem ser tratadas com facilidade?
Não
Sim
Por que esta técnica foi inventada?
Para simular memórias grandes
Para permitir o uso de vários espaços de endereçamento
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
A segmentação pode ser implementada de duas maneiras:
Por “swapping”
Por paginação
Segmentação
Figura: http://lzanuz.sites.uol.com.br/mem_swapping.jpg
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
No “swapping” um conjunto de segmentos deve estar na memória principal em um certo instante.
Se ocorrer uma referência a um segmento que não está na memória principal, este segmento deve ser trazido do disco para a memória.
Se não houver espaço para ele na memória, um ou mais segmentos devem ser retirados da memória e escritos de volta no disco.
Segmentação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Em certo sentido, a segmentação implementada por “swapping” não é muito diferente da paginação por demanda: os segmentos vão e vem do disco para a memória principal, e vice-versa, na medida em que são necessários.
Há, contudo, uma diferença essencial entre os dois métodos: as páginas têm tamanho fixo, e os segmentos não.
Segmentação
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
A fragmentação externa ocorre entre segmentos, e não dentro deles.
A sucessiva troca de segmentos numa memória principal cria intervalos ociosos que representam um desperdício deste recurso.
Este problema é tratado através da compactação dos intervalos ociosos.
Fragmentação Externa
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Fragmentação Externa
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
A compactação consome tempo de máquina para executar sua tarefa e não pode ser executada a cada movimentação de segmentos, mas somente a determinados intervalos de tempo.
Fragmentação Externa
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Para alocar área para um arquivo em disco, o SO utiliza, habitualmente, dois métodos:
Controle de Espaço em Disco
A Lista Livre
O Mapa de Bits
Tomemos como exemplo a figura do um disco que segue:
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Controle de Espaço em Disco
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Controle de Espaço em Disco
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Controle de Espaço em Disco
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Lista Livre
Trilha
Setor
Node setores livres
0
0
2
0
3
2
0
6
2
1
0
1
1
2
4
1
7
1
2
0
3
2
4
1
2
6
2
3
0
2
3
3
1
3
5
3
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Mapa de Bits
S0
S1
S2
S3
S4
S5
S6
S7
T0
0
0
1
0
0
1
0
0
T1
0
1
0
0
0
0
1
0
T2
0
0
0
1
0
1
0
0
T3
0
0
1
0
1
0
0
0
0 – Área livre
1 – Área gravada
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Quando um programa roda, ele o faz como parte de algum processo.
Os sistemas operacionais modernos permite a criação, e destruição, dinâmica de processos.
Criação de Processos
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Há duas possibilidades:
Criação de Processos
1. O processo-pai cria, e mantém controle, sobre o processo-filho (total ou parcial).
1.1. Há necessidade de instruções virtuais para permitir que o processo-pai possa parar e retomar a execução de um processo-filho.
1.2. Idem, para examiná-lo e terminá-lo.
2. O processo-pai cria o processo-filho e este torna-se um processo independente.
Prof. Arthur
Projeto Lógico de Computadores
Nível do Sistema Operacional
Projeto Lógico de Computadores
Prof. Arthur
arthur@unip.br
2016
Nível do Sistema Operacional
Conceituação
Prof. Arthur
�
�
�
Programa
Memória�
Overlays�
Carga na memória�
Retorno�
Disco
�
�
�
Programa
Memória�
Overlays�
Carga na memória�
Retorno�
Disco
�
�
Espaço de endereçamento
0
4.095
8.191
65.535
Memória de 4KB�
0
4.095
�
�
Espaço de endereçamento
0
4.095
8.191
65.535
Memória de 4KB�
0
4.095
�
�
Espaço de endereçamento
0
4.095
8.191
65.535
4 KB
Frame 2�
0
4.095
Página 0
Página 1
Página 16
4 KB
Frame 1�
4 KB
Frame 0�
Memória
de 12 KB
8.191
12.287
�
�
Espaço de endereçamento
0
4.095
8.191
65.535
4 KB
Frame 2�
0
4.095
Página 0
Página 1
Página 16
4 KB
Frame 1�
4 KB
Frame 0�
Memória
de 12 KB
8.191
12.287
�
Página 1�
Página 0�
Página 6�
Página 5�
Página 4�
Página 3�
Página 2�
Páginas de
4 KB cada
�
1.424 bytes ocupados�
�
Código fonte�
Símbolos�
Análise sintática�
Constantes�
Espaço de
endereçamento
�
Código fonte�
Símbolos�
Análise sintática�
Constantes�
Espaço de
endereçamento
�
�
Símbolos�
Código fonte�
Constantes�
Análise Sintática�
�
�
Segmento 4
7 KB�
Segmento 3
8 KB�
Segmento 2
5 KB�
Segmento 1
8 KB�
Segmento 0
4 KB�
Segmento 4
7 KB�
Segmento 3
8 KB�
Segmento 2
5 KB�
3 KB�
Segmento 0
4 KB�
Segmento 7
5 KB�
3 KB�
Segmento 5
4 KB�
Segmento 3
8 KB�
Segmento 2
5 KB�
Segmento 0
4 KB�
3 KB�
Segmento 7
5 KB�
t1
t2
t3
3 KB�
Segmento 5
4 KB�
4 KB�
Segmento 2
5 KB�
Segmento 0
4 KB�
3 KB�
Segmento 7
5 KB�
Segmento 6
4 KB�
t4
Compactação�
10 KB�
Segmento 5
4 KB�
Segmento 2
5 KB�
Segmento 0
4 KB�
t5
Segmento 7
5 KB�
Segmento 6
4 KB�
�
�
Trilha 0�
Trilha 1�
Trilha 2�
Trilha 3�
�
�
�
Setor 4�
Setor 0�
Setor 1�
Setor 2�
Setor 3�
Setor 5�
Setor 6�
Setor 7�
�
�
0�
1�
2�
3�
0
4�
5�
6�
7�
1
2
3
Setor gravado
�
�
0�
1�
2�
3�
0
4�
5�
6�
7�
1
2
3
Setor gravado
�
�
0�
1�
2�
3�
0
4�
5�
6�
7�
1
2
3
Setor gravado

Outros materiais