Buscar

Slide 2 Sistemas Operacionais

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 109 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 109 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 109 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

SISTEMAS OPERACIONAIS
Unidade II
Unidade 2 – Tipos, Multiprogramação e Estrutura 
de SO
1.1 e 1.2 - Tipos de SO e suas características.
Prof. Fernando Hämmerli
SISTEMAS OPERACIONAIS
Unidade II
Bibliografia: 
 Básica: 
 MACHADO, F. B.; MAIA, L. P. M. Arquitetura de sistemas operacionais. 5. ed. Rio de Janeiro: LTC, 
2013. 
 SILBERSCHATZ, A. Fundamentos de Sistemas operacionais – Princípios básicos. 1. ed. Rio de 
Janeiro: LTC, 2013. 
 TANEMBAUM, A. S.; BOS, H. Sistemas Operacionais Modernos. 4. ed. São Paulo: Pearson, 2016 2 
 Complementar: 
 DEITEL, H. M.; DEITEL, P. J.; CHOFFNES, D. R. Sistemas Operacionais. 3. ed. São Paulo: Prentice 
Hall, 2005. 
 FLYNN, I. M.; MCHOES, A. M. Introdução aos Sistemas Operacionais. 1. ed. São Paulo: Pioneira 
Thomson Learning, 2002. 
 MACHADO, F. B.; MAIA, L. P. M. Fundamentos de sistemas operacionais. 1. ed. Rio de Janeiro: 
LTC, 2011. 
 MARQUES, J. A.; FERREIRA, P.; RIBEIRO, C.; VEIGA, L.; RODRIGUES, R. Sistemas Operacionais. 1. 
ed. Rio de Janeiro: LTC, 2011. 
 OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas operacionais. 4. ed. Porto Alegre: 
Bookman, 2010. (Livros Didáticos Informática UFRGS, v. 11). 
Unidade II
SISTEMAS OPERACIONAIS
TIPOS DE SISTEMAS OPERACIONAIS
Unidade II
SISTEMAS OPERACIONAISMemória
Principal
Dispositivos
de E/ S
UCP
programa/
tarefa
SISTEMA OPERACIONAL MONOPROGRAMÁVEL/MONOTAREFA
 Somente um programa executado por vez
 Todos os recursos reservados para somente um programa/tarefa
Exemplos:
o IBM-OS
o DEC-system 1
o CP/M
o MS-DOS
Unidade II
SISTEMAS OPERACIONAIS
SISTEMA OPERACIONAL MONOPROGRAMÁVEL/MONOTAREFA
•Recursos da máquinas dedicados exclusivamente a um programa
•Desperdício de tempo da UCP (CPU) durante operações de E/S
•Desperdício de memória, se não totalmente ocupada
Unidade II
SISTEMAS OPERACIONAIS
Memória
Principal
Dispositivos
de E/ S
UCP
programa/
tarefa
programa/
tarefa
programa/
tarefa
programa/
tarefa
programa/
tarefa
SISTEMA OPERACIONAL MULTIPROGRAMÁVEL/MULTITAREFA
Unidade II
SISTEMAS OPERACIONAIS
 Recursos da máquinas compartilhados entre programas
 O uso da UCP é revezado, aumentando seu aproveitamento
 A memória armazena os dados dos diversos programas em execução
SISTEMA OPERACIONAL MULTIPROGRAMÁVEL/MULTITAREFA
Unidade II
SISTEMAS OPERACIONAIS
 Monousuário
 Atende a apenas um usuário
 Computadores Pessoais
 Estações de trabalho
 Multiusuário
 Atende a dois ou mais usuários simultâneamente
 Terminais diretamente conectados ao computador
 Acesso através de rede
 Um sistema operacional pode se comportar de mais uma forma, conforme sua
especificação.
SISTEMA OPERACIONAL MULTIPROGRAMÁVEL/MULTITAREFA
Unidade II
SISTEMAS OPERACIONAIS
TIPOS DE SISTEMAS OPERACIONAIS
Unidade II
SISTEMAS OPERACIONAIS
PROCESSAMENTO EM LOTES (BATCH)
 Não há interração entre o usuário e o sistema durante a execução da tarefa.
 O usuário solicita a execução e aguarda o resultado final do processamento.
 Os dados de entrada (INPUT) do programa são obtidos de unidades de 
