1 SISTEMAS OPERACIONAIS Profª Josiane T. Ferri Licenciada em Computação prof.jositf@yahoo.com.br facebook.com/josiferri
ESTRUTURA DO SISTEMA OPERACIONAL Embora a definição de níveis de privilégio imponha uma estruturação mínima a um sistema operacional, as múltiplas partes que compõem o sistema podem ser organizadas de diversas formas, separando suas funcionalidades e modularizando seu projeto. Sendo assim apresentarei as arquiteturas mais populares para a organização de sistemas operacionais: Sistema Monolítico Sistema em camadas Sistema micro-núcleo (micro-kernel) ou Cliente-Servidor Máquina Virtual 2
SISTEMA MONOLÍTICO Todos componentes do núcleo operam em modo núcleo e se inter-relacionam conforme suas necessidades; Não há restrições de acesso entre si, pois o código no nível núcleo tem pleno acesso a todos os recursos e áreas de memória. 3
SISTEMA MONOLÍTICO Vantagem: Desempenho e interação direta entre componentes; Desvantagem: Caso algum componente perca o controle devido a algum erro, o problema pode alastrar-se rapidamente por todo o núcleo, causando assim um colapso no Sistema. A manutenção e evolução também tornam-se mais complexas, pois a dependências e pontos de interação entre componentes nem sempre são evidentes; pequenas alterações na estrutura de dados de um componente podem ter um impacto inesperado em outros componentes, caso estes acessem aquela estrutura diretamente. 4
SISTEMA MONOLÍTICO Curiosidades: Foi a primeira forma de organizar os sistemas operacionais; Sistemas UNIX antigos e o MS-DOS seguiam esse modelo. Atualmente, apenas sistemas operacionais embutidos usam essa arquitetura, devido as limitações do hardware sobre o qual executam. O núcleo do Linux nasceu monolítico, mas vem sendo paulatinamente estruturado e modularizado desde a versão 2.0 (embora boa parte de seu código ainda permaneça no nível de núcleo). 5
SISTEMA EM CAMADAS A camada mais baixa realiza a interface como hardware; Camadas intermediarias provêem níveis de abstração e gerencia cada vez mais sofisticados. A camada superior define a interface do núcleo para as aplicações (as chamadas de sistema). Desvantagem: O empilhamento de várias camadas de software faz com que cada pedido de uma aplicação demore mais tempo para chegar ate o dispositivo periférico ou recurso a ser acessado, prejudicando o desempenho do sistema. 6
SISTEMA EM CAMADAS Curiosidades: Essa abordagem de estruturação de software fez muito sucesso no domínio das redes de computadores, através do modelo de referencia OSI (Open Systems Interconnection), e também seria de se esperar sua adoção no domínio dos sistemas operacionais. Muitos sistemas implementam uma camada inferior de abstração do hardware para interagir com os dispositivos (Windows NT) e também organizam em camadas alguns sub-sistemas como a gerência de arquivos e o suporte de rede (seguindo o modelo OSI). 7
SISTEMAS MICRO-NÚCLEO Mantêm no núcleo somente o código de baixo nível, necessário para interagir com o hardware; Retira do núcleo todo o código de alto nível, gerente de recursos; Interações entre os componentes e aplicações são feitas através de trocas de mensagens; Assim quando uma aplicação deseja abrir um arquivo no disco rígido por exemplo, envia uma mensagem para o gerente de arquivos que por sua vez envia outra para o gerente de dispositivos a fim de obter os blocos de dados relativos ao arquivo desejado. Mecanismos de proteção ao HW restringem a comunicação direta entre processos; Devido aos processos terem de solicitar serviços uns dos outros, para poder realizar suas tarefas, essa abordagem também foi denominada cliente-servidor. 8
MÁQUINA VIRTUAL Como funciona uma máquina real? E um Emulador? A funcionalidade e o nível de abstração de uma MV se encontra entre uma máquina real e um emulador, na medida em que abstrai somente os recursos de hardware e de controle usados pelas aplicações. 9
MÁQUINA VIRTUAL Sendo assim o que é, como funciona o conceito de um MV? Uma maquina virtual é um ambiente criado por um monitor de maquinas virtuais, também denominado sistema operacional para sistemas operacionais. O monitor pode criar uma ou mais maquinas virtuais sobre uma única maquina real. A MV fornece facilidade para as aplicações fornecem a impressão de as mesmas estarem executando sobre um ambiente normal com acesso físico ao HW. 10
MÁQUINA VIRTUAL Algumas vantagens são apresentadas para a utilização de máquinas virtuais em sistemas de computação: Aperfeiçoamento e testes de novos sistemas operacionais; Ensino prático de sistemas operacionais e programação de baixo nível; Executar diferentes sistemas operacionais sobre o mesmo hardware, simultaneamente; Simular alterações e falhas no hardware para testes ou reconfiguração de um sistema operacional, provendo confiabilidade e escalabilidade para as aplicações; Diminuir custos com hardware. 11
MÁQUINA VIRTUAL A principal desvantagem do uso de MVs é o custo adicional de execução dos processos na máquina virtual em comparação com a máquina real. Esse custo é muito variável, podendo passar de 50% em plataformas sem suporte de hardware a virtualização, como é o caso de processadores mais antigos. Todavia, pesquisas recentes tem obtido a redução desse custo a patamares abaixo de 20%, graças sobretudo a ajustes no código do sistema hospedeiro. Esse problema não existe em ambientes cujo hardware oferece suporte a virtualização, como e o caso dos mainframes e de processadores mais recentes. 12
PROCESSOS Já vimos que um processo é um programa em execução; Mas se analisarmos a definição de programa, veremos que programa é uma sequência de instruções, algo passivo que não altera seu estado. E um processo é um elemento ativo, que altera seu estado como veremos a seguir. Sendo assim o processo é o elemento que faz a chamada de sistema executar o programa. 13
ESTRUTURA E ESTADOS DE UM PROCESSO A estrutura de um processo é composta por: Código Espaço em memória Contador de Programa (PC) Seção de dados A medida em que um programa é executado, os estados de um processo podem ser: Novo Em execução Em espera Pronto Encerrado 14
ESTADOS DE UM PROCESSO 15
ESCALONAMENTO (SCHEDULER) Uma política de escalonamento é a estratégia do sistema para escolher quais processos devem ser executados a cada instante; Essa política deve satisfazer critérios de: Maximizar o número de processos/tempo (desempenho); Minimizar o tempo que cada processo espera para ser executados (latência); Evitar o adiamento indefinido; 16
NÍVEIS DE ESCALONAMENTO Escalonamento de alto nível: Determina quais jobs serão admitidos pelo sistema; Se admitidos tornam-se processos ou grupos de processos; Determina o grau de multiprogramação: número de processos a cada instante. Escalonamento de nível intermediário: Determina se um processo terá permissão de disputar processador, pois os processos podem ser suspensos para cumprir metas de desempenho; Funciona como um buffer entre a admissão e a designação de processadores para um processo. 17
NÍVEIS DE ESCALONAMENTO Escalonamento de baixo nível: Determina qual processo ativo será executado quando o processador estiver disponível; Podem ter uma política de prioridades (importância de um processo); Designa o processador (se multiprocessado); Ele reside na memória principal o tempo todo; 18
GERÊNCIA DE PROCESSOS Escalonamento: Não preemptivo: Uma vez que o sistema conduz um processo a execução, ele não poderá retirar o processo de execução; Preemptivo: O sistema é capaz de interromper a execução de um processo e reconduzi-lo ao processador em outro momento; 19
GERÊNCIA DE PROCESSOS Decisões sobre escalonamento da UCP podem ser tomadas nos seguintes momentos: 1. Quando um processo sai do estado executando para esperando ; 2. Quando um processo sai do estado executando para pronto ; 3. Quando um processo sai do estado esperando para pronto ; 4. Quando um processo é finalizado. Se um sistema realiza escalonamento somente nas situações 1 e 4, dizemos que ele é não preemptivo ou cooperativo; Caso ele também realize escalonamento nas outras situações, o sistema é dito preemptivo. 20
GERÊNCIA DE PROCESSOS E ALGORITMOS FIFO First in First out Roud Robin Fila Circular Short Process First (SPF) Filas multinível Filas multinível com retroalimentação 21
GERÊNCIA DE PROCESSOS E ALGORITMOS FIFO First in First out Todos os processos são tratados igualmente; Processos longos fazem processos curtos esperar; Processos não importantes fazem processos importantes esperar; Não é recomendado para processos interativos; Não é empregado como esquema mestre; Processos de mesma prioridade são despachados na ordem FIFO. 22
GERÊNCIA DE PROCESSOS E ALGORITMOS FIFO First in First out 23
GERÊNCIA DE PROCESSOS E ALGORITMOS Roud Robin Fila Circular FIFO com tempo limitado (quantum); Preempção; Empregado em ambientes interativos; Não é empregado como esquema mestre; 24
GERÊNCIA DE PROCESSOS E ALGORITMOS Short Process First (SPF) Menor tempo estimado pelo: usuário sistema Não há preempção; O tempo médio de espera(tme) é calculado da seguinte forma: 25
GERÊNCIA DE PROCESSOS E ALGORITMOS Short Process First (SPF) O tempo de espera(te) de cada job é o tempo que ele levou para começar a processar: 26
GERÊNCIA DE PROCESSOS E ALGORITMOS Short Process First (SPF) 15/03/2012 27
GERÊNCIA DE PROCESSOS E ALGORITMOS Filas multinível 15/03/2012 Filas multinível com retroalimentação 28
GERÊNCIA DE PROCESSOS E ALGORITMOS Filas multinível com retroalimentação 15/03/2012 Processos entram na fila de mais alto nível; Processos que devolvem o processador antes do término do quantum permanecem no mesmo nível; Processos que expiram o quantum vão para fila de nível mais baixo; Sistemas aumentam o quantum a medida que passam a execução para filas de mais baixo nível; 29
GERÊNCIA DE PROCESSOS E ALGORITMOS Filas multinível com retroalimentação 15/03/2012 Favorecem processos orientados a E/S ou que precisam de pequenos surtos de tempo; O quantum da primeira fila é grande o bastante para que processo orientados a E/S façam sua requisição; Uma requisição de E/S retira o processo da rede de filas (pronto); São ideais para separar processos em categorias (identificar se é orientado a processador ou E/S); Processos podem subir de nível. 30