Sie sind auf Seite 1von 11

Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

Sistemas Operacionais: Introduo e Conceitos Bsicos

Fbio Cunha de Albuquerque

A primeira pergunta a surgir : o que um Sistema Operacional? Este o assunto desta disciplina.
Iremos passo-a-passo descrever o que ele faz e qual a necessidade de sua existncia1.

A viso de um usurio normal, utilizando um computador, editando um texto (no editor de texto),
baixando um vdeo (no navegador) e ouvindo uma msica (no reprodutor de msica), tudo isto ao
mesmo tempo, pode ser descrita atravs do diagrama da figura 1. Todos estes programas que esto
sendo executados so chamados de aplicativos.

O usurio comum no percebe o que h por trs, isto , os detalhes que fazem com que seus
programas sejam executados. Esta justamente a intenso: que o usurio comum no precise se
preocupar com estes detalhes. Mas, para um profissional da computao, importante o
conhecimento destes detalhes para sentir e compreender como estas coisas funcionam.

Viso do usurio

Aplicativos
Reprodutor Editor
Navegador
de de
Web
Msica Texto

Computador

Figura 1 Execuo de aplicativos em um computador na viso do usurio.

A figura 2 apresenta a mesma situao, s que com mais detalhes. Como se desse um zoom.
Verifica-se assim que existem outras camadas no diagrama que esto escondidas do usurio
comum. Nestas camadas esto os componentes do chamado sistema operacional. A primeira
diferenciao est entre software e hardware. O software corresponde aos aplicativos e ao sistema
operacional como um todo. O hardware as partes fsicas do computador: circuitos eletrnicos, fonte
de alimentao, dispositivos de entrada e sada (teclado, mouse etc.) entre outros.

1 Os conceitos apresentados neste texto seguem a nomenclatura da referencia bibliogrfica citada no final do texto.

1
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

A execuo dos programas se faz em dois modo de operao: modo usurio e modo ncleo. No
modo usurio os programas que esto sendo executados no possuem privilgios de acesso direto
recursos que so considerados crticos, como o prprio hardware e reas de memria protegidas.
Isto para proteger o sistemas como um todo, evitando que estes programas derrubem, estraguem
o funcionamento dos outros programas que esto sendo executados. No modo ncleo, a execuo
feita com privilgio mximo, podendo-se acessar diretamente qualquer componente de hardware.

Viso mais detalhada

Aplicativos
Reprodutor Editor
Navegador
de de
Web
Msica Texto
Modo
Usurio

Software
Programa de Interface com o Usurio

Chamadas de Sistema
Modo
Ncleo
Ncleo do Sistema Operacional

Drivers de Dispositivo

Hardware
Hardware do Computador

Figura 2 As camadas de um sistema operacional sobre o hardware do computador.

Ao se ligar o computador o sistema operacional carregado, isto , o software do sistema


operacional levado memria (carregado na memria) e colocado em execuo. Logo aps, o
programa de interface com o usurio tambm carregado.

O ncleo (ou kernel)do sistema operacional considerado o corao do sistema, onde so


implementados os gerenciadores de recursos de hardware e software.

O programa de interface com o usurio (figura 2) pode ser uma interface texto, que chamada de
interpretador de comando (ou shell), ou uma interface grfica (tambm chamada de GUI, Graphic
User Interface). Exemplos de interpretadores de comandos so: o cmd nos sistemas Windows e os
shells: sh, csh, bash etc., nos sistemas tipo Unix. Estes shells possuem uma linguagem associada a

2
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

eles. Com estas linguagens podem-se fazer scripts, que so roteiros para execuo de inicializaes
e configuraes de servios desejados dos sistemas operacionais.

Programas Utilitrios so programas que tm a finalidade de auxiliar na configurao e manuteno


do sistema operacional. Eles no esto explicitamente mostrados na figura 2. Alguns so nativos do
prprio interpretador de comandos, isto , so programas que esto dentro do prprio
interpretador de comando. Outros so arquivos executveis. Como exemplo de programas utilitrios
temos: listagem de diretrio (dir no Windows, ls no Linux), formatao de disco (format no
Windows, mkfs no Linux), e outros mais.

