Sistemas Operacionais Sistemas Operacionais
3º- Aula
Organização do computador
Inicialização Bootstrap  ou Programa de Inicialização Armazenado em firmware (ROM, EEPROM) Inicializa e testa hardware Carrega o núcleo do sistema operacional (kernel) Primeiros processos são carregados Espera-se a ocorrência de algum evento
Ocorrência de Eventos Interrupção de Hardware Sinal enviado à UCP por meio do barramento Interrupção de Software Chamada de Sistema (System Call) Chamada ao Monitor (Monitor Call)
Tratamento de Interrupções Ao receber uma interrupção a UCP Interrompe a tarefa atual Transfere execução para endereço fixo na memória Este endereço contém o endereço inicial da rotina de atendimento da interrupção Retoma a tarefa interrompida Quantidade de interrupções limitada e pré-definida Vetor de Interrupções
Componentes do Sistema Interação do usuário com o Sistema Operacional Em geral por meio de uma aplicação especial chamada shell Núcleo (kernel) Software que contém componentes centrais do Sistema Operacional Dentre os componentes mais comuns do sistema operacional  encontra se  Gerência de Processos Gerência da Memória  Gerência de Arquivos  Gerência Secundária Gerenciador de E/S Redes Sistema de Proteção  Interpretador de Comandos Gerenciador de comunicação interprocessos (IPC)
Gerência de Processos Um processo é um programa em execução Um processo precisa de certos recursos tempo de CPU, memória, arquivos e dispositivos de E/S O Gerenciamento de processos é responsável por (em conjunto com o SO) Criar e excluir processos Suspender e retomar processos Oferecer mecanismos para: sincronismo de processos comunicação entre processos Programa é uma entidade passiva Processo é uma entidade ativa
Processos - Mecanismos de Interrupção Estabelece um sistema de sinalização de ocorrência de eventos Proteção entre processos • Impede situações de erros catastróficos
Processos - Definições Processos são uma abstração para programa em execução Também chamado de tarefa, “task” ou “job” Programa Entidade estática e permanente Invariável do ponto de vista do SO Processo Entidade ativa e dinâmica Possui estados que se alternam no tempo Constituído de código, dados, contexto e recursos do sistema
Processos - Definições Instâncias de programas Vários processos podem ser instâncias diferentes de um mesmo processo Mesmo código, porem dados e contexto de execução diferentes Processos são a forma com o SO vê programas Processos executam Programas do usuário Programas de apoio ao SO
Estados de um Processos Só um processo pode ser executado a cada instante Manter uma fila de processos em espera de execução Selecionar periodicamente um novo processos da fila para execução Prevenir que um processo monopolize o processador
Estados de um Processos
Transições de estado Criação Um novo processo é criado• Recursos são atribuído Execução é necessariamente imediata Apto -> Execução Processo é escolhido para execução Depende da política de escalonamento Execução -> Término Evento de termino
Processos em Execução – CPU x E/S bound
Transições de estado Execução -> Apto Tempo máximo de execução sem interrupção foi atingida; Processo é “preemptado” pelo SO Execução -> Bloqueado Processo requisitou recurso/evento pelo qual deve esperar. Bloqueado -> Apto –  Recurso disponível ou ocorrência do evento •  Apto -> Término e Bloqueado -> Término Processo pai termina um processo filho Processo pai é terminado, e os processos filhos associados são também finalizados.
Suspensão de Processos Processador é muito mais rápido que os dispositivos de E/S todos os processos em memória poderiam ficar em situação de espera . Ociosidade do processador Aumento de memória para acomodar mais processos •  SOLUÇÃO Liberar memória ocupado por processos bloqueados •  Transferência dos processos para o disco (swapping) •  Necessidade de novos estados Estado suspenso (processo no disco)
Suspensão de Processos
Processos Unix
Processos Windows
Gerência de Memória Memória é um grande vetor de palavras ou bytes É um repositório de dados rapidamente acessíveis Cada elemento tem um com seu próprio endereço Memória principal Dispositivo de armazenamento volátil Perde seu conteúdo em caso de falha de sistema O Gerenciamento de memória é responsável por (em conjunto com o SO) Alocar e desalocar espaço de memória conforme a necessidade Controlar as partes da memória são usadas e por quem Decidir quais processos devem ser carregados Tratar do  Swapping  entre memória principal e memória secundária. Transferência temporária de processos residentes na memória principal para memória secundária.
Memória
Tipos de memória 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 .  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 .  À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.
Técnicas de Alocação de Memória: Alocação Contígua Simples; Alocação Particionada Estática; Alocação Particionada Estática Absoluta; Alocação Particionada Estática Relocável; Alocação Particionada Dinâmica.
Alocação Contígua Simples Alocação implementada nos primeiros sistemas e ainda usada nos monoprogramáveis; A Memória é dividida em duas áreas:  Área do Sistema Operacional Área do Usuário Um usuário não pode usar uma área maior do que a disponível; Sem proteção: Um usuário pode acessar a área do Sistema Operacional.
Alocação Contígua Simples Memória principal  Sistema  Operacional Área de Programas  do usuário
Alocação Contígua Simples Registrador de proteção delimita as áreas do  sistema operacional  e do  usuário ; Sistema verifica acessos à memória em relação ao  endereço do registrador ; A forma de alocação era simples, mas não permitia utilização eficiente de processador e memória;
Alocação Contígua Simples Memória principal  Sistema  Operacional Área de Programas  do usuário Reg
Alocação Contígua Simples Programas de usuário  limitados  pelo tamanho da memória principal disponível.  Solução:  Overlay Dividir o programa em módulos; Permitir execução  independente  de cada módulo, usando a mesma área de memória; Área de Overlay Área de memória comum onde módulos  compartilham  mesmo espaço.
Alocação Contígua Simples Memória principal  Sistema  Operacional Área do  Módulo  Principal A B C
Alocação Particionada Multiprogramação . Necessidade do uso da memória por vários usuários simultaneamente. Ocupação mais eficiente do processador; A memória foi dividida em pedaços de tamanho fixo chamados  partições ; O tamanho de cada partição era estabelecido na  inicialização  do sistema; Para alteração do particionamento, era necessário uma nova inicialização com uma nova configuração
Alocação Particionada Estática Alocação Particionada Estática  Absoluta : Compiladores gerando  código absoluto ; Endereços relativos ao início da memória; Programas exclusivos para  partições específicas . Alocação Particionada Estática  Relocável : Compiladores gerando  código relocável ; Endereços relativos ao início da partição; Programas podem rodar em  qualquer partição .
Algoritmos para localização em memória (Curiosidade) O  algoritmo de busca  " best-first " 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. 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
Algoritmos para localização em memória (Curiosidade) Worst-fit  é um  algoritmo  utilizado na  partição  de  disco rígido . Função O algoritmo  worst-fit  aloca o programa na pior partição, ou seja, aquela que deixa o maior espaço livre. 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.
Algoritmos para localização em memória (Curiosidade) Next-fit  é um  algoritmo  utilizado para  partição  de  disco rígido . Processo 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. Grandes blocos são particionados em blocos menores e existe a necessidade de compactação quando não houver mais memória disponível.
Algoritmos para localização em memória (curiosidade) First Fit  é um  algoritmo  utilizado por sistemas operacionais para decidir em que local da memória um processo deve ser alocado. 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 . O algoritmo  Next Fit  é um melhoramento do First Fit. Exemplo: 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.
Gerência de Memória Mapeamento da Memória com listas ligadas: Best-Fit  (melhor alocação): Espaço mais próximo do tamanho do processo; Tempo de busca grande; Provoca fragmentação. Worst-Fit  (pior alocação): Cria o maior espaço possível; Tempo de busca grande; Não apresenta bons resultados. First-Fit  (primeira alocação): Melhor performance. Next-Fit  (proxima alocação): Performance inferior ao First-Fit.
Gerência de Memória Considerações sobre Mapeamento da Memória com listas ligadas : Todos melhoram em performance se existirem listas distintas para processos e espaços, embora o algoritmo fique mais complexo. Listas ordenadas por tamanho de espaço melhoram a performance.
Lista Ligadas
Swapping Os processos ficavam na memória principal, mesmo se bloqueados pela espera de algum evento. Solução:  Swapping . Técnica para resolver problema de processos que aguardam por espaço livre adequado; Processos não ficam mais na memória o tempo todo.
Swapping Problema gerado pelo Swapping: Relocação  de processos:  O  tempo  gasto com relocação é alto; Um mesmo processo sendo Swapped-Out repetidas vezes gera um alto consumo de CPU.
Swapping   Vantagens da técnica de  Swapping : Permite maior  compartilhamento  da memória; Aumento no  Throughput  (quantidade de processos executados por unidade de tempo); Eficiente para sistemas com poucos usuários e pequenas aplicações; Problema: custo do Swapping (in/out).
 
