PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

58
PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio

Transcript of PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Page 1: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

PROJETO LÓGICO DE COMPUTADORES

Nível do Sistema Operacional

Prof.: Agostinho S. Riofrio

Page 2: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Nível do Sistema Operacional

1. Introdução2. Memória Virtual3. Paginação4. Segmentação5. Instruçoes virtuais de E/S6. Processamento Paralelo

Agenda

Page 3: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Introdução

Um Sistema Computacional moderno consiste em um ou mais processadores, memória principal, discos, impressoras, teclado, monitor, interface de rede e outros dispositivos de entrada e saída. Essa grande diversidade pode ser uma fonte de dores de cabeça para o desenvolvedor de aplicativos, por isso torna-se desejável oferecer aos programas aplicativos uma forma de acesso homogênea aos dispositivos físicos, que permita abstrair as diferenças tecnológicas entre eles.

Nível do Sistema Operacional

Page 4: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Introdução

O sistema operacional é uma estrutura de software que incorpora aspectos de baixo nível (como drivers de dispositivos e gerência de memória física) e de alto nível (como programas utilitários e a própria interface gráfica).Fornece interfaces de acesso aos dispositivos, mais simples de usar que as interface de baixo nível, e torna os aplicativos independentes do hardware.Define interfaces de acesso homogêneas para dispositivos com tecnologias distintas.Contém quase todas as instruções do nível ISA e novas instruções denominadas chamadas de sistema.

Nível do Sistema Operacional

Page 5: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Introdução

• O Sistema Operacional é uma máquina virtual–Oculta os detalhes complicados que têm quer ser executados–Apresenta ao usuário uma máquina virtual, mais fácil de usar

• O Sistema Operacional é um gerenciador de recursos

–Cada programa tem um tempo com o recurso–Cada programa tem um espaço no recurso

Nível do Sistema Operacional

Page 6: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Nível de Máquina do Sistema OperacionalNível do Sistema Operacional

Page 7: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Memória VirtualNível do Sistema Operacional

Há muitos anos, os programadores já eram obrigados a lidar com programas muito maiores que a memória disponível.A maioria dos computadores utiliza uma hierarquia de memórias, que combina uma pequena quantidade de memória cache, muito rápida e de alto custo; uma grande memória principal (RAM), volátil, com dezenas de Megabytes, de velocidade e custos médios; e uma memória secundária , constituída de armazenamento não volátil em disco, com centenas de Gigabytes, velocidade e custos baixos.

Page 8: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Memória VirtualNível do Sistema Operacional

A parte do sistma operacional que gerencia a hierarquia de memórias é denominada Gerenciador de Memória.Sua função é manter o controle de quais partes da memória estão em uso, alocando memória aos processos quando eles precisa, alem de egenciar a troca de processos entre a memória e o disco quando a memória principal não é suficiente.

Page 9: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Memória VirtualNível do Sistema Operacional

• Espaço de endereço virtual: Dado pela quantidade de bits de endereçamento existente nas instruções.• Espaço de endereço físico: Espaço de memória física onde se pode armazenar programas e dados.• Paginação: Processo automático de transferir trechos de programas de tamanho fixo do disco para a memória RAM conforme necessário a CPU.• Transparente ao programador.

Page 10: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Paginação – Idéia centralNível do Sistema Operacional

Mapeamento no qual endereços virtuais 4.096 a 8.191 são mapeados para endereços da memória principal 0 a 4.095.

Page 11: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Implementação da PaginaçãoNível do Sistema Operacional

Um mapa de memória ou tabela de páginas especifica o endereço físico correspondente para cada endereço virtual.

Porções de tamanho fixo da memória principal para onde vão as páginas são denominadas quadros de páginas.

Na implementação da memória virtual, o endereço é dividido no número da página virtual e no deslocamento da página

Page 12: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Implementação da PaginaçãoNível do Sistema Operacional

Os 64 KB do espaço de endereço virtual divididos em 16 páginas, cada página com 4K.

Memória física de 32 KB dividida em oito quadros de página de 4 KB cada.

Page 13: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Implementação da PaginaçãoNível do Sistema Operacional

MMU - Unidade de Gerenciamento de MemóriaConverte os endereços virtuais em físicos para poder acessar a memória física.

Quando é feita uma referência a um endereço em uma página que não está presente na memória principal, ela é denominada falta de página.

A MMU faz a verificação se a página está na memória principal no momento em questão, examinando o bit presente/ausente na tabela de páginas

Page 14: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Paginação por Demanda

Formação de um endereço de memória principal a partir de um endereço virtual.

Nível do Sistema Operacional

Page 15: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Paginação por Demanda

Na paginação por demanda as páginas são trazidas para a memória somente quando ocorre uma requisição de uma página e não antecipadamente.

O mapa de memória é exclusivo de cada programa e é trocado quando os programas são trocados.

O sistema de memória virtual usa a técnica write-back para gerenciar a escrita na memória virtual.Atualiza o disco na substituição da página.

Nível do Sistema Operacional

