Você está na página 1de 41

SISTEMAS OPERACIONAIS

Prof. Gerhard Saboia

Captulo 3: Estruturas do Sistema Operacional

Captulo 3: Estruturas do Sistema


Operacional

n
n
n
n
n
n
n
n

Componentes do Sistema
Servios do Sistema Operacional
Chamadas de Sistema (System Calls)
Programas do Sistema
Estrutura do Sistema
Mquinas Virtuais
Projeto e Implementao do Sistema
Gerao do Sistema
Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.1 Componentes do sistema

n
n
n
n
n
n
n
n

Gernciamento de Processos
Gernciamento da Memria Principal
Gernciamento de Arquivos
Gernciamento do Sistema de E/S
Gernciamento do Armazenamento Secundrio
Conexo em Rede
Sistema de Proteo
Sistema Interpretador de Comandos
Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento de Processos
n

Um processo um programa em execuo. Um processo


precisa de certos recursos, incluindo tempo de CPU,
memria, arquivos e dispositivos de E/S, para realizar
sua tarefa.
O sistema operacional responsvel pelas seguintes
atividades relacionadas ao gerenciamento de processos.
n
n
n

Criar e remover processos.


Suspender e retomar processos.
Oferecer mecanismos para:
n
n

Sincronismo de processos
Comunicao entre processos

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento da Memria Principal


n

Memria um grande vetor de palavras ou bytes, cada um com seu


prprio endereo. um repositrio de dados rapidamente acessveis,
compartilhado pela CPU e pelos dispositivos de E/S.
um dispositivo de armazenamento voltil. Perde seu contedo em
caso de falha do sistema.
O SO responsvel pelas seguintes atividades relacionadas ao
gerenciamento de memria:
n

Controlar que partes da memria esto sendo usadas atualmente e por


quem.
Decidir quais processos devem ser carregados para a memria quando o
espao de memria se tornar disponvel.
Alocar e desalocar espao de memria conforme a necessidade.

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento de arquivos
n

Um arquivo uma coleo de informaes relacionadas, definidas por


seu criador. Normalmente, os arquivos representam programas (nos
formatos de fonte e objeto) e dados.
O sistema operacional responsvel pelas seguintes atividades
relacionadas ao gerenciamento de arquivos:
n
n
n
n
n

Criao e remoo de arquivos.


Criao e remoo de diretrios.
Suporte a primitivas para manipulao de arquivos e diretrios.
Mapeamento de arquivos em armazenamento secundrio.
Backup de arquivos em meios de armazenamento estveis (no volteis).

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento do Sistema de E/S

O sistema de E/S consiste em:


n

n
n

Um componente de gerenciamento de memria que inclui o uso de


buffers, caches e spools.
Uma interface genrica para drivers de dispositivos.
Drivers para dispositivos de hardware especficos.

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento do Armazenamento
Secundrio
n

Como a memria principal (armazenamento primrio) voltil e muito


pequena para acomodar todos os dados e programas permanentemente,
o sistema de computador precisa fornecer armazenamento secundrio
para apoiar a memria principal.
A maioria dos sistemas de computador modernos utiliza discos como o
principal meio de armazenamento on-line para programas e dados.
O sistema operacional responsvel pelas seguintes atividades
relacionadas ao gerenciamento de disco:
n
n
n

Gerenciamento do espao livre


Alocao do armazenamento
Escalonamento do disco
Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Conexo em Rede (Sistemas Distribudos)


n

n
n
n

Um sistema distribudo um conjunto de processadores que no


compartilham memria ou um relgio, cada processador possui sua
prpria memria local.
Os processadores so conectados por uma rede de comunicao.
A comunicao ocorre atravs do uso de um protocolo.
Um sistema distribudo fornece ao usurio acesso a vrios recursos do
sistema.
O acesso a um recurso compartilhado permite:
n
n
n

Maior velocidade de computao


Maior disponibilidade de dados
Maior confiabilidade
Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Sistema de Proteo

Proteo se refere a um mecanismo para controlar o acesso


dos programas, processos ou usurios aos recursos do
sistema e do usurio.
O mecanismo de proteo precisa:
n
n
n

distinguir entre uso autorizado e no autorizado


especificar os controles a serem impostos
fornecer um meio para a imposio

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Interpretador de Comandos

Muitos comandos so dados ao sistema operacional pelas


instrues de controle, que cuidam de:
n
n
n
n
n
n
n

Criao e gerenciamento de processos


Tratamento de E/S
Gerenciamento do armazenamento secundrio
Gerenciamento da memria principal
Acesso ao sistema de arquivos
Proteo
Uso da rede

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Interpretador de Comandos

