Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila
Apostila
SISTEMAS
OPERACIONAIS I
Tubaro - 2000
1.
Conceitos Bsicos
1.1
Introduo
Figura 1 - Viso do sistema operacional como interface entre os usurios e os recursos do sistema.
1.2
Mquinas de Nveis
Sistema
Operacional
Hardware
Aplicativos
Utilitrios
Sistema Operacional
Linguagem de Mquina
Microprogramao
Hadware
Dispositivos Fsicos
Figura 3 - Mquina de nveis.
1.3
Histrico
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.
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.
Computad ENIAC
Prof. Alessandro Zanini
NCR
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
2.
Hardware
Unidade Lgica
e Aritmtica
(ULA)
Unidade
de Controle
(UC)
Registradores
Dispositivos de
Entrada e Sada
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
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.
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.
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.
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
2.1.6
Memria Secundria
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.
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
12
Memria
Principal
Disco
Boot
Sistema
Operacional
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
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.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.
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.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.
16
3.
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
3.2
Sistemas Monoprogramveis/Monotarefa
17
Programa/
Tarefa
UCP
Memria
Dispositivos
de E/S
3.3
Sistemas Multiprogramveis/Multitarefa
Monoprogramao
/
Monotarefa
Multiprogramao/
Multitarefa
Um usurio
Monousurio
Monousurio
Multiusurio
18
Sistemas
Multiprogramveis/Multirefa
Sistemas
Batch
Sistemas de
Tempo compartilhado
Sistemas de
Tempo Real
3.4
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 Fortemente
Acoplados
Sistemas
Simtricos
Sistemas Fracamente
Acoplados
Sistemas
Assimtricos
Sistemas
Operacionais de Rede
Sistemas
Operacionais
Distribudos
3.5
Memria
UCP
UCP
Dispositivos
de E/S
Dispositivos
de E/S
Figura 17 - Sistemas fortemente acoplados
20
Link de Comunicao
UCP
Memria
UCP
Dispositivos
de E/S
Memria
Dispositivos
de E/S
UCP Master
Dispositivos
de E/S
S.O
UCP Slave
Usurios
Usurios
21
UCP
UCP
Dispositivos
de E/S
S.O
Usurios
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.6
22
N
N
Rede
23
Rede
Usurio
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.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.
25
4.
Sistemas Multiprogramveis
0,0015
0,0001
0.0016
segundos
segundos
segundos
0,0001
0,0015
= 0,066 = 6,6%
26
UCP
E/S
E/S
Livre
UCP
1
2
tempo
tempo
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
Monoprogramao
17 %
30 %
33 %
33 %
30 min.
6 prog./hora
Multiprogramao
33%
67%
67%
67 %
15 min.
12 prog./hora
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
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
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
.....
.....
4.3
Buffering
Memria Principal
UCP
Gravao
Buffer
Leitura
Gravao
Controlador
de E/S
Leitura
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
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
32
5.
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
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.
5.3
34
Operador
Programas de Usurio
Entrada/Sada
Comunicao
Gerncia de memria
Multiprogramao
35
Usurio
Supervisor
Executivo
Kernel
36
Servidor
de memria
Cliente
Servidor
de arquivo
Servidor
de rede
Servidor
de processo
Modo usurio
Modo kernel
Ncleo
Hardware
37
6.
Bibliografia
38