Sistemas Operacionais
Estrutura do Sistema Operacional
Estrutura do Sistema Operacional
 Conjunto de rotinas executadas sem ordem
préestabelecida
 Execução sob demanda (eventos
assíncronos)
 Tarefas do próprio SO
 Cada rotina oferece um serviço
 Conjunto das rotinas
Estrutura do Sistema Operacional
O S.O. é estruturado por um conjunto de
rotinas que oferecem serviços aos usuários
do sistema e suas aplicações.
As rotinas de um S.O não possuem um fluxo
de execução sequancial.
Esse conjunto de rotinas é chamado de
kernel (núcleo).
Estrutura do Sistema Operacional
Definição do kernel:
Ele representa a camada de software mais
próxima do hardware, sendo responsável por
gerenciar
os
recursos
do
sistema
computacional como um todo.
Estrutura do Sistema Operacional
kernel
Estrutura do Sistema Operacional
kernel
Estrutura do Sistema Operacional
kernel
Estrutura do Sistema Operacional
Definição do kernel:
Possui o uso
privilegiadas;
exclusivo
de
instruções
Estrutura do Sistema Operacional
funções do kernel:




tratamento de interrupções;
criação e eliminação de processos;
sincronização e comunicação entre processos;
escalonamento e controle dos processos;
 Criação, agendamento e finalização de processos;
 gerência de memória;
 Alocação e liberação de memória;




gerência do sistema de arquivos;
operações de I/O;
contabilização de segurança do sistema.
Operações de entrada e saída com dispositivos
periféricos (discos, interface serial -- mouse, p.ex.,
interface paralela -- impressoras),
Estrutura do Sistema Operacional
System Call’s:
 É o mecanismo usado pelo programa para requisitar
um serviço do sistema operacional, ou mais
especificamente, do kernel do sistema operacional.
 São Funções que um programador pode chamar para
executar os serviços do sistema operacional.
 Interface entre os processos e o SO – Kernel
 Cada serviço do S.O. tem sua rotina (system call)
Estrutura do Sistema Operacional
System Call’s:
 Disponíveis diretamente em linguagem de montagem
 Incorporadas ao compilador nas linguagens de alto
nível
 Chamas feitas diretamente : C, C++
 Passagens de parâmetros:
 Registradores;
 Pilhas do sistemas;
 Memoria;
Estrutura do Sistema Operacional
System Call’s:
Biblioteca (APIs) Dividida em:

Controle de processos (exp: Create process, end, abort, execute)

Manipulação de arquivos (exp: Create file, open, close, read,
write)

Manipulação de sispositivos (exp:request device, read, write)

Manipulação de informação (exp: get time, set time, get file
atributes)

Comunicação (exp:
message, etc)
create
comunication
connection,
send
Estrutura do Sistema Operacional
System Call’s:
Biblioteca (APIs) :
Reduz a dependência entre o sistema
operacional e a aplicação, e aumenta a
"portabilidade", pois pode sofrer alterações
significativas sem quebrar a compatibilidade.
Estrutura do Sistema Operacional
System Call’s:
Aplicação
System Calls
Kernel
HA
RD
WA
R
E
Estrutura do Sistema Operacional
System Call’s:
Estrutura do Sistema Operacional
Grupo das System Call’s:
Gerência de processos



Criação e eliminação de processos;
Alteração das características do processo;
Sincronização e comunicação entre processos.
Estrutura do Sistema Operacional
Grupo das System Call’s:
Gerência de Memória

Alocação e desalocação de memória.
Estrutura do Sistema Operacional
Grupo das System Call’s:
Gerência de I/O


Operações de I/O;
Manipulação de arquivos e diretórios.
Estrutura do Sistema Operacional
Modos de acesso:
Existem certas instruções que não podem ser
colocadas diretamente à disposição das
aplicações, pois a sua utilização indevida
ocasionaria sérios problemas à integridade
do sistema.
Estrutura do Sistema Operacional
System Call’s:
Modos de acesso:



Modo usuário – usado por instruções não-privilegiadas
Modo supervisor ou kernel – usado por instruções
privilegiadas
Qualquer ação que envolva o uso de instruções privilegiadas
deve ser solicitada por intermédio de system calls
Estrutura do Sistema Operacional
Organização do código do SO (Estrutura):




Sistemas Monolíticos
Em Camadas
Maquinas Virtuais
Cliente Servidor
Estrutura do Sistema Operacional
Sistemas Monolíticos
O SO é organizado como uma coleção de
processos
seqüenciais
cooperantes,
que
recebem as solicitações dos usuários (chamadas
de sistema), as executam e devolvem um
resultado.
São os mais comuns de serem encontrados,
podem ser comparados a uma aplicação
formada por vários procedimentos compilados
separadamente e linkados formando um único e
grande executável.
Estrutura do Sistema Operacional
Sistemas Monolíticos
Os Procedimentos não estão estruturados de
uma forma especifica.
É formado por uma coleção de procedimentos,
com interface e funcionalidades bem definidas
Qualquer procedimento pode fazer chamadas a
qualquer procedimento
Conjunto de rotinas que interagem livremente
Estrutura do Sistema Operacional
Sistemas Monolíticos
 Acoplamento forte
 Alto desempenho
 Ruim de manter e alterar o código
