Você está na página 1de 14

Conceitos de Sistemas Operacionais

Estrutura de Sistemas Operacionais


Gerncia de Processos
Gerncia de Memria

Romildo Martins Bezerra


CEFET/BA
Sistemas Operacionais

Arquitetura Conceitual de um Computador ................................................... 2


Processadores ................................................................................... 2
Memria Principal............................................................................... 4
Memria Cache .................................................................................. 4
Memria Secundria ............................................................................ 5
Dispositivos de Entrada e Sada ............................................................... 6
Apresentando os componentes dentro de um computador .................................. 6
Conceitos de Sistemas Operacionais ............................................................ 6
Arquitetura de um SO .......................................................................... 7
Arquitetura Interna de um SO................................................................. 7
Processos ......................................................................................... 8
Memria .......................................................................................... 8
Arquivos .......................................................................................... 8
Multiprogramao............................................................................... 9
Estruturas dos Sistemas Operacionais .......................................................... 9
Sistemas monolticos ........................................................................... 9
Sistemas em camadas .......................................................................... 9
Mquina Virtual ................................................................................. 9
Modelo cliente/servidor ....................................................................... 9
Gerncia de Processos ............................................................................ 9
Estados do processo ........................................................................... 10
Comunicao interprocessos ................................................................. 10
Alternativas para a excluso mtua......................................................... 11
Escalonamento ................................................................................. 11
Gerncia de Memria ............................................................................ 12
Sistemas Operacionais Atuais ................................................................... 13
Linux ............................................................................................. 13
Windows ......................................................................................... 13
Amoeba .......................................................................................... 13
Minix ............................................................................................. 13
Pesquise............................................................................................ 14
Temas para trabalhos ............................................................................ 14
Bibliografia ........................................................................................ 14

As notas de aulas so referncias para estudo. Portanto no devem ser adotadas como material didtico absoluto!
Verso 0.1 30/08/2008

Romildo Martins Bezerra

Antes de iniciarmos os estudos de Sistemas operacionais necessrio apresentar uma introduo do


funcionamento bsico de um computador e seus respectivos componentes.

Arquitetura Conceitual de um Computador


Os primeiros passos para que a arquitetura dos computadores fosse similar que conhecemos hoje
foram dados pelo pesquisador Von Neumann. Especialista em cincias exatas e o matemtico mais
eminente do mundo na poca, Neumann projetou o IAS, computador onde os dados eram representados de
forma digital, com programao mais rpida e flexvel, visto que no seu projeto, programas e dados eram
inseridos de forma binria na memria.
Esse projeto pioneiro com o conceito de programa armazenado transformou o IAS na famosa
mquina de Von Neummann. A concepo utilizada at hoje nos computadores e composta
basicamente de 3 componentes (figura 01):

CPU (unidade central de processamento) composto de uma unidade de controle (UC), unidade
lgico-aritmtica (ULA) e registradores;
Memria Principal, onde os programas esto armazenados (veremos detalhes a seguir);
Dispositivos de E/S, responsveis em transferir dados de dentrofora do computador

Pontos Importantes:

No projeto, o computador s trabalhava com nmeros inteiros. Neumann acreditava que


qualquer matemtico poderia tratar ponto flutuante
Utilizao do conceito de programas armazenados
Execuo seqencial de instrues
Funcionamento busca/decodificao/execuo

Atualmente os computadores (a maior parte deles) utilizam uma arquitetura composta dos
seguintes componentes vistos na figura 01.
Memria Principal
endereo

dados/instrues
CPU

Registradores

ULA

PC

Unidade de Controle

Dispositivos E/S

Figura 01 Modelo Conceitual dos computadores atuais, baseados no IAS de Von Neumann
Processadores
Correspondem ao crebro do computador, pois o responsvel em executar todas as tarefas
referentes busca/execuo dos programas e dados. Para modularizar seu funcionamento, ser
apresentado o modelo didtico com as seguintes componentes:

2

ULA (Unidade Lgico-Aritmtica) realiza um conjunto de operaes aritmticas e lgicas


necessrias execuo das instrues

Romildo Martins Bezerra

UC (Unidade de Controle) busca de instrues da memria, de acordo com a necessidade da


instruo a ser processada.

Registradores Pequenos espaos de memria que o processador trabalha executando as


instrues. Geralmente possuem o mesmo tamanho e tem velocidade muito alta. Destacam-se:
o PC Contador de Programa, cujo nome no reflete sua funo, que indicar a prxima
instruo a ser executada na memria.
o IR Registrador de instrues, que indica a prxima instruo a ser executada.