armazenamento. (Ex: disco)
 Exemplos:
 Processamento de compiladores
 Back-ups
 Cálculos numéricos
 Simulações
 Renderização de vídeos
Unidade II
SISTEMAS OPERACIONAIS
PROCESSAMENTO EM LOTES (BATCH)
Unidade II
SISTEMAS OPERACIONAIS
PROCESSAMENTO DE TEMPO COMPARTILHADO (TIME-SHARING)
 O SO atribui fatias de tempo para cada programa em execução. 
Esgotado o tempo, o programa é suspenso para dar lugar a outro, sendo
retomado posteriormente.
 Pseudoparalelismo (sensação de programas sendo executados
paralelamente).
 Este procedimento objetiva compartilhar o processador por várias tarefas
de forma concorrente.
 Bom para processamento transacional ou interativo.
 Usado na maioria das aplicações comerciais (bom tempo de resposta e 
baixo custo devido ao compartilhamento de recursos)
Unidade II
SISTEMAS OPERACIONAIS
PROCESSAMENTO DE TEMPO COMPARTILHADO (TIME-SHARING)
Unidade II
SISTEMAS OPERACIONAIS
PROCESSAMENTO DE TEMPO REAL (RTOS)
 Para sistemas onde o tempo de resposta é crítico
 As operações devem ser executadas em tempo inferior a um limite
pré-determinado. Se esse limite é ultrapassado, há uma falha do 
sistema.
 O limite é estabelecido conforme a aplicação do programa.
 A eficiência de um RTOS é dada pelo tempo de resposta e não pelo
volume de dados processados.
 Típico para controle de processos:
 Monitoramento de válvulas de segurança em instalações industriais
 Controle de tráfego aéreo
 Piloto automático
Unidade II
SISTEMAS OPERACIONAIS
PROCESSAMENTO DE TEMPO REAL (RTOS)
 Soft Real-time
 Tempo de resposta é crítico, mas tolera pequenos atrasos (falhas) no 
cumprimento dos prazos.
 Atrasos apenas degradam a qualidade da resposta, mas não
comprometem o sistema.
 Garantia apenas probabilística (ou seja, garante que a maioria das 
operações é excutada no prazo). Percentual pré-definido.
 Exemplos:
 Transmissão/recepção de áudio e vídeo.
 Telefone celular
 Aquisição de imagens
Unidade II
SISTEMAS OPERACIONAIS
PROCESSAMENTO DE TEMPO REAL (RTOS)
 Hard Real-time
 Não admite atrasos!
 Uma operação não cumprida dentro do prazo é uma falha grave e 
pode comprometer todo o sistema.
 O sistema garante determinísticamente que todas as operações serão
executadas dentro do prazo pré-estabelecido.
 Exemplos:
 Piloto automático
 Válvulas do reator de uma usina nuclear
 Equipamentos médicos
Unidade II
SISTEMAS OPERACIONAIS
PROCESSAMENTO DE TEMPO REAL (RTOS)
 Para garantir os objetivos de tempo, o desenvolvimento de um 
RTOS possui uma abordagem diferente da usada nos demais
sistemas multiprogramáveis/multitarefas.
 Muitas técnicas para otimizar uso de memória, CPU e outros 
recursos não podem ser usadas sob pena de comprometerem o 
tempo de resposta do sistema.
Unidade II
SISTEMAS OPERACIONAIS
SISTEMAS COM MÚLTIPLOS PROCESSADORES 
Unidade II
SISTEMAS OPERACIONAIS
SISTEMAS FORTEMENTE ACOPLADOS
 UCP´s próximas
 Memória 
compartilhada
 Elevada largura de 
banda
 Retardo na 
comunicação é baixo
Exemplo: SMP
SISTEMAS OPERACIONAIS
Unidade II
TIPOS DE SISTEMAS OPERACIONAIS
SISTEMAS FRACAMENTE ACOPLADOS
 UCPs distantes
 Largura de banda 
