ControlVulnerabilidadesIntrusosOSSIM;Juan Rodriguez;Priscila Morocho;Stalin Riofrio;Henry Vivanco
PROJETO LÓGICO DE COMPUTADORES Nível do Sistema Operacional Prof.: Agostinho S. Riofrio.
-
Upload
gloria-mangueira-vilanova -
Category
Documents
-
view
220 -
download
1
Transcript of 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
Nível do Sistema Operacional
1. Introdução2. Memória Virtual3. Paginação4. Segmentação5. Instruçoes virtuais de E/S6. Processamento Paralelo
Agenda
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
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
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
Nível de Máquina do Sistema OperacionalNível do Sistema Operacional
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.
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.
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.
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.
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
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.
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
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
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
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
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
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
Política de Substituição de Página
Falha do algoritmo LRU
Nível do Sistema Operacional
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
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
Segmentação
Uma memória segmentada permite que cada tabela cresça e encolha independentemente das outras tabelas.
Nível do Sistema Operacional
Segmentação
Comparação entre paginação e segmentação.
Nível do Sistema Operacional
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
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
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
Memória Virtual do Pentium 4Nível do Sistema Operacional
Memória Virtual do Pentium 4Nível do Sistema Operacional
Memória Virtual do Pentium 4Nível do Sistema Operacional
Memória Virtual do Pentium 4Nível do Sistema Operacional
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
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
ArquivosNível do Sistema Operacional
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
Chamadas de SitemaNível do Sistema Operacional
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
Implementação de instruções de E/S virtuaisNível do Sistema Operacional
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.
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.
Gerenciamento de DiretórioNível do Sistema Operacional
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
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
Instruções virtuais para processamento paraleloNível do Sistema Operacional
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
Condições de Disputa
Buffer Circular
Nível do Sistema Operacional
Condições de Disputa
Falha no esquema produtor/consumidor
Nível do Sistema Operacional
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
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.
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]
Sincronização de processos usando semáforosNível do Sistema Operacional
Exemplo de Sistemas Operacionais: UNIXNível do Sistema Operacional
Chamadas de Sistema do UNIXNível do Sistema Operacional
ProcedimentosNível do Conjunto de Instruções
Memória Virtual do UnixNível do Conjunto de Instruções
E/S Virtual em UNIXNível do Conjunto de Instruções
Árvore de Processos em UnixNível do Conjunto de Instruções
Áreas da MemóriaNível de Microarquitetura
[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