Você está na página 1de 24

Estrutura dos Sistemas Operacionais

Prof. Andres J. Porfirio

Universidade Estadual do Centro Oeste


Sumrio
Introduo
Conceitos bsicos sobre chamadas de sistema
Conceitos bsicos sobre modos de acesso
Arquiteturas dos Sistemas Operacionais
Monolticos
Hierrquico ou Em Camadas
Cliente Servidor
Intrduo
A forma de estruturao dos sistemas
operacionais tm evoludo na tentativa de
encontrar a estrutura mais apropriada;
Um sistema operacional no executado
como uma aplicao seqencial (incio, meio
e fim);
As rotinas do sistema so executadas sem uma
ordem pr-definida, baseada em eventos no
associados ao tempo (eventos assncronos).
Intrduo
O sistema operacional formado por um
conjunto de rotinas (procedimentos) que
oferecem servios aos usurios do sistema e
suas aplicaes.
Esse conjunto de rotinas chamado ncleo do
sistema ou kernel;
Intrduo
As principais funes do ncleo so:
Criao e eliminao de processos;
Sincronizao e comunicao entre processos;
Escalonamento e controle dos processos;
Gerncia de memria;
Gerncia do sistema de arquivos;
Operaes de entrada e sada;
Segurana do sistema.
Intrduo
A estrutura dos SOs e a maneira como o
cdigo do sistema organizado e o inter-
relacionamento entre seus diversos
componentes pode variar conforme o
projeto.
Chamadas de Sistema
Constituem a interface entre programas
aplicativos e o sistema operacional:
Chamadas de sistema so a porta de entrada para
se ter acesso ao ncleo do SO.
Para o usurio solicitar algum servio do
sistema, este deve realizar uma chamada a
uma de suas rotinas (ou servios) atravs de
chamadas de sistema (systems calls);
Chamadas de Sistema
Para cada servio existe uma system call
associada;
Cada sistema operacional tem seu prprio
conjunto (biblioteca) de chamadas, com
nomes, parmetros e formas de ativao
especficas.
Chamadas de Sistema
As chamadas de sistema podem ser divididas
de acordo com as suas funes:
Gerencia de processos:
Criao e eliminao de processos (FORK, WAIT, EXEC,
EXIT, KILL, SIGNAL);
Alterao das caractersticas do processo;
Sincronizao e comunicao entre processos.
Gerencia de memria:
Alocao e desalocao de memria.
Gerencia de entrada/sada:
Operaes de entrada e sada.
Gerencia do sistema de arquivos:
Manipulao de arquivos e diretrios (OPEN, CLOSE, READ,
WRITE, CREATE, ETC).
Os alunos devem
ler o exemplo
Chamadas de Sistema e explic-lo

Exemplo (ler dados de um arquivo previamente aberto):