Memria Cache Atualmente para melhorar o desempenho, os processadores atuais possuem uma
memria de altssima velocidade (quando comparada a memria RAM ou disco rgido) para
arquivar os dados de maior utilizao, evitando acessos constantes memria. Veremos mais
detalhes no decorrer desta apostila.

Conforme vimos anteriormente, a seqncia de funcionamento segue a proposta do modelo de Von


Neumann, busca-decodificao-execuo.
O processo de busca da instruo (fetch) transfere a instruo da posio da memria (indicada
pelo registrador PC) para a CPU. A decodificao responsabilidade da unidade de controle, que aps
decodificao gerencia os passos para execuo a ser feita pela ALU.
Unidade de
decodificao

Unidade de busca

Unidade de execuo

Figura 02 Estgios do funcionamento dos computadores


De forma detalhada, a execuo de programas num processador utiliza a seqncia de passos
buca-decodica-executa, da seguinte forma:
1. Busca a prxima instruo da memria para o registrador de instruo
2. Atualiza o contador de programa para que ele aponte para a instruo seguinte
3. Determina o tipo de instruo
4. Se a instruo utiliza dados na memria, determina localizao
5. Busca os dados, se houver algum, para os registradores internos da CPU
6. Executa a instruo
7. Armazena os dados em locais apropriados
8. Volta para o passo 1
Vamos analisar novamente a figura 02 e imaginemos que um computador vai executar diferentes
operaes simples (soma, por exemplo). Seria interessante se ele pudesse fazer parte das instrues em
paralelo de forma a otimizar sua utilizao, sendo pelos menos duas tarefas executadas no mesmo tempo.
Isso pode ser feito de duas formas:

Paralelismo a nvel de instrues A diviso das instrues em partes menores sendo essas
executadas em um hardware especfico. (lembrem-se do exemplo da soma dado em sala!)
[ E1 ]
Unidade de
busca de
instruo

[ E2 ]
Unidade de
decodificao
de instruo

[ E3 ]
Unidade de
busca de
operando

[ E4 ]
Unidade de
execuo de
instruo

[ E5 ]
Unidade
de escrita

Figura 03 Computador clssico de cinco estgios

3

Romildo Martins Bezerra

E1

P1

E2

P2

P3

P4

P5

P6

P7

P8

P1

P2

P3

P4

P5

P6

P7

P1

P2

P3

P4

P5

P6

P1

P2

P3

P4

P5

P1

P2

P3

P4

E3
E4
E5

tempo

Figura 04 Exemplo de paralelismo a nvel de instrues em cinco estgios

Paralelismo a nvel de processador A idia projetar computadores com mais de um processador


que podem estar organizados de forma matricial, vetorial, compartilhando barramento com
memria compartilhada ou no. Este estudo no corresponde ao objetivo desta disciplina.

Memria Principal
A memria principal uma das partes essenciais para o funcionamento do computador, uma vez
que nela que os programas e dados so executados. O que se esperar da memria? Tamanho infinito,
ultra-rpida (no atrase o processador) e barata (afinal ningum quer gastar dinheiro!). possvel
conciliar isso? Isso ser discutido mais tarde.
A memria organizada atravs de clulas, unidades elementares de memria, que compem
segmentos (pedaos alocados por um programa que podem conter mais de uma clula). Vamos imaginar
uma memria de 1Megabyte (220 bytes = 1024*1024) com clulas de 32 bits (22 bytes), retemos ento:
Total de Clulas= Total de memria /Tamanho da clula
= 220 bytes/22 bytes
= 218 clulas
Ou seja teramos 218 clulas a serem endereadas. Vamos supor agora que o sistema operacional
precisa de 26 bytes para executar uma determinada instruo (IX) de um programa em Pascal (compilador
de alto nvel). O sistema operacional ficar responsvel em alocar segmentos de memria (contnuos ou
no) para que esta informao possa ser trabalhada pelo processador.
Vazio

IY

IX

IX

IX

IX

IX

IX

IX

Vazio

199

200

201

202

203

204

205

206

207

208

Figura 05 Dados da instruo X (IX) alocados continuamente na memria


Que problemas vocs enxergam que o SO ter com este particionamento da memria?
Controle da fragmentao
Falta de espaos
Movimentao constante
Memria Cache
Devido a uma diferena histria entre processadores e memrias, o processador acaba esperando
(apenas por definio!) ciclos de clock at que a memria entregue (aloque) sua requisio. Algumas
tcnicas para melhorar esta soluo podem ser utilizadas, destacamos aqui a utilizao de memrias
cache.
Os projetistas de HW construram uma memria mais rpida capaz de operar na velocidade dos
processadores, mas devido ao seu custo elevado (fruto de aumento do tamanho do processador)
necessrio restringir o tamanho da memria cache. Esta apresentao segue o conceito de hierarquia de
memria, onde quanto mais rpido a memria, menor ser seu tamanho (devido ao custo de fabricao).
4