A execuo dos programas pode se fazer de dois modos: modo usurio e modo ncleo. No modo
usurio os programas sendo executados no podem executar alguns tipos de instrues do
processador. As mais perigosas. Que podem fazer com que todo o sistema trave; parar de
funcionar o computador como um todo. Neste modo as instrues que acessam diretamente o
hardware (como exemplo, as de entrada e sada) so proibidas. Trabalha-se no modo protegido.

O modo ncleo o modo privilegiado. Pode-se utilizar todas as instrues do processador, sem
exceo, exatamente para que se possa fazer acesso aos recursos de hardware, fazendo com que
o sistema operacional possa gerenciar todos os recursos disponveis.

Chamadas de sistema (System Calls)

Uma das camadas mais importantes para o entendimento de um sistema operacional, mostrada na
figura 2, camada: Chamadas de sistema (System Calls). A camada chamadas de sistema o
ponto de entrada no ncleo do sistema operacional. por ela que se acessa vrias funes que o
sistema deve prover. Ento sua importncia.

Vamos atravs de um exemplo explicar como se processa isso!

Para que um arquivo seja lido a primeira coisa a ser feita abrir o arquivo (suponha que este arquivo
j exista). Em C isto feito atravs da funo (open) da biblioteca padro:

fd = open( nome_do_arquivo, modo);

onde,

modo forma como o arquivo ser aberto: leitura, gravao ou leitura e gravao

Aps a abertura deste arquivo, um valor (um nmero inteiro) ser atribudo pelo sistema varivel
fd . A partir da, todo o acesso a este arquivo ser feito via varivel fd.

Para processarmos a leitura deste arquivo utiliza-se a funo (read) da biblioteca padro:

contador = read(fd, &buffer, numbytes);

onde,

3
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

contador varivel que ter a quantidade de bytes lida do arquivo; dever ser igual ou menor a
varivel numbytes (ser menor caso o contedo do arquivo seja menor que numbytes); caso menor
que zero, ocorreu erro.

fd varivel que contm um valor (nmero) que representa o arquivo que foi aberto (pela funo
open) anteriormente.

&buffer endereo inicial de memria da rea onde ser colocado o contedo lido do arquivo.

numbytes quantidade (nmero) de bytes que ser lida do arquivo.

Observao: Alguns detalhes no sero colocados aqui, uma vez que o objetivo mostrar o que
ocorre no processo de execuo da funo read da biblioteca padro C, em um programa.

A figura 3 descreve o processo de execuo da funo read da biblioteca padro C. Seguindo-se a


numerao da figura 3, pode-se percorrer todos os passos para esta execuo.

4
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

Memria Principal do Computador

Endereo Superior -
-
-
Biblioteca
Retorna a que chamou
Procedimento read
TRAP para o ncleo da
5 Biblioteca
Coloca o cdigo para read no registrador
10
-
Espao de
Endereamento
- 4
do Usurio -
11 Prxima Instruo

Chama read

6
Armazena na pilha fd Programa do Usurio
3 Chamando Procedimento read

2 Armazena na pilha &buffer

1 Armazena na pilha nbyte

-
9
-
-
Verficar cdigo do Registrador

7 Lista com os
Espao de endereos
Endereamento das Rotinas Ncleo
do Ncleo do
Sistema Operacional
8
Rotinas de
tratamento
de Chamada de
Sistema

Endereo 0

Figura 3 Execuo da chamada de sistema para leitura de um arquivo.

Em 1, 2 e 3, os parmetros da funo read so colocados na pilha pelo programa executvel do


usurio. Logo aps (4) feita uma chamada para a funo read que est na biblioteca padro C. Na
biblioteca colocado o cdigo (um nmero) correspondente a funo read num determinado
registrador do processador e feito um TRAP2 para o ncleo (5 e 6).

2 Trap bem parecido com uma chamada de procedimento (call endereo). A diferena que em vez do endereo tem-se
um nmero que servir como ndice para uma tabela, cujo contedo ser o endereo da rotina chamada.

5
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

Na entrada do ncleo verificado qual o cdigo foi colocado no registrador, feito uma busca em
uma lista indexada por este cdigo (lista que contm os endereos das rotinas) e desviada a
execuo para a devida rotina de tratamento da chamada (7 e 8).

Aps o trmino da execuo da rotina chamada (no nosso caso o read), os bytes lidos estaro na
rea de memria no endereo &buffer, caso no haja erro na leitura do arquivo. A execuo sai do
espao de endereamento do ncleo retornando para o espao de endereamento da biblioteca que
far o retorno ao espao de endereamento do usurio (9 e 10). Em 11, o programa do usurio
continua sua execuo.