O programa que l e interpreta instrues de controle


chamado diferentemente de:
n
n

interpretador de linha de comando


shell (no UNIX)

Sua funo apanhar e executar a prxima instruo de


comando.

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.2 Servios do Sistema Operacional


Facilitando a vida do programador !!!!!
n
n

n
n

Execuo de programa capacidade do sistema para carregar um


programa na memria e execut-lo.
Operaes de E/S como os programas do usurio no podem
executar operaes de E/S diretamente, o sistema operacional precisa
prover meios para realizar a E/S.
Manipulao do sistema de arquivos capacidade do programa para
ler, gravar, criar e excluir arquivos.
Comunicaes troca de informaes entre processos sendo
executados no mesmo computador ou em sistemas diferentes ligados por
uma rede. Implementadas atravs de memria compartilhada ou pela
troca de mensagens.
Deteco de erro assegura computao correta detectando erros na
CPU e no hardware da memria, nos dispositivos de E/S ou nos
programas do usurio.
Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Funes adicionais do Sistema


Operacional

As funes adicionais existem, no para auxiliar o usurio,


mas para garantir operaes eficientes do sistema.
n

Alocao de recursos os recursos so alocados a diversos


usurios ou a mltiplas tarefas sendo executadas ao mesmo tempo.
Contabilidade controla e registra que usurios usam quanto e que
tipo de recursos do computador para contabilizar cobrana ou para
acumular estatsticas de uso.
Proteo assegura que todo o acesso aos recursos do sistema seja
controlado.

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.3 Chamadas de sistema

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.3 Chamadas de sistema


n

As chamadas de sistema (system calls) fornecem a interface entre um


programa em execuo e o sistema operacional.
n
n

Geralmente disponveis como instrues em linguagem assembly.


Linguagens definidas para substituir a linguagem assembly para a
programao de sistemas permitem que as system calls sejam feitas
diretamente (por exemplo, C, C++).

Trs mtodos so usados para passar parmetros entre um programa


em execuo e o sistema operacional:
n
n

Passar parmetros via registradores.


Armazenar os parmetros em uma tabela na memria, e o endereo na
tabela passado como um parmetro em um registrador.
O programa coloca (push) os parmetros na pilha e o Sistema Operacional
retira (pop) os parmetros da pilha.
Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Passagem de Parmetros por Tabelas

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Tipos de Chamada de Sistema

n
n
n
n

Controle de processos
Gerncia de arquivos
Gerncia de dispositivos
Manuteno de informaes
n

Data/hora, atributos de processos e arquivos (get/set)

Comunicaes

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Execuo do MS-DOS: monotarefa

At System Start-up

Running a Program

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Unix Executando Vrios Programas

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Comunicao
n

A comunicao pode ocorrer usando a troca de


mensagens ou memria compartilhada

Msg Passing"

Shared Memory"

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.4 Programas de Sistema


n

Os programas de sistema oferecem um ambiente conveniente para


desenvolvimento e execuo de programas. Podem ser divididos
em:
n
n
n
n
n
n
n

Manipulao de arquivos
Informaes de status
Suporte para linguagem de programao
Carga e execuo de programas
Comunicaes
Aplicaes (ou aplicativos)
Interpretador de comandos

A viso do Sistema Operacional pela maioria dos usurios


definida pelos programas de sistema e no pelas suas chamadas
de sistema
Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.5 Estrutura do Sistema


n

SO: sistema grande e complexo


n

Deve ser cuidadosamente desenvolvido


n

Funcionar corretamente

Ser facilmente modificado (atualizado)

MS-DOS
n
n

Estrutura monoltica
Escrito para fornecer o mximo de funcionalidade no menor
espao possvel
n
n

No dividido em mdulos
Embora o MS-DOS tenha alguma estrutura, suas interfaces e
nveis de funcionalidade no so bem separados

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura de Camadas do MS-DOS

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura do UNIX

UNIX Limitado pela funcionalidade do hardware, o Sistema


Operacional UNIX original possua estrutura limitada. O UNIX
consiste em duas partes separadas.
n
n

Os programas de sistema
O Kernel
n

Consiste em tudo abaixo da interface da chamada de sistema e acima do


hardware.
Prov o sistema de arquivos, escalonamento de CPU, gerncia de
memria e outras funes de Sistema Operacional; um grande nmero e
funes para um nico nvel.

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura do Sistema UNIX

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Abordagem em Camadas

O sistema operacional dividido em uma srie de camadas