reduzida
 Retardo na 
comunicação 
elevado
Exemplo: 
Multicomputadores
Unidade II
SISTEMAS OPERACIONAIS
SISTEMAS MULTIPROGRAMÁVEIS
Interrupção e Exceção
Unidade II
SISTEMAS OPERACIONAIS
Interrupção e Exceção
 Sinal enviado ao processador que ocasiona um 
desvio forçado no fluxo de execução.
Unidade II
SISTEMAS OPERACIONAIS
1. Após a execução de cada instrução do programa, a UCP verifica 
se houve interrupção. 
Se não houve, a UCP continua processando o programa 
normalmente.
Unidade II
SISTEMAS OPERACIONAIS
2. Se houve interrupção. Dados de registradores (incluíndo o 
contador do programa) são armazenados na pilha de controle.
Unidade II
SISTEMAS OPERACIONAIS
3. A UCP verifica a origem do evento. A ação a ser tomada varia 
conforme quem gerou a interrupção/exceção e qual o seu 
objetivo.
Unidade II
SISTEMAS OPERACIONAIS
4. A UCP carrega o registrador PC com o endereço da rotina 
responsável para tratar a interrupção/exceção recebida. 
Unidade II
SISTEMAS OPERACIONAIS
5. A rotina de tratamento começa a ser executada.
Unidade II
SISTEMAS OPERACIONAIS
6. Ao término da execução da rotina de tratamento, todos os 
registradores são restaurados, incluindo o PC, fazendo a UCP 
retomar o programa que era executado inicialmente.Unidade II
SISTEMAS OPERACIONAIS
Origem de interrupções:
 Hardware
 Software
Unidade II
SISTEMAS OPERACIONAIS
 Origem de interrupções
 Hardware
 Eventos externos ao processador. Assíncrona.
 Exemplo: dispositivos de E/S informando que estão prontos 
para enviar ou receber dados.
 Pressionar de uma tecla no teclado.
 Movimento do mouse.
 Informação recebida pela interface de rede.
 Bloco de dados solicitado ao HD está disponível para 
leitura.
 A rotina de tratamento irá tomar uma ação, dependendo 
da origem da interrupção.
 Enviar os dados para o programa driver da placa de rede
 Enviar os dados para a rotina que trata de entrada do 
teclado.
Unidade II
SISTEMAS OPERACIONAIS
 Software
 Chamada explícita em um programa para provocar o 
desvio da execução.
 Exemplos: 
 Execução de uma sub-rotina temporária.
Unidade II
SISTEMAS OPERACIONAIS
 Interrupção e exceção funcionam de maneira semelhante
 Exceção 
 O termo é usado quando o evento gerador da interrupção 
decorre de falha grave de execução.
 Exemplos
 Divisão por zero
 Instrução inválida (Invalid OpCode)
 Proteção de memória
 Erro de pilha
 Overflow
 Evento síncrono
 Sua ocorrência é resultado direto do programa sendo 
executado.
 Gerada automaticamente após a falha.
Unidade II
SISTEMAS OPERACIONAIS
 O sistema operacional possui uma rotina especial para 
tratamento de exceções, conhecida como Exception handler.
 Alguns fabricantes não fazem distinção entre interrupção e 
exceção.
 Alguns fabricantes usam nomes que variam conforme a origem 
da interrupção.
Unidade II
SISTEMAS OPERACIONAIS
 Tratamento de Interrupções
 O correto funcionamento do sistema exige que a interrupção 
seja tratada pela interrupção adequada.
 Como a UCP sabe o endereço da rotina de tratamento de 
uma interrupção?
 Vetor de interrupção – Tabela que contém o endereço 
das rotinas de tratamento para cada interrupção que 
pode ser recebida.
 Registrador de Status – Armazena o tipo do evento 
ocorrido. Existe uma única rotina de tratamento, que 
consulta esse registrador para definir qual ação a ser 
tomada.
A técnica adotada varia conforme o processador (ou sua família).
Unidade II
SISTEMAS OPERACIONAIS
 Vetor de interrupção
 Tabela que contém o endereço das rotinas de tratamento 