1. No nvel usurio, a aplicao invoca a funo read(fd, &buffer, bytes) da
biblioteca de sistema (no Linux a biblioteca GNU C Library, ou glibc).
2. A funo read preenche uma rea de memria com os parmetros recebidos e
escreve o endereo dessa rea em um registrador da CPU. Em outro
registrador, ela escreve o cdigo da chamada de sistema desejada (no caso do
Linux, seria 03h para a syscall read).
3. A funo read invoca uma interrupo de software (no caso do Linux, sempre
invocada a interrupo 80h).
4. O processador comuta para o nvel privilegiado (kernel level) e transfere o
controle para a rotina apontada pela entrada 80h do vetor de interrupes.
5. A rotina obtm o endereo dos parmetros, verifica a validade de cada um deles
e realiza (ou agenda) a operao desejada pela aplicao.
6. Ao final da execuo da rotina, eventuais valores de retorno so escritos na rea
de memria da aplicao e o processamento retorna a funo read, em modo
usurio.
7. A funo read finaliza sua execuo e retorna o controle a aplicao.
8. Alternativamente, a rotina de tratamento da interrupo de software pode passar o
controle para a gerencia de atividades ao invs de retornar diretamente da
interrupo de software.
9. Na sequncia, a gerencia de atividades pode devolver o controle a outra aplicao
que tambm esteja aguardando o retorno de uma interrupo de software.
Chamadas de Sistema
Imagem do exemplo anterior:
Chamadas de Sistema
A maioria dos sistemas operacionais
implementa centenas ou mesmo milhares de
chamadas de sistema, para as mais diversas
finalidades;
O conjunto de chamadas de sistema oferecidas
por um ncleo define a API (Application
Programming Interface) desse sistema
operacional;
Exemplos de APIs bem conhecidas so a
Win32 (Windows) e Posix (Unix);
Modos de Acesso
O Modo de Acesso um mecanismo para
impedir a ocorrncia de problemas de
segurana e violao do sistema;
As Chamadas ao Sistema esto relacionadas
aos Modos de Acesso;
Existem certas instrues que no podem ser
colocadas diretamente disposio das
aplicaes, pois sua utilizao indevida
ocasionaria srios problemas integridade do
sistema.
Modos de Acesso
As instrues que tm o poder de comprometer
o sistema so conhecidas como instrues
privilegiadas;
As demais instrues so denominadas no
privilegiadas;
Modos de Acesso
Existem basicamente dois modos de acesso
implementados pelos sistemas:
Modo usurio: modo restrito execuo apenas
de instrues no privilegiadas;
Modo Kernel (Supervisor ou Ncle): A aplicao
tem acesso total s instrues
Diferentes aplicaes podem possuir diferentes
modos de acesso;
O ncleo do SO executado sempre em modo
Kernel;
Arquiteturas dos SOs
As arquiteturas dos sistemas operacionais
podem ser divididas em:
Monolticos
Hierrquicos ou Em Camadas
Cliente Servidor
Arquiteturas dos SOs
Monolticos:
O SO organizado como uma coleo de
processos seqenciais que recebem as
solicitaes dos usurios (chamadas de sistema),
as executam e devolvem um resultado;
a tcnica mais utilizada, porm a mais
confusa, pois no tem uma estrutura bem definida;
Cada processo pode chamar qualquer um dos
demais quando necessrio;
Esta estrutura pode ser comparada a um programa
formado por vrias rotinas que so compiladas
separadamente e linkadas, formando um grande e
nico programa executvel.
Arquiteturas dos SOs
Monolticos:
Arquiteturas dos SOs
Hierrquico ou Em Camadas:
Existe uma estrutura bem definida, onde cada
camada executa as funes destinadas a ela.
Esta abordagem organizada sob a forma de um
conjunto de processos cooperantes, cada um
executando uma funo bem definida.
Cada programa de usurio, driver de perifrico,
gerncia de memria, escalonamento, etc,
executado por um processo;
Arquiteturas dos SOs
Hierrquico ou Em Camadas:
A vantagem da estruturao em camadas isolar
as funes do SO, facilitando sua alterao e
depurao, alm de criar uma hierarquia de nveis
de modos de acesso de forma proteger as
camadas mais internas.

O primeiro sistema construdo em


camadas foi o THE, por Dijkstra
em 1968
Arquiteturas dos SOs
Cliente-Servidor:
Tambm conhecido como microkernel. Neste
modelo os procedimentos so divididos em duas
partes: o processo cliente e o processo servidor.
Os Clientes (programas de aplicao) solicitam os
servios ao SO (Microkernel) que os encaminha
aos servidores.
O Microkernel recebe do servidor o resultado e o
transmite ao cliente.
funo do ncleo do sistema realizar a
comunicao, ou seja, troca de mensagens entre
o cliente e o servidor.
Arquiteturas dos SOs
Cliente-Servidor:
Esta ser uma tendncia de SOs modernos: tornar
o ncleo do sistema operacional o menor e mais
simples possvel.
Apesar de todas as vantagens deste modelo, sua
implementao, na prtica, muito difcil devido
a certas funes do SO exigirem acesso direto ao
hardware, como operaes de entrada e sada;
Na realidade o que realmente implementado
uma combinao do modelo de camadas com o
modelo cliente-servidor.
Como exemplos de SO Cliente-Servidor pode-se
citar o Minix, o Windows NT.
Arquiteturas dos SOs
Cliente-Servidor:
Bibliografia
MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas
Operacionais, 3 Ed. LTC Livros Tcnicos Cientficos, 2002.
TANEMBAUM, A. S. Sistemas Operacionais Modernos, 2a Ed.,
Prentice Hall, 2003.
MAZIERO, C. A. Sistemas Operacionais I - Conceitos
Bsicos. PPGIA PUCPR. Disponvel em http://www.ppgia.pucpr.br/
maziero.