Pode-se observar, considerando e exemplo da figura 3, que existe quase uma relao 1-para-1 entre
as chamadas de sistema e as funes da biblioteca padro C; isto nos sistemas tipo UNIX. So coisas
distintas. Chamadas de sistema: relacionado ao sistema operacional, ponto de entrada do sistema
operacional; funes da biblioteca: funes com finalidade de facilitar o acesso ao ncleo do sistema
via chamadas de sistema.

O POSIX ( Portable Operating System Interface - Interface Portvel entre Sistemas Operacionais)
um conjunto de normas definidas pelo IEEE (IEEE 1003) com a finalidade de criar portabilidade entre
sistemas operacionais. Se sistemas operacionais distintos seguem as normas POSIX o cdigo fonte
de um programa poder ser utilizado em qualquer um destes sistemas. Sistemas que o
implementam possuem umas 100 chamadas de rotinas.
API Win32 (Application Programming Interface - Interface para Programao de Aplicativos) um
conjunto de rotinas, definida pela Microsoft para que os desenvolvedores de aplicativos tenham
acesso aos servios do sistema operacional. utilizada para criar e gerenciar toda a interface do
ambiente da aplicao. Possui milhares de funes. Muitas tratam da interface grfica (GUI). Vrias
executam no modo usurio.

A tabela 1 faz uma analogia entre algumas funes do Unix e Win32.

6
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

Tabela 1 Analogia entre Unix e Win32 (fonte: referencia bibliogrfica).

Processos
Um programa executvel esttico, est passivo. Quando se coloca este programa executvel para
executar teremos um componentes do sistema operacional chamado processo; um programa em
execuo, mais os valores atuais do: contador de programa, registradores do processador e
variveis. O processo dinmico, est ativo. Cada processo possui seu prprio espao de
endereamento. a rea de memria onde esto as instrues do programa executvel, dados do
processo e sua pilha.

Componentes de Software e Hardware

A seguir alguns conceitos sobre os componentes de Software e Hardware sero apresentados,


sempre relacionados a figura 4.

7
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

Driver Driver Driver Driver


Drivers de Dispositivos de Vdeo USB de Disco de Rede

Componentes
de
Software
Componentes
de
Memria Hardware
Processador
Firmware
Controlador Controlador Controlador Controlador
de
de Vdeo USB de Disco de Rede
Inicializao MMU

Dispositivos Internos
Conexo
de
Disco Rede

Dispositivos Externos
Teclado Mouse

Impressora
Monitor

Figura 4 Organizao de um computador com seus componentes de software e hardware.

As operaes de referncia a memria feitas na execuo dos programas passam pela Unidade de
Gerncia de Memria (MMU - Memory Management Unit). A implementao desta unidade, que
pode estar dentro do processador, auxilia no gerenciamento de memria feito pelo sistema
operacional.

Os controladores so as interfaces de hardware entre o sistema computacional e os dispositivos de


entrada e sada (E/S). Dispositivos como: monitor, teclado, mouse etc., devem ser interligados a
seus respectivos controladores. Atravs de parmetros de configurao, programa-se estes
controladores para criar as funcionalidades desejadas. Todas as interaes entre os dispositivos de
E/S e o sistema computacional so realizadas por estes controladores.

Firmware um software implementado para ser gravador em um hardware, isto , para ficar
embutido em um hardware. Geralmente gravado em uma memria no voltil, isto , memria
cujo contedo no perdido quando tirado a energia, alimentao. Exemplos destas memrias so:
ROM, PROM, EPROM, EEPROM, flash, etc.

No momento em que um computador ligado a execuo de alguma instruo dever ocorrer. Esta
instruo dever fazer parte de um conjunto de instrues chamado firmware de inicializao
(figura 4) que tem como primeira finalidade a inicializao de todos os componentes de hardware,
como: a MMU, os controladores etc.; aps isto, passar para a etapa de carregamento do sistema

8
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

operacional. Um exemplo comum de firmware de inicializao a BIOS (Basic Input/Output System


- Sistema Bsico de Entrada/Sada).

Os Drivers de dispositivos so trechos de cdigo (software) especficos para acessar os dispositivos