para cada interrupção que pode ser recebida.
 Técnica usada pelas UCP da família 8086.
Tipo da
Interrupção
Endereço da rotina 
de tratamento
0 0x00AA
1 0x00BB
2 0x02CC
3 0x030D
...
256 0x0F1F
Memória
Unidade II
SISTEMAS OPERACIONAIS
 Registrador de Status
 Armazena o tipo do evento ocorrido. 
 Existe uma única rotina de tratamento, que consulta esse 
registrador para definir qual ação a ser tomada.
Unidade II
SISTEMAS OPERACIONAIS
 Como as interrupções podem acontecer a qualquer momento, 
como tratar uma interrupção que ocorre durante o tratamento de 
outra interrupção?
Unidade II
SISTEMAS OPERACIONAIS
 Como as interrupções podem acontecer a qualquer momento, 
como tratar uma interrupção que ocorre durante o tratamento de 
outra interrupção?
 Ignorar a interrupção.
A rotina de tratamento inibe o tratamento de interrupções 
Interrupções mascaráveis.
 Nem todos os processadores permitem ignorar uma 
interrupção.
 Tratamento de múltiplas interrupções por prioridade
 A ordem de tratamento é definida pela importância das 
interrupções.
 Controlador de pedidos de interrupção
 Dispositivo responsável por avaliar as interrupções e 
prioridade de atendimento.
Unidade II
SISTEMAS OPERACIONAIS
 Interrupções
 Mecanismo chave para a concorrência nos computadores.
 Permitiu a criação de sistemas multi-programáveis.
Unidade II
SISTEMAS OPERACIONAIS
SISTEMAS MULTIPROGRAMÁVEIS
Operações de Entrada/Saída
Unidade II
SISTEMAS OPERACIONAIS
 Primeiros computadores
 Instruções de Entrada/Saída para comunicação entre o 
processador e dispositivos.
 Exigia conhecimento de informações específicas do dispositivo 
periférico.
 Trilha e setor de um disco, de onde seria lido um dado.
 Forte dependência entre UCP e o dispositivo.
Unidade II
SISTEMAS OPERACIONAIS
 Controlador de interface
 UCP se comunica com o controlador.
 Simplifica as operações de E/S.
 Não exige conhecimento de detalhes específicos.
 Facilita o desenvolvimento de novos dispositivos.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 E/S controlada por programa
1. A UCP envia uma requisição de leitura/escrita de dados
2. A UCP aguarda o término da operação
UCP permanentemente ocupada durante a operação
Loop
Terminou?
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 E/S controlada por programa
Problema:
Como operações de E/S são muito mais lentas que da UCP, há 
grande desperdício da UCP.
Loop
Terminou?
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Polling
• Evolução, onde a UCP fica livre após enviar a requisição 
de E/S.
• A UCP testa em intervalos de tempo se a operação está 
concluída.
• Permitiu a criação de sistemas multiprogramáveis.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Polling
 Difícil prever com precisão o instante do término da 
operação.
 Problemático se o número de dispositivos é grande 
Muito tempo (operações de UCP) dedicado para testar os 
dispositivos de E/S.
...
...
...
Terminou?
...
...
...
Terminou?
...
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 E/S controlada por interrupção
• A UCP fica livre após enviar a requisição de E/S.
• O controlador avisa o término da operação de E/S por meio 
de interrupção.
Requisição
Interrupção
(Terminou!)
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 E/S controlada por interrupção
• Exemplo: Operação de leitura
• Ao término da execução, os dados lidos estão 
armazenados em memória própria do controlador.
• O controlador envia a interrupção.
Requisição
Interrupção
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 E/S controlada por interrupção
• Exemplo: Operação de leitura
1. A UCP faz a leitura dos dados da memória do 
controlador.
2. Dados transferidos para a memória principal.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 E/S controlada por interrupção
• Problema: Grande volume de dados  Tempo elevado para 
transferir os dados.
• Bom para unidades de disco
• Ruim para rede – taxa elevada de quadros recebidos, pode 
gerar mais interrupções que a UCP pode gerenciar.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 DMA – Direct Memory Access
 Permite a transferência de bloco de dados diretamente 
