Você está na página 1de 7

Estrutura do Sistema Operacional O Sistema Operacional formado por um conjunto de rotinas que oferecem servios aos usurios, s suas

s aplicaes, e tambm ao prprio sistema. Esse conjunto de rotinas denominado ncleo do sistema ou kernel. Aplicaes

Utilitrios

Ncleo do Sistema Operacional Hardware

Sistema computacional As principais funes do ncleo encontradas na maioria dos sistemas esto listadas abaixo: Tratamento de interrupes e excees; Criao e eliminao de processos e threads; Sincronizao e comunicao entre processos e threads; Escalonamento e controle dos processos e threads; Gerncias de memria; Gerncia do sistema de arquivos; Gerncia de dispositivos de E/S; Suporte a redes locais e distriudas; Contabilizao do uso do sistema; Auditoria e segurana do sistema.

A estrutura do sistema operacional, ou seja, a maneira como o cdigo do sistema organizado e o inter-relacionamento entre seus diversos componentes, pode variar conforme a concepo do projeto.

System Calls As system calls podem ser entendidas como uma porta de entrada para o acesso ao ncleo do sistema operacional e a seus servios. Sempre que um usurio ou aplicao

desejar algum servio do sistema, realizada uma chamada a uma de suas rotinas atravs da uma system call (chamada ao sistema). O termo system call tipicamente utilizado em sistemas Unix, porm em outros sistemas o mesmo conceito apresentado com diferentes nomes, como system services no OpenVMS e Application Program Interface (API) no Windows da Microsoft. Para cada servio disponvel existe uma system call associada e cada sistema operacional tem seu prprio conjunto de chamadas, com nomes, parmetros e formas de ativao especficos.

System Call Aplicao Biblioteca

Ncleo do Sistema Operacional Hardware

Uma tentativa de criar uma biblioteca de chamadas padronizadas foi proposta pelos institutos ISSO e IEEE. O padro POSIX (Portable Operating System Interface for Unix), permitiu que um aplicao desenvolvida seguindo este conjunto de chamadas pudesse ser executada em qualquer sistema operacional que oferecesse suporte ao padro. As system calls podem ser dividias por grupos de funes: Funes System calls Criao e eliminao de processos e threads Alterao das caractersticas de processos e threads Sincronizao e comunicao entre processos e threads Obteno de informaes sobre processos e threads Alocao e desalocao de memria Criao e eliminao de arquivos e diretrios Alterao das caractersticas de arquivos e diretrios Leitura e gravao em arquivos Obteno de informaes sobre arquivos e diretrios Alocao e desalocao de dispositivos Operaes de entrada/sada em dispositivos Obteno de informaes sobre dispositivos

Gerencia de processos e threads

Gerncia de memria

Gerncia do sistema de arquivos

Gerncia de dispositivos

Existem certas instrues que s podem ser executadas pelo sistema operacional ou sob sua superviso, impedindo, assim, a ocorrncia de problemas de segurana e integridade do sistema. As instrues que tm o poder de comprometer o sistema so

conhecidas como instrues privilegiadas, enquanto as instrues no-privilegiadas so as que no oferecem risco ao sistema. Para que uma aplicao possa executar uma instruo privilegiada, necessrio que no processador seja implementado o mecanismo de proteo conhecido como modos de acesso. Existem basicamente, dois modos de acesso: modo usurio e modo kernel. Quando o processador trabalha no modo usurio, uma aplicao s pode executar instrues noprivilegiadas, tendo acesso a um nmero reduzido de instrues, enquanto no modo kernel ou supervisor a aplicao pode ter acesso ao conjunto total de instrues do processador. O modo de acesso de uma aplicao determinado por um conjunto de bits, localizado no registrador de status do processador, ou PSW, que indica o modo de acesso acorrente. Atravs desse registrador, o hardware verifica se a instruo pode ou no ser executada pela aplicao. Sempre que uma aplicao necessitar executar uma instruo privilegiada, a solicitao deve ser realizada atravs de uma chamada a uma system call, que altera o modo de acesso do processador do modo usurio para o modo kernel. Ao trmino da execuo da rotina do sistema, o modo de acesso retorna para o modo usurio. Caso uma aplicao tente executar uma instruo privilegiada diretamente em modo usurio, o processador sinalizar um erro, uma exceo gerada e a execuo do programa interrompida. Programa de usurio Salva contexto dos registradores Altera modo de processador para kernel

Rotina de sistema

Altera modo de processador para usurio Restaura o contexto dos registradores Chamada a uma rotina do sistema

Arquitetura Monoltica Pode ser comparada com uma aplicao formada por vrios mdulos que so compilados separadamente e depois linkados, formando um grande e nico programa executvel, onde os mdulos podem interagir livremente. Os primeiros sistemas operacionais foram desenvolvidos com base neste modelo, o que tornava seu

