Prévia do material em texto
Capítulo 2 Estrutura do Sistema Operacional Aula 02 UNIFEI Universidade Federal de Itajubá IMC – Instituto de Matemática e Computação Prof. Carlos Minoru Tamaki COM120 – Sistemas OperacionaisCOM120 – Sistemas Operacionais Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Estruturas do Sistema Operacional ● Serviços de sistema operacional ● Interface do sistema operacional do usuário ● Chamadas de sistema ● Tipos de chamadas de sistema ● Programas de sistema ● Projeto e implementação do sistema operacional ● Estrutura do sistema operacional ● Depuração do sistema operacional ● Geração de sistema operacional ● Inicialização do sistema Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Objetivos ● Para descrever os serviços que um sistema operacional fornece aos usuários, processos e outros sistemas ● Para discutir as várias maneiras de estruturar um sistema operacional ● Para explicar como os sistemas operacionais são instalados e personalizados e como eles inicializam 4 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Serviços do Sistema Operacional ● Os sistemas operacionais fornecem um ambiente para a execução de programas e serviços para programas e usuários ● Um conjunto de serviços do sistema operacional fornece funções que são úteis para o usuário: – Interface do usuário - quase todos os sistemas operacionais possuem uma interface do usuário (IU). – Varia entre linha de comando (CLI), interface gráfica do usuário (GUI), lote (Batch) – Execução do programa - O sistema deve ser capaz de carregar um programa na memória e executá-lo, finalizar a execução, normal ou anormalmente (indicando erro) – Operações de E/S - Um programa em execução pode exigir E/S, o que pode envolver um arquivo ou um dispositivo de E/S – Manipulação do sistema de arquivos - O sistema de arquivos é de particular interesse. Os programas precisam ler e gravar arquivos e diretórios, criá-los e excluí-los, pesquisá-los, listar informações de arquivos, gerenciamento de permissões. 5 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Serviços do Sistema Operacional ● Comunicações - os processos podem trocar informações, no mesmo computador ou entre computadores em uma rede – As comunicações podem ser via memória compartilhada ou passagem de mensagens (pacotes movidos pelo sistema operacional) ● Detecção de erros - o sistema operacional precisa estar constantemente ciente de possíveis erros – Pode ocorrer na CPU e hardware de memória, em dispositivos de I / O, no programa do usuário – Para cada tipo de erro, o sistema operacional deve tomar as medidas adequadas para garantir uma computação correta e consistente – Os recursos de depuração podem melhorar muito as habilidades do usuário e do programador para usar o sistema de forma eficiente 6 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Serviços do Sistema Operacional ● Existe outro conjunto de funções do sistema operacional para garantir a operação eficiente do próprio sistema por meio do compartilhamento de recursos – Alocação de recursos - Quando vários usuários ou vários trabalhos são executados simultaneamente, os recursos devem ser alocados para cada um deles ● Muitos tipos de recursos - Alguns (como ciclos de CPU, memória principal e armazenamento de arquivos) podem ter código de alocação especial, outros (como dispositivos de E / S) podem ter solicitação geral e código de liberação – Contabilidade - Para manter o controle de quais usuários usam quanto e quais tipos de recursos de computador – Proteção e segurança - Os proprietários das informações armazenadas em um sistema de computador multiusuário ou em rede podem querer controlar o uso dessas informações; os processos simultâneos não devem interferir uns com os outros ● A proteção envolve garantir que todo o acesso aos recursos do sistema seja controlado ● A segurança do sistema de estranhos requer autenticação do usuário, estende-se à defesa de dispositivos de I / O externos de tentativas de acesso inválidas ● Se um sistema deve ser protegido e seguro, precauções devem ser instituídas em todo ele. Uma corrente é tão forte quanto seu elo mais fraco. 7 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Uma visão dos serviços do sistema operacional 8 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Interface do sistema operacional do usuário - CLI ● CLI ou interpretador de comandos permite a entrada direta de comandos – Às vezes implementado no kernel, às vezes pelo programa do sistema – Às vezes, vários sabores implementados - shells – Busca principalmente um comando do usuário e o executa ● Às vezes, comandos integrados, às vezes apenas nomes de programas ● Neste último caso, adicionar novos recursos não requer modificação de shell 9 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Interpretador de Comando Bourne Shell 10 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Interface do sistema operacional do usuário - GUI ● Interface de desktop amigável – Normalmente mouse, teclado e monitor – Os ícones representam arquivos, programas, ações, etc. – Vários botões do mouse sobre os objetos na interface causam várias ações (fornecer informações, opções, executar função, abrir diretório (conhecido como pasta) – Inventado na Xerox PARC ● Muitos sistemas agora incluem interfaces CLI e GUI – Microsoft Windows é GUI com shell de “comando” CLI – Apple Mac OS X é uma interface GUI “Aqua” com kernel UNIX por baixo e shells disponíveis – Unix e Linux têm CLI com interfaces GUI opcionais (CDE, KDE, GNOME) 11 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Interfaces de tela sensível ao toque ● Dispositivos touchscreen requerem novas interfaces – Mouse não é possível ou não desejado – Ações e seleção com base em gestos – Teclado virtual para entrada de texto 12 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 A GUI do Mac OS X 13 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 System Calls ● Interface de programação para os serviços prestados pelo SO ● Normalmente escrito em uma linguagem de alto nível (C ou C ++) ● Geralmente acessado por programas por meio de uma interface de programa de aplicativo (API) de alto nível, em vez de uso de chamada direta do sistema ● As três APIs mais comuns são Win32 API para Windows, POSIX API para sistemas baseados em POSIX (incluindo praticamente todas as versões do UNIX, Linux e Mac OS X) e Java API para a máquina virtual Java (JVM) ● Por que usar APIs em vez de chamadas de sistema? (Observe que os nomes das chamadas do sistema usados ao longo deste texto são genéricos) 14 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Exemplo de System Calls ● Sequência de chamada do sistema para copiar o conteúdo de um arquivo para outro arquivo 15 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Exemplo de API padrão 16 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Implementação de chamada de sistema ● Normalmente, um número associado a cada chamada do sistema – A interface de chamada do sistema mantém uma tabela indexada de acordo com esses números ● A interface de chamada do sistema invoca a chamada do sistema pretendida no kernel do sistema operacional e retorna o status da chamada do sistema e quaisquer valores de retorno ● O chamador não precisa saber nada sobre como a chamada do sistema é implementada ● Só precisa obedecer à API e entender o que o sistema operacional fará como resultado da chamada – A maioria dos detalhes da interface do sistema operacional escondidos do programadorpela API – Gerenciado pela biblioteca de suporte em tempo de execução (conjunto de funções incorporadas às bibliotecas incluídas com o compilador) 17 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 API - Chamada do sistema - Relacionamento do SO 18 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Passagem de parâmetro de chamada do sistema ● Muitas vezes, são necessárias mais informações do que simplesmente a identidade da chamada de sistema desejada – O tipo exato e a quantidade de informações variam de acordo com o sistema operacional e a chamada ● Três métodos gerais usados para passar parâmetros para o sistema operacional – Mais simples: passe os parâmetros em registradores ● Em alguns casos, pode haver mais parâmetros do que registros – Parâmetros armazenados em um bloco, ou tabela, na memória e endereço do bloco passado como parâmetro em um registro ● Esta abordagem adotada pelo Linux e Solaris – Parâmetros colocados na pilha pelo programa e retirados da pilha pelo sistema operacional – Os métodos de bloco e pilha não limitam o número ou comprimento dos parâmetros que estão sendo passados 19 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Passagem de parâmetro via tabela 20 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Tipos de chamadas de sistema ● Controle do processo – fim, abortar – carregar, executar – criar processo, encerrar processo – obter atributos de processo, definir atributos de processo – espere o tempo – evento de espera, evento de sinal – alocar e liberar memória – Despeje a memória se houver erro – Depurador para determinar bugs, execução de etapa única – Bloqueios para gerenciar o acesso a dados compartilhados entre processos 21 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Tipos de chamadas de sistema ● Gerenciamento de arquivos – criar arquivo, excluir arquivo – abrir, fechar arquivo – ler, escrever, reposicionar – obter e definir atributos de arquivo ● Gerenciamento de dispositivo – solicitar dispositivo, liberar dispositivo – ler, escrever, reposicionar – obter atributos do dispositivo, definir atributos do dispositivo – conectar ou desconectar dispositivos logicamente 22 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 ● Manutenção de informação – obter hora ou data, definir hora ou data – obter dados do sistema, definir dados do sistema – obter e definir atributos de processo, arquivo ou dispositivo ● Comunicações – criar, excluir conexão de comunicação – enviar, receber mensagens se o modelo de passagem de mensagem para o nome do host ou nome do processo ● Do cliente ao servidor – O modelo de memória compartilhada cria e obtém acesso a regiões de memória – transferência de informações de status – anexar e desconectar dispositivos remotos Tipos de chamadas de sistema 23 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 ● Proteção – Controle o acesso aos recursos – Obter e definir permissões – Permitir e negar o acesso do usuário Tipos de chamadas de sistema 24 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Exemplos de Windows e Chamadas de sistema Unix 25 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Exemplo de biblioteca C padrão ● Programa C invocando a chamada da biblioteca printf (), que chama a chamada do sistema write () 26 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Exemplo: MS-DOS ● Single-tasking ● Shell invoked when system booted ● Simple method to run program – No process created ● Single memory space ● Loads program into memory, overwriting all but the kernel ● Program exit -> shell reloaded 27 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Exemplo: FreeBSD ● Variante Unix ● Multitarefa ● Login do usuário -> invocar a escolha do shell do usuário ● Shell executa a chamada do sistema fork() para criar o processo – Executa exec() para carregar o programa no processo – Shell espera que o processo termine ou continua com os comandos do usuário ● O processo sai com o código 0 - sem erro ou > 0 - código do erro 28 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Programas de sistema ● Os programas do sistema fornecem um ambiente conveniente para o desenvolvimento e execução do programa. Eles podem ser divididos em: – Manipulação de arquivo – Informações de status às vezes armazenadas em uma modificação de arquivo – Suporte a linguagem de programação – Carregamento e execução do programa – Comunicações – Serviços de segundo plano – Programas de aplicação ● A visão da maioria dos usuários do sistema operacional é definida pelos programas do sistema, não pelas chamadas reais do sistema 29 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 ● Fornece um ambiente conveniente para o desenvolvimento e execução do programa – Alguns deles são simplesmente interfaces de usuário para chamadas de sistema; outros são consideravelmente mais complexos ● Gerenciamento de arquivos - cria, exclui, copia, renomeia, imprime, despeja, lista e geralmente manipula arquivos e diretórios ● Informação de status – Alguns pedem informações ao sistema - data, hora, quantidade de memória disponível, espaço em disco, número de usuários – Outros fornecem informações detalhadas de desempenho, registro e depuração – Normalmente, esses programas formatam e imprimem a saída para o terminal ou outros dispositivos de saída – Alguns sistemas implementam um registro - usado para armazenar e recuperar informações de configuração Programas de sistema 30 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 ● Modificação de arquivo – Editores de texto para criar e modificar arquivos – Comandos especiais para pesquisar conteúdos de arquivos ou realizar transformações de texto ● Suporte à linguagem de programação - compiladores, montadores, depuradores e intérpretes às vezes fornecidos ● Carregamento e execução do programa - carregadores absolutos, carregadores relocáveis, editores de ligação e carregadores de sobreposição, sistemas de depuração para linguagem de máquina e de nível superior ● Comunicações - fornecem o mecanismo para a criação de conexões virtuais entre processos, usuários e sistemas de computador – Permitir que os usuários enviem mensagens para as telas uns dos outros, naveguem nas páginas da web, enviem mensagens de e-mail, façam login remotamente, transfiram arquivos de uma máquina para outra Programas de sistema 31 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 ● Serviços de segundo plano – Lançar na hora da inicialização ● Alguns para inicialização do sistema e, em seguida, encerram ● Alguns, desde a inicialização do sistema até o desligamento – Fornece recursos como verificação de disco, agendamento de processo, registro de erros, impressão – Executar no contexto do usuário, não no contexto do kernel – Conhecidos como serviços, subsistemas, daemons ● Programas de aplicação – Não pertencem ao sistema – Administrado por usuários – Normalmente não é considerado parte do sistema operacional – Lançado por linha de comando, clique do mouse, toque do dedo Programas de sistema 32 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Projeto do sistema operacional e implementação ● O design e a implementação do sistema operacional não são "solucionáveis", mas algumas abordagens têm se mostrado bem-sucedidas ● A estrutura interna de diferentes sistemas operacionais pode variar amplamente ● Comece definindo metas e especificações ● Afetado pela escolha do hardware, tipo de sistema ● Metas do usuário e metasdo sistema – Objetivos do usuário - o sistema operacional deve ser conveniente de usar, fácil de aprender, confiável, seguro e rápido – Objetivos do sistema - o sistema operacional deve ser fácil de projetar, implementar e manter, bem como flexível, confiável, livre de erros e eficiente 33 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 ● Princípio importante para separar – Política: O que será feito? – Mecanismo: como fazer? ● Os mecanismos determinam como fazer algo, as políticas decidem o que será feito – A separação da política do mecanismo é um princípio muito importante, permite o máximo de flexibilidade se as decisões políticas forem alteradas posteriormente ● Especificar e projetar o sistema operacional é uma tarefa altamente criativa da engenharia de software Projeto do sistema operacional e implementação 34 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Implementação ● Muita variação – Os primeiros sistemas operacionais em linguagem assembly – Em seguida, linguagens de programação de sistema como Algol, PL / 1 – Agora C, C ++ ● Na verdade, geralmente uma mistura de idiomas – Níveis mais baixos na montagem – Corpo principal em C – Programas de sistemas em C, C ++, linguagens de script como PERL, Python, scripts de shell ● Linguagem de alto nível mais fácil de portar para outro hardware – Mas mais lento ● A emulação pode permitir que um sistema operacional seja executado em um hardware não nativo 35 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Estrutura do sistema operacional ● O sistema operacional de uso geral é um programa muito grande ● Várias maneiras de estruturar um como segue 36 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Estrutura Simples ● Ou seja, MS-DOS - escrito para fornecer o máximo de funcionalidade no mínimo espaço – Não dividido em módulos – Embora o MS-DOS tenha alguma estrutura, suas interfaces e níveis de funcionalidade não são bem separados 37 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 UNIX ● UNIX - limitado pela funcionalidade do hardware, o sistema operacional UNIX original tinha estrutura limitada. O sistema operacional UNIX consiste em duas partes separáveis – Programas de sistemas – O kernel ● Consiste em tudo abaixo da interface de chamada do sistema e acima do hardware físico ● Fornece o sistema de arquivos, programação da CPU, gerenciamento de memória e outras funções do sistema operacional; um grande número de funções para um nível 38 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Estrutura tradicional do sistema UNIX 39 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Abordagem em camadas ● O sistema operacional é dividido em várias camadas (níveis), cada uma construída sobre as camadas inferiores. A camada inferior (camada 0) é o hardware; o mais alto (camada N) é a interface do usuário. ● Com a modularidade, as camadas são selecionadas de modo que cada uma use funções (operações) e serviços de apenas camadas de nível inferior 40 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Estrutura do Sistema Microkernel ● Move o máximo do kernel para o espaço do usuário ● Exemplo Mach de microkernel – Kernel do Mac OS X (Darwin) parcialmente baseado em Mach ● A comunicação ocorre entre os módulos do usuário usando a passagem de mensagens ● Benefícios: – Mais fácil de estender um microkernel – Mais fácil de portar o sistema operacional para novas arquiteturas – Mais confiável (menos código está sendo executado no modo kernel) – Mais seguro ● Prejuízos: – Sobrecarga de desempenho do espaço do usuário para comunicação do espaço do kernel 41 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Estrutura do Sistema Microkernel 42 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Módulos ● A maioria dos sistemas operacionais modernos implementam módulos de kernel carregáveis – Usa abordagem orientada a objetos – Cada componente principal é separado – Cada um fala com os outros por meio de interfaces conhecidas – Cada um é carregável conforme necessário dentro do kernel ● No geral, semelhante às camadas, mas com mais flexibilidade – Linux, Solaris, etc 43 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Abordagem Modular Solaris 44 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Sistemas Híbridos ● A maioria dos sistemas operacionais modernos, na verdade, não é um modelo puro – Hybrid combina várias abordagens para atender às necessidades de desempenho, segurança e usabilidade – Kernels Linux e Solaris no espaço de endereço do kernel, de modo monolítico e modular para carregamento dinâmico de funcionalidade – Windows principalmente monolítico, além de microkernel para diferentes personalidades do subsistema ● Apple Mac OS X híbrido, em camadas, Aqua UI mais ambiente de programação Cocoa – Abaixo está o kernel que consiste em partes de microkernel Mach e BSD Unix, além de kit de E/S e módulos carregáveis dinamicamente (chamados de extensões de kernel) 45 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Estrutura do Mac OS X 46 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 iOS ● SO móvel da Apple para iPhone, iPad – Estruturado no Mac OS X, funcionalidade adicionada – Não executa aplicativos OS X nativamente ● Também funciona em diferentes arquiteturas de CPU (ARM vs. Intel) – API Cocoa Touch Objective-C para desenvolvimento de aplicativos – Camada de serviços de mídia para gráficos, áudio, vídeo – Os principais serviços fornecem computação em nuvem, bancos de dados – Sistema operacional central, baseado no kernel Mac OS X 47 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Android ● Desenvolvido por Open Handset Alliance (principalmente Google) – Código aberto ● Pilha semelhante ao IOS ● Baseado no kernel Linux, mas modificado – Fornece gerenciamento de processo, memória e driver de dispositivo – Adiciona gerenciamento de energia ● O ambiente de tempo de execução inclui o conjunto principal de bibliotecas e máquina virtual Dalvik – Aplicativos desenvolvidos em Java mais API Android ● Arquivos de classe Java compilados para bytecode Java e então traduzidos para executáveis que são executados no Dalvik VM ● As bibliotecas incluem estruturas para navegador da web (webkit), banco de dados (SQLite), multimídia, libc menor 48 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Arquitetura Android 49 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Depuração do sistema operacional ● Depurar é encontrar e corrigir erros ou bugs ● Os sistemas operacionais geram arquivos de registro contendo informações de erro ● A falha de um aplicativo pode gerar arquivo de despejo de memória capturando a memória do processo ● A falha do sistema operacional pode gerar arquivo de despejo de memória contendo memória kernel ● Além das falhas, o ajuste de desempenho pode otimizar o desempenho do sistema – Às vezes, usando listas de rastreamento de atividades, registradas para análise – A criação de perfil é uma amostragem periódica do ponteiro de instrução para procurar tendências estatísticas Lei de Kernighan: “A depuração é duas vezes mais difícil do que escrever o código em primeiro lugar. Portanto, se você escrever o código da forma mais inteligente possível, você, por definição, não será inteligente o suficiente para depurá-lo. ” 50 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Ajuste de desempenho ● Melhore o desempenho removendo gargalos● O sistema operacional deve fornecer meios de computação e exibição de medidas de comportamento do sistema ● Por exemplo, programa “principal” ou Gerenciador de Tarefas do Windows 51 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 DTrace ● A ferramenta DTrace no Solaris, FreeBSD, Mac OS X permite instrumentação ao vivo em sistemas de produção ● As sondagens são acionadas quando o código é executado em um provedor, capturando dados de estado e enviando-os aos consumidores dessas sondagens ● Exemplo de mudança de chamada do sistema XEventsQueued seguinte da biblioteca libc para o kernel e vice-versa 52 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 ● Código DTrace para registrar a quantidade de tempo que cada processo com UserID 101 está no modo de execução (na CPU) em nanossegundos DTrace 53 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Geração de sistema operacional ● Os sistemas operacionais são projetados para funcionar em qualquer classe de máquinas; o sistema deve ser configurado para cada site de computador específico ● O programa SYSGEN obtém informações sobre a configuração específica do sistema de hardware – Usado para construir kernel compilado específico do sistema ou ajustado pelo sistema – Pode um código geral mais eficiente do que um kernel geral 54 Fundamentos de Sistemas Operacionais 9ª Ed. – Silberschatz, Galvin e Gagne ©2013 Sistema de BOOT ● Quando a energia é inicializada no sistema, a execução começa em um local fixo de memória – Firmware ROM usado para conter o código de inicialização inicial ● O sistema operacional deve ser disponibilizado para o hardware para que o hardware possa iniciá-lo – Pequeno pedaço de código - carregador de bootstrap, armazenado em ROM ou EEPROM localiza o kernel, carrega-o na memória e o inicia – Às vezes, é um processo de duas etapas em que o bloco de boot em um local fixo é carregado pelo código ROM, que carrega o carregador de bootstrap do disco ● Carregador de bootstrap comum, GRUB, permite a seleção de kernel de vários discos, versões, opções de kernel ● O kernel carrega e o sistema está em execução Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54