entre o controlador e a memória principal, sem a 
intervenção da UCP. 
1. Requisição
3. Interrupção
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 DMA – Direct Memory Access
 1. A UCP envia a requisição ao controlador.
Indica a posição de memória para ler/escrever os dados e o 
tamanho do bloco de dados.
1. Requisição
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 DMA – Direct Memory Access
 2. O controlador lê/escreve os dados na área de memória 
indicada.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 DMA – Direct Memory Access
 3. O controlador gera uma interrupção informando o término 
da operação.
3. Interrupção
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 DMA – Direct Memory Access
 A UCP só é acionada no início e término da operação.
1. Requisição
3. Interrupção
Unidade II
SISTEMAS OPERACIONAIS
 Operações deE/S
 DMA – Direct Memory Access
 Durante a operação de DMA, o controle do barramento é 
assumido pelo controlador do dispositivo.
 A UCP interrompe as rotinas de acesso ao barramento.
 A UCP pode realizar tarefas que não exijam acesso ao 
barramento. Por usar, por exemplo, memória cache.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Buffering
 Durante o DMA a UCP fica impedida de acessar o 
barramento – não lê dados da memória, por exemplo.
 Como o tempo de E/S é muito superior ao ciclo da UCP, esta 
poderá permanecer pouco (ou nada) utilizada até o término 
da DMA.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Buffering
 Esta técnica permite reduzir os impactos causados pela 
discrepância de velocidade entre UCP e dispositivos de E/S.
 Os dados lidos são transferidos direto para uma área da 
memória principal, chamada buffer.
 O controlador fica livre para continuar trabalhando.
 A UCP fica livre para acessar o buffer e processar os dados –
ou transferi-los para outra área da memória.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Buffering
 A técnica serve para leitura ou escrita de dados.
 UCP e controlador de dispositivo de E/S permanecem mais 
tempo em atividade.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Buffering
 A unidade de transferência é chamada de Registro.
 O Buffer deve ter espaço para acomodar diversos registros, 
de forma a sempre haver registros:
 Lidos e não processados  Operação de leitura
 Processados e não gravados  Operação de gravação
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Spooling
 Utiliza área de memória secundária (geralmente disco) para 
armazenar dados que serão posteriormente enviados a um 
dispositivo de E/S.
 O programa fica liberado imediatamente após o 
processamento
 Exemplo: Spool de impressão
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Spooling
 Ideal para dispositivos que não permitem acesso 
concorrente.
 O sistema operacional se encarrega de direcionar o conteúdo 
de cada trabalho para o dispositivo.
 O SO pode mudar a ordem em que o conteúdo em impresso, 
conforme critérios próprios.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Reentrância
 É comum em sistemas multiprogramáveis, um mesmo 
programa aberto simultaneamente (por um mais usuários).
 Se cada um deles ocupar a memória com seu código 
executável, haverá varias cópias iguais na memória 
desperdício.
M
e
m
ó
ri
a
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Reentrância
 Capacidade de uma área de código estática comum ser 
compartilhada entre diversos usuários/programas.
 Para evitar desperdícios, se um usuário invoca um código 
que já existe na memória, o SO faz um novo 
compartilhamento dessa área.
 Porém, cada usuário/programa em execução deve possuir 
uma área de dados distinta, para a sua tarefa.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Reentrância
 Cada usuário/programa em 
execução possui uma área de 
dados distinta, para a sua 
tarefa.
 Uma única cópia do código 
executável, estático e comum, 
está presente na memória.
 A reentrância é implementada 
pelo desenvolvedor do 
programa, e deve ser 
suportada pelo sistema 
operacional.
Unidade II
SISTEMAS OPERACIONAIS
 Operações de E/S
 Reentrância
 Aumento do desempenho. Ao 
detectar que o programa 
chamado já está disponível, o 
SO não precisa buscar os 
dados do executável no disco.
 Muito usado por 