Romildo Martins Bezerra

cache

preo

principal
discos rgidos

velocidade

unidades de fita

Figura 06 Conceito de Hierarquia de memria


O problema agora que ficamos com dois mundos:
Memria ultra-rpida e pequena (muitas trocas ocorreriam)
Memria mais lenta e bem maior
Para se ter uma idia, diversos processadores atuais trabalham com velocidades superiores a
3.0GHz (3 bilhes de ciclos por segundo) e possui cache interna (L1) de 512Kbytes, enquanto a memria
RAM trabalha a 333Mhz e tem tamanho de 256MB, sendo assim 512 vezes maior e 9 vezes mais lenta. Como
no possvel trabalhar com apenas uma delas, a proposta a seguinte:
Processador

Memria RAM

Cache

256MB

Figura 07 Memria Cache alocada no processador


Outra proposta seria coloc-la na placa-me (Chamado de cache L2).
Esta memria ultra-rpida, cache, deve ser sempre as informaes mais requisitadas pelo
processador, e este ter que sempre consultar a cache antes de perguntar memria principal. Mas como
adivinhar que parte da memria ser utilizada? Como calcular se o tempo mdio de acesso com a cache
tornar o sistema mais eficiente?
Clculos matemticos e algoritmos complexos so desenvolvidos no projeto de cada arquitetura.
Para os mais interessados pesquisem o principio da localidade, base terica para o funcionamento de
sistemas com utilizao intensiva de cache.
Memria Secundria
Por maior que seja a memria principal, ela ser sempre pequena. Tanenbaum em Organizao
Estruturada de Computadores, pgina 40. Apesar de a afirmao parecer (e !) forte demais, no
possvel enxergar uma estrutura computacional moderna sem a utilizao de memria secundria. Do
mesmo modo que a cahe muito mais rpida que a memria principal, essa muito mais rpida que a
memria secundria.
Aqui sero explicados apenas os discos magnticos, vistos que o foco apresentar uma introduo
para sistemas operacionais. A composio bsica de um disco magntico vista abaixo.

Figura 08 Esquema Bsico do disco

5

Romildo Martins Bezerra

Nota-se que esta composio mecnica dos discos no pode superar, em velocidade, o mtodo
digital dos semicondutores utilizados na memria RAM e memria cache.
Dispositivos de Entrada e Sada
Antes de serem tratados os dispositivos de E/S importante salientar que a transferncia de dados
entre processador, memria principal, memria secundria (discos rgidos, flexveis e ticos) feita
atravs dos barramentos.
Cada dispositivo de entrada e sada composto de uma controladora e do dispositivo propriamente
dito. Esta controladora d acesso ao barramento do computador sem que haja uma interveno o
processador executando um acesso direto memria (DMA). E quando esta transferncia de dados
transmitida, a controladora fora uma interrupo, fazendo com qu o processador suspenda o processo em
execuo a fim de rodar um procedimento para verificar possveis erros de transferncia de dados, este
procedimento denominado rotina do tratamento de interrupo.
J que o barramento acessado por todos os dispositivos, o que aconteceria se dois ou mais
dispositivos brigarem pelo acesso ao barramento? Nos projetos dos computadores atuais est presente um
dispositivo que executa esta seleo chamada de arbitro do barramento. A prioridade geralmente dos
discos magnticos, uma vez que as paradas sucessivas podem ocasionar perda de dados.
Atualmente estas controladoras esto
presentes dentro da placa-me

Processador

Memria

HD

Monitor

Teclado

Controladora
HD

Controladora
Vdeo

Controladora

Figura 09 Modelo conceitual detalhado

Apresentando os componentes dentro de um computador


Esta aula no ter apostila. Corresponder a uma aula prtica com apresentao de hardware.

Conceitos de Sistemas Operacionais


O sistema computacional moderno algo complexo devido a quantidade de dispositivos
envolvidos. Desenvolver programas que mantenham o controle destes componentes de forma otimizada
impactaria na lentido para novos softwares. Da surge o sistema operacional, cujo trabalho gerenciar
esses componentes e fornecer aos programas de usurios uma interface simples de acesso ao hardware.
Sistema Operacional um conjunto de ferramentas necessrias para que um computador possa ser
utilizado de forma adequada, pois consiste de intermedirio entre o aplicativo e a camada fsica do
hardware. Este conjunto constitudo por um Kernel, ou ncleo, e um conjunto de software bsicos, que
executam operaes simples, mas que juntos fazem uma grande diferena.
O sistema operacional uma camada de software colocada entre o
hardware e software do computador, com o objetivo de facilitar as
atividades dos desenvolvedores e usurios de software, uma vez que no
precisam fazer acesso direto ao dispositivo, fornecendo uma interface mais
amigvel e intuitiva.
Tipos de servios:
Acesso aos perifricos
Utilizao simples de recursos pelo usurio
Manipulao de dados (arquivos e diretrios)
Controle de recursos compartilhados

6

Software
Sistema
operacional
Hardware

Figura 10 Localizao lgica do SO

Romildo Martins Bezerra

Para isso, ele deve ser responsvel pela:

Gerncia do processador, tambm conhecida como gerncia de processos, seu objetivo


visa distribuir de forma justa o processamento evitando o monoplio do processador e
respeitando a prioridade dos usurios e aplicaes.
Gerncia de memria, objetiva fornecer um espao isolado de memria para cada
processo de forma que ele se sinta nico na memria. So necessrios recursos
(memria virtual paginao e segmentao) para que este objetivo seja cumprido de
forma eficiente e atenda todos os processos ativos.
Gerncia de dispositivos, objetiva garantir o acesso aos dispositivos de forma mais fcil
possvel (drivers) aos usurios, criando modelos que generalizem a utilizao dos
dispositivos (lembrar do conceito de bloco no HD).
Gerncia de arquivos, uma implementao especfica da gerencia de dispositivos,
trabalhando apenas com o processo de armazenamento e acesso aos dados, atualmente
atravs de arquivos e diretrios.
Gerencia de proteo, definir o acesso harmnico em sistemas de vrios usurios com
compartilhamento de recursos, como por exemplo, pastas compartilhadas em rede.

Os sistemas operacionais vm passando por um processo gradual de operao. A evoluo dos SO


diretamente ligada a evoluo dos computadores e passou por algumas geraes:
1 Gerao
2 Gerao
3 Gerao
4 Gerao

Vlvulas e Painis de Programao


Transistores e Sistemas de lote
CIs e MultiProgramao
Computadores Pessoais (Atual)

Arquitetura de um SO
Esta arquitetura simples e intuitiva de ser
entendida. O kernel presta servio aos programas de
usurios e recebe servios do microkernel. A
separao entre estes dois nveis diz respeito a
separao dos servios bsicos oferecidos.

Chamadas de
Sistema

Programas
Kernel
Microkernel

Dados
Solicitados

Hardware

Figura 11 Arquitetura de um SO
Um sistema operacional pode oferecer servios tambm na
camda de utilitrios (programas de usurio) confundindo muitas vezes
o usurio, uma vez que tais servios so distribudos pelo prprio
forncedor do software. O Windows Explorer e o task manager manipulador de arquivos e diretrios e gerenciador de tarefas,
respectivamente so exemplos no Microsoft Windows. J o comando
Kernel
top e time so bons exemplos no Linux. Talvez o mais importante eles
seja o interpretador de comandos, uma vez que o usurio comea sua
seo de trabalhos (sem interface visual!).
Figura 12 Interpretador de comandos
C:\ dir /s

Interpretador
de Comandos

Arquitetura Interna de um SO
A eficincia do SO decorrente das facilidades impostas e multiprogramao (veremos a seguir), que
por sua vez s ocorrem pois ele est organizado internamente, viabilizando dois tipos de eventos:

7

Romildo Martins Bezerra

Chamada de sistema uma solicitao de recurso por parte de um programa que est sendo
executado. Diversas preocupaes associadas podem ser listadas, como por exemplo: permisso do
usurio a este recurso.

Interrupo de perifrico o processador para o processador que est executando para atender a
um retorno de um perifrico (controladora dele) informando que o recurso est disponvel.

Detalhes da arquitetura interna do sistema operacional sero vistos no prximos captulos.


Processos
basicamente um programa em execuo sendo constitudo de um cdigo executvel, dados
referentes ao cdigo, da pilha de execuo, do valor do PC, do valor do apontador de pilha, dos valores
dos demais registradores do hardware e outras informaes. Associado a um processo est seu espao de
endereamento, uma lista de posies de memria que contm todas as informaes do processo.
Como em um sistema operacional vrios processos requerem a CPU, necessrio compartilhar o
tempo de acesso entre eles de forma que quando um processo seja parado, todas as suas informaes (se
estado atual) seja guardado. Isto porque quando o mesmo for reiniciado deve continuar do ponto em que
parou. Para isso os sistemas operacionais utilizam uma tabela chamada tabela d processos que consiste em
um vetor ou lista encadeada de estruturas para cada processo existente.
Um processo pode criar mais processos (processos filhos) que podem criar tambm seus processos
filhos. Estes processos se organizam como uma estrutura em arvore conforme vista a seguir. A necessidade
de comunicao entre processos para sincronizar suas atividades chama de comunicao interprocessos.
A
B
D

C
F

Figura 13 Arvore de processos

Quando esto em operao, dois ou mais processos podem entrar em uma situao da qual mo
conseguem sair, esta situao chamada de deadlock.
Memria
Todo computador tem uma memria principal para guardar o estado dos programas em execuo.
Em sistemas operacionais muito simples, somente um programa por vez ocupa a memria.
Sistemas operacionais modernos permitem que mltiplos programas residam na memria principal
ao mesmo tempo. Para que no haja conflito com outros programas ou com o sistema operacional
necessrio construir um mecanismo de proteo a ser controlado pelo sistema operacional.
Outro ponto importante como gerenciar e distribuir os espaos de endereamento dos processos
guardados em memria principal? O que pode ser feito para que um processo que requer mais memria
que o computador dispe? Sistemas operacionais modernos utilizam memria virtual.
Arquivos
Como uma das funes do sistema operacional deixar transparente o aceso aos recursos (entre
eles o disco!) sero necessrias criao de chamadas de sistema para facilitar o acesso aos arquivos
gravados no disco.
Para poder guardar organizadamente os arquivos, vrios sistemas operacionais utilizam o conceito
de diretrio. Cada arquivo dentro desta hierarquia de diretrios pode se acessado fornecendo-se o
caminho (path name) a partir do topo da hierarquia, chamado de diretrio raiz.

8

Romildo Martins Bezerra

Multiprogramao
Como os programas que esto em execuo provavelmente precisaro de acesso aos dispositivos
de E/S e acesso a disco, neste momento o processador ficaria ocioso (o que no verdade, pois o mouse
se mexe e voc o v no monitor!). Nota-se uma necessidade de otimizar a eficincia de utilizao do
computador. Uma soluo seria manter mais de um programa (ou parte dele) na memria principal e
escalonar a utilizao do processador dividindo o tempo de utilizao de forma a no deix-lo ocioso e
atendendo todos os processos.
Com a multiprogramao, a execuo dos processos passa por diversas fases, alternando a
utilizao do processador de forma que reduza o tempo ocioso do processador e o distribua de forma justa
entre processos. Alm disso, muitos processos (quase todos) no precisam de toda memria virtual, logo
se um processo ficasse exclusivo na memria, isto acarretaria um desperdcio.

Estruturas dos Sistemas Operacionais


Sistemas monolticos
Neste sistema no existe organizao visvel. escrito como um conjunto de procedimentos que se
comunicam entre si. a estrutura mais comum.
Essa organizao sugere uma estrutura bsica para o sistema operacional:
1. Um programa principal que invoca o procedimento do servio requisitado
2. Um conjunto d procedimentos de servio que executam chamadas ao sistema
3. Um conjunto de procedimentos utilitrios que auxiliam os procedimentos de servio
Sistemas em camadas
Criao de uma hierarquia de nveis, onde cada um construdo exatamente sobre o nvel abaixo.
Ex:
THE Dijkstra 6 nveis
MULTICS Kernel circular
Mquina Virtual
Uma cpia exata do hardware feita para criar um ambiente nico para execuo do programa.
Pode-se rodar mais de uma MV em um mesmo hardware ou criar n MV diferentes para hardware diferentes
mantendo acima dela uma nica interface.
Modelo cliente/servidor
A comunicao entre os mdulos do kernel do SO feita atravs de solicitaes de servios atravs
de mensagens de processos clientes a processos servidores (memria, arquivo, terminal...).
A diviso do sistema operacional em vrias partes facilita o desenvolvimento e evoluo de um
sistema operacional, alm de permitir que uma falha em um servidor por exemplo, o de arquivos no
afete toda a mquina.
Este modelo oferece fcil adaptabilidade a sistemas distribudos.

Gerncia de Processos
Um processo um programa em execuo incluindo os valores armazenados nos registradores e o
valor das variveis.
As mquinas atuais utilizam o Conceito de pseudoparalelismo paralelismo aparente forma de
chavear o processador em diferentes processos (programas) criando a aluso de simultaneidade de
execuo. Para tal necessrio o rpido chaveamento do processador entre diversos programas em
execuo, chamado de Multiprogramao.
Como o processador est sendo chaveado entre diversos processos pode-se observar que a
velocidade de execuo no constante, por isso a programao de processos no pode ter restries de
tempo.

9

Romildo Martins Bezerra

Estados do processo
Embora cada processo seja uma entidade independente, muitas vezes os processos precisam
interagir com os outros. Para gerenciar esta interao e o escalonamento dos processos necessrio
definir os possveis estados que um processo pode ficar:
1. Em execuo, realmente utilizando a CPU
2. Pronto, capaz de executar a qualquer instante, mas no tem CPU
3. Bloqueado, incapaz de executar

Executando

Destruio
1

Criao
3

Bloqueado

2
Pronto

Figura 14 Estados dos processos


1. Processo bloqueado aguardando informaes
2. Escalonador escolhe outro processo
3. Escalonador entrega processador
4. Entrada de dados concluda
Nota-se que o escalonador est num nvel mais baixo do sistema operacional que os processos para
que possa fazer este controle sobre eles.
1

...

n-1

Escalonador
Figura 15 Escalonador e os processos
Comunicao interprocessos
Como visto acima, freqentemente os processos precisam se comunicar com outros processos,
preferencialmente de maneira estrutura e sem interrupes (nem sempre possvel). Neste tpico
devemos nos preocupar com 3 pontos: a troca de informaes entre processos; a garantia de que um
processo no invada o espao fsico do outro; e a garantia de que um processo no altere os dados que
esto sendo trabalhados por outro (que deve estar no estado pronto neste momento).
O Sistema Operacional deve ento evitar que quando dois ou mais processos que acessam dados
compartilhados o resultado destes processos no dependa do escalonamento, ou seja, um processo no
interferiu no outro. Isto chamado de condio de corrida.
Uma forma de se isolar este problema a definio e tratamento das regies que possam levar
condies de corrida, tais regies so chamadas de regies crticas. Para tal 4 regras foram definidas:
1.
2.
3.
4.

10 

Nunca 2 processos podem entrar ao mesmo tempo


A velocidade ou quantidade de CPUs no interfere
Nenhum processo executando fora da regio crtica pode bloquear outros processos
Nenhum processo deve esperar eternamente para entrar numa regio crtica

Romildo Martins Bezerra

Alternativas para a excluso mtua


Existem vrias alternativas para tratar este problema como: inibio das interrupes, utilizao
de variveis de travamento e alternncia obrigatria. Porm a soluo em software de maior sucesso o
algoritmo de Peterson que combina a utilizao de variveis de travamento com a alternncia obrigatria.
Existe tambm a soluo em hardware chamada de instruo TSL.
Porm ambas as solues apresentam o problema de prioridade invertida, ou seja, um processo de
menor prioridade nunca ter acesso a CPU, logo sua prioridade deveria ser maior. Estas solues tambm
no tratam o problema do Produtor-consumidor (buffer compartilhado)
O problema do produtor e consumidor resolvido atravs de semforos (contadores de eventos) e
mutex (varivel de dois estados). A utilizao de monitores (unidade de sincronizao de alto nvel) para
estas solues facilita a comunicao interprocessos.
Escalonamento
Quando um computador multiprogramado, ele muitas vezes possui diversos processos que
competem pela CPU, surgindo assim a necessidade de alguma entidade para escalonar a CPU entre os
processos, que chamada de escalonador.
Um escalonador deve possuir um algoritmo de escalonamento que se preocupe com 5 regras:
1. Justia Todos processos devem ter acesso a CPU
2. Eficincia A meta do escalonador chegar mais perto dos 100% de utilizao da CPU
3. Minimizar o Tempo de Resposta
4. Turnaround Minimiza os usurios batch
5. Throughput Maximizar o nmero de jobs processados

Algoritmos de Escalonamento
Round Robin

Quantum constante
Sem prioridade
Polmica: Quantum x troca de contexto

Com Prioridade

Cada processo possui uma prioridade e o de maior prioridade executa


primeiro
Para evitar que os processos de maior prioridade tomem conta do
processador, a prioridade decrementada

Menor Job Primeiro

S conduz ao resultado timo quando todos os jobs tiverem prontos ao


mesmo tempo
Difcil estimar o tempo
Utilizao de Mdia ponderada (aging)

Garantido

Estimar (prometer) a um processo o tempo de sua execuo e cumprir


Necessrio conhecimento dos processos executando e a serem
executados

Loteria

Distribuio de bilhetes que do acesso CPU.


Lembra o escalonamento com prioridade, mas bilhetes so trocados
entre processos

