Buscar

Estrutura do Sistema Operacional


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 54 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 54 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 54 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Mais conteúdos dessa disciplina