compiladores, editores de 
texto, utilitários do SO.
Unidade II
SISTEMAS OPERACIONAIS
Exemplo:
 Código = 100 KB
 Área de dados = 40 KB
 3 Usuários
 Sem reentrância
Memória usada = 3 x (100 KB + 40 KB)
= 3 x 140 KB = 420 KB
 Com reentrância
Memória usada = (1 x 100 KB) + (3 x 40 KB)
= 220 KB
 Economia = 420 KB – 220 KB = 200 KB
Unidade II
SISTEMAS OPERACIONAIS
2.3 - Estrutura do Sistema Operacional
Núcleo do sistema
Unidade II
SISTEMAS OPERACIONAIS
 Um Sistema operacional é 
formado por um conjunto de 
rotinas que oferecem 
serviços aos usuários, às 
suas aplicações e também 
ao próprio sistema.
 Esse conjunto de rotinas é 
denominado, núcleo do 
sistema, ou kernel.
Unidade II
SISTEMAS OPERACIONAIS
 A maioria dos sistemas 
operacionais é fornecida 
acompanhada de utilitários e 
linguagens de comandos. 
Esses componente não
fazem parte do núcleo.
 Shell, prompt de comando
 Ambiente gráfico
 Compiladores
 Notepad, paciência
Unidade II
SISTEMAS OPERACIONAIS
 Principais funções do núcleo
 Tratamento de interrupções e exceções
 Gerência de processos
 Criação e eliminação
 Comunicação entre processos
 Escalonamento
 Gerência de memória
 Gerência do sistema de arquivos
Unidade II
SISTEMAS OPERACIONAIS
 Principais funções do núcleo
 Gerência dos dispositivos de E/S
 Suporte a redes locais e distribuídas
 Contabilização do uso do sistema
 Auditoria e segurança do sistema
Unidade II
SISTEMAS OPERACIONAIS
 Segurança
 O que impede um 
programa em 
execução de 
ler/alterar dados de 
outros programas?
 ou de alterar o 
próprio núcleo do 
sistema 
operacional?
ESCALONADOR
Unidade II
SISTEMAS OPERACIONAIS
 Segurança
 O que impede um programa de monopolizar o 
processador?
ESCALONADOR
Unidade II
SISTEMAS OPERACIONAIS
 Segurança
 O que impede o programa Y de ler dados solicitados ao 
disco pelo programa X ?
Unidade II
SISTEMAS OPERACIONAIS
 Segurança
 Uma das principais características da multiprogramação é 
permitir que diversos programas compartilhem os recursos 
do computador:
• Processador
• Memória
• Discos
• Rede
• Impressoras, etc
 O sistema operacional deve viabilizar a concorrência e 
proteger-se contra a violação de suas regras.
Unidade II
SISTEMAS OPERACIONAIS
 Modos de acesso
 Os processadores fornecem dois métodos de acesso
 Modo Kernel
 Modo Usuário
Unidade II
SISTEMAS OPERACIONAIS
 Modos de acesso
 Modo Kernel
 Permite ao programa acesso ao conjunto total de instruções do 
processador.
 Modo Usuário
 Acesso a um número reduzido de instruções, classificadas como 
não-privilegiadas.
 Por exemplo, instruções de E/S não são permitidas.
 Se um programa tenta usar uma instrução não permitida, o próprio 
processador a recusa e gera uma exceção.
 Acesso não permitido a áreas de memória de outros programas.
Unidade II
SISTEMAS OPERACIONAIS
 Modos de acesso
Instruções só disponíveis 
em modo Kernel
(privilegiadas)
Subconjunto de instruções 
disponíveis em modo usuário
Conjunto de 
instruções da CPU
Unidade II
SISTEMAS OPERACIONAIS
 Modos de acesso
As rotinas do 
sistema operacional
são executadas em 
modo kernel.
Os demais
programas são 
executados em 
modo usuário.
Unidade II
SISTEMAS OPERACIONAIS
Estrutura do Sistema Operacional
Chamadas de Sistema (System Calls)
Unidade II
SISTEMAS OPERACIONAIS
 Como um 
