Sistemas Operacionais Sistemas Operacionais
3º- Aula
Organização do computador
Inicialização <ul><li>Bootstrap  ou Programa de Inicialização </li></ul><ul><li>Armazenado em firmware (ROM, EEPROM) </li>...
Ocorrência de Eventos <ul><li>Interrupção de Hardware </li></ul><ul><ul><li>Sinal enviado à UCP por meio do barramento </l...
Tratamento de Interrupções <ul><li>Ao receber uma interrupção a UCP </li></ul><ul><ul><li>Interrompe a tarefa atual </li><...
Componentes do Sistema <ul><li>Interação do usuário com o Sistema Operacional </li></ul><ul><ul><li>Em geral por meio de u...
Gerência de Processos <ul><li>Um processo é um programa em execução </li></ul><ul><ul><li>Um processo precisa de certos re...
Processos - Mecanismos de Interrupção <ul><li>Estabelece um sistema de sinalização de ocorrência de eventos </li></ul><ul>...
Processos - Definições <ul><li>Processos são uma abstração para programa em execução </li></ul><ul><ul><li>Também chamado ...
Processos - Definições <ul><li>Instâncias de programas </li></ul><ul><ul><li>Vários processos podem ser instâncias diferen...
Estados de um Processos <ul><li>Só um processo pode ser executado a cada instante </li></ul><ul><ul><li>Manter uma fila de...
Estados de um Processos
Transições de estado <ul><li>Criação </li></ul><ul><ul><li>Um novo processo é criado• Recursos são atribuído </li></ul></u...
Processos em Execução – CPU x E/S bound
Transições de estado <ul><li>Execução -> Apto </li></ul><ul><ul><li>Tempo máximo de execução sem interrupção foi atingida;...
Suspensão de Processos <ul><li>Processador é muito mais rápido que os dispositivos de E/S </li></ul><ul><ul><li>todos os p...
Suspensão de Processos
Processos Unix
Processos Windows
Gerência de Memória <ul><li>Memória é um grande vetor de palavras ou bytes </li></ul><ul><ul><li>É um repositório de dados...
Memória
Tipos de memória <ul><li>Memória  principal : também chamadas de memória real, são memórias que o  processador  pode ender...
Técnicas de Alocação de Memória: <ul><ul><li>Alocação Contígua Simples; </li></ul></ul><ul><ul><li>Alocação Particionada E...
Alocação Contígua Simples <ul><li>Alocação implementada nos primeiros sistemas e ainda usada nos monoprogramáveis; </li></...
Alocação Contígua Simples Memória principal  Sistema  Operacional Área de Programas  do usuário
Alocação Contígua Simples <ul><li>Registrador de proteção delimita as áreas do  sistema operacional  e do  usuário ; </li>...
Alocação Contígua Simples Memória principal  Sistema  Operacional Área de Programas  do usuário Reg
Alocação Contígua Simples <ul><li>Programas de usuário  limitados  pelo tamanho da memória principal disponível.  </li></u...
Alocação Contígua Simples Memória principal  Sistema  Operacional Área do  Módulo  Principal A B C
Alocação Particionada <ul><li>Multiprogramação . </li></ul><ul><ul><li>Necessidade do uso da memória por vários usuários s...
Alocação Particionada Estática <ul><li>Alocação Particionada Estática  Absoluta : </li></ul><ul><ul><li>Compiladores geran...
Algoritmos para localização em memória (Curiosidade) <ul><li>O  algoritmo de busca  &quot; best-first &quot; usa a função ...
Algoritmos para localização em memória (Curiosidade) <ul><li>Worst-fit  é um  algoritmo  utilizado na  partição  de  disco...
Algoritmos para localização em memória (Curiosidade) <ul><li>Next-fit  é um  algoritmo  utilizado para  partição  de  disc...
Algoritmos para localização em memória (curiosidade) <ul><li>First Fit  é um  algoritmo  utilizado por sistemas operaciona...
Gerência de Memória <ul><li>Mapeamento da Memória com listas ligadas: </li></ul><ul><ul><li>Best-Fit  (melhor alocação): <...
Gerência de Memória <ul><li>Considerações sobre Mapeamento da Memória com listas ligadas : </li></ul><ul><ul><li>Todos mel...
Lista Ligadas
Swapping <ul><li>Os processos ficavam na memória principal, mesmo se bloqueados pela espera de algum evento. </li></ul><ul...
Swapping <ul><li>Problema gerado pelo Swapping: </li></ul><ul><ul><li>Relocação  de processos:  </li></ul></ul><ul><ul><ul...
Swapping   <ul><li>Vantagens da técnica de  Swapping : </li></ul><ul><ul><li>Permite maior  compartilhamento  da memória; ...
 
Gerência de Arquivos <ul><li>Um arquivo é uma coleção de informações relacionadas </li></ul><ul><ul><li>Normalmente, os ar...
 