Nota: Análogo a aplicação com vários módulos
separados e ligados para formar um executável
 Exp. MS-DOS
Estrutura do Sistema Operacional
Sistemas Camadas
Um sistema em camadas divide o sistema
operacional em camadas sobrepostas, cada
modulo oferece um conjunto de funções que
podem ser utilizadas por outras camadas mas
apenas os módulos superiores podem fazer
referência aos inferiores.
Estrutura do Sistema Operacional
Sistemas Camadas
 Camadas com funções especificas
 Cada camada utiliza os serviços da camada
inferior e fornece serviços a camada superior
 A hierarquia de níveis protege as camadas
internas
 Prejudica a performance do sistema
 Técnicas de programação estruturada e modular
Estrutura do Sistema Operacional
Sistemas Camadas
Tem como vantagem poder isolar algumas
funções além de criar uma hierarquia de níveis
de modos de acesso protegendo as camadas
mais internas.
Nota: Neste tipo de sistema as camadas mais
internas possuem maiores privilégios.
Estrutura do Sistema Operacional
Sistemas Camadas
 Isolamento de funções
 Facilidade de depuração / manutenção
 Hierarquia de níveis
Nota: Isolamento de funções facilita manutenção e
cria uma hierarquia de modos de acesso
Estrutura do Sistema Operacional
Estrutura do Sistema Operacional
Sistemas Cliente-Servidor
A idéia principal do S.O cliente servidor é tornar o seu núcleo
menor e mais simples possível. O sistema é dividido em
processos, sendo cada um responsável por oferecer um
conjunto de serviços(Exp. serviços de arquivo, criação de
processos, de memória, de escalonamento)
Sempre que uma aplicação necessita de um serviço ela solicita
ao processo responsável, neste caso a aplicação que solicita
um serviço é chamada de cliente enquanto o processo que
responde a essa chamada é chamado de servidor.
A função do núcleo do sistema é realizar a comunicação, ou
seja, a troca de mensagens entra o cliente e o servidor.
Estrutura do Sistema Operacional
Sistemas Cliente-Servidor - Características
 Núcleo do SO menor e mais simples
 Serviços disponibilizados por processos
dedicados em modo usuário
 Solicitação de serviços através de menssagens
 Microkernel tem a função de prover a troca de
mensagens entre processos
 SO com maior protabilidade e mais confiavel
 Filosofia de Sistemas Distribuidos
 Arquitetura cliente-servidor
 Processo cliente solicita serviço ao processo
servidor deste serviço
 Apenas o microkernel executa em modo kernel
Estrutura do Sistema Operacional
Sistemas Cliente-Servidor
Como os servidores se comunicam através de
mensagens, não importa se os cliente e
servidores estão sendo processados por um
único processador ou por vários.
Estrutura do Sistema Operacional
em
Modo kernel
ag
ns
me
Modo usuário
Microkernel
Hardware
me
ns
ag
em
Estrutura do Sistema Operacional
Estrutura do Sistema Operacional
Sistemas Cliente-Servidor - Vantagens
 Escalabilidade: não importa se clientes e
servidores são processados em sistemas com
um
único
processador,
com
vários
processadores ou em ambientes de sistemas
distribuídos.
Esta
característica
permite
adicionar servidores conforme o número de
clientes aumenta.
 Isolamento de funções: Maior confiabilidade e
facilidade de depuração.
Estrutura do Sistema Operacional
Sistemas Cliente-Servidor – Desvantagens
 Desempenho: Necessidade de mudança no
modo de acesso a cada comunicação entre
clientes e servidores.
Estrutura do Sistema Operacional
Máquina Virtual
Máquinas virtuais são abstrações construídas
por um monitor de máquinas virtuais, que
distribui os recursos de hardware, permitindo a
existência de vários ambientes de execução.
Estrutura do Sistema Operacional
Máquina Virtual
Modelo de VM cria um nível intermediário entre
hardware e SO denominado Gerência de
Máquinas Virtuais
Estrutura do Sistema Operacional
Máquina Virtual
Formada por recursos virtuais que são mapeados para
recursos reais pelo monitor. Uma máquina com grande
capacidade de memória, disco, etc. pode ser
particionada em várias máquinas virtuais, com menos
recursos que a máquina real.
O acesso a uma página de memória na máquina virtual é
mapeado (traduzido) em um acesso a uma página de
memória real. As instruções da máquina virtual são
traduzidas para instruções da máquina real e
executadas.
Estrutura do Sistema Operacional
Máquina Virtual
Máquina virtual uma simulação exata de um
sistema operacional. Cada usuário executa seus
programas armazena seus dados, etc. sem
interferência e sem interferir com os outros
usuários.
VM
n
VM
2
VM
1
Estrutura do Sistema Operacional
Ap 1
Ap2
Apn
SO1
SO2
SOn
HV1
HV2
HVn
Gerência de Máquinas Virtuais
Hardware
Estrutura do Sistema Operacional
Máquina Virtual Java
Aplicação
Máquina Virtual Java
Sistema Operacional
Hardware
Download

Aula 05_SO