Page 16: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Formato de Instruções – Pentium 4

Possível mapeamento das 16 primeiras páginas virtuais para uma principal com oito quadros de página.

Nível do Sistema Operacional

Page 17: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Política de Substituição

Falta de PáginaBit presente/ausentePaginação por demanda: Páginas são

trazidas da memória secundária para a primária conforme são solicitadas pela CPU, nao entecipadamente.

Mapa de memória é exclusivo de cada em memória, e é trocado quando o programa é trocado.

Princípio de Localidade

Nível do Sistema Operacional

Page 18: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Política de Substituição• Conjunto de Trabalho: Conjunto de páginas mais

usadas recentemente.• Algoritmo de substituição de página do tipo LRU

(Least Recently Used): Substitui o a página menos usada recentemente.

• Algoritmo de substituição de página do tipo FIFO (first-In First-Out): Substitui a página menos usada, não importando quando.

• Se o conjunto de trabalho for maior que a memória disponível, nenhum algoritmo trará bons resultados

• Paginação excessiva• Melhor páginas maiores

Nível do Sistema Operacional

Page 19: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Política de Substituição de Página

Falha do algoritmo LRU

Nível do Sistema Operacional

Page 20: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Segmentação• Espaço de endereços completamente independentes• Diferentes segmentos possuem diferentes comprimentos• Cada segmento é uma entidade lógica única para o

programador• Um segmento pode conter um procedimento, ou um

vetor, ou um conjunto de variáveis escalares.• Simplifica o manuseio de estruturas de dados que podem

aumentar ou encolher.• Simplifica a interconexão de procedimentos compilados.• Facilita compartilhar procedimentos ou dados entre vários

programas.• Permite implementar proteção aos segmentos de acordo

com seu conteúdo.

Nível do Sistema Operacional

Page 21: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Segmentação

Em um espaço de endereço unidimensional com tabelas que aumentam, uma tabela pode encostar em outra.

Nível do Sistema Operacional

Page 22: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Segmentação

Uma memória segmentada permite que cada tabela cresça e encolha independentemente das outras tabelas.

Nível do Sistema Operacional

Page 23: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Segmentação

Comparação entre paginação e segmentação.

Nível do Sistema Operacional

Page 24: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Implementação de Segmentação

(a)-(d) Desenvolvimento de fragmentação externa. (e) Remoção da fragmentação externa por compactação.

Nível do Sistema Operacional

Page 25: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Implementação de Segmentação

O gerenciamento de lacunas requer manter uma lista de endereços e tamanho de todas as lacunas.Um algoritmo, chamado melhor ajuste, escolhe a menor lacuna na qual o segmento necessário caberá.Existe um outro algoritmo, chamado primeiro ajuste, percorre a lista de lacunas em circulos e escolhe a primeira lacuna grande o suficiente para conter o segmento.O algoritmo primeiro ajuste tem desempenho global melhor que o algoritmo melhor ajuste.

Nível do Sistema Operacional

Page 26: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Implementação de Segmentação

Conversão de um endereço MULTICS de duas partes em um endereço dememória principal.

Nível do Sistema Operacional

Page 27: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Memória Virtual do Pentium 4Nível do Sistema Operacional

Page 28: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Memória Virtual do Pentium 4Nível do Sistema Operacional

Page 29: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Memória Virtual do Pentium 4Nível do Sistema Operacional

Page 30: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Memória Virtual do Pentium 4Nível do Sistema Operacional

Page 31: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Instruções de Entrada/Saída virtuais

O nível de máquina do sistema operacional contém grande parte das instruções ISA, com adição de algumas instruções novas e remoção de algumas potencialmente danosas.O acessso a E/S via ISA gera problemas de segurança e privacidade em sistema de multiplos usuários.Progração de E/S em nível ISA é tremendamrente tediosa e complexa.

Nível do Sistema Operacional

Page 32: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Arquivos

Um modo de organizar E/S virtual é através de uma abstração chamada arquivo.O arquivo consiste em uma sequência de bytes que pode ser escrito/lido em um disposotivo de E/S.Um disco pode conter muitos arquivos , cada um com algum tipo particular de dados, como, uma figura, uma planilha ou um texto.E/S de arquivo é feita por chamadas de sistema para abrir, ler, escrever e fechar arquivos.

Nível do Sistema Operacional

Page 33: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

ArquivosNível do Sistema Operacional

Page 34: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Arquivos

Uma vez aberto, um arquivo pode ser lido. A chamada de sistema read deve ter os seguintes parâmetros, no mínimo:

1. Uma indicação de qual arquivo aberto deve ser lido.2. Um ponteiro para um buffer na memória no qual coloca os dados.3. O número de bytes a ser lido

Nível do Sistema Operacional

Page 35: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Chamadas de SitemaNível do Sistema Operacional

Page 36: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Instruções Virtuais de E/S