Gerência de Armazenamento Secundário <ul><li>Armazenamento Secundário </li></ul><ul><ul><li>Memória principal é volátil e ...
Estrutura de E/S <ul><li>UCP e controladores de dispositivos ligados por barramento comum </li></ul><ul><ul><li>Quantidade...
Estrutura de E/S (cont) <ul><li>Controladores movem dados entre periféricos e buffer local </li></ul><ul><li>Sistemas Oper...
Operação de E/S <ul><li>Drivers de dispositivo carrega registradores para o controlador de dispositivo </li></ul><ul><li>C...
Placa mãe
Buffer <ul><li>Um buffer é uma pequena área de memória ultra-rápida usada para melhorar a velocidade de acesso a um determ...
Cache <ul><li>Na área da computação,  cache  é um dispositivo de acesso rápido, interno a um sistema, que serve de interme...
spooling <ul><li>Spooling  ou simplesmente  Spool  (do acrônimo  Simultaneous Peripheral Operation Online ) refere-se a um...
Gerência de I/O (entrada e saída) <ul><li>O sistema de E/S consiste em: </li></ul><ul><ul><li>Inclui  buffering , sistema ...
Gerência de I/O Processador Armazenamento Controlador De Disco Área de transferência
Proteção <ul><li>Mecanismo para controlar o acesso aos recursos do sistema </li></ul><ul><ul><li>Programas </li></ul></ul>...
Modo Dual (turma de sexta) <ul><li>Distinguir execução de código do Sistema Operacional e código do usuário </li></ul><ul>...
Transição de modos
Modo Dual (cont) <ul><li>No boot, hardware opera em Modo Monitor </li></ul><ul><li>Modo dual protege o sistema operacional...
Temporizador <ul><li>Garantir que o Sistema Operacional tenha controle sobre a UCP </li></ul><ul><li>Garantir retomada de ...
Estrutura dos Sistemas Operacionais <ul><li>Aplicação não seqüencial </li></ul><ul><ul><li>Rotinas </li></ul></ul><ul><ul>...
Interpretador de Comandos <ul><li>O usuário interage com o SO  </li></ul><ul><li>Programa de leitura e interpretação de in...
 
Redes (Sistemas Distribuídos) <ul><li>Um sistema distribuído é um conjunto de processadores </li></ul><ul><ul><li>Fornece ...
 
Serviços do Sistema Operacional <ul><li>Execução de Programa </li></ul><ul><ul><li>Capacidade para carregar um programa na...
Funções Adicionais <ul><li>Não usadas para auxiliar o usuário </li></ul><ul><li>Garantir operações eficientes do sistema <...
CATEGORIAS DE SISTEMAS OPERACIONAIS   <ul><li>O sistema operacional deve ser capaz de fazer mais de uma coisa ao mesmo tem...
CATEGORIAS DE SISTEMAS OPERACIONAIS <ul><li>A capacidade que um sistema operacional tem de controlar mais de uma única tar...
 
 
 
<ul><li>Boa noite  </li></ul>
Upcoming SlideShare
Loading in...5
×

12/03/2010 - Sistemas Operacionais Aula3

5,895

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,895
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
199
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