Gerência de Arquivos Um arquivo é uma coleção de informações relacionadas Normalmente, os arquivos representam programas e dados  Programas nos formatos de fonte e objeto O Gerenciamento de Arquivos é responsável por (em conjunto com o SO) Criação e exclusão de arquivos  Criação e exclusão de diretórios  Suporte a primitivas para manipulação de arquivos e diretórios Mapeamento de arquivos em armazenamento secundário  Backup de arquivos em meios de armazenamento não voláteis
 
Gerência de Armazenamento Secundário Armazenamento Secundário Memória principal é volátil e muito pequena Usado para apoiar a memória principal Discos são o principal meio de armazenamento para programas e dados  O Gerenciamento de Disco é responsável por (em conjunto com o SO) Gerenciamento do espaço livre Alocação do armazenamento Escalonamento do disco
Estrutura de E/S UCP e controladores de dispositivos ligados por barramento comum Quantidade de dispositivos por controlador IDE SCSI Controladores de dispositivos Buffer local Registradores específicos
Estrutura de E/S (cont) Controladores movem dados entre periféricos e buffer local Sistemas Operacionais têm um driver de dispositivo para cada controlador de dispositivo
Operação de E/S Drivers de dispositivo carrega registradores para o controlador de dispositivo Controlador usa registradores para determinar ação Controlador transfere dados do dispositivo para buffer local Ao concluir, controlador avisa ao driver via interrupção Driver avisa sistema operacional DMA ( acesso direto a memória – Directy merory access )
Placa mãe
Buffer 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 "buffer" é mais usado em relação aos dispositivos anteriormente citados enquanto o termo "cache" é mais usado com relação aos processadores e memória RAM.  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.  Geralmente ao ler um arquivo, serão lidos vários setores seqüenciais. 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.
Cache 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
spooling 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. 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.
Gerência de I/O (entrada e saída) O sistema de E/S consiste em: Inclui  buffering , sistema de  caching  e  spooling Uma interface genérica controladora de dispositivos Drivers  para dispositivos de hardware específicos Buffering Armazenamento principal Spooling Armazenamento secundário
Gerência de I/O Processador Armazenamento Controlador De Disco Área de transferência
Proteção Mecanismo para controlar o acesso aos recursos do sistema Programas Processos Usuários O mecanismo de proteção precisa Distinguir entre uso autorizado e não autorizado Especificar controles a serem impostos Fornecer um meio para a imposição
Modo Dual (turma de sexta) Distinguir execução de código do Sistema Operacional e código do usuário Modo Usuário e Modo do Sistema (Monitor, Supervisor, Privilegiado ou Kernel)
Transição de modos
Modo Dual (cont) No boot, hardware opera em Modo Monitor Modo dual protege o sistema operacional contra usuários  mal intencionados e um usuário do outro. Instruções que podem causar danos são instruçõe Privilegiadas, executadas apenas em Modo Monitor Intel 8088 não possuia suporte para o modo dual. MSDOS escrito para ele não o implementava, portanto
Temporizador Garantir que o Sistema Operacional tenha controle sobre a UCP Garantir retomada de controle pelo Sistema Operacional Temporizadores enviam interrupções após períodos de tempo especificados Fixos ou variáveis
Estrutura dos Sistemas Operacionais Aplicação não seqüencial Rotinas Eventos Assíncronos Associados ao hardware  Tarefas internas do SO Kernel Software que contém o “núcleo” do sistema Formado por Rotinas (procedimentos) Oferecem serviços Aos usuários Aplicações Rotinas do próprio sistema
Interpretador de Comandos O usuário interage com o SO  Programa de leitura e interpretação de instruções de controle  Interpretador de linha de comando ou  Shell Função de apanhar e executar a próxima instrução de comando Instruções de Controle dão comandos ao SO Tratamento de E/S Gerenciamento E/S, armazenamento secundário, arquivos e processos Proteção  Uso da rede Shell Interface Texto -  Prompt  de Comando  Interface Gráfica -  Windows
 