fsicos instalados no computador. Eles so acoplados ao sistema operacional para que este possa ter
acesso ao hardware. Cada dispositivo dever ter um driver especfico. Driver especfico para: o
vdeo, as portas USB, a interface de rede etc. Geralmente os fabricantes de hardware fornecem os
drivers especficos a cada tipo de sistema operacional.

Estrutura de Sistemas Operacionais


Vamos tratar agora como os sistemas operacionais so estruturados

Sistemas monoltico

So sistemas onde as rotinas e procedimentos chamam diretamente outras rotinas e procedimentos


dentro do ncleo do sistema operacional. Seu ncleo como um monobloco onde todas as rotinas
podem chamar todas as outras.

Eis alguns sistemas operacionais que utilizam ncleo monoltico: Linux, FreeBSD, Solaris, MS-DOS,
Windows 98.

Sistemas de camada
O primeiro sistema construdo em camada foi o THE (Technische Hogesschool Eindhoven), na
Holanda , por E. W. Dijkstra (1968) e seus alunos. Pela data, um sistema para mquinas com poucos
recursos. Seu processamento era em lote (batch). Neste tipo de estrutura, cada camada tem uma
funcionalidade definida. A figura 5, mostra quais as funcionalidades deste sistema.

Camada Funo

5 O operador

4 Programas de usurio

3 Gerenciamento de entrada/sada

2 Comunicao operador-processo

1 Memria e gerenciamento de tambor

0 Alocao do processador e multiprogramao

Figura 5 Sistema operacional com 5 camadas.

9
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

Eis alguns sistemas operacionais de camada: THE, IBM OS/2, MULTICS

Microncleo (microkernell)

A idia principal neste tipo de sistema dividir o sistema operacional em mdulos pequenos que
operaro no modo usurio e deixar o ncleo o menor possvel (microncleo). Como apenas este
microncleo opera no modo ncleo, o sistema em si fica mais confivel, pois se houver alguma falha,
esta provavelmente no ser no modo ncleo.

Eis alguns sistemas operacionais que utilizam microncleo: Symbian, MINIX 3.

Sistema com modelo cliente-servidor

uma variao do microncleo, onde os processos so classificados e projetados ou como cliente ou


como servidor. A comunicao entre os processos se faz via troca de mensagens. O processo cliente
envia uma mensagem requisitando um servio e o processo servidor responde a solicitao.

Mquinas virtuais

A idia fundamental de mquina virtual, aplicada a servidores corporativos, pode ser bem
explanada pela figura 6.

Aplicaes Aplicaes

Sistema Operacional ....... Sistema Operacional

Mquina Virtual 1 Mquina Virtual n

VMM - Virtual Machine Monitor


Monitor da Mquina Virtual

Hardware

Figura 6 Noo bsica de mquinas virtuais.

10
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL

Neste tipo de sistema criado uma camada chamada de monitor de mquina virtual com a funo
de gerenciar as mquinas virtuais dando oportunidade a cada uma delas de acessar o hardware.
Para isso o monitor faz um desvio dos acessos ao hardware, feito pelas mquinas virtuais, dando o
tratamento devido a estes acessos.

A maquina virtual v (acha) o seu hardware (que foi configurado previamente pelo administrador do
sistema, e parte do hardware real do computador) como um hardware do computador real. Desta
forma pode-se instalar um sistema operacional real nesta mquina virtual. Como se tem vrias
mquinas virtuais, vrios sistemas operacionais distintos executando suas aplicaes podem ser
instalados nestas mquinas virtuais por cima de uma nica mquina real.

Mquina virtual Java

Uma outra forma de mquina virtual a Mquina virtual Java (Java Virtual Machine JVM). A Sun
Microsystems inventou a linguagem Java em conjunto com uma mquina virtual (uma arquitetura de
computador). Esta mquina virtual um software que emula esta arquitetura. Os programas fonte
em Java so compilados por um compilador Java que gera cdigo para a JVM. Os cdigos gerados
so interpretados por esta mquina virtual (JVM), e no executado direto pelo processador nativo.
Este programa compilador pode ser executador em qualquer plataforma de hardware ou software,
desde que se tenha uma mquina virtual Java instalada na plataforma.

Referncia Bibliogrfica do Texto

TANENBAUM, Andrew S. Sistemas Operacionais Modernos, Prentice Hall, Brasil, 2010.

11

Das könnte Ihnen auch gefallen