desenvolvimento e, principalmente, sua manuteno bastante difceis. Devido a sua simplicidade e bom desempenho, a estrutura monoltica foi adotada no projeto do MS-DOS e nos primeiros sistemas Unix.

Aplicao Modo usurio Modo kernel System Call

Aplicao

Hardware Arquitetura monoltica

Arquitetura de Camadas O sistema dividido em nveis sobrepostos. Cada camada oferece um conjunto de funes que podem ser utilizadas apenas pelas camadas superiores. O primeiro sistema com base nesta abordagem foi o sistema THE (Technische Hogeschool Eindhoven), construdo por Dijkstra, na Holanda em 1968, e que utilizava seis camadas. Atualmente, a maioria dos sistemas comerciais utiliza o modelo de duas camadas. A maioria das verses do Unix e do Windows 2000 esto baseados neste modelo.

Kernel Executivo Supervisor

Usurio

Mquina Virtual O modelo de mquina virtual, ou virtual machine (VM), cria um nvel intermedirio entre o hardware e o sistema operacional, denominado gerncia de mquinas virtuais. Este nvel cria diversas mquinas virtuais independentes, onde cada uma oferece uma cpia virtual do hardware, incluindo os modos de acesso, interrupes, dispositivos de E/S etc. Alm de permitir a convivncia de sistemas operacionais diferentes no mesmo computador, este modelo cria o isolamento total entre cada VM, oferecendo grande segurana para cada mquina virtual. Outro exemplo de utilizao desta arquitetura ocorre na linguagem Java, desenvolvida pela Sun Microsystems. Para se executar um programa em Java necessrio uma mquina virtual Java (Java Virtual Machine JVM). VM1 VM2 VMn

Gerncia de Mquinas Virtuais

Hardware Mquina virtual

Aplicaes

Mquina virtual Java Sistema Operacional Hardware

Arquitetura Microkernel Para implementar esta idia, os servios do sistema so disponibilizados atravs de processos, onde cada um responsvel por oferecer um conjunto especfico de funes, como gerncia de arquivos, gerncia de processos, gerncia de memria e escalonamento. Sempre que uma aplicao deseja algum servio, realizada uma solicitao ao processo responsvel. Neste caso, a aplicao que solicita o servio chamada de cliente, enquanto o processo que responde solicitao chamado de servidor. A principal funo do ncleo realizar a comunicao, ou seja, a troca de mensagens ente cliente e servidor. O conceito de arquitetura microkernel surgiu no sistema operacional Mach, na dcada de 1980, na universidade de Carnegie-Mellon.

Servidor de arquivo Servidor de processo

Servidor de memria
Servidor de impresso

Servidor de rede

Modo usurio Modo kernel Microkernel

Hardware

A implementao de sistemas microkernel em ambientes distribudos permite que um cliente solicite um servio e o responsvel seja processada remotamente. Esta caracterstica permite acrescentar novos servidores medida que o nmero de clientes aumenta, conferindo uma grande escalabilidade ao sistema operacional. Na realidade, o que implementado mais usualmente uma combinao do modelo de camadas com a arquitetura microkernel. O ncleo do sistema, alm de ser responsvel pela comunicao entre cliente e servidor, passa a incorporar outras funes crticas do sistema, como escalonamento, tratamento de interrupes e gerncia de dispositivos. Existem vrios projetos baseados em sistemas microkernel, como o Exokernel no mIT(Massachusetts Institute of Technology); o L4 da Universidade de Dresden; e o Amoeba, da Vrije Universiteit. A maioria das iniciativas nesta rea est realcionada ao desenvolvimento de sistemas operacionais distribudos.

Exerccios 1 O que ncleo do sistema e quais so suas principais funes? R: 2 O que system call e qual sua importncia para a segurana do sistema? R: 3 O que so instrues privilegiadas e no-privilegiadas? Qual a relao dessas instrues com os modos de acesso? R: 4 Quais das instrues a seguir devem ser executas apenas em modo Kernel? Desabilitar todas as interrupes Consultar a data e hora do sistema Alterar a da e hora do sistema Alterar informaes residentes no ncleo do sistema Somar duas variveis declaradas dentro do programa Realizar um desvio para uma instruo dentro do prprio programa e acessar diretamente posies no disco. 5 Explique como funciona a mudana de modos de acesso e d exemplo de como o programa faz uso desse mecanismo. R: 6 Como o kernel do sistema operacional pode ser protegido pelo mecanismo de modos de acesso? R: 7 Compare as arquiteturas monoltica e de camadas. Quais as vantagens e desvantagens de cada arquitetura? R: 8 Quais as vantagens do modelo de mquina virtual? De exemplo. R: 9 Como funciona o modelo cliente-servidor na arquitetura microkernel? Quais so as vantagens e desvantagens dessa arquitetura? R: 10 Por que a utilizao da programao orientada a objetos um caminho natural para o projeto de sistemas operacionais? R: