Você está na página 1de 39

UNIVERSIDADE DO SUL DE SANTA CATARINA UNISUL

CENTRO DE CINCIAS EXATAS, AGRRIAS E DAS ENGENHARIAS


CURSO DE CINCIA DA COMPUTAO

SISTEMAS
OPERACIONAIS I

Professor Alessandro Zanini


E-Mail : zanini@ati.unisul.rct-sc.br
http://www.unisul.rct-sc.br/so1

Tubaro - 2000

Prof. Alessandro Zanini

1.

Conceitos Bsicos
1.1

Introduo

Antes de comearmos a estudar os conceitos e os principais componentes de um sistema


operacional, devemos saber primeiramente quais so suas funes bsicas.
Por mais complexo que possa parecer, um sistema operacional e apenas um conjunto de rotinas
executado pelo processador, da mesma forma que qualquer outro programa.. Sua principal funo e
controlar o funcionamento do computador, como um gerente dos diversos recursos disponveis no
sistema.
O nome sistema operacional no e nico para designar esse conjunto de programas. Nomes
como monitor, executivo, supervisor ou controlador possuem, normalmente, o mesmo significado.
Um sistema operacional possui inmeras funes e resumimos essas funes, basicamente, em
duas, descritas a seguir:

1.1.1 Facilidade de acesso aos recursos do sistema


Um sistema de computaco, ao possui, normalmente, diversos componentes, como terminais,
impressoras, discos e fitas. Quando utilizamos um desses dispositivos, no nos preocupamos com a
maneira como e realizada esta comunicao e os inmeros detalhes envolvidos.
Para a maioria de ns uma operao cotidiana, como, por exemplo, a leitura de um arquivo em
disquete, pode parecer simples. Na realidade, existe um conjunto de rotinas especficas, controladas pelo
sistema operacional, responsvel por acionar a cabea, a de leitura e gravao da unidade de disco,
posicionar na trilha e setor onde esto os dados, transferir os dados do disco para a memria e,
finalmente, informar ao programa a chegada dos dados.
O sistema operacional, ento, serve de interface entre o usurios e os recursos diponveis no
sistema, tornando esta comunicao transparente e permitindo ao usurio um trabalho mais eficiente e
com menores chances de erros (Figura 1).
Este conceito de ambiente simulado, criado pelo sistema operacional, e denominado mquina
virtual (virtual machine) e est presente, de alguma forma, na maioria dos sistemas atuais.
comum pensar-se que compiladores, linkers, bibliotecas, depuradores e outras ferramentas
fazem parte do sistema operacional, mas, na realidade, estas facilidades so apenas utilitrios,
destinados a ajudar a interao do usurio com o computador.

1.1.2 Compartilhamento de recursos de forma organizada e protegida


Quando pensamos em sistemas multiusurio, onde vrios usurios podem estar compartilhando
os mesmos recursos, como, por exemplo, memria e discos, necessrio que todos tenham oportunidade
de ter acesso a esses recursos, de forma que um usurio no interfira no trabalho do outro.
Se imaginarmos, por exemplo, que uma impressora possa ser utilizada por vrios usurios do
sistema, dever existir algum controle para impedir que a impresso de um usurio interrompa a
impresso de outro. Novamente, o sistema operacional responsvel por permitir o acesso concorrente a
esse e a outros recursos, de forma organizada e protegida, dando ao usurio a impresso de ser o nico a
utiliz-los.
O compartilhamento de recursos permite, tambm, a diminuio de custos, na medida em que
mais de um usurio possa utilizar as mesmas facilidades concorrentemente, como discos, impressoras,
linhas de comunicao etc.
No apenas em sistemas multiusurio que o sistema operacional imporntate. Se pensarmos
que um computador pessoal nos permite executar vrias tarefas, como imprimir um documento, copiar
um arquivo pela internet ou processar uma planilha, o sistema operacional deve ser capaz de controlar a
execuo concorrentes de todas essas tarefas.

Prof. Alessandro Zanini

Figura 1 - Viso do sistema operacional como interface entre os usurios e os recursos do sistema.

1.2

Mquinas de Nveis

Um computador, visto somente como um gabinete composto de circuitos eletrnicos, cabos e


fontes de alimentao (hardware), no tem nenhuma utilidade. atravs de programas (software) que o
computador consegue armazenar dados em discos, imprimir relatrios, gerar grficos, realizar clculos,
entre outras funes. O hardware o responsvel pela execuo das instrues de um programa, com a
finalidade de se realizar alguma tarefa.
Uma operao efetuada pelo software pode ser implementada em hardware, enquanto uma
instruo executada pelo hardware pode ser simulada via software. Esta deciso fica a cargo do projetista
do computador em funo de aspectos como custo, confiabilidade e desempenho. Tanto o hardware como
o software so logicamente equivalentes, interagindo de uma forma nica para o usurio.
Nos primeiros computadores, a programao era realizada em painis, atravs de fios, exigindo
um grande conhecimento do hardware e de sua linguagem de mquina. Isso era uma grande dificuldade
para os programadores da poca.
A soluo para esse problema foi o surgimento do sistema operacional, que tornou a interao
entre usurio e computador mais simples, confivel e eficiente. A partir desse acontecimento, no existia
mais a necessidade de o programador se envolver com a complexidade do hardware para poder
trabalhar; ou seja, a parte fsica do computador tornou-se transparente para o usurio.

Prof. Alessandro Zanini

Sistema
Operacional
Hardware

Figura 2 - Viso modular do computador pelo usurio.


Partindo desse princpio, podemos considerar o computador como uma mquina de nveis ou
camadas, onde inicialmente existem dois nveis: o nvel 0 (hardware) e o nvel 1 (sistema operacional).
Desta forma, o usurio pode enxergar a mquina como sendo apenas o sistema operacional, ou seja,
como se o hardware no existisse. Esta viso modular e abstrata chamada mquina virtual.
Na realidade, um computador no possui apenas dois nveis, e sim tantos nveis quanto forem
necessrios para adequar o usurio s suas diversas aplicaes. Quando o usurio est trabalhando em
um desse nveis, no necessita da existncia das outras camadas, acima ou abaixo de sua mquina
virtual.
Atualmente, a maioria dos computadores possui a estrutura mostrada na Figura, podendo
conter mais ou menos camadas. A linguagem utilizada em cada um desses nveis diferente, variando
da mais elementar (baixo nvel) mais sofisticada (alto nvel).

Aplicativos
Utilitrios
Sistema Operacional
Linguagem de Mquina
Microprogramao

Hadware

Dispositivos Fsicos
Figura 3 - Mquina de nveis.

1.3

Histrico

A evoluo dos sistemas operacionais est, em grande parte, relacionada ao desenvolvimento de


equipamentos cada vez mais velozes, compactos e de custos baixos, e necessidade de aproveitamento e
controle desses recursos.
Neste histrico dividimos essa evoluo em fases, once destacamos, em cada uma, sues
principals caractersticas de hardware, software, interao com o sistema e aspectos de conectividade.

1.3.1 Primeira Fase (1945-1955)


No incio da Segunda Guerra Mundial, surgiram os primeiros computadores digitais, formados
por milhares de vlvulas, que ocupavam areas enormes, sendo de funcionamento lento e duvidoso.
Prof. Alessandro Zanini

O ENIAC (Electronic Numerical Integrator and Computer) foi o primeiro computador digital
de propsito geral. Criado pare a realizao de clculos balsticos, sue estrutura possua 18 mil vlvulas,
10 mil capacitores, 70 mil resistores e pesava 30 toneladas. Quando em operao, consumia cerca de 140
quilowatts e era capaz de realizar 5 mil adies por segundo.
Para trabalhar nessas mquinas, era necessrio conhecer profundamente o funcionamento do
hardware, pods a programao era feita em painis, atravs de fios, utilizando linguagem de mquina.
Nessa fase, ainda no existia o conceito de sistema operacional.
Outros computadores foram construdos nessa mesma poca, como o EDVAC (Electronic
Discrete Variable Automatic Computer) e o IAS (Princeton Institute for Advanced Studies), mas eram
utilizados, praticamente, apenas nas universidades e nos rgos militares.
Com o desenvolvimento da indstria de computadores, muitas empresas foram fundadas ou
investiram no setor, como a Sperry e a IBM, o que levou a criao dos primeiros computadores pare
aplicaes comerciais. A primeira mquina fabricada com esse propsito e bem-sucedida foi o UNIVAC
I (Universal Automatic Computer), criado especialmente pare o censo americano de 1950.

1.3.2 Segunda Fase (1956-1965)


A criao do transistor e das memrias magnticas contribui pare o enorme avano dos
computadores da poca. O transistor permitiu o aumento da velocidade e da confiabilidade do
processamento, e as memrias magnticas permitiram o acesso mais rpido aos dados, major capacidade
de armazenamento e computadores menores.
Com o surgimento das primeiras linguagens de programao, como Assembly e Fortran, os
programas deixaram de ser feitos diretamente no hardware, o que facilitou enormemente o processo de
desenvolvimento de programas.
J no era mais possvel conviver com tantos procedimentos manuais como os anteriores, que
no permitiam o uso eficiente do computador e de seus recursos. Os primeiros sistemas operacionais
surgiram, justamente, pare tentar automatizar as tarefas manuais

Figura 4 - Processamento batch


Inicialmente, os programas passaram a ser perfurados em cartes, que, submetidos a uma
leitora, eram gravados em uma fita de entrada (Figura 4a). A fita, ento, era lida pelo computador, que
executava um programa de cada vez, gravando o resultado do processamento em uma fita de sada
(Figura 4b). Ao terminar de todos os programas, a fita de sada era lida e impressa (Figura 4c). A esse
Prof. Alessandro Zanini

tipo de processamento, onde um lote (batch) de programas era submetido ao computador, deu-se o nome
de processamento batch.
Pode no parecer um avano, mas anteriormente os programas eram submetidos pelo operador,
um a um, fazendo com que o processador ficasse ocioso entre a execuo, ao de um programa e outro.
Com o processamento batch, um grupo de programas era submetido de uma s vez, o que diminua o
tempo existente entre a execuo dos programas, permitindo, assim, melhor uso do processador.
Os sistemas operacionais passaram a ter seu prprio conjunto de rotinas pare operaes de
entrada/sada (Input/Output Control SystemIOCS), que veio facilitar bastante o processo de
programao. O IOCS eliminou a necessidade de os programadores desenvolverem sues prprias rotinas
de leitura/gravao especficas para cada dispositivo perifrico. Essa facilidade de comunicao criou o
conceito de independncia de dispositivos.
Importantes avanos, em nvel de hardware, foram implementados no final dessa fase,
principalmente na linha 7094 da IBM. Entre eles, destacamos o conceito de canal, que veio permitir a
transferncia de dados entre dispositivos de entrada/sada e memria principal de forma independente da
UCP. Ainda nessa fase, destacamos os sistemas FMS (Fortran Monitor System) e IBSYS.

1.3.3 Terceira Fase (1966-1980)


Atravs dos circuitos integrados (CIs) e, posteriormente, dos microprocessadores, foi possvel
viabilizar e difundir o uso de sistemas computacionais por empresas, devido a diminuio de seus custos
de aquisio. Alm disso, houve grande aumento do poder de processamento e diminuio no tamanho
dos equipamentos.
Com base nessa nova tecnologia, a IBM lanou em 1964 a Srie 360. Esse lanamento causou
uma revoluo na indstria de informtica, pois introduzia uma linha (famlia) de computadores
pequena, poderosa e, principalmente, compatvel. Isso permitiu que uma empresa adquirisse um modelo
mais simples e barato e, conforme sues necessidades, mudasse pare modelos com mais recursos, sem
comprometer sues aplicaes j existentes. Para essa srie, foi desenvolvido o sistema operacional
OS/360, que tentava atender todos os tipos de aplicaes e perifricos. Apesar de todos os problemas
desse equipamento e de seu tamanho fsico, a Srie 360 introduziu novas tcnicas, utilizadas ate hoje.
Na mesma poca, a DEC lanou a linha PDP-8, tambm revolucionria, pois apresentava uma
linha de computadores de porte pequeno e baixo custo, se comparada aos mainframes ate ento
comercializados, criando um novo mercado, o de minicomputadores.
A evoluo dos processadores de entrada/sada permitiu que, enquanto um programa esperasse
por uma operao de leitura/gravao, o processador executasse um outro programa. Para tal, a memria
foi dividida em parties, onde cada programa esperava sue vez pare ser processado. A essa tcnica de
compartilhamento da memria principal e processador deu-se o nome de multiprogramao.
Com a substituio das fitas por discos no processo de submisso dos programas, o
processamento batch tornou-se mais eficiente, pois permitia a alterao na ordem de execuo das
tarefas, ate ento puramente seqencial. A essa tcnica de submisso de programas chamou-se spooling,
que, mais tarde, tambm viria a ser utilizada no processo de impresso.
Os sistemas operacionais, mesmo implementando o processamento batch e a multiprogramao,
ao, ainda estavam limitados a processamentos que no exigiam comunicao com o usurio. Para
permitir a interao rpida entre o usurio e o computador, foram adicionados terminais de vdeo e
teclado (interao on-line).
A multiprogramao evoluiu preocupada em oferecer aos usurios tempos de respostas
razoveis e uma interface cada vez mais amigvel. Para tal, cada programa na memria utilizaria o
processador em pequenos intervalos de tempo. A esse sistema de diviso de tempo do processador
chamou-se time-sharing (tempo compartilhado).
Outro fato importante nessa fase foi o surgimento do sistema operacional Unix (1969).
Concebido inicialmente em um minicomputador PDP-7, baseado no sistema MULTICS (Multiplexed
Information and Computing Service), o Unix foi depois rescrito em uma linguagem de alto nvel
(linguagem C), tornando-se conhecido por sue portabilidade.
No final dessa fase, com a evoluo dos microprocessadores, surgiram os primeiros
microcomputadores, muito mais baratos que qualquer um dos computadores ate ento comercializados.
Entre eles, destacamos os micros de 8 bits da Apple e o sistema operacional CP/M (Control Program
Monitor).

1.3.4 Quarta Fase (1981-1990)


A integrao em large escala (Large Scale Integration-LSI) e a integrao em muito large escala
(Very Large Scale Integration-VLSI) levaram adiante o projeto de miniaturizao e barateamento dos
Prof. Alessandro Zanini

equipamentos. Os mini e superminicomputadores se firmaram no mercado e os microcomputadores


ganharam um grande impulso.
Nesse quadro surgiram os microcomputadores PC (Personal Computer) de 16 bits da IBM e o
sistema operacional DOS (Disk Operation System), criando a filosofia dos computadores pessoais. Na
rea dos minis e superminicomputadores ganharam impulso os sistemas multiusurio, com destaque
pare os sistemas compatveis com o Unix (Unix-like) e o VMS (Virtual Memory System) da DEC.
Surgem as estaes de trabalho (workstations) que, apesar de monousurias, permitem que se executem
diversas tarefas concorrentemente, criando o conceito de multitarefa.
No final dos anos 80, os computadores tiveram um grande avano, decorrente de aplicaes que
exigiam um enorme volume de clculos. Para acelerar o processamento, foram adicionados outros
processadores, exigindo dos sistemas operacionais novos mecanismos de controle e sincronismo. Com o
multiprocessamento, foi possvel a execuo de mais de um programa simultaneamente, ou ate de um
mesmo programa por mais de um processador. Alm de equipamentos com mltiplos processadores,
foram introduzidos processadores vetoriais e tcnicas de paralelismo em diferentes nveis, fazendo com
que os computadores se tornassem ainda mais poderosos.
As redes distribudas (Wide Area Network- WANs) se difundiram por todo o mundo, permitindo
o acesso a outros sistemas de computao, independentemente de estado, pas e, ate mesmo, fabricante.
Nesse contexto so desenvolvidos inmeros protocolos de rede, alguns proprietrios, como o DECnet da
DEC e o SNA (System Network Architecture) da IBM, e outros de domnio pblico, como o TCP/IP e o
CCITT X.25. Surgem as primeiras redes locals (Local Area NetworkLANs) interligando pequenas
reas. Os softwares de rede passaram a estar intimamente relacionados ao sistema operacional e surgem
os sistemas operacionais de rede.

1.3.5 Quinta Fase (1991- )


Grandes avanos em termos de hardware, software e telecomunicaes podem ser esperados ate
o final deste sculo. Essas mudanas so conseqncia da evoluo das aplicaes, que necessitam cada
vez mais de capacidade de processamento e armazenamento de dados. Sistemas especialistas, sistemas
multimdia, banco de dados distribudos, inteligncia artificial e redes neurais so apenas alguns
exemplos da necessidade cada vez major.
A evoluo da microeletrnica permitir o desenvolvimento de processadores e memrias cada
vez mais velozes e baratos, Alm de dispositivos menores, mais rpidos e com major capacidade de
armazenamento. Os componentes baseados em tecnologia VLSI (Very Large Scale Integration) evoluem
rapidamente pare o ULSI (Ultra Large Scale Integration).
Os computadores da prxima gerao tm de ser muito mais eficientes que os atuais, pare
atender o volume cada vez major de processamento. Para isso, est ocorrendo uma mudana radical na
filosofia de projeto de computadores. Arquiteturas paralelas, baseadas em organizaes de
multiprocessadores no convencionais, j se encontram em desenvolvimento em varies universidades e
centros de pesquisa do mundo.
A evoluo do hardware encadear modificaes profundas nas disciplines de programao pare
fazer melhor uso das arquiteturas paralelas. Assim, novas linguagens e metodologias de programao
concorrentes esto sendo desenvolvidas, em particular, fazendo uso extensivo de inteligncia artificial e
CAD (Computer-Aided Design).
O conceito de processamento distribudo ser explorado nos sistemas operacionais, de forma
que sues funes estejam espalhadas por vrios processadores atravs de redes de computadores. Isso s
ser possvel devido a reduo, ao dos custos de comunicao e ao aumento na taxa de transmisso de
dados.
A arquitetura cliente-servidor aplicada basicamente a redes locais passe a ser oferecida em redes
distribudas, permitindo que qualquer pessoa tenha acesso a todo tipo de informao, independentemente
de once esteja armazenada. Problemas de segurana, gerncia e desempenho tornam-se fatores
importantes relacionados ao sistema operacional e a rede.
A dcada de 90 foi definitiva pare a consolidao dos sistemas operacionais baseados em
interfaces grficas. Apesar da evoluo da interface, a forma de interao com os computadores sofrer,
talvez, uma das modificaes mais visveis. Novas interfaces homem-mquina sero utilizadas, como
linguagens naturais, sons e imagens, fazendo essa comunicao mais inteligente, simples e eficiente.
Os conceitos e implementaes s vistos em sistemas considerados de grande porte esto sendo
introduzidos na maioria dos sistemas desktop, como na famlia Windows da Microsoft, no Unix e no
OS/2 da IBM.
Fase

Primeira (1945- Segunda (1956- Terceira (1966- Quarta


1955)
1965)
1980)
1990)

Computad ENIAC
Prof. Alessandro Zanini

NCR

IBM 360, 370

Cray XMP

(1981- Quinta
)
IBM 3090