Redes (Sistemas Distribuídos) Um sistema distribuído é um conjunto de processadores Fornece ao usuário acesso a vários recursos do sistema Cada processador possui sua própria memória local  Não compartilham memória ou um relógio  Conexão por uma rede de comunicação  A comunicação ocorre através do uso de um protocolo O acesso a um recurso compartilhado permite: Maior velocidade de computação  Maior disponibilidade de dados Maior confiabilidade
 
Serviços do Sistema Operacional Execução de Programa Capacidade para carregar um programa na memória e executá-lo Operações de E/S Os programas do não podem executar operações de E/S SO deve prover os meios necessários Manipulação do sistema de arquivos  capacidade do programa para ler, gravar, criar e excluir arquivos Comunicações  Troca de informações entre processos Através de memória compartilhada ou passagem de mensagens Detecção de erro  Assegura computação correta Erros na CPU, hardware, memória, dispositivos de E/S e programas
Funções Adicionais Não usadas para auxiliar o usuário Garantir operações eficientes do sistema Alocação de Recursos Alocação para diversos usuários ou múltiplas tarefas Contabilidade Controle e registro de usuários e recursos Proteção Controle de acesso aos recursos do sistema
CATEGORIAS DE SISTEMAS OPERACIONAIS   O sistema operacional deve ser capaz de fazer mais de uma coisa ao mesmo tempo?  O sistema operacional deve funcionar com apenas um usuário, ou deve aceitar vários usuários simultaneamente?  O sistema operacional deve ser capaz de usar mais de uma CPU?
CATEGORIAS DE SISTEMAS OPERACIONAIS A capacidade que um sistema operacional tem de controlar mais de uma única tarefa ao mesmo tempo chama-se  multitarefa.  O  sistema operacional que permite que mais de um usuário use o computador em um determinado momento chama-se  multiusuárío. O sistema operacional que usa mais de uma CPU chama-se  sístema multíprocessador.
 
 
 