aplicativo pode 
acessar dados em 
um disco ?
 Como um 
aplicativo pode 
enviar/receber 
dados pela rede ?
Unidade II
SISTEMAS OPERACIONAIS
 Chamadas de sistema
 Um aplicativo pode 
invocar uma rotina do 
S.O. através de uma 
chamada de sistema.
 Ao receber uma 
chamada de sistema, o 
processador é colocado 
em modo kernel e é 
iniciada a execução da 
rotina desejada.
Unidade II
SISTEMAS OPERACIONAIS
 Chamadas de sistema
Unidade II
SISTEMAS OPERACIONAIS
 Chamadas desistema
 Exemplos:
 Gerência de processos e threads
 Gerência de memória
 Gerência do sistema de arquivos
 Gerência de dispositivos
Unidade II
SISTEMAS OPERACIONAIS
 Chamadas de sistema
 Exemplos:
 Gerência de processos e threads
 Criação e eliminação de processos e threads
 Alteração de características de processos
 Sincronização e comunicação entre processos
 Obtenção de informações sobre processos
Unidade II
SISTEMAS OPERACIONAIS
 Chamadas de sistema
 Exemplos:
 Gerência de memória
 Alocação e liberação de memória
 Gerência do sistema de arquivos
 Criar/eliminar arquivos/diretórios
 Alterar características de arquivos/diretórios
 Abrir/fechar arquivos
 Ler/gravar em arquivos
 Obter informações de arquivos/diretórios
Unidade II
SISTEMAS OPERACIONAIS
 Chamadas de sistema
 Exemplo simplificado do funcionamento de uma chamada de sistema: 
Um programa utiliza uma chamada de sistema para ler o conteúdo de 
um arquivo.
O usuário pode ler esse arquivo? 
(permissão)
Localização física do arquivo no 
disco (trilhas, setores, discos)
Requisição ao 
driver do 
dispositivo
Comandos ao 
controlador do 
dispositivo
O arquivo existe?
Unidade II
SISTEMAS OPERACIONAIS
 Chamadas de sistema
 Cada sistema operacional possui seu conjunto próprio de 
chamadas de sistema, com nomes, formas de ativação e 
parâmetros específicos.
 Uma aplicação desenvolvida para um sistema não pode 
ser portada diretamente para outro, exigindo correções.
 Padrão POSIX, estabelece uma biblioteca-padrão, 
visando permitir portabilidade entre sistemas.
 Há sistemas 100% compatíveis com o POSIX e outros 
apenas parcialmente compatíveis.
Unidade II
SISTEMAS OPERACIONAIS
 Chamadas de sistema
 UNIX
 Cada chamada, geralmente, possui um procedimento 
próprio para invocá-la.
 Cerca de 190 chamadas
 Windows
 Por meio de APIs
 Nem toda chamada de API resulta em chamada de 
sistema (modo kernel). 
Unidade II
SISTEMAS OPERACIONAIS
 Chamadas de sistema
Unidade II
SISTEMAS OPERACIONAIS
 A biblioteca faz a ponte entre a aplicação e a chamada ao 
kernel do sistema operacional.
 Exemplos:
Linux  GNU C Library (glibc)
Windows  Native API / Windows API
 O uso da biblioteca não causa a troca do modo de 
operação da CPU para kernel.
 Na biblioteca há instruções em assembly para chamar as 
rotinas do núcleo – e trocar o modo de operação da CPU.
Unidade II
SISTEMAS OPERACIONAIS
 Exemplo. SO: Linux
#include <syscall.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
int main(void) {
long ID1, ID2;
/*-----------------------------*/
/* direct system call */
/* SYS_getpid (func no. is 20) */
/*-----------------------------*/
ID1 = syscall(SYS_getpid);
printf ("syscall(SYS_getpid)=%ld\n", ID1);
/*-----------------------------*/
/* "libc" wrapped system call */
/* SYS_getpid (Func No. is 20) */
/*-----------------------------*/
ID2 = getpid();
printf ("getpid()=%ld\n", ID2);
return(0);
}
Unidade II
SISTEMAS OPERACIONAIS
...
movl %edx,(%esp) 
movl %eax,4(%esp) 
movl $PROT_READ,8(%esp) 
movl $MAP_SHARED,12(%esp) 
movl $fd,%ebx
...
movl %eax,20(%esp)
int $0x80 
movl $mappedptr,%ebx
save ptr movl %eax,(%ebx)
...
 Trecho em assembly no código de uma biblioteca