12/03/2010 - Sistemas Operacionais Aula3

  1. 1. Sistemas Operacionais Sistemas Operacionais
  2. 2. 3º- Aula
  3. 3. Organização do computador
  4. 4. Inicialização <ul><li>Bootstrap ou Programa de Inicialização </li></ul><ul><li>Armazenado em firmware (ROM, EEPROM) </li></ul><ul><li>Inicializa e testa hardware </li></ul><ul><li>Carrega o núcleo do sistema operacional (kernel) </li></ul><ul><li>Primeiros processos são carregados </li></ul><ul><li>Espera-se a ocorrência de algum evento </li></ul>
  5. 5. Ocorrência de Eventos <ul><li>Interrupção de Hardware </li></ul><ul><ul><li>Sinal enviado à UCP por meio do barramento </li></ul></ul><ul><li>Interrupção de Software </li></ul><ul><ul><li>Chamada de Sistema (System Call) </li></ul></ul><ul><ul><li>Chamada ao Monitor (Monitor Call) </li></ul></ul>
  6. 6. Tratamento de Interrupções <ul><li>Ao receber uma interrupção a UCP </li></ul><ul><ul><li>Interrompe a tarefa atual </li></ul></ul><ul><ul><li>Transfere execução para endereço fixo na memória </li></ul></ul><ul><ul><ul><li>Este endereço contém o endereço inicial da rotina de atendimento da interrupção </li></ul></ul></ul><ul><ul><li>Retoma a tarefa interrompida </li></ul></ul><ul><li>Quantidade de interrupções limitada e pré-definida </li></ul><ul><li>Vetor de Interrupções </li></ul>
  7. 7. Componentes do Sistema <ul><li>Interação do usuário com o Sistema Operacional </li></ul><ul><ul><li>Em geral por meio de uma aplicação especial </li></ul></ul><ul><ul><li>chamada shell </li></ul></ul><ul><li>Núcleo (kernel) </li></ul><ul><ul><li>Software que contém componentes centrais do Sistema Operacional </li></ul></ul><ul><li>Dentre os componentes mais comuns do sistema operacional encontra se </li></ul><ul><ul><li>Gerência de Processos </li></ul></ul><ul><ul><li>Gerência da Memória </li></ul></ul><ul><ul><li>Gerência de Arquivos </li></ul></ul><ul><ul><li>Gerência Secundária </li></ul></ul><ul><ul><li>Gerenciador de E/S </li></ul></ul><ul><ul><li>Redes </li></ul></ul><ul><ul><li>Sistema de Proteção </li></ul></ul><ul><ul><li>Interpretador de Comandos </li></ul></ul><ul><ul><li>Gerenciador de comunicação interprocessos (IPC) </li></ul></ul>
  8. 8. Gerência de Processos <ul><li>Um processo é um programa em execução </li></ul><ul><ul><li>Um processo precisa de certos recursos </li></ul></ul><ul><ul><ul><li>tempo de CPU, memória, arquivos e dispositivos de E/S </li></ul></ul></ul><ul><li>O Gerenciamento de processos é responsável por </li></ul><ul><li>(em conjunto com o SO) </li></ul><ul><ul><li>Criar e excluir processos </li></ul></ul><ul><ul><li>Suspender e retomar processos </li></ul></ul><ul><ul><li>Oferecer mecanismos para: </li></ul></ul><ul><ul><ul><li>sincronismo de processos </li></ul></ul></ul><ul><ul><ul><li>comunicação entre processos </li></ul></ul></ul><ul><li>Programa é uma entidade passiva </li></ul><ul><li>Processo é uma entidade ativa </li></ul>
  9. 9. Processos - Mecanismos de Interrupção <ul><li>Estabelece um sistema de sinalização de ocorrência de eventos </li></ul><ul><li>Proteção entre processos </li></ul><ul><ul><li>• Impede situações de erros catastróficos </li></ul></ul>
  10. 10. Processos - Definições <ul><li>Processos são uma abstração para programa em execução </li></ul><ul><ul><li>Também chamado de tarefa, “task” ou “job” </li></ul></ul><ul><li>Programa </li></ul><ul><ul><li>Entidade estática e permanente </li></ul></ul><ul><ul><li>Invariável do ponto de vista do SO </li></ul></ul><ul><li>Processo </li></ul><ul><ul><li>Entidade ativa e dinâmica </li></ul></ul><ul><ul><ul><li>Possui estados que se alternam no tempo </li></ul></ul></ul><ul><ul><ul><li>Constituído de código, dados, contexto e recursos do sistema </li></ul></ul></ul>
  11. 11. Processos - Definições <ul><li>Instâncias de programas </li></ul><ul><ul><li>Vários processos podem ser instâncias diferentes de um mesmo processo </li></ul></ul><ul><ul><li>Mesmo código, porem dados e contexto de execução diferentes </li></ul></ul><ul><ul><li>Processos são a forma com o SO vê programas </li></ul></ul><ul><li>Processos executam </li></ul><ul><ul><li>Programas do usuário </li></ul></ul><ul><ul><li>Programas de apoio ao SO </li></ul></ul>
  12. 12. Estados de um Processos <ul><li>Só um processo pode ser executado a cada instante </li></ul><ul><ul><li>Manter uma fila de processos em espera de execução </li></ul></ul><ul><ul><li>Selecionar periodicamente um novo processos da fila para execução </li></ul></ul><ul><li>Prevenir que um processo monopolize o processador </li></ul>
  13. 13. Estados de um Processos
  14. 14. Transições de estado <ul><li>Criação </li></ul><ul><ul><li>Um novo processo é criado• Recursos são atribuído </li></ul></ul><ul><ul><li>Execução é necessariamente imediata </li></ul></ul><ul><ul><li>Apto -> Execução </li></ul></ul><ul><ul><li>Processo é escolhido para execução </li></ul></ul><ul><ul><li>Depende da política de escalonamento </li></ul></ul><ul><ul><li>Execução -> Término </li></ul></ul><ul><ul><li>Evento de termino </li></ul></ul>
  15. 15. Processos em Execução – CPU x E/S bound
  16. 16. Transições de estado <ul><li>Execução -> Apto </li></ul><ul><ul><li>Tempo máximo de execução sem interrupção foi atingida; </li></ul></ul><ul><ul><li>Processo é “preemptado” pelo SO </li></ul></ul><ul><li>Execução -> Bloqueado </li></ul><ul><ul><li>Processo requisitou recurso/evento pelo qual deve esperar. </li></ul></ul><ul><li>Bloqueado -> Apto </li></ul><ul><ul><li>– Recurso disponível ou ocorrência do evento </li></ul></ul><ul><li>• Apto -> Término e Bloqueado -> Término </li></ul><ul><ul><li>Processo pai termina um processo filho </li></ul></ul><ul><ul><li>Processo pai é terminado, e os processos filhos associados são também finalizados. </li></ul></ul>
  17. 17. Suspensão de Processos <ul><li>Processador é muito mais rápido que os dispositivos de E/S </li></ul><ul><ul><li>todos os processos em memória poderiam ficar em situação de espera . </li></ul></ul><ul><ul><li>Ociosidade do processador </li></ul></ul><ul><ul><li>Aumento de memória para acomodar mais processos </li></ul></ul><ul><li>• SOLUÇÃO </li></ul><ul><ul><li>Liberar memória ocupado por processos bloqueados </li></ul></ul><ul><ul><li>• Transferência dos processos para o disco (swapping) </li></ul></ul><ul><ul><li>• Necessidade de novos estados </li></ul></ul><ul><ul><li>Estado suspenso (processo no disco) </li></ul></ul>
  18. 18. Suspensão de Processos
  19. 19. Processos Unix
  20. 20. Processos Windows
  21. 21. Gerência de Memória <ul><li>Memória é um grande vetor de palavras ou bytes </li></ul><ul><ul><li>É um repositório de dados rapidamente acessíveis </li></ul></ul><ul><ul><li>Cada elemento tem um com seu próprio endereço </li></ul></ul><ul><li>Memória principal </li></ul><ul><ul><li>Dispositivo de armazenamento volátil </li></ul></ul><ul><ul><li>Perde seu conteúdo em caso de falha de sistema </li></ul></ul><ul><li>O Gerenciamento de memória é responsável por </li></ul><ul><li>(em conjunto com o SO) </li></ul><ul><ul><li>Alocar e desalocar espaço de memória conforme a necessidade </li></ul></ul><ul><ul><li>Controlar as partes da memória são usadas e por quem </li></ul></ul><ul><ul><li>Decidir quais processos devem ser carregados </li></ul></ul><ul><ul><li>Tratar do Swapping entre memória principal e memória secundária. </li></ul></ul><ul><ul><ul><li>Transferência temporária de processos residentes na memória principal para memória secundária. </li></ul></ul></ul>
  22. 22. Memória
  23. 23. Tipos de memória <ul><li>Memória principal : também chamadas de memória real, são memórias que o processador pode endereçar diretamente, sem as quais o computador não pode funcionar. Estas fornecem geralmente uma ponte para as secundárias, mas a sua função principal é a de conter a informação necessária para o processador num determinado momento; esta informação pode ser, por exemplo, os programas em execução. Nesta categoria insere-se a memória RAM ( volátil ), memória ROM ( não volátil ), registradores e memórias cache . </li></ul><ul><li>Memória secundária : memórias que não podem ser endereçadas diretamente, a informação precisa ser carregada em memória principal antes de poder ser tratada pelo processador. Não são estritamente necessárias para a operação do computador. São geralmente não-voláteis , permitindo guardar os dados permanentemente. Incluem-se, nesta categoria, os discos rígidos , CDs , DVDs e disquetes . </li></ul><ul><li>Às vezes faz-se uma diferença entre memória secundária e memória terciária . A memória secundária não necessita de operações de montagem (inserção de uma mídia ou média em um dispositivo de leitura/gravação) para acessar os dados, como discos rígidos ; a memória terciária depende das operações de montagem, como discos ópticos e fitas magnéticas , entre outros. </li></ul>
  24. 24. Técnicas de Alocação de Memória: <ul><ul><li>Alocação Contígua Simples; </li></ul></ul><ul><ul><li>Alocação Particionada Estática; </li></ul></ul><ul><ul><ul><li>Alocação Particionada Estática Absoluta; </li></ul></ul></ul><ul><ul><ul><li>Alocação Particionada Estática Relocável; </li></ul></ul></ul><ul><ul><li>Alocação Particionada Dinâmica. </li></ul></ul>
  25. 25. Alocação Contígua Simples <ul><li>Alocação implementada nos primeiros sistemas e ainda usada nos monoprogramáveis; </li></ul><ul><li>A Memória é dividida em duas áreas: </li></ul><ul><ul><li>Área do Sistema Operacional </li></ul></ul><ul><ul><li>Área do Usuário </li></ul></ul><ul><li>Um usuário não pode usar uma área maior do que a disponível; </li></ul><ul><li>Sem proteção: </li></ul><ul><ul><li>Um usuário pode acessar a área do Sistema Operacional. </li></ul></ul>
  26. 26. Alocação Contígua Simples Memória principal Sistema Operacional Área de Programas do usuário
  27. 27. Alocação Contígua Simples <ul><li>Registrador de proteção delimita as áreas do sistema operacional e do usuário ; </li></ul><ul><li>Sistema verifica acessos à memória em relação ao endereço do registrador ; </li></ul><ul><li>A forma de alocação era simples, mas não permitia utilização eficiente de processador e memória; </li></ul>
  28. 28. Alocação Contígua Simples Memória principal Sistema Operacional Área de Programas do usuário Reg
  29. 29. Alocação Contígua Simples <ul><li>Programas de usuário limitados pelo tamanho da memória principal disponível. </li></ul><ul><li>Solução: Overlay </li></ul><ul><ul><li>Dividir o programa em módulos; </li></ul></ul><ul><ul><li>Permitir execução independente de cada módulo, usando a mesma área de memória; </li></ul></ul><ul><li>Área de Overlay </li></ul><ul><ul><li>Área de memória comum onde módulos compartilham mesmo espaço. </li></ul></ul>
  30. 30. Alocação Contígua Simples Memória principal Sistema Operacional Área do Módulo Principal A B C
  31. 31. Alocação Particionada <ul><li>Multiprogramação . </li></ul><ul><ul><li>Necessidade do uso da memória por vários usuários simultaneamente. </li></ul></ul><ul><li>Ocupação mais eficiente do processador; </li></ul><ul><li>A memória foi dividida em pedaços de tamanho fixo chamados partições ; </li></ul><ul><li>O tamanho de cada partição era estabelecido na inicialização do sistema; </li></ul><ul><li>Para alteração do particionamento, era necessário uma nova inicialização com uma nova configuração </li></ul>
  32. 32. Alocação Particionada Estática <ul><li>Alocação Particionada Estática Absoluta : </li></ul><ul><ul><li>Compiladores gerando código absoluto ; </li></ul></ul><ul><ul><ul><li>Endereços relativos ao início da memória; </li></ul></ul></ul><ul><ul><li>Programas exclusivos para partições específicas . </li></ul></ul><ul><li>Alocação Particionada Estática Relocável : </li></ul><ul><ul><li>Compiladores gerando código relocável ; </li></ul></ul><ul><ul><ul><li>Endereços relativos ao início da partição; </li></ul></ul></ul><ul><ul><li>Programas podem rodar em qualquer partição . </li></ul></ul>
  33. 33. Algoritmos para localização em memória (Curiosidade) <ul><li>O algoritmo de busca &quot; best-first &quot; usa a função heurística F(n)=h(n) de procura ao nó de destino. Esta procura tenta expandir o nó que é mais próximo ao objetivo, acreditando numa condução rápida ao objetivo. </li></ul><ul><li>A heuristica é aplicada globalmente, isto é, o caminho a ser seguido é selecionado entre todos os nodos abertos até o momento, O nodo aberto com a melhor nota é escolhido para a expansão </li></ul>
  34. 34. Algoritmos para localização em memória (Curiosidade) <ul><li>Worst-fit é um algoritmo utilizado na partição de disco rígido . </li></ul><ul><ul><li>Função </li></ul></ul><ul><ul><li>O algoritmo worst-fit aloca o programa na pior partição, ou seja, aquela que deixa o maior espaço livre. </li></ul></ul><ul><ul><li>Está técnica, apesar de aproveitar primeiro as partições maiores, acaba deixando espaços livres grandes o suficiente para que outros programas utilizem da memória, diminuindo ou retardando a fragmentação. </li></ul></ul>
  35. 35. Algoritmos para localização em memória (Curiosidade) <ul><li>Next-fit é um algoritmo utilizado para partição de disco rígido . </li></ul><ul><li>Processo </li></ul><ul><li>Algoritmo para partição dinâmica que inicia a busca a partir da posição da última alocação até encontrar o primeiro bloco, mais freqüentemente são alocados blocos de tamanho grande. </li></ul><ul><li>Grandes blocos são particionados em blocos menores e existe a necessidade de compactação quando não houver mais memória disponível. </li></ul>
  36. 36. Algoritmos para localização em memória (curiosidade) <ul><li>First Fit é um algoritmo utilizado por sistemas operacionais para decidir em que local da memória um processo deve ser alocado. </li></ul><ul><li>Ele funciona escolhendo sempre o primeiro espaço vazio na memória que caiba o processo. Tem um tempo médio de espera entre processos relativamente baixo, principalmente se levado em conta sua facilidade de implementação. É mais eficaz que o Best Fit e menos que o Worst Fit . </li></ul><ul><li>O algoritmo Next Fit é um melhoramento do First Fit. </li></ul><ul><li>Exemplo: </li></ul><ul><li>Existem os seguintes espaços livres: 11k, 3k, 19k, 18k, 7k, 8k, 13k, 15k. Se o First-Fit for utilizado, as solicitações 5k, 12k, 6k, ocupariam os espaços 11k, 19k, 18k respectivamente. </li></ul>
  37. 37. Gerência de Memória <ul><li>Mapeamento da Memória com listas ligadas: </li></ul><ul><ul><li>Best-Fit (melhor alocação): </li></ul></ul><ul><ul><ul><li>Espaço mais próximo do tamanho do processo; </li></ul></ul></ul><ul><ul><ul><li>Tempo de busca grande; </li></ul></ul></ul><ul><ul><ul><li>Provoca fragmentação. </li></ul></ul></ul><ul><ul><li>Worst-Fit (pior alocação): </li></ul></ul><ul><ul><ul><li>Cria o maior espaço possível; </li></ul></ul></ul><ul><ul><ul><li>Tempo de busca grande; </li></ul></ul></ul><ul><ul><ul><li>Não apresenta bons resultados. </li></ul></ul></ul><ul><ul><li>First-Fit (primeira alocação): </li></ul></ul><ul><ul><ul><li>Melhor performance. </li></ul></ul></ul><ul><ul><li>Next-Fit (proxima alocação): </li></ul></ul><ul><ul><ul><li>Performance inferior ao First-Fit. </li></ul></ul></ul>
  38. 38. Gerência de Memória <ul><li>Considerações sobre Mapeamento da Memória com listas ligadas : </li></ul><ul><ul><li>Todos melhoram em performance se existirem listas distintas para processos e espaços, embora o algoritmo fique mais complexo. </li></ul></ul><ul><ul><li>Listas ordenadas por tamanho de espaço melhoram a performance. </li></ul></ul>
  39. 39. Lista Ligadas
  40. 40. Swapping <ul><li>Os processos ficavam na memória principal, mesmo se bloqueados pela espera de algum evento. </li></ul><ul><li>Solução: Swapping . </li></ul><ul><ul><li>Técnica para resolver problema de processos que aguardam por espaço livre adequado; </li></ul></ul><ul><ul><li>Processos não ficam mais na memória o tempo todo. </li></ul></ul>
  41. 41. Swapping <ul><li>Problema gerado pelo Swapping: </li></ul><ul><ul><li>Relocação de processos: </li></ul></ul><ul><ul><ul><li>O tempo gasto com relocação é alto; </li></ul></ul></ul><ul><ul><ul><li>Um mesmo processo sendo Swapped-Out repetidas vezes gera um alto consumo de CPU. </li></ul></ul></ul>
  42. 42. Swapping <ul><li>Vantagens da técnica de Swapping : </li></ul><ul><ul><li>Permite maior compartilhamento da memória; </li></ul></ul><ul><ul><li>Aumento no Throughput (quantidade de processos executados por unidade de tempo); </li></ul></ul><ul><li>Eficiente para sistemas com poucos usuários e pequenas aplicações; </li></ul><ul><li>Problema: </li></ul><ul><ul><li>custo do Swapping (in/out). </li></ul></ul>
  43. 44. Gerência de Arquivos <ul><li>Um arquivo é uma coleção de informações relacionadas </li></ul><ul><ul><li>Normalmente, os arquivos representam programas e dados </li></ul></ul><ul><ul><ul><li>Programas nos formatos de fonte e objeto </li></ul></ul></ul><ul><li>O Gerenciamento de Arquivos é responsável por </li></ul><ul><li>(em conjunto com o SO) </li></ul><ul><ul><li>Criação e exclusão de arquivos </li></ul></ul><ul><ul><li>Criação e exclusão de diretórios </li></ul></ul><ul><ul><li>Suporte a primitivas para manipulação de arquivos e diretórios </li></ul></ul><ul><ul><li>Mapeamento de arquivos em armazenamento secundário </li></ul></ul><ul><ul><li>Backup de arquivos em meios de armazenamento não voláteis </li></ul></ul>
  44. 46. Gerência de Armazenamento Secundário <ul><li>Armazenamento Secundário </li></ul><ul><ul><li>Memória principal é volátil e muito pequena </li></ul></ul><ul><ul><li>Usado para apoiar a memória principal </li></ul></ul><ul><ul><li>Discos são o principal meio de armazenamento para programas e dados </li></ul></ul><ul><li>O Gerenciamento de Disco é responsável por </li></ul><ul><li>(em conjunto com o SO) </li></ul><ul><ul><li>Gerenciamento do espaço livre </li></ul></ul><ul><ul><li>Alocação do armazenamento </li></ul></ul><ul><ul><li>Escalonamento do disco </li></ul></ul>
  45. 47. Estrutura de E/S <ul><li>UCP e controladores de dispositivos ligados por barramento comum </li></ul><ul><ul><li>Quantidade de dispositivos por controlador IDE </li></ul></ul><ul><ul><li>SCSI </li></ul></ul><ul><li>Controladores de dispositivos </li></ul><ul><ul><li>Buffer local </li></ul></ul><ul><ul><li>Registradores específicos </li></ul></ul>
  46. 48. Estrutura de E/S (cont) <ul><li>Controladores movem dados entre periféricos e buffer local </li></ul><ul><li>Sistemas Operacionais têm um driver de dispositivo para cada controlador de dispositivo </li></ul>
  47. 49. Operação de E/S <ul><li>Drivers de dispositivo carrega registradores para o controlador de dispositivo </li></ul><ul><li>Controlador usa registradores para determinar ação </li></ul><ul><li>Controlador transfere dados do dispositivo para buffer local </li></ul><ul><li>Ao concluir, controlador avisa ao driver via interrupção </li></ul><ul><li>Driver avisa sistema operacional </li></ul><ul><li>DMA ( acesso direto a memória – Directy merory access ) </li></ul>
  48. 50. Placa mãe
  49. 51. Buffer <ul><li>Um buffer é uma pequena área de memória ultra-rápida usada para melhorar a velocidade de acesso a um determinado dispositivo. É encontrado em HDs, gravadores de CD, modems, e muitos outros. Apesar de serem sinônimos, o termo &quot;buffer&quot; é mais usado em relação aos dispositivos anteriormente citados enquanto o termo &quot;cache&quot; é mais usado com relação aos processadores e memória RAM. </li></ul><ul><li>Embora não seja tão importante para o desempenho quanto geralmente se pensa, o buffer permite à controladora do HD executar um conjunto de operações úteis para melhorar o desempenho. </li></ul><ul><li>Geralmente ao ler um arquivo, serão lidos vários setores seqüenciais. </li></ul><ul><li>A forma mais rápida de fazer isso é, naturalmente, fazer com que a cabeça de leitura leia de uma vez todos os setores da trilha, passe para a trilha seguinte, passe para a terceira e assim por diante. Isso permite obter o melhor desempenho possível. </li></ul>
  50. 52. Cache <ul><li>Na área da computação, cache é um dispositivo de acesso rápido, interno a um sistema, que serve de intermediário entre um operador de um processo e o dispositivo de armazenamento ao qual esse operador acede. A vantagem principal na utilização de uma cache consiste em evitar o acesso ao dispositivo de armazenamento - que pode ser demorado -, armazenando os dados em meios de acesso mais rápidos </li></ul>
  51. 53. spooling <ul><li>Spooling ou simplesmente Spool (do acrônimo Simultaneous Peripheral Operation Online ) refere-se a um processo de tranferência de dados colocando-os em uma área de trabalho temporária onde outro programa pode acessa-lo para processa-lo em um tempo futuro. A técnica de Spooling consistem em colocar jobs em um buffer , uma área da memória ou de um disco onde um dispositivo pode acessa-la quando estiver preparada. O Spooling é útil porque os dispositivos acessam dados em diferentes velocidades, o buffer provê uma estação de espera onde o dado pode ficar armazenado enquanto o dispositivo mais lento fica carregando. O mais comum exemplo de spooling é o da impressora. </li></ul><ul><li>Como a impressora é um periférico muito mais lento que o microcomputador , este teria de ficar esperando a impressão terminar para, então, executar uma nova tarefa. Para resolver esse problema, a maioria das impressoras tem um buffer , ou seja, uma memória interna utilizada para armazenar temporariamente os dados que estão vindo do microcomputador . Com isso, os dados são transferidos do microcomputador para o buffer , liberando o micro mais rapidamente. Quanto maior o buffer da impressora , mais cedo esta liberará o micro. </li></ul>
  52. 54. Gerência de I/O (entrada e saída) <ul><li>O sistema de E/S consiste em: </li></ul><ul><ul><li>Inclui buffering , sistema de caching e spooling </li></ul></ul><ul><ul><li>Uma interface genérica controladora de dispositivos </li></ul></ul><ul><ul><li>Drivers para dispositivos de hardware específicos </li></ul></ul><ul><li>Buffering </li></ul><ul><ul><li>Armazenamento principal </li></ul></ul><ul><li>Spooling </li></ul><ul><ul><li>Armazenamento secundário </li></ul></ul>
  53. 55. Gerência de I/O Processador Armazenamento Controlador De Disco Área de transferência
  54. 56. Proteção <ul><li>Mecanismo para controlar o acesso aos recursos do sistema </li></ul><ul><ul><li>Programas </li></ul></ul><ul><ul><li>Processos </li></ul></ul><ul><ul><li>Usuários </li></ul></ul><ul><li>O mecanismo de proteção precisa </li></ul><ul><ul><li>Distinguir entre uso autorizado e não autorizado </li></ul></ul><ul><ul><li>Especificar controles a serem impostos </li></ul></ul><ul><ul><li>Fornecer um meio para a imposição </li></ul></ul>
  55. 57. Modo Dual (turma de sexta) <ul><li>Distinguir execução de código do Sistema Operacional e código do usuário </li></ul><ul><li>Modo Usuário e Modo do Sistema (Monitor, Supervisor, Privilegiado ou Kernel) </li></ul>
  56. 58. Transição de modos
  57. 59. Modo Dual (cont) <ul><li>No boot, hardware opera em Modo Monitor </li></ul><ul><li>Modo dual protege o sistema operacional contra usuários mal intencionados e um usuário do outro. </li></ul><ul><li>Instruções que podem causar danos são instruçõe </li></ul><ul><li>Privilegiadas, executadas apenas em Modo Monitor </li></ul><ul><li>Intel 8088 não possuia suporte para o modo dual. MSDOS escrito para ele não o implementava, portanto </li></ul>
  58. 60. Temporizador <ul><li>Garantir que o Sistema Operacional tenha controle sobre a UCP </li></ul><ul><li>Garantir retomada de controle pelo Sistema Operacional </li></ul><ul><li>Temporizadores enviam interrupções após períodos de tempo especificados </li></ul><ul><ul><li>Fixos ou variáveis </li></ul></ul>
  59. 61. Estrutura dos Sistemas Operacionais <ul><li>Aplicação não seqüencial </li></ul><ul><ul><li>Rotinas </li></ul></ul><ul><ul><li>Eventos Assíncronos </li></ul></ul><ul><ul><ul><li>Associados ao hardware </li></ul></ul></ul><ul><ul><ul><li>Tarefas internas do SO </li></ul></ul></ul><ul><li>Kernel </li></ul><ul><ul><li>Software que contém o “núcleo” do sistema </li></ul></ul><ul><li>Formado por Rotinas (procedimentos) </li></ul><ul><ul><li>Oferecem serviços </li></ul></ul><ul><ul><ul><li>Aos usuários </li></ul></ul></ul><ul><ul><ul><li>Aplicações </li></ul></ul></ul><ul><ul><ul><li>Rotinas do próprio sistema </li></ul></ul></ul>
  60. 62. Interpretador de Comandos <ul><li>O usuário interage com o SO </li></ul><ul><li>Programa de leitura e interpretação de instruções de controle </li></ul><ul><ul><li>Interpretador de linha de comando ou Shell </li></ul></ul><ul><ul><li>Função de apanhar e executar a próxima instrução de comando </li></ul></ul><ul><li>Instruções de Controle dão comandos ao SO </li></ul><ul><ul><li>Tratamento de E/S </li></ul></ul><ul><ul><li>Gerenciamento </li></ul></ul><ul><ul><ul><li>E/S, armazenamento secundário, arquivos e processos </li></ul></ul></ul><ul><ul><li>Proteção </li></ul></ul><ul><ul><li>Uso da rede </li></ul></ul><ul><li>Shell </li></ul><ul><ul><li>Interface Texto - Prompt de Comando </li></ul></ul><ul><ul><li>Interface Gráfica - Windows </li></ul></ul>
  61. 64. Redes (Sistemas Distribuídos) <ul><li>Um sistema distribuído é um conjunto de processadores </li></ul><ul><ul><li>Fornece ao usuário acesso a vários recursos do sistema </li></ul></ul><ul><ul><li>Cada processador possui sua própria memória local </li></ul></ul><ul><ul><ul><li>Não compartilham memória ou um relógio </li></ul></ul></ul><ul><li>Conexão por uma rede de comunicação </li></ul><ul><ul><li>A comunicação ocorre através do uso de um protocolo </li></ul></ul><ul><li>O acesso a um recurso compartilhado permite: </li></ul><ul><ul><li>Maior velocidade de computação </li></ul></ul><ul><ul><li>Maior disponibilidade de dados </li></ul></ul><ul><ul><li>Maior confiabilidade </li></ul></ul>
  62. 66. Serviços do Sistema Operacional <ul><li>Execução de Programa </li></ul><ul><ul><li>Capacidade para carregar um programa na memória e executá-lo </li></ul></ul><ul><li>Operações de E/S </li></ul><ul><ul><li>Os programas do não podem executar operações de E/S </li></ul></ul><ul><ul><li>SO deve prover os meios necessários </li></ul></ul><ul><li>Manipulação do sistema de arquivos </li></ul><ul><ul><li>capacidade do programa para ler, gravar, criar e excluir arquivos </li></ul></ul><ul><li>Comunicações </li></ul><ul><ul><li>Troca de informações entre processos </li></ul></ul><ul><ul><li>Através de memória compartilhada ou passagem de mensagens </li></ul></ul><ul><li>Detecção de erro </li></ul><ul><ul><li>Assegura computação correta </li></ul></ul><ul><ul><ul><li>Erros na CPU, hardware, memória, dispositivos de E/S e programas </li></ul></ul></ul>
  63. 67. Funções Adicionais <ul><li>Não usadas para auxiliar o usuário </li></ul><ul><li>Garantir operações eficientes do sistema </li></ul><ul><ul><li>Alocação de Recursos </li></ul></ul><ul><ul><ul><li>Alocação para diversos usuários ou múltiplas tarefas </li></ul></ul></ul><ul><ul><li>Contabilidade </li></ul></ul><ul><ul><ul><li>Controle e registro de usuários e recursos </li></ul></ul></ul><ul><ul><li>Proteção </li></ul></ul><ul><ul><ul><li>Controle de acesso aos recursos do sistema </li></ul></ul></ul>
  64. 68. CATEGORIAS DE SISTEMAS OPERACIONAIS <ul><li>O sistema operacional deve ser capaz de fazer mais de uma coisa ao mesmo tempo? </li></ul><ul><li>O sistema operacional deve funcionar com apenas um usuário, ou deve aceitar vários usuários simultaneamente? </li></ul><ul><li>O sistema operacional deve ser capaz de usar mais de uma CPU? </li></ul>
  65. 69. CATEGORIAS DE SISTEMAS OPERACIONAIS <ul><li>A capacidade que um sistema operacional tem de controlar mais de uma única tarefa ao mesmo tempo chama-se multitarefa. </li></ul><ul><li>O sistema operacional que permite que mais de um usuário use o computador em um determinado momento chama-se multiusuárío. </li></ul><ul><li>O sistema operacional que usa mais de uma CPU chama-se sístema multíprocessador. </li></ul>
  66. 73. <ul><li>Boa noite </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×