Boa noite

12/03/2010 - Sistemas Operacionais Aula3

  • 1.
  • 2.
  • 3.
  • 4.
    Inicialização Bootstrap ou Programa de Inicialização Armazenado em firmware (ROM, EEPROM) Inicializa e testa hardware Carrega o núcleo do sistema operacional (kernel) Primeiros processos são carregados Espera-se a ocorrência de algum evento
  • 5.
    Ocorrência de EventosInterrupção de Hardware Sinal enviado à UCP por meio do barramento Interrupção de Software Chamada de Sistema (System Call) Chamada ao Monitor (Monitor Call)
  • 6.
    Tratamento de InterrupçõesAo receber uma interrupção a UCP Interrompe a tarefa atual Transfere execução para endereço fixo na memória Este endereço contém o endereço inicial da rotina de atendimento da interrupção Retoma a tarefa interrompida Quantidade de interrupções limitada e pré-definida Vetor de Interrupções
  • 7.
    Componentes do SistemaInteração do usuário com o Sistema Operacional Em geral por meio de uma aplicação especial chamada shell Núcleo (kernel) Software que contém componentes centrais do Sistema Operacional Dentre os componentes mais comuns do sistema operacional encontra se Gerência de Processos Gerência da Memória Gerência de Arquivos Gerência Secundária Gerenciador de E/S Redes Sistema de Proteção Interpretador de Comandos Gerenciador de comunicação interprocessos (IPC)
  • 8.
    Gerência de ProcessosUm processo é um programa em execução Um processo precisa de certos recursos tempo de CPU, memória, arquivos e dispositivos de E/S O Gerenciamento de processos é responsável por (em conjunto com o SO) Criar e excluir processos Suspender e retomar processos Oferecer mecanismos para: sincronismo de processos comunicação entre processos Programa é uma entidade passiva Processo é uma entidade ativa
  • 9.
    Processos - Mecanismosde Interrupção Estabelece um sistema de sinalização de ocorrência de eventos Proteção entre processos • Impede situações de erros catastróficos
  • 10.
    Processos - DefiniçõesProcessos são uma abstração para programa em execução Também chamado de tarefa, “task” ou “job” Programa Entidade estática e permanente Invariável do ponto de vista do SO Processo Entidade ativa e dinâmica Possui estados que se alternam no tempo Constituído de código, dados, contexto e recursos do sistema
  • 11.
    Processos - DefiniçõesInstâncias de programas Vários processos podem ser instâncias diferentes de um mesmo processo Mesmo código, porem dados e contexto de execução diferentes Processos são a forma com o SO vê programas Processos executam Programas do usuário Programas de apoio ao SO
  • 12.
    Estados de umProcessos Só um processo pode ser executado a cada instante Manter uma fila de processos em espera de execução Selecionar periodicamente um novo processos da fila para execução Prevenir que um processo monopolize o processador
  • 13.
    Estados de umProcessos
  • 14.
    Transições de estadoCriação Um novo processo é criado• Recursos são atribuído Execução é necessariamente imediata Apto -> Execução Processo é escolhido para execução Depende da política de escalonamento Execução -> Término Evento de termino
  • 15.
    Processos em Execução– CPU x E/S bound
  • 16.
    Transições de estadoExecução -> Apto Tempo máximo de execução sem interrupção foi atingida; Processo é “preemptado” pelo SO Execução -> Bloqueado Processo requisitou recurso/evento pelo qual deve esperar. Bloqueado -> Apto – Recurso disponível ou ocorrência do evento • Apto -> Término e Bloqueado -> Término Processo pai termina um processo filho Processo pai é terminado, e os processos filhos associados são também finalizados.
  • 17.
    Suspensão de ProcessosProcessador é muito mais rápido que os dispositivos de E/S todos os processos em memória poderiam ficar em situação de espera . Ociosidade do processador Aumento de memória para acomodar mais processos • SOLUÇÃO Liberar memória ocupado por processos bloqueados • Transferência dos processos para o disco (swapping) • Necessidade de novos estados Estado suspenso (processo no disco)
  • 18.
  • 19.
  • 20.
  • 21.
    Gerência de MemóriaMemória é um grande vetor de palavras ou bytes É um repositório de dados rapidamente acessíveis Cada elemento tem um com seu próprio endereço Memória principal Dispositivo de armazenamento volátil Perde seu conteúdo em caso de falha de sistema O Gerenciamento de memória é responsável por (em conjunto com o SO) Alocar e desalocar espaço de memória conforme a necessidade Controlar as partes da memória são usadas e por quem Decidir quais processos devem ser carregados Tratar do Swapping entre memória principal e memória secundária. Transferência temporária de processos residentes na memória principal para memória secundária.
  • 22.
  • 23.
    Tipos de memóriaMemó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 . 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 . À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.
  • 24.
    Técnicas de Alocaçãode Memória: Alocação Contígua Simples; Alocação Particionada Estática; Alocação Particionada Estática Absoluta; Alocação Particionada Estática Relocável; Alocação Particionada Dinâmica.
  • 25.
    Alocação Contígua SimplesAlocação implementada nos primeiros sistemas e ainda usada nos monoprogramáveis; A Memória é dividida em duas áreas: Área do Sistema Operacional Área do Usuário Um usuário não pode usar uma área maior do que a disponível; Sem proteção: Um usuário pode acessar a área do Sistema Operacional.
  • 26.
    Alocação Contígua SimplesMemória principal Sistema Operacional Área de Programas do usuário
  • 27.
    Alocação Contígua SimplesRegistrador de proteção delimita as áreas do sistema operacional e do usuário ; Sistema verifica acessos à memória em relação ao endereço do registrador ; A forma de alocação era simples, mas não permitia utilização eficiente de processador e memória;
  • 28.
    Alocação Contígua SimplesMemória principal Sistema Operacional Área de Programas do usuário Reg
  • 29.
    Alocação Contígua SimplesProgramas de usuário limitados pelo tamanho da memória principal disponível. Solução: Overlay Dividir o programa em módulos; Permitir execução independente de cada módulo, usando a mesma área de memória; Área de Overlay Área de memória comum onde módulos compartilham mesmo espaço.
  • 30.
    Alocação Contígua SimplesMemória principal Sistema Operacional Área do Módulo Principal A B C
  • 31.
    Alocação Particionada Multiprogramação. Necessidade do uso da memória por vários usuários simultaneamente. Ocupação mais eficiente do processador; A memória foi dividida em pedaços de tamanho fixo chamados partições ; O tamanho de cada partição era estabelecido na inicialização do sistema; Para alteração do particionamento, era necessário uma nova inicialização com uma nova configuração
  • 32.
    Alocação Particionada EstáticaAlocação Particionada Estática Absoluta : Compiladores gerando código absoluto ; Endereços relativos ao início da memória; Programas exclusivos para partições específicas . Alocação Particionada Estática Relocável : Compiladores gerando código relocável ; Endereços relativos ao início da partição; Programas podem rodar em qualquer partição .
  • 33.
    Algoritmos para localizaçãoem memória (Curiosidade) O algoritmo de busca " best-first " 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. 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
  • 34.
    Algoritmos para localizaçãoem memória (Curiosidade) Worst-fit é um algoritmo utilizado na partição de disco rígido . Função O algoritmo worst-fit aloca o programa na pior partição, ou seja, aquela que deixa o maior espaço livre. 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.
  • 35.
    Algoritmos para localizaçãoem memória (Curiosidade) Next-fit é um algoritmo utilizado para partição de disco rígido . Processo 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. Grandes blocos são particionados em blocos menores e existe a necessidade de compactação quando não houver mais memória disponível.
  • 36.
    Algoritmos para localizaçãoem memória (curiosidade) First Fit é um algoritmo utilizado por sistemas operacionais para decidir em que local da memória um processo deve ser alocado. 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 . O algoritmo Next Fit é um melhoramento do First Fit. Exemplo: 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.
  • 37.
    Gerência de MemóriaMapeamento da Memória com listas ligadas: Best-Fit (melhor alocação): Espaço mais próximo do tamanho do processo; Tempo de busca grande; Provoca fragmentação. Worst-Fit (pior alocação): Cria o maior espaço possível; Tempo de busca grande; Não apresenta bons resultados. First-Fit (primeira alocação): Melhor performance. Next-Fit (proxima alocação): Performance inferior ao First-Fit.
  • 38.
    Gerência de MemóriaConsiderações sobre Mapeamento da Memória com listas ligadas : Todos melhoram em performance se existirem listas distintas para processos e espaços, embora o algoritmo fique mais complexo. Listas ordenadas por tamanho de espaço melhoram a performance.
  • 39.
  • 40.
    Swapping Os processosficavam na memória principal, mesmo se bloqueados pela espera de algum evento. Solução: Swapping . Técnica para resolver problema de processos que aguardam por espaço livre adequado; Processos não ficam mais na memória o tempo todo.
  • 41.
    Swapping Problema geradopelo Swapping: Relocação de processos: O tempo gasto com relocação é alto; Um mesmo processo sendo Swapped-Out repetidas vezes gera um alto consumo de CPU.
  • 42.
    Swapping Vantagens da técnica de Swapping : Permite maior compartilhamento da memória; Aumento no Throughput (quantidade de processos executados por unidade de tempo); Eficiente para sistemas com poucos usuários e pequenas aplicações; Problema: custo do Swapping (in/out).
  • 43.
  • 44.
    Gerência de ArquivosUm arquivo é uma coleção de informações relacionadas Normalmente, os arquivos representam programas e dados Programas nos formatos de fonte e objeto O Gerenciamento de Arquivos é responsável por (em conjunto com o SO) Criação e exclusão de arquivos Criação e exclusão de diretórios Suporte a primitivas para manipulação de arquivos e diretórios Mapeamento de arquivos em armazenamento secundário Backup de arquivos em meios de armazenamento não voláteis
  • 45.
  • 46.
    Gerência de ArmazenamentoSecundário Armazenamento Secundário Memória principal é volátil e muito pequena Usado para apoiar a memória principal Discos são o principal meio de armazenamento para programas e dados O Gerenciamento de Disco é responsável por (em conjunto com o SO) Gerenciamento do espaço livre Alocação do armazenamento Escalonamento do disco
  • 47.
    Estrutura de E/SUCP e controladores de dispositivos ligados por barramento comum Quantidade de dispositivos por controlador IDE SCSI Controladores de dispositivos Buffer local Registradores específicos
  • 48.
    Estrutura de E/S(cont) Controladores movem dados entre periféricos e buffer local Sistemas Operacionais têm um driver de dispositivo para cada controlador de dispositivo
  • 49.
    Operação de E/SDrivers de dispositivo carrega registradores para o controlador de dispositivo Controlador usa registradores para determinar ação Controlador transfere dados do dispositivo para buffer local Ao concluir, controlador avisa ao driver via interrupção Driver avisa sistema operacional DMA ( acesso direto a memória – Directy merory access )
  • 50.
  • 51.
    Buffer 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 "buffer" é mais usado em relação aos dispositivos anteriormente citados enquanto o termo "cache" é mais usado com relação aos processadores e memória RAM. 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. Geralmente ao ler um arquivo, serão lidos vários setores seqüenciais. 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.
  • 52.
    Cache Na áreada 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
  • 53.
    spooling 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. 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.
  • 54.
    Gerência de I/O(entrada e saída) O sistema de E/S consiste em: Inclui buffering , sistema de caching e spooling Uma interface genérica controladora de dispositivos Drivers para dispositivos de hardware específicos Buffering Armazenamento principal Spooling Armazenamento secundário
  • 55.
    Gerência de I/OProcessador Armazenamento Controlador De Disco Área de transferência
  • 56.
    Proteção Mecanismo paracontrolar o acesso aos recursos do sistema Programas Processos Usuários O mecanismo de proteção precisa Distinguir entre uso autorizado e não autorizado Especificar controles a serem impostos Fornecer um meio para a imposição
  • 57.
    Modo Dual (turmade sexta) Distinguir execução de código do Sistema Operacional e código do usuário Modo Usuário e Modo do Sistema (Monitor, Supervisor, Privilegiado ou Kernel)
  • 58.
  • 59.
    Modo Dual (cont)No boot, hardware opera em Modo Monitor Modo dual protege o sistema operacional contra usuários mal intencionados e um usuário do outro. Instruções que podem causar danos são instruçõe Privilegiadas, executadas apenas em Modo Monitor Intel 8088 não possuia suporte para o modo dual. MSDOS escrito para ele não o implementava, portanto
  • 60.
    Temporizador Garantir queo Sistema Operacional tenha controle sobre a UCP Garantir retomada de controle pelo Sistema Operacional Temporizadores enviam interrupções após períodos de tempo especificados Fixos ou variáveis
  • 61.
    Estrutura dos SistemasOperacionais Aplicação não seqüencial Rotinas Eventos Assíncronos Associados ao hardware Tarefas internas do SO Kernel Software que contém o “núcleo” do sistema Formado por Rotinas (procedimentos) Oferecem serviços Aos usuários Aplicações Rotinas do próprio sistema
  • 62.
    Interpretador de ComandosO usuário interage com o SO Programa de leitura e interpretação de instruções de controle Interpretador de linha de comando ou Shell Função de apanhar e executar a próxima instrução de comando Instruções de Controle dão comandos ao SO Tratamento de E/S Gerenciamento E/S, armazenamento secundário, arquivos e processos Proteção Uso da rede Shell Interface Texto - Prompt de Comando Interface Gráfica - Windows
  • 63.
  • 64.
    Redes (Sistemas Distribuídos)Um sistema distribuído é um conjunto de processadores Fornece ao usuário acesso a vários recursos do sistema Cada processador possui sua própria memória local Não compartilham memória ou um relógio Conexão por uma rede de comunicação A comunicação ocorre através do uso de um protocolo O acesso a um recurso compartilhado permite: Maior velocidade de computação Maior disponibilidade de dados Maior confiabilidade
  • 65.
  • 66.
    Serviços do SistemaOperacional Execução de Programa Capacidade para carregar um programa na memória e executá-lo Operações de E/S Os programas do não podem executar operações de E/S SO deve prover os meios necessários Manipulação do sistema de arquivos capacidade do programa para ler, gravar, criar e excluir arquivos Comunicações Troca de informações entre processos Através de memória compartilhada ou passagem de mensagens Detecção de erro Assegura computação correta Erros na CPU, hardware, memória, dispositivos de E/S e programas
  • 67.
    Funções Adicionais Nãousadas para auxiliar o usuário Garantir operações eficientes do sistema Alocação de Recursos Alocação para diversos usuários ou múltiplas tarefas Contabilidade Controle e registro de usuários e recursos Proteção Controle de acesso aos recursos do sistema
  • 68.
    CATEGORIAS DE SISTEMASOPERACIONAIS O sistema operacional deve ser capaz de fazer mais de uma coisa ao mesmo tempo? O sistema operacional deve funcionar com apenas um usuário, ou deve aceitar vários usuários simultaneamente? O sistema operacional deve ser capaz de usar mais de uma CPU?
  • 69.
    CATEGORIAS DE SISTEMASOPERACIONAIS A capacidade que um sistema operacional tem de controlar mais de uma única tarefa ao mesmo tempo chama-se multitarefa. O sistema operacional que permite que mais de um usuário use o computador em um determinado momento chama-se multiusuárío. O sistema operacional que usa mais de uma CPU chama-se sístema multíprocessador.
  • 70.
  • 71.
  • 72.
  • 73.