Filas mltiplas

Criao de classes de Prioridades alocadas em deferentes filas


Objetiva a reduo de tempo de swapping

11 

Romildo Martins Bezerra

Para melhor eficincia dos escalonadores, recomenda-se separa o mecanismo da poltica de


escalonamento, visto que um processo pai pode administrar melhor seus processos filhos do que o
escalonador do SO.

Gerncia de Memria
Alguns sistemas operacionais mais simples no trabalham com multiprogramao, ou seja, alocam
um processo na memria o executam at que seja terminado. Porm a troca de processos entre memria
e disco para sistemas multiprogramados uma realidade. Para este caso, em que a soma dos espaos de
memria requeridos por todos os processos maior que a memria primria, necessrio levar os dados
no utilizados para o disco, sendo necessrio um controle atravs de mapa de bits.
A utilizao de memorial virtual recomendada, mas o algoritmo de substituio de pginas deve
ser eficiente para garantir o desempenho do processo. Recomenda-se o uso do algoritmo do
envelhecimento (aging) e o WSClock. Um resumo dos algoritmos de substituio de pginas segue abaixo:
timo

No implementvel, mas serve como padro de desempenho

NUR
(no usada recentemente)
FIFO

Muito rudimentar

Pode descartar pginas importantes

FIFO com segunda chance

Melhoria do FIFO

Relgio

Realista

MRU
(menos recentemente usada)
NFU
(no frequentemente usada)
Envelhecimento (aging)

Excelente, mas difcil implementao

Mtodo similar ao MRU, mas rudimentar

timo desempenho e se aproxima do MRU

Conjunto de trabalho

Implementao cara

WSCLOCK

Algoritmo bom e eficiente

Apenas a escolha do algoritmo no o suficiente, preocupao com o tamanho da pgina e a


poltica de alocao so fundamentais.
Como sistema de memria virtual discutido at ento unidimensional, com o crescimento da
massa de dados trabalhada a paginao deve aumentar ou a informao do executvel e dos dados ficaro
distribudas na memria principal. Surge a necessidade de segmentar o espao da memria para a tabela
de smbolos, o cdigo fonte e pilha de chamadas do sistema.
A utilizao da segmentao ajuda no tratamento das estruturas de dados dos programas e
proteo diferenciada para as informaes na memria.

12 

Romildo Martins Bezerra

Sistemas Operacionais Atuais


