Beruflich Dokumente
Kultur Dokumente
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
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.
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
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.
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.
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.
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:
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:
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.
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.
4
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL
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
-
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
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.
6
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL
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.
7
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL
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
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.
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
Sistemas monoltico
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
9
Sistemas Operacionais Curso de Sistemas de Informao a distncia Instituto de Computao - UFAL
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.
Mquinas virtuais
A idia fundamental de mquina virtual, aplicada a servidores corporativos, pode ser bem
explanada pela figura 6.
Aplicaes Aplicaes
Hardware
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.
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.
11