Interrupção por 
software
Unidade II
SISTEMAS OPERACIONAIS
 Exemplos: Windows Unix
Criar um processo CreateProcess() fork()
Encerrar um processo ExitProcess() exit()
Criar um arquivo CreateFile() open()
Ler de um arquivo ReadFile() read()
Criar um canal ‘pipe’ CreatePipe() pipe()
Unidade II
SISTEMAS OPERACIONAIS
 Como uma chamada de sistema é invocada?
 Como a CPU alterna para o modo kernel?
Unidade II
SISTEMAS OPERACIONAIS
Unidade II
SISTEMAS OPERACIONAIS
SYSENTER e SYSEXIT  Intel
SYSCALL e SYSRET  AMD
 Interrupções são lentas.
 À medida que as CPUs ganhavam desempenho, foi
preciso pensar em alternativas.
Unidade II
SISTEMAS OPERACIONAIS
SYSENTER e SYSEXIT  Intel
SYSCALL e SYSRET  AMD
 Oferecem o mesmo efeito das interrupções:
 Invoca rotina do sistema.
 Transfere o modo da CPU para Kernel.
 Porém, são bem mais rápidas que as interrupções.
 Os sistemas ainda devem suportar o uso das interrupções 
para manter compatibilidade com programas antigos.
SISTEMAS OPERACIONAIS
Unidade II
Arquiteturas
 Monolítico
 Em camadas
 Microkernel
SISTEMAS OPERACIONAIS
Unidade II
Monolítico
 O sistema operacional é escrito como uma coleção de rotinas, 
agrupadas em um mesmo programa.
 O sistema operacional executa a partir desse programa único, com CPU 
em modo kernel.
 Uma rotina podem invocar qualquer uma das demais para obter algum 
serviço esperado.
SISTEMAS OPERACIONAIS
Unidade II
Autor: conan @ English Wikipedia / Fonte: http://www.makelinux.net/kernel_map
SISTEMAS OPERACIONAIS
Unidade II
Monolítico
 Menor organização
 Depuração mais complexa
 Maior vulnerabilidade
 Todas as rotinas executam em modo Kernel
 Maior eficiência
SISTEMAS OPERACIONAIS
Unidade II
Em camadas
 Distribuição hierárquica de 
tarefas.
 Uma camada presta serviço 
somente para as camadas acima.
Modelo: THE, Dijkstra (1968)
SISTEMAS OPERACIONAIS
Unidade II
 Maior escalabilidade e 
modularidade.
 Permite isolamento de código, 
facilitando desenvolvimento e 
depuração.
 Menor desempenho.
 Maior quantidade de 
chamadas por operação.
SISTEMAS OPERACIONAIS
Unidade II
Microkernel
 Busca reduzir o tamanho do kernel e deixá-lo o mais simples 
possível.
 O kernel é responsável somente por operações essenciais.
 Gerência de processos, comunicação entre processos, 
gerência de memória e CPU...
 As demais operações são realizadas por serviços/processos 
em modo usuário.
SISTEMAS OPERACIONAIS
Unidade II
Modo Kernel
Modo Usuário
...
...
...
Serviços
Drivers
Aplicativos P
ro
c
e
s
s
o
s
SISTEMAS OPERACIONAIS
Unidade II
Microkernel
 Kernel mais simples – menor quantidade de bugs.
 Modularidade e portabilidade.
 Os servidores executam em modo usuário.
 Menor desempenho.
 Complexidade de implementação.
Unidade II
SISTEMAS OPERACIONAIS
 Referência e imagens:
Arquitetura de Sistemas Operacionais, Machado e Maia, 5ª ed.
Editora LTC.

Outros materiais