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.