(nveis), cada uma construda sobre as camadas inferiores. A
camada mais baixa (camada 0) o hardware; a mais alta
(camada N) a interface com o usurio.
Com a modularidade, as camadas so selecionadas de modo
que cada uma utilize funes (operaes) e servios apenas
de camadas de nvel mais baixo.

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Uma Camada do Sistema Operacional

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura em Camadas do OS/2

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura de microkernel

n
n

Move bastante do ncleo para o espao do usurio.


A comunicao entre os mdulos do usurio usa a troca de
mensagens.
Benefcios:
n
n
n
n

Facilidade de estender um microkernel


Facilidade de portar para novas arquiteturas
Maior confiabilidade (menos cdigo rodando no modo kernel)
Maior segurana

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura Cliente-Servidor do
Windows NT

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.6 Mquinas Virtuais

Mquina virutual: programa que simula hardware


n

Sob esse aspecto hardware (emulado) e kernel esto no mesmo nvel

Uma mquina virtual oferece uma interface que idntica


do hardware bsico.
O sistema operacional cria a iluso de mltiplos processos,
cada um sendo executado em seu prprio processador, com
sua prpria memria (virtual).

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Mquinas Virtuais

Os recursos do computador fsico so compartilhados para


criar as mquinas virtuais.
n

O escalonamento de CPU pode criar a aparncia de que os usurios


possuem seus prprios processadores
O spooling e um sistema de arquivos podem oferecer leitoras de
cartes virtuais e impressoras de linha virtuais
Um terminal de usurio normal de tempo compartilhado age como o
console do operador da mquina virtual

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Mquinas virtuais

Non-virtual Machine"

Virtual Machine"

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Vantagens e Desvantagens
das Mquinas Virtuais
n

O conceito de mquina virtual prov proteo completa dos recursos do


sistema, uma vez que cada mquina virtual completamente isolada de
todas as outras mquinas virtuais. Esse isolamento, entretanto, no
permite qualquer compartilhamento direto dos recursos.
Um sistema de mquina virtual um veculo perfeito para pesquisa e
desenvolvimento de Sistemas Operacionais. O desenvolvimento do
sistema feito na mquina virtual, e no em uma mquina fsica, e no
interrompe a operao normal do sistema.
O conceito de mquina virtual difcil de implementar devido ao esforo
necessrio para oferecer uma duplicata exata da mquina utilizada.

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Mquina Virtual Java

Os programas Java compilados so bytecodes para


plataforma neutra executados por uma mquina virtual Java
(JVM).
A JVM consiste em
n
n
n

Carregador de classes
Verificador de classe
Interpretador de tempo de execuo

Os compiladores Just-In-Time (JIT) aumentam a


performance
n

Traduo para linguagem nativa da mquina


Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Mquina Virtual Java

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.7 Projeto e implementao do sistema

Objetivos do usurio o sistema operacional deve ser


conveniente no uso, fcil de aprender, confivel, seguro e
veloz.
Objetivos do sistema o sistema deve ser fcil de projetar,
implementar e manter, alm de ser flexvel, confivel, livre
de erros e eficiente.

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Mecanismos e Polticas

Os mecanismos determinam como fazer algo, as polticas


decidem o que ser feito.
n

Poltica: escalonador de processos justo

Mecanismo: melhor algoritmo que implementa o escalonamento

A separao entre poltica e mecanismo um princpio muito


importante, pois permite mxima flexibilidade se as decises
da poltica precisarem ser modificadas posteriormente.

Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Implementao do Sistema
n

Tradicionalmente escritos em linguagem assembly, os


sistemas operacionais agora podem ser escritos em
linguagens de alto nvel (C, C++)
Cdigo escrito em uma linguagem de alto nvel:
n
n
n

Pode ser escrito mais rpido


mais compacto
mais fcil de entender e depurar

Um sistema operacional muito mais fcil de portar (passar


para outro hardware) se for escrito em uma linguagem de
alto nvel
Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.8 Gerao do Sistema


n

Os sistemas operacionais so projetados para execuo em


qualquer uma dentre uma classe de mquinas
n

O sistema precisa ser configurado ou gerado para cada instalao de


computador especfica.

O programa SYSGEN obtm informaes referentes


configurao especfica do sistema de hardware.
n

Que CPU utilizada e/ou quantas?

Quanto h de memria fsica disponvel?

Quais so os dispositivos dispoonveis?

Que opes do SO so desejadas (nmero mximo de processos,


quantidade de disco, algoritmo de escalonamento, servios, etc.)
Traduo de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002