(1991-

ores

EDVAC
UNIVAK

IMB 7094
CDC-6600

PDP-11
Cray 1
Cyber-205

IBM 308
VAX-11
IBM-PC

Alpha AXP
Pentium
Sun SPARC

Hardware

Vlvulas
Transistor
Tambor Magntico
Memria Magntica
Tubos
de
raios
catdicos

Circuito Integrado
Disco Magntico
Minicomputador
Microprocessador

LSI ou VLSI
Disco ptico
Microcomputador

Ultra-LSI
Arquiteturas
Paralelas
Circuto Integrado 3D

Software

Linguagem
de Linguagem de Alto Linguagem
Mquina
Nvel
Estruturadas
Linguagem assembly Processamento Batch Multiprogramao
Time-Sharing
Computao Grfica

Multiprocessamento
Sistemas
Especialistas
Linguagens
orientadas a objetos

Processamento
Distribudo
Linguagens
concorrentes
Programao
funcional
Linguagens naturais

Telecomun
icaes

Telefone
Teletipo

Transmisso Digital

Comunicao
via Redes Locais (LAN)
satlite
Internet
Microondas
Redes
distribudas(WAN)
Fibra ptica

Redes
Locais
estendidas(ELAN)
Redes sem fio
Modelo
clienteservidor

Desempen
ho

10 ips

200.000 ips

5 Mips

1 Gflops
1 Tflops

30 Mips

Tabela 1 - Caractersticas de cada fase

Prof. Alessandro Zanini

2.

Conceitos de Hardware e Software


2.1

Hardware

Um computador digital constitudo por um conjunto de componentes interligados, composto


por processadores, memria principal e dispositivos fsicos (hardware). Esses dispositivos manipulam
dados na forma digital, o que proporciona uma maneira confivel de representao.
Todos os componentes de um computador so agrupados em trs subsistemas bsicos: unidade
central de processamento (UCP), memria principal, e dispositivos de entrada e sada ( Figura 5. Estes
subsistemas, tambm chamados de unidades funcionais, esto presentes em todo computador digital,
apesar de suas implementaes variarem nas diferentes arquiteturas existentes e comercializadas pelos
diversos fabricantes de computadores. Neste item descrevemos os conceitos bsicos dos principais
componentes desses sistema.

2.1.1 Unidade Central de Processalmento


A unidade central de processamento (UCP), ou processador, tem como funo principal unificar
todo o sistema, controlando as funes realizadas por cada unidade funcional. AUCP tambm
responsvel pela execuo de todos os programas do sistema, que obrigatoriamente devero estar
armazenados na memria principal.
Um programa composto por uma srie de instrues que so executadas sequencialmente pela
UCP, atravs de operaes bsicas como somar, subtrair, comparar e movimentar dados. Desta forma, a
UCP busca cada instruo na memria principal e a interpreta para sua execuo.

Unidade Lgica
e Aritmtica
(ULA)

Unidade
de Controle
(UC)

Registradores
Dispositivos de
Entrada e Sada

Memria Principal (MP)

Figura 5 - Unidades funcionais de um computador


A UCP composta por dois componentes bsicos: unidade de controle e unidade lgica
aritmtica. A Unidade de controle (UC) responsvel por controlar as atividades de todos os
componentes do computador, mediante a emisso de pulsos eltricos (sinais de controle) gerados por um
dispositivo denominado clock. Este controle pode ser a gravao de um dado no disco ou a busca de uma
instruo da memria. A unidade lgica e aritmtica (ULA), como o nome indica, responsvel pela
realizao de operaes lgicas (testes e comparaes) e aritmticas (somas e subtraes).
A especificao da velocidade de processamento de uma UCP determinada pelo nmero de
instrues que o processador executa por unidade de tempo, normalmente segundo. Alguns fabricantes
utilizam unidade processamento prprias, j que no existe uma padronizao, sendo as mais comuns o
MIPS (milhes de instrues por segundo) e o MFLOPS/GFLOPS (milhes/bilhes de instrues de
Prof. Alessandro Zanini

ponto flutuante por segundo). A mostra alguns processadores e suas respectivas velocidades de
processamento.
Intel 80386
5 MIPS

Velocidade de
Processamento

Intel 80486
20 MIPS

Item Pentium
100 MIPS

Item Pentium Pro


250 MIPS

Tabela 2 - Velocidade de processamento de alguns computadores.

2.1.2 Clock
O clock e um dispositivo, localizado na UCP, que gera pulsos eltricos sncronos em um
determinado intervalo de tempo (sinal de clock). A quantidade de vezes que este pulso se repete em um
segundo define a freqncia do clock. O sinal de clock e utilizado pela unidade de controle pare a
execuo, das instrues.
A freqncia do clock de um processador e medida em Hertz (Hz), que significa o nmero de
pulsos eltricos gerados em um segundo de tempo. A freqncia tambm pode ser utilizada como
unidade de desempenho entre diferentes processadores, pods quanto major a freqncia, mais instrues
podem ser executadas pela UCP em um mesmo intervalo de tempo.

2.1.3 Registradores
Os registradores so dispositivos de alta velocidade, localizados fisicamente na UCP, pare
armazenamento temporrio de dados. O nmero de registradores varia em funo da arquitetura de cada
processador. Alguns registradores so de uso especfico e tm propsitos especiais, enquanto outros so
ditos de uso geral.
Entre os registradores de uso especfico, merecem destaque:
contador de instrues (CI) ou program counter (PC) e o registrador responsvel pelo
armazenamento do endereo da prxima instruo que a UCP dever executar. Toda vez que a UCP
execute uma instruo, o PC e atualizado com um novo endereo;
o apontador da pilha (AP) ou stack pointer (SP) e o registrador que contmemriam o endereo de
memria do topo da pilha, que e a estrutura de dados onde o sistema mantm informaes sobre
tarefas que estavam sendo processadas e tiveram que ser interrompidas por algum motivo;

o registrador de estado, tambm chamado em alguns equipamentos de program status word (PSW),
e o registrador responsvel por armazenar informaes sobre a execuo do programa, como a
ocorrncia de carry e overflow. A cada instruo executada, o registrador de estado e alterado
conforme o resultado gerado pela instruo.

2.1.4 Memria Principal


A memria principal, tambm conhecida como memria primria ou real, e a parte do
computador onde so armazenados instrues e dados. Ela e composta por unidades de acesso chamadas
clulas, sendo cada clula composta por um determinado nmero de bits (binary digit). O bit e a unidade
bsica de memria, podendo assumir o valor 0 ou 1. Atualmente, a grande maioria dos computadores
utilize o byte (8 bits) como tamanho de clula, porm encontramos computadores de geraes passadas
com clulas de 16, 32 e ate mesmo 60 bits. Podemos concluir, ento, que a memria, e formada por um
conjunto de clulas, onde cada clula possui um determinado nmero de bits (Figura 6).

Prof. Alessandro Zanini

0
1
2

Endereos

M-1

Clula = n bits
Figura 6 - Memria principal
O acesso ao contedo de uma clula e realizado atravs da especificao, ao de um nmero
chamado endereo. O endereo e uma referncia nica, que podemos fazer a uma clula de memria
Quando um programa deseja ler ou escrever um dado em uma clula, deve primeiro especificar qual o
endereo de memria desejado, pare depois realizar a operao.
A especificao, ao do endereo, o e realizada atravs de um registrador denominado
registrador de endereo de memria (memory register address - MAR). atravs do contedo deste
registrador, a unidade de controle sabe qual a clula de memria que ser acessada. Outro registrador
usado em operaes com a memria e o registrador de dados da memria (memory buffer register
MBR) . Este registrador e utilizado pare guardar o contedo de uma ou mais clulas de memria aps
uma operao de leitura, ou pare guardar o dado que ser transferido pare a memria em uma operao
de gravao. Este ciclo de leitura e gravao e mostrado na Figura 7.
Operao de Leitura
1. A UCP armazena no MAR, o endereo da clula
a ser lida.
2. A UCP gera um sinal de controle pare a
memria principal, indicando que uma operao de
leitura deve ser realizada.
3. 0 contedo da(s) clula(s), identificada(s) pelo
endereo contido no MAR, e transferido pare o
MBR.

Operao de gravao
1. A UCP armazena no MAR, o endereo da clula
que ser gravada.
2. A UCP armazena no MBR, a informao que
dever ser gravada.
3. A UCP gera um sinal de controle pare a memria
principal, indicando que uma operao de gravao
deve ser realizada.
4. A informao contida no MBR e transferida pare
a clula de memria endereada pelo MAR.

Figura 7 - Ciclo de leitura e gravao


A capacidade de uma memria e limitada pelo tamanho do MAR. No caso de o registrador
possuir n bits, a memria principal poder no mximo enderear 2 n clulas, isto , do endereo 0 ao 2 n1.
A memria principal pode ser classificada em funo de sue volatilidade, que e a capacidade de
a memria preservar o seu contedo mesmo sem uma fonte de alimentao, ao ativa. As memrias
chamadas volteis se caracterizam por poderem ser lidas ou gravadas, como o tipo RAM (random access
memory), que constitui quase que a totalidade da memria principal de um computador. O outro tipo,
chamado de no voltil, no permite alterar ou apagar seu contedo. Este tipo de memria conhecido
como ROM (read-only memory), j vem pr-gravado do fabricante, geralmente com algum programa, e
Prof. Alessandro Zanini
10

seu contedo e preservado mesmo quando a alimentao e desligada. Uma variao da ROM e a
EPROM (erasable programmable ROM), once podemos gravar e regravar a memria atravs exposio
de luz ultravioleta por um dispositivo especial.
Atualmente, uma srie de memrias com diferentes caractersticas, existe pare diversas
aplicaes, como a EEPROM, EAROM, EAPROM, NOVRAM entre outras.

2.1.5 Memria Cache


A MEMRIA cache e uma memria voltil de alta velocidade. O tempo de acesso a um dado
nela contido e muito menor que se o mesmo estivesse na memria principal.
Toda vez que o processador fez referncia a um dado armazenado na memria principal, ele
"olha" antes na memria cache. Se o processador encontrar o dado na cache, no ha necessidade do
acesso a memria principal; do contrrio, o acesso e obrigatrio Neste ltimo cave, o processador, a
partir do dado referenciado, transfere um bloco de dados pare a cache. O tempo de transferncia entre as
memrias e pequeno, se comparado com o aumento do desempenho obtido com a utilizao, ao desse
tipo de memria.
Apesar de ser uma memria de acesso rpido, seu uso e limitado em fun,cao do alto custo. A
Tabela 2.2 mostra a relao entre as memrias cache e principal em alguns equipamentos.

Tamanho mximo
memria principal
Tamanho mximo
Memria cache

HP 9000/855S
256 Mb

IBM 3090/600S
512 Mb

VAX 9000/440
512 Mb

256 Kb

128 Kb por UCP

128 Kb por UCP

Tabela 3 - Relao entre as memrias cache e principal

2.1.6

Memria Secundria

A memria secundria e um meio permanente (no voltil) de armazenamento de programas e


dados. Enquanto a memria principal precisa estar sempre energizada pare manter sues informaes, a
memria secundria no precise de alimentao.
O acesso a memria secundria e lento, se comparado com o acesso a memria cache ou
principal, porm seu custo e baixo e sua capacidade de armazenamento e bem superior a da memria
principal. Enquanto a unidade de acesso a memria secundria e da ordem de milissegundos, o acesso a
memria principal e de nanossegundos. Podemos citar, como exemplos de memrias secundrias, a fita
magntica, o disco magntico e o disco ptico.
A Figura 8 mostra a relao entre os diversos tipos de dispositivos de armazenamento
apresentados, comparando custo, velocidade e capacidade de armazenamento.

Registradores
Maior Capacidade
de armazenamento

Memria Cache

Maior Custo e
Maior Velocidade
de Acesso

Memria Principal
Memria Secundria
Figura 8 - Relao entre os diversos tipos de dispositivos de armazenamento.

2.1.7 Dispositivos de Entrada e Sada


Os dispositivos de entrada e sada (E/S) so utilizados pare permitir a comunicao entre o
computador e o mundo externo. Atravs desses dispositivos, a UCP e a memria principal podem se
Prof. Alessandro Zanini

11

comunicar, tanto com usurios quanto com memrias secundrias, a fim de realizar qualquer tipo de
processamento.
Os dispositivos de E/S podem ser divididos em duas categorias: os que so utilizados como
memria secundria e os que servem pare a interface homem-mquina.
Os dispositivos utilizados como memria secundria, como discos e fitas magnticas se
caracterizam por armazenar de trs a quatro vezes mais informaes que a memria principal. Seu custo
e relativamente baixo, porm o tempo de acesso a memria secundria e de quatro a seis vezes major que
o acesso a memria principal.
Alguns dispositivos servem pare a comunicao, ao homem-mquina, como teclados, monitores
de vdeo, impressoras, plotters, entre outros. Com o avano no desenvolvimento de aplicaes de uso
cada vez mais geral, procure-se aumentar a facilidade de comunicao entre o usurio e o computador. A
implementao, de interfaces mais amigveis permite, cada vez mais, que pessoas sem conhecimento
especfico sobre informtica possam utilizar o computador. Scanner, caneta tica, mouse, dispositivos
sensveis a voz humana e ao calor do corpo humano so alguns exemplos desses tipos de dispositivos.

2.1.8 Barramento
A UCP, a memria principal e os dispositivos de E/S so interligados atravs de linhas de
comunicao denominadas barramentos, barras ou vias. Um barramento (bus) e um conjunto de fios
paralelos (linhas de transmisso), onde trafegam informaes, como dados, endereos ou Sinais de
controle. Ele pode ser classificado como unidirecional (transmisso em um s sentido) ou bidirecional
(transmisso em ambos os sentidos).
Na ligao entre UCP e memria principal, podemos observar que trs barramentos so
necessrios pare que a comunicao seja realizada. O barramento de dados transmite informaes entre
a memria principal e a UCP. O barramento de endereos e utilizado pela UCP pare especificar o
endereo, o da clula de memria que ser acessada. Finalmente , o barramento de controle e por onde a
UCP envia os pulsos de controle relativos as operaes de leitura e gravao.
Na Fig. 2.5, podemos observar dois tipos de configuraces, onde UCP, memria principal e
dispositivos de E/S so interligados de maneira diferente.

2.1.9 Pipelining
O conceito de processamento pipeline se assemelha muito a uma linha de montagem, onde uma
tarefa e dividida em uma seqncia de subtarefas, executadas em diferentes estgios, dentro da linha de
produo.

UCP

Dispositivos
de E/S

Memria
Principal

UCP

Memria
Principal
Dispositivos
de E/S

Figura 9 - Configuraes de sistema


Da mesma forma que em uma linha de montagem, a execuo de uma instruo pode ser
dividida em subtarefas, como as fases de busca da instruo e dos operandos, execuo e armazenamento
dos resultados. O processador, atravs de suas vrias unidades funcionais pipeline, funciona de forma a
permitir que, enquanto uma instruo se encontra na fase de execuo possa estar na fase de busca
simultaneamente.
A tcnica de pipelining pode ser empregada em sistemas com um ou mais processadores, em
diversos nveis, e tem sido a tcnica de paralelismo mais utilizada para maior desempenho dos sistemas
de computadores.

Prof. Alessandro Zanini

12

2.1.10 Ativao e desativao do Sistema


O sistema operacional essencial para o funcionamento de um computador. Sem ele, grande
parte dos recursos do sistema no estaria disponvel, ou se apresentaria de uma forma complexa para
utilizao pelos usurios.
Toda vez que um computador ligado, necessrio que o sistema operacional seja carregado da
memria secundria para a memria principal. Esse processo, denominado ativao do sistema (boot),
realizado por um programa localizado em um posio especifca do disco (disco block), geralmente o
primeiro bloco. O procedimento de ativao varia em funo do equipamento, podendo ser realizado
atravs do teclado, de um terminal ou por manipulao de chaves de um painel (Figura 10).

Memria
Principal

Disco

Boot
Sistema
Operacional

Figura 10 - Ativao do sistema


Alm da carga do sistema operacional, a ativao do sistema tambm consiste na execuo de
arquivos de inicializao. Nestes arquivos so especificados procedimentos de inicializao de hardware
e software especficos para cada ambiente.
Na maioria dos sistemas, tambm existe o processo de desativao (shutdown). Este
procedimento permite que as aplicaes e componentes do sistema sejam desativados de forma ordenada.
Garantindo a integridade do sistema.

2.1.11 Arquiteturas RISC e CISC


Um processador com arquitetura RISC (Reduced Instruction Set Computer) se caracteriza por
possuir poucas instrues de mquina, em geral bastante simples, que so executadas diretamente pelo
hardware. Na sua maioria, estas instrues no acessam a memria principal, trabalhando
principalmente com registradores que, neste tipo de processador, se apresentam em grande nmero.
Estas caractersticas, alm de ajudarem as instrues serem executadas em alta velocidade, facilitam a
implementao do pipeline. Como exemplos de processaores RISC podemos citar o Sparc (SUN), RS6000 (IBM), PA-RISC (HP), Alpha AXP (DEC) e Rx000 (MIPS).
Os processadores CISC (Complex Instruction Set computers) j possuem instrues complexas
que so interpretadas por microprogramas. O nmero de registradores pequeno e qualquer instruo
pode referenciar a memria principal. Neste tipo de arquitetura, a implementao do pipeline mais
difcil. So exemplos de processadores CISC o VAX (DEC), 80x86 e o Pentium (Intel), e o 68xx
(Motorola).

2.2

Software

O Hardware por si s no tem a menor utilidade. Para torn-lo til existe um conjunto de
programas, utilizado como interface entre as necessidades do usurio e as capacidades do hardware. A
utilizao de softwares adequados s diversas tarefas e aplicaes (conceitos de camadas) torna o
trabalho do usurios muito mais simples e eficiente.

2.2.1 Tradutor
Nos sistemas operacionais antigos, o ato de programar era bastante complicado, j que o
programador deveria possuir conhecimento do hardware e programar em painis atravs de fios. Esses
programas eram desenvolvidos em linguagem de mquina e carregados diretamente na memria
principal para execuo.
Com o surgimento das primeiras linguagens de montagem (assembly languages) e das
linguagens de alto nvel, o programador deixou de se preocupar com muitos aspectos pertinentes ao
Prof. Alessandro Zanini

13

hardware, como em qual regio da memria o programa deveria ser carregado ou quais endereos de
memria seriam reservados para as variveis. A utilizao dessas linguagens facilitou a construo de
programas em muitos aspectos. Desse modo, um programa poderia ser escrito de uma forma bem
documentada e com facilidades para realizar alteraes.
O tradutor, pelo tipo de linguagem de programao utilizada, pode ser chamado de montador ou
compilador (Figura 11).

Programa-Fonte

Programa-Objeto

Programa-Fonte

Linguagem de
Montagem

Montador

Linguagem de
Alto Nvel

Compilador

Mdulo-Objeto

Mdulo-Objeto

Figura 11 - Tradutor

2.2.2 Compilador
o utilitrio responsvel por gerar, a partir de um programa escrito em uma linguagem de alto
nvel, um programa em linguagem de mquina no executvel.
As linguagens de alto nvel, como pascal, fortran, cobol no tem nenhuma relao direta com a
mquina, ficando essa preocupao exclusivamente com o compilador.

2.2.3 Interpretador
O interpretador considerado um tradutor que no gera cdigo-objeto. A partir de um programa
fonte, escrito em linguagem de alto nvel, o interpretador, no momento da execuo do programa, traduz
cada instruo e a executa em seguida.

2.2.4 Linker
O linker (ligador), tambm chamado de linkagem, o utilitrio responsvel por gerar, a partir
de um ou mais mdulos-objetos, um nico programa executvel.

Mdulo
Fonte

Compilador

Mdulo
Objeto

Mdulo
Fonte

Compilador

Mdulo
Objeto

Mdulo
Fonte

Compilador

Mdulo
Objeto

Prof. Alessandro Zanini

14

Linker

Programa
Executvel

Figura 12 - Linker.

2.2.5 Loader
Tambm chamado carregador o utilitrio responsvel por colocar fisicamente na memria um
programa para execuo. O procedimento de carga varia com o cdigo gerado pelo linker e, em funo
deste, o loader classificado como sendo do tipo absoluto ou relocvel.
Tipo absoluto - o loader s necessita conhecer o endereo de memria inicial e o tamanho do
mdulo para realizar o carregamento. Ento, ele transfere o programa da memria secundria para a
memria principal e inicia sua execuo.
No caso de cdigo relocvel, o programa pode ser carregado em qualquer posio de memria, e
o loader responsvel pela relocao no momento do carregamento.

2.2.6 Depurador
O desenvolvimento de programas est sujeito a erros de lgica, independentemente de
metodologias utilizadas pelo programador. A depurao um dos estgios desse desenvolvimento, e a
utilizao de ferramentas adequadas essencial para acelerar o processo de correo de programas.
O depurador (debbuger) o utilitrio que permite ao usurio controlar a execuo de um
programa a fim de detectar erros na sua estrutura. Este utilitrio oferece ao usurio recursos como:
Acompanhar a execuo de um programa instruo por instruo;
Possibilitar a alterao e visualizao do contedo de variveis;
Implementar pontos de parada dentro do programa (break-point), de forma que, durante a execuo,
o programa pare nesses pontos;
Especificar que, toda vez que o contedo de uma varivel for modificado, o programa envie uma
mensagem (watchpoint).

2.2.7 Linguagem de Controle


Tambm denominada a linguagem de comando, e a forma mais direta de um usurio se
comunicar com o sistema operacional. Esta linguagem oferecida por cada sistema operacional para
que, atravs de comandos simples, o usurio possa ter acesso a rotinas especificas do sistema.

2.2.8 Interpretador de Comandos (Shell)


O sistema operacional o cdigo executor de chamadas de sistema. Os editores, compiladores,
montadores, ligadores e interpretadores de comando no fazem parte do sistema operacional, apesar de
serem softwares muito importantes e muito teis. Esses comandos quando digitados pelos usurios, so
interpretados pelo Shell, verifica sua sintaxe, envia mensagens de erro e faz chamadas a rotinas do
sistema. Dessa forma o usurio dispe de uma interface interativa com o sistema operacional, para
realizar tarefas como acessar uma arquivo em disco ou consultar um diretrio.

2.2.9 Linguagem de Mquina


A linguagem de mquina de um computador a linguagem de programao que o processador
realmente consegue entender. Cada processador possui um conjunto nico de instrues de mquina,
definido pelo prprio fabricante. As instrues especificam detalhes, como registradores, modos de
endereamento e tipos de dados, que caracterizam um processador e suas potencialidades.

2.2.10 Microprogramao
Um programa em linguagem de mquina executado diretamente pelo hardware em
processadores de arquitetura RISC, porm em mquinas CISC isto no acontece. Neste caso, como
podemos observar na Figura 3, entre os nveis de linguagem de mquina e do hardware, existem ainda o
da microprogramao.
Os microprogramas definem a linguagem de mquina de cada computador. Apesar de cada
computador possui nveis de microprogramao diferentes, existem muitas semelhanas nessa camada se
compararmos os diversos equipamentos. Uma mquina possui, aproximadamente 25 microintrues
bsicas, que so interpretadas pelos circuitos eletrnicos.

Prof. Alessandro Zanini

15

2.2.11 Processos
Um conceito chave da teoria dos sistemas operacionais o conceito de processo. Um processo
basicamente um programa em execuo, sendo constitudo do cdigo executvel, dos dados referentes ao
cdigo.

2.2.12 Chamadas de Sistema


Os programas de usurio solicitam servios do sistema operacional atravs da execuo de
chamadas de sistema. A cada chamada corresponde um procedimento de uma biblioteca de
procedimentos que o programa do usurio pode chamar.

2.2.13 Arquivos
Arquivos so mecanismos de abstrao que fornece uma forma de armazenar recuperar
informaes em disco. Isto deve ser feito de uma forma que mantenha o usurio isolado dos detalhes a
respeito de como as informaes so armazenadas, e de como os discos efetivamente trabalha.

Prof. Alessandro Zanini

16

3.

Tipos de Sistemas Operacionais


3.1

Introduo

Tipos de sistemas operacionais e sua evoluo esto intimamente relacionados com a evoluo
do hardware e das aplicaes por ele suportadas.
Muitos termos inicialmente introduzidos para definir conceitos e tcnicas forma substitudos
por outros, na tentativa de refletir uma nova maneira de intera ou ou processamento. Isto fica muito
claro quanto tratamos da unidade de execuo do processador. Inicialmente, os termos programa ou job
eram os mais utilizados, depois surgiu o conceito de processo e subprocesso e, mais recentemente, os
conceitos de tarefa e de thread.
A evoluo dos sistemas operacionais para computadores pessoais e estaes de trabalho
popularizou vrios conceitos e tcnicas, antes s conhecidos em ambientes de grande porte. A
nomenclatura, no entanto, no se manteve a mesma. Surgiram novos termos para conceitos j
conhecidos, que foram apenas adaptados para uma nova realidade.

Tipos de Sistemas
Operacionais

Sistemas
Monoprogamveis/
Monotarefa

Sistemas
Multiprogramveis/
Multitarefa

Sistemas com
Mltiplos
Processadores

Figura 13 - Tipos de sistemas operacionais


Tipos de Sistemas Operacionais
Sistemas Monoprogramveis/Monotarefa
Sistemas Multiprogramveis/Multitarefa
Sistemas Batch
Sistemas de Tempo Compartilhado
Sistemas de Tempo Real
Sistemas com Mltiplos Processadores
Sistemas Fortemente Acoplados
Sistemas Simtricos
Sistemas Assimtricos
Sistemas Fracamente Acoplados
Sistemas Operacionais de Rede
Sistemas Operacionais Distribudos

3.2

Sistemas Monoprogramveis/Monotarefa

Os primeiros sistemas operacionais eram tipicamente voltados para a execuo de um nico


programa (job). Qualquer outro programa, para ser executado, deveria aguardar o trmino do programa
corrente. Os sistemas monoprogramveis, como vieram a ser conhecidos, se caracterizam por permitir
que o processador, a memria e os perifricos permaneam exclusivamente dedicados execuo de um
nico programa.
Neste tipo de sistema, enquanto um programa aguarda por um evento, como a digitao de um
dado, o processador permanece ocioso, sem realizar qualquer tipo de processamento. A memria
subtilizada caso o programa no a preencha totalmente, e os perifricos, como discos e impressoras,
esto dedicados a um nico usurio.
Prof. Alessandro Zanini

17

Comparados a outros sistemas, os sistemas monoprogramveis/monotarefa so de simples


implementao, no existindo muita preocupao com problemas de proteo.

Programa/
Tarefa

UCP
Memria

Dispositivos
de E/S

Figura 14 - Sistemas monoprogramveis/monotarefa

3.3

Sistemas Multiprogramveis/Multitarefa

Os Sistemas Multiprogramveis, que vieram a substituir os monoprogramveis, so mais


complexos e eficientes. Enquanto em sistemas monoprogramveis existe apenas um programa utilizando
seus diversos recursos, nos multiprogramveis vrios programas dividem esses mesmos recursos.
As vantagens do uso de sistemas multiprogramveis so o aumento da produtividade dos seus
usurios e a reduo de custos, a partir do compartilhamento dos diversos recursos do sistema.
A partir do nmero de usurios que interagem com o sistema, podemos classificar os sistemas
multiprogramveis como monousurio e multiusurio.
O conceito de sistemas multiprogramvel est tipicamente associado aos mainframes e
minicomputadores, onde existe a idia do sistema sendo utilizado por vrios usurios (multiusurio).
No mundo dos computadores pessoais e estaes de trabalho, apesar de existir apenas um nico usurio
interagindo como sistema (monousurio), possvel que ele execute diversas tarefas concorrentemente
ou mesmo simultaneamente. Os sistemas multitarefa, como tambm so chamados, se caracterizam por
permitir que o usurio edite um texto, imprima um arquivo, copie um arquivo pela rede e calcule uma
planilha. Abaixo esto relacionados os tipos de sistemas em funo do nmero de usurios

Monoprogramao
/
Monotarefa
Multiprogramao/
Multitarefa

Um usurio
Monousurio

Dois ou mais usurios


N/A

Monousurio

Multiusurio

Tabela 4 - Sistemas X Usurios


Os sistemas multiprogramveis/multitarefa podem ser classificados pela forma com que suas
aplicaes so gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado ou de
tempo real. Um sistema operacional pode suportar um ou mais desses tipos de processamento.

Prof. Alessandro Zanini

18

Sistemas
Multiprogramveis/Multirefa

Sistemas
Batch

Sistemas de
Tempo compartilhado

Sistemas de
Tempo Real

Figura 15 - Tipos de sistemas multiprogramveis/multitarefa

3.3.1 Sistemas Batch


Os sistemas batch (lote) foram os primeiros sistemas multiprogramveis a serem
implementados e caracterizam-se por terem seus programas, quando submetidos, armazenados em disco
ou fita, onde esperam para ser executados seqencialmente.
Normalmente, os programas, tambm chamados de jobs, no exigem interao com os usurios,
lendo e gravando dados em discos e fitas. Alguns exemplos de aplicaes originalmente processadas em
batch so compilaes, linkedies, sorts, backups e todas aquelas onde no necessria a interao com
o usurio.

3.3.2 Sistemas de Tempo Compartilhado


Os sistemas de tempo compartilhado (time-sharing) permitem a interao dos usurios com o
sistema, basicamente atravs de terminais que incluem vdeo, teclado e mouse. Dessa forma, o usurio
pode interagir diretamente com o sistema em cada fase do desenvolvimento de suas aplicaes e, se
preciso, modific-las imediatamente. Devido a esse tipo de interao, os sistemas de tempo
compartilhado tambm ficaram conhecidos como sistemas on-line.
Para cada usurio, o sistema operacional aloca uma fatia de tempo (time-slice) do processador.
Caso o programa do usurio no esteja concludo nesse intervalo de tempo, ele substitudo por um de
outro usurio, e fica esperando por uma nova fatia de tempo. No s o processador compartilhado
nesse sistema, mas tambm a memria e os perifricos, como discos e impressoras. O sistema cria para o
usurio um ambiente de trabalho prprio, dando a impresso de que todo o sistema est dedicado,
exclusivamente, a ele.
Sistemas de tempo compartilhado so de implementao complexa, porm, se levado em
considerao o tempo de desenvolvimento e depurao de uma aplicao, aumentam consideravelmente
a produtividade dos seus usurios, reduzindo os custos de utilizao do sistema.

3.3.3 Sistemas de Tempo Real


Os sistemas de tempo real (real time) so bem semelhantes em implementao aos sistemas de
tempo compartilhado. A maior diferena o tempo de resposta exigido no processamento das aplicaes.
Enquanto em sistemas de tempo compartilhado o tempo de resposta pode variar sem
comprometer as aplicaes em execuo, nos sistemas de tempo real os tempos de resposta devem estar
dentro de limites rgidos, que devem ser obedecidos, caso contrrio podero ocorrer problemas
irreparveis.
No existe idia de fatia de tempo, um programa detm o processador o tempo que for
necessrio, ou at que aparea outro prioritrio em funo de sua importncia no sistema. Esta
importncia ou prioridade de execuo controlada pela prpria aplicao e no pelo sistema
operacional, como nos sistemas de tempo compartilhado.
Esses sistemas, normalmente, esto presentes em controle de processos, como no
monitoramento de refinarias de petrleo, controle de trfego areo, de usinas termeltricas e nucleares,
ou em qualquer aplicao onde o tempo de resposta fator fundamental.

3.4

Sistemas com Mltiplos Processadores

Os sistemas com mltiplos processadores caracterizam-se por possuir duas ou mais UCPS
interligadas, trabalhando em conjunto. Um fator-chave no desenvolvimento de sistemas operacionais
com mltiplos processadores a forma de comunicao entre as UCPs e o grau de compartilhamento da
memria e dos dispositivos de entrada e sada. Em funo desses fatores, podemos classificar os sistemas
em fortemente acoplados ou fracamente acoplados.
Prof. Alessandro Zanini

19

Sistemas com Mltiplos


Processadores

Sistemas Fortemente
Acoplados

Sistemas
Simtricos

Sistemas Fracamente
Acoplados

Sistemas
Assimtricos

Sistemas
Operacionais de Rede

Sistemas
Operacionais
Distribudos

Figura 16 - Sistemas com mltiplos processadores.

3.5

Sistemas Fortemente Acoplados

Nos sistemas fortemente acoplados (tightly coupled) existem vrios processadores


compartilhando uma nica memria e gerenciados por apenas um sistema operacional. Mltiplos
processadores permitem que vrios programas sejam executados ao mesmo tempo, ou que um programa
seja dividido em subprogramas, para execuo simultnea em mais de um processador. Dessa forma,
possvel ampliar a capacidade de computao de um sistema, adicionando-se apenas novos
processadores, com um custo muito inferior aquisio de outros computadores.
Com o multiprocessamento, novos problemas de concorrncia foram introduzidos, pois vrios
processadores podem estar acessando as mesmas reas de memria. Alm disso, existe o problema de
organizar de forma eficiente os processadores, a memria e os perifricos.
Uma conseqncia do multiprocessamento foi o surgimento dos computadores voltados,
principalmente, para processamento cientfico, aplicado, por exemplo, ao desenvolvimento aeroespacial,
prospeo de petrleo, simulaes, processamento de imagens e CAD. A princpio qualquer aplicao
que faa uso intensivo da UCP ser beneficiada pelo acrscimo de processadores ao sistema.

Memria
UCP

UCP

Dispositivos
de E/S

Dispositivos
de E/S
Figura 17 - Sistemas fortemente acoplados

Prof. Alessandro Zanini

20

Link de Comunicao
UCP

Memria

UCP

Dispositivos
de E/S

Memria

Dispositivos
de E/S

Figura 18 - Sistemas fracamente acoplados

3.5.1 Sistemas Assimtricos


Na organizao assimtrica ou mestre/escravo(master/slave), somente um processador (mestre)
pode executar servios do sistema operacional, como, por exemplo, realizar operaes de entrada/sada.
Sempre que um processador do tipo escravo precisar realizar uma operao de entrada/sada, ter de
requisitar o servio ao processador mestre. Dependendo do volume de operaes de entrada/sada
destinadas aos processadores escravos, o sistema pode se tornar ineficiente, devido ao elevado nmero de
interrupes que devero ser tratadas pelo mestre.

UCP Master

Dispositivos
de E/S

S.O

UCP Slave

Usurios

Usurios

Figura 19 - Sistemas assimtricos.


Se o processador falhar, todo o sistema ficar incapaz de continuar o processamento. Neste
caso, o sistema deve ser reconfigurado, fazendo um dos processadores escravos assumir o papel do
mestre.
Mesmo sendo uma organizao simples de implementar e quase um extenso dos sistemas
multiprogramveis, esse tipo de sistema no utiliza eficientemente o hardware, devido assimetria dos
processadores, que no realizam as mesmas funes.

3.5.2 Sistemas Simtricos


O multiprocessamento simtrico (Simmetric Multiprocessing- SMP), ao contrrio da
organizao mestre/escravo, implementa a simetria dos processadores, ou seja, todos os processadores
realizam as mesmas funes. Apenas algumas poucas funes ficam a cargo de um nico processador,
como, por exemplo, a inicialiazao (boot) do sistema.

Prof. Alessandro Zanini

21

UCP

UCP

Dispositivos
de E/S

S.O

Usurios

Figura 20 - Sistemas simtricos.


Como vrios processadores esto utilizando, independentemente, a mesma memria e o mesmo
sistema operacional, natural a ocorrncia de acessos simultneos s mesmas reas de memria. A
soluo desses conflitos fica a cargo do hardware e do sistema operacional.
No processamento simtrico, um programa pode ser executado por qualquer processador,
inclusive por vrios processadores ao mesmo tempo (paralelismo). Alm disso, quando um processador
falha, o sistema continua em funcionamento sem nenhuma interferncia manual, porm com menor
capacidade de computao.
Os sistemas simtricos so mais poderosos que os assimtricos, permitindo um melhor
balanceamento do processamento e das operaes de entrada/sada, apesar de sua implementao ser
bastante complexa.

3.5.3 Multiprocessamento
Desde sua criao, os computadores tm sido vistos como mquinas seqncias, onde a UCP
executa a instrues de um programa, uma de cada vez. Na realidade, essa viso no totalmente
verdadeira, pois, em nvel de hardware, mltiplos sinais esto ativos simultaneamente, o que pode ser
entendido como uma forma de paralelismo.
Com a implementao de sistemas com mltiplos processadores, o conceito de simultaneidade
ou paralelismo pode ser expandido a um nvel mais amplo, denominado multiprocessamento, onde uma
tarefa pode ser dividida e executada, ao mesmo tempo, por mais de um processador.

3.5.4 Organizao Funcional


O esquema de comunicao interna das UCPs, memria e dipositivos de E/S (unidades
funcionais) fundamental no projeto de sistemas com mltiplos processadores, pois termina quantas
UCPs o sistema poder ter e como ser o acesso memria.
Para permitir mltiplos acessos simultneos memria (interliving), comum que esta dividida
em mdulos, podendo assim ser compartilhada por vrias unidades funcionais. As organizaes
funcionais de multiprocessadores podem ser divididas basicamente em trs tipos: barramento comum,
barramento cruzado e memria multiport.

3.6

Sistemas Fracamente Acoplados

Os sistemas fracamente acoplados caracterizam-se por possuir dois ou mais sistemas de


computao interligados, sendo que cada sistema possui o seu prprio sistema operacional, gerenciando
os seus recursos, como processador, memria e dispositivos de entrada/sada.
At meados da dcada de 80, os sistemas operacionais e as aplicaes suportadas por eles eram
tipicamente concentradas em sistemas de grande porte, com um ou mais processadores. Nos sistemas
centralizados, os usurios utilizam terminais no inteligentes conectados a linhas seriais dedicadas ou
linhas telefnicas pblicas para a comunicao interativa com esses sistemas.
No modelo centralizado, os terminais no tm capacidade de processamento. Sempre um
usurio deseja alguma tarefa, o pedido encaminhado ao sistema, que realiza o processamento e retorna
uma resposta, utilizando as linhas de comunicao.
Com a evoluo dos computadores pessoais e das estaes de trabalho, juntamente com o
avano das telecomunicaes e da tecnologia de redes, surgiu um novo modelo de computao, chamado
de modelo de rede de computadores.
Prof. Alessandro Zanini

22

N
N

Rede

Figura 21- Sistemas fracamente acoplados

3.6.1 Sistemas Operacionais de Rede


Em sistemas operacionais de rede (SOR), cada n possui seu prprio sistema operacional, alm
de um hardware e software que possibilitam ao sistema ter acesso a outros componentes da rede,
compartilhando seus recursos. O SOR permite entre outras funes:
Cpia remota de arquivos
Emulao de terminal
Impresso remota
Gerncia remota
Correio eletrnico.
Cada n totalmente independente do outro, podendo inclusive possuir sistemas operacionais
diferentes. Caso a conexo entre os ns sofra qualquer problema, os sistemas podem continuar operando
normalmente, apesar de alguns recursos se tornarem indisponveis.
O melhor exemplo da utilizao dos sistemas operacionais de rede so as redes locais. Nesse
ambiente, cada estao pode compartilhar seus recursos com o restante da rede. Caso uma estao sofra
qualquer, os demais componentes da rede podem continuar o processamento, apenas no dispondo dos
recursos oferecidos por ela.

Figura 22 - Sistemas operacionais de rede.

3.6.2 Sistemas Operacionais distribudos


Em sistemas distribudos, cada componente da rede tambm possui seu prprio sistema
operacional, memria, processador e dispositivos. O que define um sistema distribudo a existncia de
um relacionamento mais forte entre os seus componentes, onde geralmente os sistemas operacionais so
os mesmos. Para o usurio e suas aplicaes, como se no existisse uma rede de computadores, mas
sim um nico sistema centralizado.

Prof. Alessandro Zanini

23

Rede
Usurio

Figura 23 - Sistemas Operacionais Distribudos.


A grande vantagem desses sistemas a possibilidade do balanceamento de carga, ou seja,
quando um programa admitido para execuo, a carga de processamento de cada sistema avaliada e o
processador mais livre escolhido. Depois de aceito para processamento, o programa executado no
mesmo processador at o seu trmino. Tambm possvel o compartilhamento de impressoras, discos e
fitas, independentemente do sistema em que a aplicao esteja sendo processada. Este tipo de sistema
distribudo muitas vezes chamado de cluster.

COMP 1

COMP 2

Figura 24 - Cluster.
Suponha, por exemplo, uma configurao de dois computadores (COMP 1 e COMP 2),
formando um cluster. Qualquer usurio conectado ao cluster poder ter acesso aos dispositivos
compartilhados, que permitem a ele imprimir uma listagem ou copiar um arquivo. Nesse tipo de
configurao, se um dos sistemas falhar, o acesso aos dispositivos no ser interrompido.
Os sistemas distribudos podem ser considerados como uma evoluo dos sistemas fortemente
acoplados, onde uma aplicao pode ser executada por qualquer processador. Os sistemas distribudos
permitem que uma aplicao seja dividida em diferentes partes (aplicaes distribudas), que se
comunicam atravs de linhas de comunicao, podendo cada parte ser processada em um sistema
independente.
Prof. Alessandro Zanini

24

3.6.3 Organizao Funcional


A organizao funcional dos sistemas fracamente acoplados ou topologia define como so
interligados fisicamente os diversos sistemas da rede.

3.6.3.1 Barramento
Na organizao de barramento, os sistemas so conectados a uma nica linha de comunicao e
todos compartilham o mesmo meio, tanto para receber como para enviar mensagens. Esse tipo de
organizao utilizada geralmente em redes locais (Figura 25).
Neste tipo de topologia, caso haja algum problema com o meio de transmisso, todos os ns da
rede ficaro incomunicveis.

Figura 25 - Organizao de Barramento

3.6.3.2 Organizao distribuda


Na organizao distribuda existem linhas de comunicao ponto-a-ponto que ligam os sistemas
e caminhos alternativos entre os diversos ns da rede. Caso uma linha de comunicao apresente
problema, linhas alternativas permitiro que a rede continue em funcionamento. Este tipo de
organizao utilizada geralmente em redes distrbudas (Figura 26).

Figura 26 - Organizao distribuda

Prof. Alessandro Zanini

25

4.

Sistemas Multiprogramveis

A possibilidade de perifricos funcionarem simultaneamente entre si, juntamente com a UCP,


permitiu a execuo de tarefas concorrentes, que o princpio bsico para projeto e implementao de
sistemas multiprogramveis. Sistemas operacionais podem ser vistos como um conjunto de rotinas que
executam concorrentemente de uma forma ordenada.
Os sistemas multiprogramveis surgiram de um problema existente nos sistemas
monoprogramveis, que a baixa utilizao de recursos do sistema, como processador, memria e
perifricos.
Nos sistemas monoprogramveis, somente um programa pode estar residente em memria, e a
UCP permanece dedicada, exclusivamente, execuo desse programa. Podemos observar que, nesse
tipo de sistema, ocorre um desperdcio na utilizao da UCP, pois enquanto o programa est realizando,
por exemplo, uma leitura em disco, o processador permanece sem realizar nenhuma tarefa. O tempo de
espera consideravelmente grande, j que as operaes com dispositivos de entrada e sada so muito
lentas se comparadas com a velocidade da UCP. Na tabela abaixo, vemos um exemplo de um programa
que l registros de uma arquivo e executa, em mdia, 100 instrues de mquina por registro lido. Neste
caso, o processador gasta 93% do tempo esperando o dispositivo de E/S concluir a operao para
continuar o processamento. Em um sistema monoprogramvel, a UCP utilizada em aproximadamente
30% do tempo, enquanto em sistemas multiprogramveis o tempo de utilizao sobre para at 90%.
Leitura de um registro
Execuo de 100 instrues
Total

0,0015
0,0001
0.0016

segundos
segundos
segundos

Percentual de utilizao da UCP

0,0001
0,0015

= 0,066 = 6,6%

Tabela 5 - Exemplo de utilizao do sistema


Outro aspecto que devemos considerar a subutilizao da memria. Um programa que no
ocupe totalmente a memria principal ocasiona a existncia de reas livres, sem utilizao.
Nos sistemas multiprogramveis, vrios programas podem estar residentes em memria,
concorrendo pela utilizao da UCP. Dessa forma, quando um programa solicita uma operao de
entrada/sada, outros programas podero estar disponveis para utilizar o processador. Nesse caso, a UCP
permanece menos tempo ociosa e a memria principal utilizada de forma mais eficiente, pois existem
vrios programas residentes se revezando na utilizao do processador.
A utilizao concorrente da UCP deve ser implementada de maneira que, quando um programa
perde o uso do processador e depois retorna para continuar o processamento, seu estado deve ser idntico
ao do momento em que foi interrompido. O programa dever continuar sua execuo exatamente na
instruo seguinte quela em que havia parado, aparentando ao usurio que nada aconteceu. Em
sistemas de tempo compartilhado, existe a impresso de que o computador est inteiramente dedicado ao
usurio, ficando todo esse mecanismo transparente para ele.
No caso de perifricos, comum termos, em sistemas monoprogramveis, impressoras paradas
por um grande perodo de tempo e discos com acesso restrito a um nico usurio. Esses problemas so
solucionados em sistemas multiprogramveis, onde possvel compartilhar impressoras entre vrios
usurios e realizar acesso concorrente a discos por diversos programas.

Prof. Alessandro Zanini

26

UCP

E/S

E/S

Livre

UCP

1
2

tempo

tempo

Sistema Nomoprogramvel (a)

Sistema Multiprogramvel (b)

Figura 27 - Sistema monoprogramvel X multiprogramvel.


As vantagens de perifricos pela multiprogramao podem ser percebidas segundo o exemplo
descrito a seguir, onde consideramos um computador de 256 Kb de memria, com um disco , um
terminal e uma impressora. Nesta configurao sero executadas trs programas (Prog1, Prog2, e
Prog3), que possuem caractersticas de processamento descritas na Tabela 6. Nesta tabela, podemos
notar que o Prog1 no realiza operaes de E/S, enquanto o Prog2 e o Prog3 realizam muitos acessos a
perifricos.
Caractersticas
Utilizao da UCP
Operaes de E/S
Tempo para execuo
Espao da memria utilizado
Utiliza disco
Utiliza terminal
Utiliza impressora

Prog1
Grande
Poucas
5 min.
50 Kb
No
No
No

Prog2
Baixa
Muitas
15 min.
100Kb
No
Sim
No

Prog3
Baixa
Muitas
10 min.
80Kb
No
No
Sim

Tabela 6 - Caractersticas dos programas exemplos


Em um ambiente monoprogramvel, os programas so executados sequencialmente. Sendo
assim, o Prog1 completa em cinco minutos e o Prog2 deve esperar cinco minutos para comear sua
execuo, que leva 15 minutos. Finalmente, o Prog3 inicia sua execuo aps 20 minutos e completa seu
processamento em 10 minutos, perfazendo um total de 30 minutos para a execuo dos programas.
No caso de os programas serem executados concorrentemente, em um sistema
multiprogramvel, o ganho na utilizao do processador, memria, perifricos e no tempo de reposta
considervel, como mostra a Tabela 7.
Utilizao da UCP
Utilizao da memria
Utilizao do disco
Utilizao da impressora
Tempo total para execuo dos programas
Taxa de execuo de programas

Monoprogramao
17 %
30 %
33 %
33 %
30 min.
6 prog./hora

Multiprogramao
33%
67%
67%
67 %
15 min.
12 prog./hora

Tabela 7 - Comparao entre monoprogramao x multiprogramao

4.1

Interrupo e Exceo

Durante a execuo de um programa, alguns eventos podem ocorrer durante seu processamento,
obrigando a interveno do sistema operacional. Esse tipo de interveno chamado interrupo ou
exceo e pode ser resultado da execuo de instrues do prprio programa, gerado pelo sistema
operacional ou por algum dispositivo de hardware. Nestas situaes o fluxo de execuo do programa
desviado para uma rotina especial de tratamento. O que diferencia uma interrupo de uma exceo o
tipo de evento que gera esta condio.
Prof. Alessandro Zanini

27

Uma interrupo gerada pelo sistema operacional ou por algum dispositivo e, neste caso,
independe do programa que est sendo executado. Um exemplo quando um perifrico avisa UCP que
est pronto para transmitir algum dado. Neste caso, a UCP deve interromper o programa para atender a
solicitao do dispositivo.

Programa

Interrupo

Salva os
registradores

.
.
.
.
.
.
.
.
.
.
.
.
.

Identifica a origem
da interrupo
Obtm o endereo da
rotina de tratamento

Rotina de
Tratamento

:
:
:

Restaura
os registradores

Figura 28 - Mecanismo de interrupo.


No existe apenas um nico tipo de interrupo e sim diferentes tipos que devem ser atendidos
por diversas rotinas de tratamento. No momento que uma interrupo acontece, a UCP deve saber para
qual rotina de tratamento dever ser desviado o fluxo de execuo. Essa informao est em uma
estrutura do sistema chamada vetor de interrupo, que contm a relao de todas as rotinas de
tratamento existentes, associadas a cada tipo de interrupo.
A interrupo o mecanismo que tornou possvel a implementao da concorrncia nos
computadores, sendo o fundamento bsico dos sistemas multiprogramveis. em funo desse
mecanismo que o sistema operacional sincroniza a execuo de todas as suas rotinas e dos programas
dos usurios, alm de controlar os perifricos e dispositivos do sistema.
Inicialmente os sistemas operacionais apenas implementavam o mecanismo de interrupo.
Com a evoluo dos sistemas foi introduzido o conceito de exceo. Uma exceo resultado direto da
execuo de uma instruo do prprio programa. Situaes como a diviso de um nmero por zero ou a
ocorrncia de um overflow caracterizavam essa situao.
A diferena fundamental entre exceo e interrupo que a primeira gerada por um evento
sncrono, enquanto a segunda gerada por eventos assncronos. Um evento sncrono quando
resultado direto da execuo do programa corrente. Tais eventos so previsveis e, por definio s
podem ocorrer um de cada vez. Se um programa que causa esse tipo de evento for reexecutado, com a
mesma entrada de dados, a exceo ocorrer sempre na mesma instruo.
Um evento dito assncrono quando ocorre independentemente da execuo do programa
corrente. Esses eventos, por serem imprevisveis, podem ocorrer mltiplas vezes simultaneamente, como
no caso de diversos dispositivos de E/S informarem UCP que esto prontos para receber ou transmitir
dados.

4.2

Operaes de Entrada/Sada

Em sistemas mais primitivos, a comunicao entre a UCP e os perifricos era controlada por um
conjunto de instrues especiais, denominadas instrues de entrada / sada, executadas pela prpria
UCP. Essas instrues continham detalhes especficos de cada perifrico, como quais trilhas e setores de
um disco deveriam ser lidos ou gravados em determinado bloco de dados. Esse tipo de instruo limitava
a comunicao do processador a um grupo particular de dispositivos.
Prof. Alessandro Zanini

28

A implementao de um dispositivo chamado controlador ou interface permitiu UCP agir de


maneira independente dos dispositivos de E/S. Com esse novo elemento, a UCP no se comunicava
mais diretamente com os perifricos, mas sim atravs do controlador. Isso significa as instrues de E/S,
por no ser mais preciso especificar detalhes de operao dos perifricos, tarefa esta realizada pelo
controlador.

UCP

Memria
Principal

Controlador
:
:
:
:

Figura 29 - Controlador.
Com a implementao do mecanismo de interrupo no hardware dos computadores, as
operaes de E/S puderam ser realizadas de uma forma mais eficiente. Em vez de o sistema
periodicamente verificar o estado de uma operao pendente, o prprio controlador interrompia a UCP
para avisar do trmino da operao. Com esse mecanismo, denominado E/S controlada por interrupo,
a UCP, aps a execuo de um comando de leitura ou gravao, fica livre para o processamento de outras
tarefas. O controlador por sua vez, ao receber, por exemplo, um sinal de leitura, fica encarregado de ler
os blocos dos disco e armazen-los em memria ou registradores prprios. Em seguida, o controlador,
atravs de uma linha de controle, sinaliza uma interrupo ao processador. Quando a UCP atende a
interrupo, a rotina responsvel pelo tratamento desse tipo de interrupo transfere os dados dos
registradores do controlador para a memria principal. Ao trmino da transferncia, a UCP volta a
executar o programa interrompido e o controlador fica novamente disponvel para outra operao.
A operao de E/S controlada por interrupo muito mais eficiente que a operao de E/S
controlada por programa, j que elimina a necessidade de a UCP esperar pelo trmino da operao, alm
de permitir que vrias operaes de E/S sejam executadas simultaneamente. Apesar disso, essa
implementao ainda sobrecarregava a UCP, uma vez que toda transferncia de dados entre memria e
perifricos exigia a interveno da UCP. A soluo desse problema foi a implementao, por parte do
controlador, de uma tcnica de transferncia de dados denominada DMA (Direct Memory Access).
A tcnica de DMA permite que bloco de dados seja transferido entre memria e perifricos, sem
a interveno da UCP, exceto no incio e no final da transferncia. Quando o sistema deseja ler ou gravar
um bloco de dados, so passadas da UCP para o controlador informaes como: onde o dado est
localizado, qual o dispositivo de E/S envolvido na operao, posio inicial da memria de onde os
dados sero lidos ou gravados e o tamanho do bloco de dados. Com estas informaes, o controlador
realiza a transferncia entre o perifrico e a memria principal, e a UCP somente interrompida no final
da operao. A rea de memria utilizada pelo controlador na tcnica de DMA chamada buffer, sendo
reservada exclusivamente para este propsito.
No momento em que a transferncia de DMA realizada, o controlador deve assumir,
momentaneamente, o controle do barramento. Como a utilizao do barramento exclusiva de um
dispositivo, a UCP deve suspender o acesso ao bus, temporariamente, durante a operao de
transferncia. Este procedimento no gera uma interrupo, e a UCP pode realizar tarefas, desde que
sem a utilizao do barramento, como, por exemplo, um acesso memria cache.
A extenso do conceito do DMA possibilitou o surgimento dos canais de E/S, ou somente
canais, introduzidos pela IBM no Sistema 7094. O canal de E/S um processador com capacidade de
executar programas de E/S, permitindo o controle total sobre operaes de entrada e sada. As instrues
de E/S so armazenadas na memria principal pela UCP, porm o canal responsvel pela sua execuo.
Assim, a UCP realiza uma operao de E/S, instruindo o canal para executar um programa localizado na
memria (programa de canal). Este programa especifica os dispositivos para transferncia, buffers e
aes a serem tomadas em caso de erros. O canal de E/S realiza a transferncia e, ao final gera uma
interrupo, avisando do trmino da operao.
Prof. Alessandro Zanini

29

Um canal de E/S pode controlar mltiplos dispositivos atravs de diversos controladores. Cada
dispositivo, ou conjunto de dispositivos, manipulado por um nico controlador. O canal atua como um
elo de ligao entre a UCP e o controlador.

Memria
Principal

UCP

Cana de
E/S

Controlador

Controlador

.....

.....

Figura 30 - Canal de E/S

4.3

Buffering

A tcnica de buffering consiste na utilizao de uma rea de memria para a transferncia de


dados entre os perifricos e a memria principal denominada buffer. O buffering veio permitir que,
quando um dado fosse transferido para o buffer aps uma operao de leitura, o dispositivo de entrada
pudesse iniciar uma nova leitura. Neste caso, enquanto a UCP manipula o dado localizado no buffer, o
dispositivo de entrada pudesse iniciar uma nova leitura. Neste caso, enquanto a UCP manipula o dado
localizado no buffer, o dispositivo realiza outra operao de leitura no mesmo instante. O mesmo
raciocnio pode ser aplicado para operaes de gravao, onde a UCP coloca o dado no buffer para um
dispositivo de sada manipular.

Memria Principal

UCP

Gravao

Buffer

Leitura

Gravao

Controlador
de E/S

Leitura

Figura 31 - Operaes utilizando buffer.


O buffering outra implementao para minimizar o problema da disparidade da velocidade de
processamento existente entre a UCP e os dispositivos de E/S. O objetivo do buffering manter, na
maior parte do tempo, UCP e dispositivos de E/S ocupados.
A unidade de transferncia usada no mecanismo de buffering o registro. O tamanho do
registro pode ser especificado em funo da natureza do dispositivo ( como uma linha gerada por uma
impressora ou um caracter de um teclado) ou da aplicao ( como um registro lgico definido em um
arquivo).
Prof. Alessandro Zanini

30

O buffer deve possuir a capacidade de armazenar diversos registros, de forma a permitir que
existam dados lidos no buffer, mas ainda no processados (operaes de leitura), ou processados, mas
ainda no gravados (operao de gravao). Desta forma, o dispositivo de entrada poder ler diversos
registros antes que a UCP os processe, ou a UCP poder processar diversos registros antes de o
dispositivo de sada realizar a gravao. Isso extremamente eficiente, pois, dessa maneira, possvel
compatibilizar a diferena existente entre o tempo em que a UCP processa os dados e o tempo em que o
dispositivo de E/S realiza as operaes de leitura e gravao.

4.4

Spooling

A tcnica de spooling (simultaneous peripheral operation on-line) foi introduzida no final dos
anos 50 para aumentar a produtividade e a eficincia dos sistemas operacionais.
Naquela poca, os programas dos usurios eram submetidos um a um para processamento pelo
operador. Como a velocidade de operao dos dispositivos de entrada/sada muito lenta se comparada
do processador, era comum que a UCP ficasse ociosa espera de programas e dados de entrada ou pelo
trmino de uma impresso.
A soluo foi armazenar os vrios programas e seus dados, tambm chamados de jobs, em uma
fita magntica e, em seguida, submet-los a processamento. Desta forma, a UCP poderia processar
seqencialmente cada job, diminuindo o tempo de execuo dos jobs e o tempo de transio entre eles.
Da mesma forma, em vez de um job gravar suas sadas diretamente na impressora, poderia direcion-las
para uma outra fita, que depois seria impressa integralmente. Esta forma de processamento chamada
de spooling e foi a base dos sistemas batch.
A utilizao de fitas magnticas obrigava o processamento a ser estritamente seqncia, ou seja,
o primeiro job a ser gravado era o primeiro a ser processado. Assim, se um job que levasse vrias horas
antecedesse pequenos jobs, seus tempos de resposta ficariam seriamente comprometidos. Com o
surgimento de dispositivos de acesso direto, como discos, foi possvel tornar o spooling muito mais
eficiente, e principalmente, permitir a eliminao do processamento estritamente seqencial, com a
atribuio de prioridade aos jobs.
A tcnica de buffering, como j apresentamos, permite que um job utilize um buffer
concorrentemente com um dispositivo de E/S. O spooling, basicamente, utiliza o disco como um grande
buffer, permitindo que dados sejam lidos e gravados em disco, enquanto outros jobs so processados.
Um exemplo dessa tcnica est presente quanto impressora so utilizadas. No momento em que
um comando de impresso executado por um programa, as informaes que sero impressas so
gravadas em um arquivo em disco (arquivo de spool), para ser impresso posteriormente pelo sistema
Figura 32. Dessa forma, situaes como a de um programa reservar a impressora, imprimir uma linha e
ficar horas para continuar a impresso no acontecero. Essa implementao permite maior grau de
conpartilhamento na utilizao de impressoras.

Sistema
Operacional

Programa
Arquivo de Spool

Impresso
Figura 32 - Tcnico de spooling.
Atualmente, a tcnica de spooling implementada na maioria dos sistemas operacionais.
Fazendo com que tanto a UCP quanto os dispositivos de E/S seja aproveitados de forma mais eficiente.

4.5

Reentrncia

comum, em sistemas multiprogramveis, vrios usurios executarem os mesmos utilitrios do


sistema operacional simultaneamente, como, por exemplo, um editor de textos. Se cada usurio que
utilizasse o editor trouxesse o cdigo do utilitrio para a memria, haveria diversas cpias de um mesmo
programa na memria principal, o que ocasionaria um desperdcio de espao.
Reentrncia a capacidade de um cdigo de programa (cdigo reentrante) poder ser
compartilhado por diversos usurios, exigindo que apenas uma cpia do programa esteja na memria.
Prof. Alessandro Zanini

31

Uma caracterstica da reentrncia que o cdigo no pode ser modificado por nenhum usurio no
momento em que est sendo executado.
A reentrncia permite que cada usurio possa estar em um ponto diferente do cdigo reentrante,
manipulando dados prprios, exclusivos de cada usurios.

4.6

Proteo do Sistema

Nos sistemas multiprogramveis, onde diversos usurios compartilham os mesmo recursos,


deve existir uma preocupao, por parte do sistema operacional, de garantir a integridade dos dados
pertencentes a cada usurio. Problemas como um programa acessar (acidentalmente ou no) a rea de
memria pertencente a outro programa ou ao prprio sistema operacional tornaria o sistema pouco
confivel. Para isso, todo sistema implementa algum tipo de proteo aos diversos recursos que so
compartilhados, como memria, dispositivos de E/S e UCP.
Com vrios programas ocupam a memria simultaneamente e cada usurio possui uma rea
onde dados e cdigo so armazenados, os sistema operacional deve possuir mecanismos de proteo
memria, de forma a preservar as informaes. Caso um programa tente acessar uma posio de
memria fora da sua rea, um erro do tipo violao de acesso ocorre e o programa encerrado. O
mecanismo para o controle de acesso memria varia em funo do tipo de gerncia de memria
implementado pelo sistema.
H outro problema quando um programa reserva um perifrico para realizar alguma operao.
Neste situao, como, por exemplo, na utilizao de uma impressora, nenhum outro programa deve
interferir at que o programa libere. O compartilhamento de dispositivos de E/S deve ser controlado de
forma centralizada pelo sistema operacional.
Para solucionar esses diversos problemas, o sistema operacional deve implementar mecanismos
de proteo que controlem o acesso concorrente aos diversos recursos do sistema. Esse mecanismo de
proteo, implementado na maioria dos sistemas multiprogramveis, denominado modos de acesso.

Prof. Alessandro Zanini

32

5.

Estrutura dos Sistemas Operacionais

Existe uma grande dificuldade em compreender a estrutura e o funcionamento de um sistema


operacional, pois ele no executado como uma aplicao tipicamente seqencial, com incio, meio e
fim. As rotinas do sistema so executadas sem uma ordem predefinida, baseada em eventos dissociados
do tempo (eventos assncronos). Muitos desses eventos esto relacionados ao hardware e tarefas internas
do prprio sistema operacional.
O sistema operacional formado por um conjunto de rotinas (procedimentos) que oferecem
servios aos usurios do sistema e suas aplicaes, bem como a outras rotinas do prprio sistema. Esse
conjunto de rotinas chamado ncleo do sistema ou Kernel (crebro). As principais funes do ncleo
so:
tratamento de interrupes;
criao e eliminao de processos;
sincronizao e comunicao de processos;
escalonamento e controle dos processos;
gerncia de memria;
gerncia do sistema de arquivos;
operaes de entrada e sada;
contabilizao e segurana do sistema.

5.1

System Calls

Uma preocupao que surge na grande maioria dos projetos de sistemas operacionais a
implementao de mecanismos de proteo ao ncleo do sistema e de acesso aos seus servios. Caso uma
aplicao, que tenha acesso ao ncleo, realize uma operao que o danifique, todo o sistema poder ficar
comprometido e inoperante.
O usurio (ou aplicao), quando deseja solicitar algum servio do sistema, realiza uma
chamada a uma de suas rotinas ( ou servios) atravs de system calls (chamadas ao sistema), que so a
porta de entrada para se ter acesso ao ncleo do sistema operacional. Para cada servio existe uma
system call associada e cada sistema operacional tem o seu prprio conjunto (biblioteca) de chamadas,
com nomes, parmetros e formas de ativao especficos (Figura 33).

Aplicao

System
Call

Ncleo

Hardware

Figura 33 - System Call


Atravs dos parmetros fornecidos na system call, a solicitao processada e uma resposta
retornada aplicao, em um dos parmetros fornecidos na chamada. O mecanismo de ativao e
comunicao entre a aplicao e o sistema semelhante ao mecanismo implementado quando um
programa modularizado ativa um dos seus procedimentos ou funes.
As system call podem ser divididas em grupos de funo:
* Gerncia de processos
Criao e eliminao de processos
Alterao das caractersticas do processo
Sincronizao e comunicao entre processos
* Gerncia de memria
Alocao e desalocao de memria
*Gerncia de entrada/sada
Operaes de entrada/sada
Manipulao de arquivos e diretrios
Prof. Alessandro Zanini

33

5.2

Modos de Acesso

Existem certas instrues que no podem ser colocadas diretamente disposio das aplicaes,
pois a sua utilizao indevida ocasionaria srios problemas integridade do sistema. Suponha que uma
aplicao deseja atualizar um arquivo em disco. O programa, por si s, no pode especificar diretamente
as instrues que acessam seus dados. Como o disco um recurso compartilhado, sua utilizao dever
ser realizada unicamente pelo sistema operacional, evitando que a aplicao possa ter acesso a qualquer
a qualquer rea do disco indiscriminadamente, o que poderia comprometer a segurana do sistema.
Como visto, fica claro que existem certas instrues, como operaes de entrada e sada, que s
devem ser executadas pelo sistema operacional, para impedir a ocorrncia de problemas de segurana e
mesmo violao 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 perigo
ao sistema.
Para que uma aplicao possa executar uma instruo privilegiada, o processador implementa o
mecanismo de modos de acesso. Existem basicamente dois modos de acesso implementados pelo
processador: modo usurio e modo kernel. Quando um processador trabalha no modo usurio, uma
aplicao s pode executar instrues no privilegiadas, tendo acesso a um nmero reduzido de
instrues, enquanto no modo kernel 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 em um
registrador especial da UCP, que indica o modo de acesso corrente. Atravs desse registrador, o hardware
verifica se a instruo pode ou no ser executada pela aplicao.
A melhor maneira de controlar o acesso s instrues privilegiadas permitir que apenas o
sistema operacional tenha acesso a elas. Sempre que uma aplicao necessita de um servio que incorra
em risco para o sistema, a solicitao feita atravs de uma system call. A system call altera o modo de
acesso do processador para um modo mais privilegiado (modo kernel). Ao trmino da rotina do sistema,
o modo de acesso retornado para o modo usurio (Figura 34). Caso um programa tente executar uma
instruo privilegiada, sem o processador estar no modo kernel, uma execeo gerada e o programa
encerrado.

Figura 34 - Chamada a uma rotina do sistema

5.3

Tipos de Estrutura de Sistemas Operacionais

Vamos examinar quatro maneiras diferentes de se estruturar um sistema operacional, do modo a


formar uma idia a respeito do espectro de possibilidades

5.3.1 Sistemas Monolticos


Apesar da estrutura monoltica ser de longe a mais utilizada, ela poderia muito bem ser
chamada de a grande confuso. Simplesmente no h estruturao visvel na organizao monoltica.
O sistema operacional escrito como um conjunto de procedimentos, cada um dos quais podendo
chamar qualquer dos demais sempre que necessrio. Quando esta tcnica usada, cada procedimento do
sistema deve ter uma interface bem definida em termos de parmetros e de resultados, sendo, conforme
mencionado anteriormente, cada procedimento livre para chamar qualquer outro se este ltimo realizar
algo de que o primeiro necessite.
Ex. MS-DOS, UNIX
Prof. Alessandro Zanini

34

Figura 35 - Sistemas monolticos.

5.3.2 Sistemas em Camadas


Um sistema em camadas divide o sistema operacional em camadas sobrepostas. Cada mdulo
oferece um conjunto de funes que podem ser utilizadas por outros mdulos. Mdulos de uma camada
podem fazer referncia apenas a mdulos das camadas inferiores.
O primeiro sistema com base nesta abordagem foi o sistema THE (Techinische Hogeschool
Eindhoven), construdo por Dijkstra na Holanda em 1968 e que utilizava seis camadas. Posteriormente,
os sistemas MULTICS e VMS tambm implementaram o conceito de camadas, sendo estas concntricas.
Neste tipo de implementao, as camadas mais internas so mais privilegiadas que as mais externas.

Operador

Programas de Usurio

Entrada/Sada

Comunicao

Gerncia de memria

Multiprogramao

Figura 36 - Sistema MULTICS


A vantagem da estruturao em camadas isolar as funes do sistema operacional facilitando
sua alterao sua alterao e depurao, alm de criar uma hierarquia de nveis de modos de acesso,
protegendo as camadas mais internas.

Prof. Alessandro Zanini

35

Usurio
Supervisor
Executivo
Kernel

Figura 37 - Sistema VMS.

5.3.3 Mquinas Virtuais


Chamado originalmente de CP/CMS, agora denominado VM/370 (Seawright and MacKinnon,
1979), baseou-se numa astuta observao: um sistema de compartilhamento de tempo deve fornecer: (1)
ambiente para multiprogramao e (2) uma mquina estendida com uma interface mais conveniente que
o hardware. A essncia do VM/370 a separao completa destas duas funes.
O corao conhecido como monitor da mquina virtual, roda sobre o hardware, e implementa a
multiprogramao, fornecendo no s uma, mas vrias mquinas virtuais para o nvel acima dele.
Porm, ao contrrio dos demais sistemas operacionais, estas mquinas no so mquinas estendidas,
com sistemas de arquivos e outras caractersticas agradveis e convenientes ao usurio. Em vez disso,
elas so cpias fiis do hardware, incluindo os modos kernel/usurio, entrada/sada, interrupes, e tudo
o mais que uma mquina real possui.
Pelo fato de cada mquina virtual ser uma cpia exata do hardware, cada uma delas pode rodar
um sistema operacional. Mquinas virtuais diferentes podem rodar sistemas operacionais diferentes.
Algumas rodam sistemas sucessores do OS/360 para processamento batch, outras rodam um sistema
monousurio, outras um sistema interativo denominado CMS (Conversational Monitor System) para
usurios de sistemas de compartilhamento de tempo.
Quando um programa CMS executa uma chamada de sistema, a chamada interceptada pelo
sistema operacional de sua prpria mquina virtual, no pelo VM/370, exatamente como se ele estivesse
rodando numa mquina real, e no numa virtual. O CMS ento executa as instrues necessrias para
efetuar a chamada. Estas instrues so interceptadas pelo VM/370, que as executa como parte da
simulao do hardware real. Atravs da completa separao das funes de fornecimento do ambiente de
multiprogramao e do fornecimento de uma mquina virtual, cada um dos mdulos mais simples,
mais flexvel e mais fcil de manter.

5.3.4 Modelo Cliente Servidor


Uma tendncia dos sistemas operacionais modernos tornar o ncleo do sistema operacional o
menor e mais simples possvel. Para implementar esta idia, o sistema dividido em processos, sendo
cada um responsvel por oferecer um conjunto de servios, como servios de arquivos, servios de
criao de processos, servios de memria, servios de escalonamento, etc.
Sempre que uma aplicao deseja algum servio, ela solicita ao processo responsvel. Neste
caso, a aplicao que solicita um servio chamada de cliente, enquanto o processo que responde
solicitao chamado servidor. Um cliente, que pode ser uma aplicao de um usurio ou um outro
componente do sistema operacional, solicita um servio enviando uma mensagem para o servidor. O
servidor responde ao cliente atravs de uma outra mensagem. funo do ncleo do sistema realizar a
comunicao ou seja, a troca de mensagens entre o cliente e o servidor.

Prof. Alessandro Zanini

36

Servidor
de memria

Cliente

Servidor
de arquivo

Servidor
de rede
Servidor
de processo
Modo usurio
Modo kernel

Ncleo

Hardware

Figura 38 -Sistemas cliente-servidor.


A utilizao deste modelo permite que os servidores executem em modo usurio, ou seja, no
tenham acesso direto a certos componentes do sistema. Apenas o ncleo do sistema, responsvel pela
comunicao entre clientes e servidores, executa no modo kernel. Como conseqncia, se um erro
ocorrer em um servidor, este servidor pode parar, mas o sistema no ficar inteiramente comprometido.
Alm disso, a implementao de sistemas cliente-servidor permite isolar as funes do sistema
operacional por diversos processos (servidores) pequenos e dedicados a servios especficos. Como
conseqncia, os sistema operacional passa a ser de mais fcil manuteno.
Como os servidores se comunicam atravs de trocas de mensagens, no importa se os clientes e
servidores esto sendo processados em um sistema com um nico processador, com mltiplos
processadores (fortemente acoplado) ou ainda em um ambiente de sistema distribudo (fracamente
acoplado). A implementao de sistemas cliente-servidor em um ambiente distribudo permite que um
cliente solicite um servio e a resposta seja processada remotamente.
Apesar de todas as vantagens deste modelo, sua implementao, na prtica, muito difcil
devido a certas funes do sistema operacional exigirem acesso direto ao hardware, como operaes de
entrada e sada. Na realidade, o que implementado mais usualmente uma combinao do modelo de
camadas com o modelo cliente-servidor. O ncleo do sistema, alm de ser responsvel pela comunicao
entre cliente e servidor, passa a incorporar outras funes crticas do sistema, como escalonamento e
gerncia de memria, alm das funes dos device drivers.

Prof. Alessandro Zanini

37

6.

Bibliografia

Essa apostila foi retirada do livro:


- MACHADO, Francis Berenger e MAIA, Luiz Paulo. Arquitetura de Sistemas
Operacionais, 2a. edio. Ed. LTC, 1997.

Prof. Alessandro Zanini

38

Você também pode gostar