Linux
GNU/Linux ou simplesmente Linux, um popular sistema operacional livre, composto pelo ncleo
(kernel) Linux e pelas bibliotecas e ferramentas do projeto GNU. um sistema do tipo Unix que
implementa o padro POSIX.
O Linux hoje funciona em dezenas de plataformas, desde mainframes at um relgio de pulso,
passando por vrias arquiteturas: Intel, StrongARM, PowerPC, Alpha etc., com grande penetrao tambm
em dispositivos embarcados, como handheld, PVR, vdeo-jogos e centrais de entretenimento etc. O Linux
tem um kernel hbrido monoltico. Drivers de dispositivo e extenses do kernel tipicamente rodam com
acesso total ao hardware, embora alguns rodem em espao de usurio. Ao contrrio dos kernels
monolticos padro, os drivers de dispositivo so facilmente configurados como mdulos, e carregados e
descarregados enquanto o sistema est rodando. Tambm ao contrrio de kernels monolticos padro,
drivers de dispositivo podem ser pr-inseridos sob certas condies. Essa ltima caracterstica foi
adicionada para corrigir o acesso a interrupes de hardware, e para melhorar o suporte a
multiprocessamento simtrico.
Windows
Microsoft Windows um sistema operacional extremamente popular, criado pela Microsoft,
empresa fundada por Bill Gates e Paul Allen. O Windows um produto comercial, com preos
diferenciados para cada verso, embora haja uma enorme quantidade de cpias ilegais instaladas, porque
ele o sistema operacional mais copiado do mundo. Apesar do sistema ser conhecido pelas suas falhas
crticas na segurana e como plataforma de vrus de computador e programas-espies (spywares), o
impacto deste sistema no mundo atual simplesmente incalculvel devido ao enorme nmero de cpias
instaladas. Conhecimentos mnimos desse sistema, do seu funcionamento, da sua histria e do seu
contexto so, na viso de muitos, indispensveis, mesmo para os leigos em informtica.
Os primeiros Windows, como o 1.0, 2.0 e 3.x, s so compatveis em parties formatadas com o
sistema de ficheiros FAT, ou como chamado, FAT16. No salto do 3.1 para o 95B (Windows 95 OSR 2/OSR
2.1), os HD's poderiam ser formatados em FAT32. Inicialmente lanado com o Windows NT, a tecnologia
NTFS agora o padro de facto para esta classe. Com a convergncia de ambos sistemas, o Windows XP
passou tambm a preferir este formato.
A principal linguagem de programao usada para se escrever o cdigo-fonte das vrias verses do
Windows a linguagem C++. At verso 3.11, o sistema rodava em 16 bits, da em diante, em 32 bits. As
ltimas verses (como o XP, o 2003 e o futuro Windows Vista (nome de cdigo Longhorn) est preparado
para a tecnologia 64 bits. Esse sistema dever incluir o sistema de arquivos WinFS, que acabou retirado do
Windows Vista.
Amoeba
O sistema operacional distribudo Amoeba o fruto da investigao de Andrew S. Tanenbaum, na
Universidade Vrije na Holanda, . O objetivo do projeto era construir um sistema de timesharing que
aparentasse ao utilizador que uma tarefa seria executada numa nica mquina mesmo que estivesse
realmente a correr em mltiplas mquinas. A ltima verso do projeto foi a 5.3 em 12 de fevereiro de
2001. Depois de seu desenvolvimento, o Amoeba precisava de uma linguagem de programao de scripts,
foi ento que comeou o desenvolvido do Python, evolucionado do ABC e Modula.
Minix
O Minix uma verso do Unix, porm, gratuita e com o cdigo fonte disponvel. Isso significa que
qualquer programador experiente pode fazer alteraes nele. Ele foi criado originalmente para uso
educacional, para quem quisesse estudar o Unix "em casa". No entanto, vale citar que ele foi escrito do
zero e apesar de ser uma verso do Unix, no contm nenhum cdigo da AT&T e por isso pode ser
distribudo gratuitamente.
Caractersticas
o Multiprogramao por completo (mltiplos programas podem rodar ao mesmo tempo ).
o Roda em 286, 386, 486, Pentium.
o Suporta memria estendida (16MB no 286 e 4GB no 386, 486 e Pentium).
o RS-232 serial line suporte com terminal emulation, kermit, zmodem, etc.

13 

Romildo Martins Bezerra

o
o
o
o
o
o
o
o
o

Mximo de trs usurios simultaneamente na mesma mquina.


Sistema de chamada compatvel com POSIX.
Inteiramente escrito em C (SO, utilitrios, bibliotecas etc.).
Compilador ANSI C.
Shell funcionalmente idntico ao Bourne shell.
Rede TCP/IP.
5 editores (emacs subset, vi clone, ex, ed, and simple screen editor).
Mais de 200 utilitrios (cat, cp, ed, grep, kermit, ls, make, sort, etc.).
Mais de 300 bibliotecas (atoi, fork, malloc, read, stdio, etc.).

O Minix organizado em quatro camadas, onde a camada 1 e 2 formam o kernel:


1) Gerenciamento de Processos
o Captura interrupes e traps, salvar e restaurar registradores, agendar as demais funes
para realmente fazer a abstrao de processo;
o Gerenciar a mecnica das mensagens, verificar destinos legais, localizar buffers de envio e
recebimento de memria fsica e copiar bytes do remetente para o destinatrio.
2) Tarefas de Entrada e Sada
o Processos de IO, um por dispositivo;
o As tarefas de IO so chamadas drivers de dispositivos;
o As tarefas no podem executar todas as instrues no nvel da mquina, nem podem
acessar todos os registradores da CPU, ou todas as partes da memria, ao contrrio da
camada 1;
o Porm podem acessar regies da memria que pertencem a processos com menos
privilgios.
3) Processos de Servidor
o Contm processos que fornecem servios teis ao usurio;
o Existem em um nvel menos privilegiado que o kernel;
4) Processos de Usurio
o Shell, editores, compiladores, etc

Pesquise
1.
2.
3.
4.
5.

Problema dos Filsofos


Diferena entre paginao e segmentao de memria.
Algoritmos de substituio de pginas.
O funcionamento passo a passo de uma falta de pgina.
Como a memria virtual implementada no Windows e Linux.

Temas para trabalhos


1.
2.
3.

Programao Concorente
MINIX
SOSIM

Bibliografia
[1] TANENBAUM, A., Organizao Estruturada de Computadores, 5 Edio, 2006.
[2] TANENBAUM, A. Sistemas Operacionais Modernos. 2 Edio 2006.
[3] TOSCANI, S.; OLIVEIRA, R.; CARISSIMI, A. Sistemas operacionais. 3 Edio Sagra Luzzatto, 2004.

14 

Você também pode gostar