O nível de máquina do sistema operacional contém grande parte das instruções ISA, com adição de algumas instruções novas e remoção de algumas potencialmente danosas.O acessso a E/S via ISA gera problemas de segurança e privacidade em sistema de multiplos usuários.Progração de E/S em nível ISA é tremendamrente tediosa e complexa.

Nível do Sistema Operacional

Page 37: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Implementação de instruções de E/S virtuaisNível do Sistema Operacional

Page 38: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Implementação de instruções de E/S virtuaisNível do Sistema Operacional

É necessário examinar como os arquivos são organizados e armazenados.A unidade de alocação pode ser um setor ou um bloco de setores consecutivos no disco.A arquivo pode ser armazenado em unidades de alocação consecutivas ou não.A tabela índice de arquivo localiza qualquer byte registro lógico.

Page 39: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Implementação de instruções de E/S virtuaisNível do Sistema Operacional

Lista de todas as unidades de alocação contíguas disponíveis para uso.

Page 40: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Gerenciamento de DiretórioNível do Sistema Operacional

Page 41: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Instruções virtuais para processamento paralelo

Programas/algoritmos podem ser executados em mais de um processador.Outros podem ser dividios em porções que podem ser executadas em paralelo para redizir tempo de execução.Limite físico de propagação: 30cm/nsDados da memória a 30 cm da CPU: 1ns até que a requisição chegue a memória e 1ns na volta. Computadores de maior desempenho teriam de ser minúsculos. A solução parece estar em usar máquinas com muitas CPUs.1000 CPUs de 1 ns equivalem a uma CPU de 0,001 ns.

Nível do Sistema Operacional

Page 42: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Criação de ProcessoUm programa para ser executado, ele dever ser executado como parte de um processo.O processador pode ser compartilhado entre vários processos.Processos são caracterizados por um estado e um espaço de endereço por meio do qual o programa e os dados podem ser acessados.O estado inclui no mínimo o PC, uma palavra de estado do programa, um ponteiro de pilha e os registradores gerais.Chamadas de sistema criam processosExistem processos-pais e processos-filhos. O processo pai pode interromper, reiniciar, examinar e encerrar processos-filhos.

Nível do Sistema Operacional

Page 43: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Instruções virtuais para processamento paraleloNível do Sistema Operacional

Page 44: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Condição de disputaEm muitos casos, processos paralelos precisam se comunicar e sincronizar para realizar seu trabalho. Processos produtor e consumidor com buffer circular:Ponteiro in=out buffer vazioO topo e a base estão interligados criando um espaço contínuo.

Nível do Sistema Operacional

Page 45: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Condições de Disputa

Buffer Circular

Nível do Sistema Operacional

Page 46: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Condições de Disputa

Falha no esquema produtor/consumidor

Nível do Sistema Operacional

Page 47: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Condições de Disputa

Falha: Falta de sincronismo e diferença de tempos de execução de cada processo.No instante em que o consumidor buscou in e out e o instante em que foi dormir, o produtor se esgueirou para dentro do buffer, descobriu que in=out+1, entendeu que o consumidor estava dormindo (mas não estava) e enviou um sinal de despertar que foi perdido porque o consumidor ainda estava acordado.

Nível do Sistema Operacional

Page 48: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Sincronização de processos usando semáforosNível do Sistema Operacional

Proposto por Dijkstra em 1968 para o problema de sincronização de processos paralelos.Semáforos são variáveis inteiras não negativas.Sincronização por semáforos é uma técnica que funciona para qualquer número arbitrário de processos.Uma vez iniciada uma operação de semáforo, nenhum outro processopode usar o semáforo até a conclusão da operação outenha sido suspenso na tentativa, ou seja as oerações de semáforos são indivisíveis.

Page 49: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Sincronização de processos usando semáforosNível do Sistema Operacional

Analogia para entender a natureza dos semáforos:Imagine um piquenique com 20 times de voleibol divididos em 10 jogos (processos)[1]

Page 50: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Sincronização de processos usando semáforosNível do Sistema Operacional

Page 51: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Exemplo de Sistemas Operacionais: UNIXNível do Sistema Operacional

Page 52: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Chamadas de Sistema do UNIXNível do Sistema Operacional

Page 53: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

ProcedimentosNível do Conjunto de Instruções

Page 54: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Memória Virtual do UnixNível do Conjunto de Instruções

Page 55: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

E/S Virtual em UNIXNível do Conjunto de Instruções

Page 56: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Árvore de Processos em UnixNível do Conjunto de Instruções

Page 57: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

Áreas da MemóriaNível de Microarquitetura

Page 58: PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.

[1] TANEMBAUM, Andrew S. Organização Estruturada de Computadores. Quinta Edição. Editora Pearson Prentice Hall, São Paulo, 2007.[2] HENNESSY, John L.; Patterson, David A.; Organização e Projeto de Computadores – 2ª Edição 2000; ED LTC.[3] TANEMBAUM, Andrew S. Sistemas Operacionais Modernos. Segunda Edição. Editora Pearson Prentice Hall, São Paulo, 2003.

REFERÊNCIAS BIBLIOGRÁFICAS

Nível da Lógica Digital