Você está na página 1de 144

Sistemas Operacionais

2015

Editorial
Comit Editorial
Fernando Fukuda
Simone Markenson
Jeferson Ferreira Fagundes
Autor do Original
Ricardo Balieiro

UniSEB Editora Universidade Estcio de S


Todos os direitos desta edio reservados UniSEB e Editora Universidade Estcio de S.
Proibida a reproduo total ou parcial desta obra, de qualquer forma ou meio eletrnico, e mecnico, fotogrfico e gravao ou
qualquer outro, sem a permisso expressa do UniSEB e Editora Universidade Estcio de S. A violao dos direitos autorais
punvel como crime (Cdigo Penal art. 184 e ; Lei 6.895/80), com busca, apreenso e indenizaes diversas (Lei 9.610/98 Lei
dos Direitos Autorais arts. 122, 123, 124 e 126).

Sistemas Operacionais

Su

ri o

Captulo 1: Introduo Sistemas


Operacionais..................................................... 7
Objetivos da sua aprendizagem.................................. 7
Voc se lembra?................................................................. 7
1.1 Conceitos Fundamentais de Sistemas Operacionais........ 8
1.2 Evoluo Histrica dos Sistemas Operacionais................... 13
1.3 Classificao de Sistemas Operacionais................................... 17
1.4Interrupes.................................................................................... 24
1.5 Conceitos de concorrncia................................................................. 26
1.6 Estruturas dos Sistemas Operacionais................................................... 27
Atividades........................................................................................................ 28
Reflexo.............................................................................................................. 29
Leituras Recomendadas......................................................................................... 29
Referncias............................................................................................................... 29
No Prximo Captulo.................................................................................................. 30
Captulo 2: Processos................................................................................................. 31
Objetivos da sua aprendizagem..................................................................................... 31
Voc se lembra?.............................................................................................................. 31
2.1 Conceito de Processo............................................................................................... 32
2.2 Estados de um processo............................................................................................ 40
2.3Threads...................................................................................................................... 43
2.4 Comunicao entre Processos................................................................................... 45
2.5 Sincronizao entre Processos................................................................................. 49
Atividades...................................................................................................................... 56
Reflexo...................................................................................................................... 56
Leituras Recomendadas............................................................................................ 57
Referncias............................................................................................................ 57
No Prximo Captulo......................................................................................... 58
Captulo 3: Gerncia de Processador.......................................................... 59
Objetivos da sua aprendizagem.................................................................. 59
Voc se lembra?...................................................................................... 59
3.1Fundamentos................................................................................ 60
3.2 Critrios de Escalonamento..................................................... 62

3.3 Escalonamento primeiro a entrar primeiro a sair (FIFO First - IN - First - OUT).63
3.4 Escalonamento por job mais curto primeiro (SJF Shortest - Job - First)............... 66
3.5 Escalonamento circular (Round Robin).................................................................... 67
3.6 Escalonamento por Prioridade.................................................................................. 72
3.7 Escalonamento por Mltiplas filas com realimentao............................................ 78
3.8 Clculo estimado de tempo de resposta.................................................................... 81
Atividades........................................................................................................................ 83
Reflexo........................................................................................................................... 84
Leituras Recomendadas................................................................................................... 84
Referncias....................................................................................................................... 84
No Prximo Captulo....................................................................................................... 85
Captulo 4: Gerncia de Memria................................................................................ 87
Objetivos da sua aprendizagem....................................................................................... 87
Voc se lembra?............................................................................................................... 87
4.1Funes .................................................................................................................... 88
4.2 Estruturas de memria.............................................................................................. 89
4.3 Espao de Endereamento Fsico e Lgico.............................................................. 91
4.4 Estratgias de alocao............................................................................................. 92
4.4,5 Estratgia de posicionamento de memria.......................................................... 103
4.5 Memria Virtual...................................................................................................... 106
Atividades.......................................................................................................................111
Reflexo......................................................................................................................... 112
Leituras Recomendadas................................................................................................. 112
Referncias..................................................................................................................... 112
No Prximo Captulo..................................................................................................... 113
Captulo 5: Gerncia de Entrada e Sada.................................................................. 115
Objetivos da sua aprendizagem..................................................................................... 115
Voc se lembra?............................................................................................................. 115
5.1Introduo............................................................................................................... 116
5.2 Componentes de hardware de ENTRADA E SADA............................................. 117
5.3 Componentes de Software de ENTRADA E SADA............................................. 121
5.4 Sistema de Arquivos............................................................................................... 126
5.5 Conceitos de Arquivos e Diretrios........................................................................ 127
5.6 Mtodos alocao ................................................................................................... 132
5.7 Gerncia de espaos livres...................................................................................... 135
5.8 Proteo de acesso.................................................................................................. 136
Atividades...................................................................................................................... 137
Reflexo......................................................................................................................... 137
Leituras Recomendadas................................................................................................. 137
Referncias..................................................................................................................... 138
Gabarito.......................................................................................................................... 139

Ap

res

ent

Prezados(as) alunos(as)
No podemos imaginar hoje o mundo
sem o computador. Da mesma forma, no
podemos imaginar o computador sem o sistema
operacional. Ligamos o computador e o sistema
operacional entra em cena, permitindo que acessemos
nossos programas e arquivos para os mais variados fins,
para o trabalho, a diverso, se relacionar atravs das redes
sociais, internet, etc. Os sistemas operacionais nos oferecem
uma maneira fcil de efetuarmos nossas tarefas atravs de suas
interfaces grficas e atraentes. Mas nem sempre foi assim. Houve
um tempo em que os computadores eram configurados atravs do
prprio hardware.
importante que tenhamos uma viso detalhada dos mecanismos
envolvidos em um sistema operacional moderno para que possamos
utiliz-lo melhor e de forma mais eficiente. Conhecer sua evoluo
como tambm todos os problemas enfrentados e solues adotadas,
permite que possamos avanar mais na criao de novos sistemas sem
ser barrados pelos problemas j conhecidos. Aprender sobre sistemas
operacionais ajuda-nos a entendermos como so gerenciados os nossos
arquivos, diretrios, processador, memria, perifricos etc., e assim, conseguirmos um maior desempenho do sistema. Estudar como os sistemas
operacionais controlam e buscam as informaes to rapidamente, como
controla acesso, sincronizao entre diversos processos em execuo,
permite que tenhamos slidos conceitos, que podemos utilizar em diversas reas de desenvolvimento e gerenciamento de sistemas.
Diante de todos os aspectos acima descritos, acreditamos que com o
estudo atencioso do material aqui presente, voc com certeza ser
um profissional em destaque no mercado de trabalho!
Bons estudos e sucesso!
O autor

Introduo Sistemas
Operacionais

Un

ida

de

Para podermos aprofundar em todos os


aspectos envolvidos em um sistema operacional, necessitamos criar uma base slida de
conhecimentos bsicos que sero primordiais para
a sequncia dos prximos captulos. Diante disto,
estudaremos a evoluo e os diversos tipos de sistemas
operacionais, como tambm suas principais funes e estrutura.

Objetivos da sua aprendizagem

Conhecer os conceitos fundamentais contidos nos sistemas


operacionais.
Estudar os aspectos que impulsionaram a evoluo dos sistemas
operacionais.
Discutir sobre os diversos tipos de sistemas operacionais atuais.

Voc se lembra?

Voc se lembra dos sistemas operacionais que utilizou nos ltimos anos?
Consegue imaginar um computador sem um sistema operacional? E o seu
celular ou tablet, ser que possui um sistema operacional?

Sistemas Operacionais

1.1 Conceitos Fundamentais de Sistemas


Operacionais

TODOS OS DIREITOS RESERVADOS

A tecnologia tem avanado muito rapidamente em todas as reas


do conhecimento e novos equipamentos so lanados a todo o momento
para os mais variados fins. Exemplo disso, alm dos computadores, so
os tablets, smartphone, smartwatch, vdeo games, TVs e a nossa porta os
google-glass.
Independente do tipo de equipamento, formato ou tamanho, todos
tm um ponto em comum, necessitam de um sistema operacional para
funcionarem.

Figura 1 Sistemas operacionais em diversos equipamentos.

TSUNG-LIN WU | DREAMSTIME.COM

Figura 2 Smartwatch e Google-Glass.

TSUNG-LIN WU | DREAMSTIME.COM

Proibida a reproduo UniSEB

Disponivel em : <www.extremetech.com>

Introduo a Sistemas Operacionais Captulo 1

1.1.1 Definio

Segundo Silberschatz et al. (2004), um sistema operacional um


programa que efetua o gerenciamento dos componentes fsicos do computador (hardware), como tambm uma base para os programas aplicativos.
Alm disso, atua como intermedirio entre o usurio e o hardware do
computador.
Existem muitos tipos de sistemas operacionais, cujo aspecto varia
de acordo o tipo de funes e hardware ao qual ser utilizado. Se observarmos os tablets, smartphone, smartwatch teremos um sistema operacional projetado para facilitar a interface do usurio com os programas a
serem executados. Nos desktops (computadores pessoais) esta otimizao
so voltadas para aplicaes comerciais, jogos, etc. Em ambientes coorporativos, onde a utilizao de computadores de grande porte so mais
requisitados, os sistemas operacionais tm um projeto mais voltado para
a otimizao de hardware. Na indstria, cujos equipamentos necessitam
de alta preciso e confiabilidade, utilizam-se sistemas operacionais em
tempo real que permitem a resposta a um evento ser feito em um espao
de tempo determinado.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

1.1.2 Objetivo

A funo do sistema operacional permitir uma interface homem


mquina mais amigvel com o usurio, isto porque encapsula as complexas rotinas de acesso a recursos de hardware, tais como, interface de
programao e gerenciamento de recursos.
Tarefas simples como salvar um pequeno texto, sem o sistema
operacional seria algo que demandaria um grande esforo e extensos conhecimentos da arquitetura interna do computador. Esta pequena tarefa
necessitaria as seguintes etapas simplificadas:
1. Localizar os dados do arquivo na memria.
2. Obter o nome do arquivo e local de gravao.
3. Validar os dados do item 2.
4. Posicionar o cabeote de leitura e gravao no cilindro correto.
5. Posicionar o cabeote de leitura e gravao na trilha correta.
6. Posicionar o cabeote de leitura e gravao no setor correto.
7. Salvar o arquivo.

Sistemas Operacionais

Trilha
Setor

Cabea de
leitura e grav.

Prato
Faces

Cilindro

Proibida a reproduo UniSEB

Figura 3 Disco Rgido.

10

De acordo com Tanenbaum e Woodhyll (1999) e Silberschatz et al.


(2004), os sistemas operacionais podem ser conceituados de duas formas:
topdown e bottom-up.
No modo topdown (de-cima-a-baixo) que o modo de viso do
usurio, o sistema operacional um software que permite a interao entre o hardware e os programas aplicativos. Assim para o usurio, o sistema operacional fornece:
Acesso ao sistema.
Possibilidade de criar e gerenciar arquivos e diretrios.
Ambiente para execuo de programas.
Acesso aos dispositivos de entrada e sada.
Acesso ao contedo de arquivos.
Deteco de erros.

Introduo a Sistemas Operacionais Captulo 1

J no modo bottom-up (de-baixo-a-cima), considerado um gerenciador de recursos. Isto porque controla a utilizao dos recursos de
hardware pelas aplicaes como tambm quais e quando as aplicaes
podem ser executadas. Podemos citar como recursos:
Tempo de CPU.
Espao em memria.
Espao em disco.
Acesso aos dispositivos de comunicao.
Bibliotecas de software.
Para que isso fique mais claro, podemos analisar o sistema operacional dividindo-o em quatro componentes: usurios, programas aplicativos,
sistema operacional e o hardware.
Usurio
1

Usurio
2

Usurio
3

...

Usurio
n

Compilador

Browser

Editor
de Texto

...

Sistema
de Banco
de Dados

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Sistema Operacional
Computador
Hardware
Figura 4 Sistema computacional.
Fonte: Oliveira et al. (2010).

11

Proibida a reproduo UniSEB

Sistemas Operacionais

12

Ns usurios utilizamos os programas aplicativos (editor de texto, planilhas eletrnicas, navegador web,
O sistema operacional considerado
etc) para diversas tarefas, tanto
por muitas pessoas como sendo um programa que fica executando o tempo todo no
para trabalho como para lazer. Os
computador, enquanto o restante consideraaplicativos por sua vez depen- do como programas aplicativos (TANENBAUM;
dem dos recursos de hardware
WOODHYLL, 1999).
para executar suas funes. O
hardware a parte mais bsica
dos componentes, sendo composto
pela unidade central de processamento (CPU - Central Processing Unit),
memrias (RAM e ROM), dispositivos perifricos (teclado, monitor, mouse, impressora, etc.) e unidades de armazenamento (disco rgido).
Neste ponto entra o sistema operacional fornecendo um ambiente de
integrao que possibilite a execuo dos programas e o controle e coordenao da utilizao dos recursos de hardware pelos aplicativos. Silberschatz et al. (2004) considera o sistema operacional como uma alocador de
recursos. de responsabilidade do sistema operacional resolver conflitos
na utilizao destes recursos. Por exemplo, imagine trs computadores
em rede e os usurios destes computadores resolvem mandar ao mesmo
tempo um texto para uma impressora compartilhada na rede. Qual texto o
sistema operacional deve imprimir primeiro? Imprimir parte do texto do
usurio 1, em seguida, parte do usurio 2 e assim por diante? Como o sistema operacional resolve este conflito de alocao de recursos? A soluo
adotada neste caso , primeiramente o sistema operacional armazenar os
arquivos enviados em uma fila de impresso no disco rgido. Em seguida,
imprime o primeiro arquivo da fila e em seguida o prximo at no haver
mais nenhum para impresso.
Este um pequeno exemplo do que acontece a todo o momento em
um sistema operacional, que procurar gerenciar a utilizao dos recursos
da forma mais eficiente possvel, procurar minimizar as falhas, efetuar
controle de acesso para que os usurios possam acessar apenas os recursos que lhes foram autorizados, entre outros. Em resumo, os objetivos
fundamentais dos sistemas operacionais so executar os aplicativos dos
usurios e facilitar a resoluo de seus problemas.

Introduo a Sistemas Operacionais Captulo 1

1.2 Evoluo Histrica dos


Sistemas Operacionais

Para estudarmos a evoluo


A Mquina Analtica de Charles
Babbage no possua sistema operahistrica dos sistemas operaciocional, apenas as sequencias de instrues
nais devemos estudar a evoluo
executadas pela Mquina Analtica que era
dos computadores, isto porque
de responsabilidade daquela considerada a
primeira programadora da histria, Augusta
os dois esto diretamente ligaAda
Byron discpula de Babbage (SILBERSdos. Segundo Machado e Maia
CHATZ et al., 2004).
(2007) a mquina de clculos de
.
equaes polinomiais conhecida
como Mquina Analtica (Analytical
Engine) inventada pelo matemtico ingls Charles Babbage em 1822 o que mais se
assemelha a um computador atual. Isto porque possua os conceitos de
unidade central de processamento, memria, unidade de controle e dispositivos de entrada/sada.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Figura 5 Charles Babbage - Mquina Analtica.

1.2.1 Dcada de 1940: vlvulas e painis com plugs

Durante a segunda guerra mundial houve um esforo muito grande


no desenvolvimento de mquinas que pudessem agilizar os procedimentos manuais efetuados na rea militar, principalmente para clculos balsticos. Assim, em 1943 comeou a ser desenvolvido o ENIAC (Electronic
Numerical Integrator Analyzer and Computer Computador Integrador
Numrico Eletrnico), primeiro computador eletrnico de grande porte
idealizado pelos cientistas norte-americanos John Eckert e John Mauchly,
da Electronic Control Company.
13

Sistemas Operacionais

Proibida a reproduo UniSEB

Disponivel em: <https://sites.google.com/site/worldcyber / - Dr.


J. Presper Eckert, Dr. John Mauchly ENIAC of 1946>.
Figura 6 John Eckert, John Mauchly e o ENIAC

14

A arquitetura dos modernos computadores que temos nos dias de


hoje, conhecida como Arquitetura von Neumann, foi idealizado por um
dos consultores do projeto ENIAC, o professor John von Neumann. Segundo a arquitetura von Neumann, uma mquina digital (computador)
teria os seguintes componentes:
1. Memria: capaz de armazenar em um mesmo espao dados e
instrues dos programas;
2. Unidade de processamento (CPU Central Processing Unit):
responsvel por executar as instrues dos programas armazenados na memria;
3. Unidade de controle (CU Control Unit): responsvel pela
interpretao das instrues de programa, como tambm, controlar a sequncia de tempo das atividades necessrias para sua
execuo;
4. Unidade aritmtica e lgica (ALU Arithmetical and Logical
Unit): responsvel pela execuo das operaes aritmticas
(somas, subtraes, etc.) e lgicas (comparaes, AND, OR,
etc.) contidas nas instrues dos programas;
5. Registradores: pequenas reas de memria localizada na CPU
para armazenamento temporrio de dados dos programas que
esto sendo executados, resultados de instrues, estado interno da CPU, etc.
6. Dispositivos de entrada e sada: responsvel por traduzir os dados inseridos pelo usurio no computador (ex.: teclado, cartes
perfurados, fitas ou discos magnticas etc.) para a memria
como tambm traduzir da memria para um formato externo
(ex.: fitas ou discos magnticos, telas de vdeo, etc.)

Introduo a Sistemas Operacionais Captulo 1

Neste perodo no havia ainda os conceitos de sistema operacionais,


desta forma, era responsabilidade do usurio operar, programar e efetuar
a manuteno do computador durante o perodo que o equipamento ficava
a sua disposio. A programao, composta basicamente por clculos numricos, era feita diretamente nos painis do computador.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

1.2.2 Dcada de 1950: transistores e sistemas batch

Na dcada de 1950 surgiram os transstores que permitiram uma


grande diminuio do tamanho dos computadores, que anteriormente eram feitos a vlvula, o que proporcionou um aumento do poder de
processamento dos equipamentos. Grandes empresas e corporaes comearam a adquirir computadores, conhecidos como Mainframes. Os
Mainframes permitiram que houvesse uma separao entre os operadores,
programadores e tcnicos de manuteno.
A programao, feita atravs de cartes perfurados, eram entregues
ao operador do computador para que fossem processados. Os programas,
tambm denominados Jobs, eram lidos por uma leitora e gravados em
uma fita de entrada. O computador ento lia a fita e executava um programa de cada vez. O resultado do processamento era ento gravado numa
fita de sada. Esta tcnica, onde so processados um conjunto de programas, ficou conhecido como processamento batch.
Em 1953 os usurios do computador IBM 701, do Centro de Pesquisas da General Motors, desenvolveram o primeiro sistema operacional,
chamado de Monitor. O Monitor, chamado assim pela sua simplicidade,
tinha como objetivo automatizar as tarefas manuais executadas na poca.
Neste perodo surgiram as primeiras linguagens de programao
de alto nvel, tais como FORTRAM, ALGOL E COBOL. Houve ento
um grande avano no desenvolvimento e manuteno dos programas que
no mais tinham uma relao direta com o hardware dos computadores.
Consequentemente, os sistemas operacionais evoluram para atender as
demandas das linguagens de programao e assim facilitar o trabalho de
codificar, executar e depurar os programas.

1.2.3 Dcada de 1960 - 1980: circuitos integrados e


multiprogramao

Com o surgimento dos circuitos integrados os computadores tiveram uma reduo de custo de aquisio o que proporcionou sua viabilizao nas empresas. Vrias inovaes foram implementadas nos sistemas
15

Sistemas Operacionais

operacionais, tais como multiprogramao, multiprocessamento,


time-sharing e memria virtual.
A dcada de 1970 foi marcada com a miniaturizao dos componentes (chips) baseadas nas tecnologias de Integrao em Larga Escala (Lage
Scale Integration LSI) e a Integrao em Muito Larga Escala (Very Lage
Scale Integration VLSI), o surgimento das primeiras redes de computadores, alm do desenvolvimento de novas linguagens de programao de
alto nvel.
Na dcada de 1980 os fabricantes de computadores passam a produzir microcomputadores utilizando microprocessadores. A IBM ento cria
a filosofica de computadores pessoais o que impulsionou a evoluo dos
sistemas operacionais. Os microcomputadores da poca possuam baixa
capacidade de armazenamento e as verses iniciais dos sistemas operacionais eram monousurio/monotarefa. Os sistemas operacionais evoluram
para monousurio/multitarefa com a incorporao de discos rgidos e outros perifricos nos microcomputadores.
Em meados da dcada de 1980 crescem as redes de computadores
pessoais utilizando sistemas operacionais para rede e sistemas operacionais distribudos. Os sistemas operacionais para rede permitem que os
usurios se conectem a mquinas remotas e utilizem recursos compartilhados. O usurio tem plena conscincia da existncia de vrios computadores conectados. J no sistema operacional distribudo os usurios no
tm conscincia onde esto armazenados seus arquivos ou onde esto sendo executados seus programas. Apesar do sistema operacional distribudo
ser composto de mltiplos computadores conectados, as operaes so
executadas de tal forma que o usurio tem impresso de estar trabalhando
um nico computador.

Proibida a reproduo UniSEB

1.2.4 Dcada de 1990 - 2000: Windows e Linux

16

A rede mundial de computadores, a Internet, surge na dcada de


1990 e com a decorrncia de sua rpida evoluo, fora os sistemas operacionais a oferecerem suporte ao protocolo TCP/IP utilizado na Internet.
Nesta mesma dcada os sistemas operacionais como o Windows da Microsoft e o Unix, passam a adotar as interfaces grficas.
Surge o Linux em 1991 atravs do desenvolvimento do finlands
Linus Torvalds e de trabalhos colaborativos de diversos programadores.
A forma colaborativa e os avanos da Internet possibilitaram que outros
softwares abertos, como o j citado sistema operacional Linux, o banco

Introduo a Sistemas Operacionais Captulo 1

de dados MySQL, o servidores web Apache entre outros, pudessem ser


desenvolvidos e distribudos sem custos aos seus usurios. Para Machado e Maia (2007) a dcada de 2000 aponta para uma mudana radical no
desenvolvimento de computadores frente as
exigncias cada vez maiores de equipamenConexo:
tos mais eficientes e com maior poder de
Para entender melhor
processamento. Os sistemas operacioas diferenas entre Windows
e
Linux, veja o link: http://www.
nais voltados para as novas arquiteturas
guiadopc.com.br/artigos/3394/as-10de processadores 64 bits, so dotados -principais-diferencas-entre-o-windowsde interfaces usurio-mquina que ex-e-o-linux.html. O autor faz uma
comparao
entre as 10 principais
ploram cada vez mais imagens, sons e
diferenas entre o Windows e o
linguagens naturais para proporcionar
Linux. Leia e confira!
ao usurio uma interatividade com o computador mais intuitiva, natural e simples.

1.3 Classificao de Sistemas Operacionais

Com a evoluo dos computadores, houve a necessidade da


evoluo dos sistemas operacionais para suportar os novos recursos de
hardware e das aplicaes por ele suportado. Neste sentido, os sistemas
operacionais podem ser classificados conforme o seu processamento, tarefas, usurios e interface.

Tipos de Sistemas
Operacionais
(Monotarefas)

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Tipos de Sistemas
Operacionais

Sistemas
Multiprogramveis
(Multitarefas)
Sistemas com
Mltiplos
Processadores

Figura 7 Tipos de sistemas operacionais.

17

Sistemas Operacionais

1.3.1 Sistema Monoprogramveis/Monotarefas

Os sistemas operacionais monoprogramveis foram os primeiros


sistemas a serem utilizados. Este tipo de sistema operacional tem a caracterstica de permitir a execuo de um nico programa por vez.
Executa

Espera

Executa

Espera

Monotarefa
Figura 8 Sistemas Monoprogramveis/Monotarefa.

Assim o processador, memria e os perifricos do computador ficam dedicados exclusivamente para um nico programa em execuo.
Os sistemas operacionais monoprogramveis tambm so conhecidos
como sistemas monotarefas. Alm de executar um programa por vez, os
recursos do sistema so alocados para uma tarefa por vez. Nesse sentido
quando o programa est esperando a entrada de um dado pelo usurio, o
processador fica parado, sem qualquer tipo de processamento.

Programa/Tarefa
UCP
Memria

E/S

Proibida a reproduo UniSEB

Figura 9 Sistemas Monoprogramveis/Monotarefa.

18

Fonte: Machado e Maia (2007).

Introduo a Sistemas Operacionais Captulo 1

Os sistemas operacionais monoprogramveis/monotarefa surgiram


para serem utilizados nos primeiros computadores, os Mainframes e posteriormente aos computadores pessoais utilizados por um usurio por vez.
O MS_DOS, sistema operacional muito utilizado nas dcadas de 1980 e
1990 um exemplo de sistemas operacionais monoprogramveis/monotarefa. Por no compartilhar recursos, como processador, memria e dispositivos de entrada/sada, este tipo de sistema operacional de simples
implementao.

1.3.2 Sistema Multiprogramveis/Multitarefa

Os sistemas operacionais multiprogramveis/multitarefa tm como


caractersticas permitir o compartilhamento dos recursos do computador
com vrios usurios e aplicaes.
Programa A

Executa

Espera

Executa

Espera

Programa B

Espera

Executa

Espera

Executa

Multitarefa

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Figura 10 Sistemas multiprogramveis/multitarefa.

Para que isso acontea, os programas so carregados em memria e


a utilizao do processador efetuado por apenas um programa, ficando
os demais enfileirados, aguardando a sua vez. Neste ambiente cada programa (processo) recebe um tempo para a utilizao do processador. No
final do tempo, um novo programa passa a utilizar o processador. Para o
usurio final a impresso de que vrios programas esto sendo executados simultaneamente. Este tipo de alternncia de processos denominado
de concorrncia. Este acesso concorrente aos recursos disponvel gerenciado pelo sistema operacional de forma ordenada e protegida.

19

Sistemas Operacionais

Programa/Tarefa

Programa/Tarefa
UCP
Memria

E/S

Programa/Tarefa

Programa/Tarefa

Figura 11 Sistemas multiprogramveis/multitarefa.


Fonte: Machado e Maia (2007).

A implementao dos sistemas operacioConexo:


nais multiprogramveis so mais complexas,
Leia um pouco mais
mas apresentam uma maior eficincia que
sobre Sistemas multiprogramveis/multitarefa em: <http://
os monoprogramveis e uma sensvel reduo de custo em funo da possibilidade prezi.com/atwpl2cicalv/sistemas-multiprogramaveismultitarefa/>.
de compartilhar os recursos disponveis de
hardware entre diferentes aplicaes.

1.3.3 Classificao de
Processamento
De acordo como as aplicaes so gerenciadas, os sistemas multiprogramveis podem ser classificados como: Batch, sistemas de tempo
compartilhado ou sistema de tempo real.
Sistemas Batch

Proibida a reproduo UniSEB

Sistemas
Monoprogramveis
(Monotarefas)

20

Sistemas de Tempo
Compartilhado
Sistemas de Tempo
Real

Figura 12 Classificao de sistemas multiprogramveis.

Introduo a Sistemas Operacionais Captulo 1

1.3.3.1 Sistemas Operacionais Batch (lote)


Os primeiros sistemas multiprogramveis foram os Sistemas Batch.
Neste sistema, a programao era feita com cartes perfurados. Os cartes
eram lidos e armazenados em disco ou fita, que em seguida eram utilizados para carregar os dados para processamento. Uma vez executados,
o resultado do processamento era armazenado em disco ou fita de sada.
Apesar de apresentarem um tempo de resposta muito longos eram considerados altamente eficientes.

1.3.3.2 Sistemas operacionais de tempo compartilhado


(time-sharing)
Os sistemas operacionais de tempo compartilhado (time-sharing)
so sistemas onde o tempo do processador dividido em pequenas partes
(time-slice) permitindo a cada programa utilizar uma destas partes para a
sua execuo.
O controle do sistema operacional feito em um computador
central. Os usurios interagem com o computador central atravs de comandos digitados em terminais compostos por teclado, monitor e mouse.
Grande parte das atuais aplicaes comerciais processada em sistemas
de tempo compartilhado.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

1.3.3.3 Sistemas de tempo real


Nos sistemas de tempo real (real-time) o tempo do processador
distribuio de acordo com a prioridade de cada aplicao. Devido
natureza dos sistemas de tempo real, cujas aplicaes so de controle de
processo, a resposta na execuo de uma tarefa deve estar dentro de limites rgidos de tempo. O conceito de tempo compartilhado no aplicado
neste tipo de sistema. Assim o sistema operacional deve garantir a disponibilidade de todos os recursos necessrios para execuo de um programa at que este termine ou que surja um de maior prioridade. O sistema
operacional no define as prioridades de execuo de um programa, esta
definio feita pela prpria aplicao. Para Machado e Maia (2007) o sistema de tempo real empregado em aplicaes de controle e monitoramento de
processos onde o tempo de processamento fator crtico, como em casos de
usinas termoeltricas ou nucleares, refinarias de petrleo, trfego areo, etc.
21

Sistemas Operacionais

1.3.4 Sistemas com mltiplos processadores

Os sistemas com mltiplos processadores tm como caracterstica


possuir mais de um processador interligado e trabalhando em conjunto.
Os processadores podem estar num mesmo computador ou espalhados
fisicamente em uma rede de computadores. Dessa forma diversos programas podem ser executados simultaneamente, ou um programa pode ser
dividido em partes e executados em processadores diferentes numa mesma mquina ou em vrias. Devido a sua capacidade de ampliar consideravelmente o poder de processamento a medida que novos processadores
so adicionados, este tipo de sistema muito empregado em aplicaes de
processamento de imagens, simulaes, prospeco de petrleo, processamento cientfico entre outros.
No desenvolvimento de sistemas operacionais com mltiplos processadores de vital importncia que se conhea a forma de comunicao
entre os processadores, o grau de compartilhamento da memria principal
e dos dispositivos de entrada e sada. Isto porque, estes fatores definem a classificao dos sistemas em: Fortemente acoplados e Fracamente acoplados.
Sistemas
com Mltiplos
Processadores
Sistemas
Fortemente
Acoplados

Sistemas
Simtricos

Sistemas
Assimtricos

Sistemas
Fracamente
Acoplados
Sistemas
Operacionais
de Rede

Sistemas
Operacioanis
Distribudos

Figura 13 Tipos de sistemas com mltiplos processadores.

Proibida a reproduo UniSEB

1.3.4.1 Sistemas fortemente acoplados

22

Os sistemas fortemente acoplados, conhecidos tambm como multiprocessadores, tm como caractersticas possuir vrios processadores
compartilhando uma nica memria fsica e dispositivos de entrada e sada e apenas um sistema operacional efetuando o gerenciamento. Segundo
Silberschatz et al. (2004) os sistemas fortemente acoplados podem ser

Introduo a Sistemas Operacionais Captulo 1

divididos em Multiprocessamento Simtrico (SMP Symmetric Multiprocessing) e Multiprocessamento Assimtrico (NUMA Non-Uniform
Memory Access). Os sistemas multiprocessamento simtrico os processadores compartilham o mesmo tempo de memria. No multiprocessamento
assimtrico, o tempo de acesso memria pode variar dependendo da
localizao fsica dos processadores em relao memria.

UCP

Memria

UCP

E/S

E/S

Figura 14 Sistema fortemente acoplados.


Fonte: Machado e Maia (2007).

1.3.4.2 Sistemas fracamente acoplados


Os sistemas fracamente acoplados, conhecidos tambm como multicompudadores, conectam vrios sistemas computacionais (computadores)
atravs de linhas de comunicao. Os sistemas computacionais funcionam
de forma independente, assim cada qual tem sua prpria UCP, memria,
dispositivos de entrada e sada e sistema operacional.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Link de Comunicao
UCP

Memria

UCP

E/S

Memria

E/S

Figura 15 Sistemas fracamente acoplados.


Fonte: Machado e Maia (2007).

23

Sistemas Operacionais

Levando em considera o grau de integrao dos computadores da


rede, os sistemas fracamente acoplados podem ser classificados como
sistemas operacionais de rede e sistemas distribudos. Nos Sistemas Operacionais de Rede (SOR) os recursos de um computador, tais como diretrios, impressora, servios, etc. podem ser compartilhados com outro computador da rede. Neste tipo de sistema o usurio tem pleno conhecimento
dos computadores da rede, quais recursos e servios que esto disponveis
em cada um. No sistema distribudo os recursos e servios individuais
disponveis em cada computador e tratado com um nico conjunto. Assim
o usurio final tem a sensao de estar trabalhando em um nico sistema
centralizado e no em uma rede de computadores. Entre diversas vantagens oferecidas pelos Sistemas distribudos destaca-se o balanceamento
de carga, muitas vezes denominado de clusters. O balanceamento de carga permite que quando um programa aceito para execuo, o sistema escolhe o computador com menor carga de processamento para execut-lo.

Proibida a reproduo UniSEB

1.4 Interrupes

24

Quando um programa entra em execuo, suas instrues so executadas em sequncia pelo processador. Pode ocorrer situaes que force
o processador lanar algum evento que cause o desvio da sequncia original de execuo do programa. Estes eventos so conhecidos como interrupes ou excees.
Um evento gerado pelo processador quando este recebe um sinal
de algum dispositivo de hardware informando uma mudana de estado
em algum dispositivo, como por exemplo, a concluso de uma entrada\
sada em disco ou da execuo de instrues do prprio programa.
A Figura 16 mostra um diagrama do mecanismo de interrupo. O
programa composto de inmeras instrues que devem ser executadas
em uma determinada ordem pelo processador. Aps executar cada instruo, o processador verifica se houve alguma ocorrncia de interrupo.
Caso tenha ocorrido, o processador suspende a execuo da prxima instruo e desvia para uma rotina pr-definida para tratar o evento, chamada
de rotina de tratamento de interrupo. Antes de desviar para a rotina, os
dados dos registradores so salvos permitindo que aps o tratamento da
interrupo, o processador possa retornar ao cdigo que estava sendo executado quando recebeu a interrupo.

Introduo a Sistemas Operacionais Captulo 1

Programa
do Usurio

Sequncia
de Execuo
Desvio para a
rotina de tratamento
da interrupo

Retorno a
sequncia normal
de execuo

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Figura 16 Mecanismos de interrupo e exceo.

Exemplo de um tratamento de interrupo:


est sendo executado um determinado programa pelo processador;
um pen-drive conectado a porta USB;
a placa de dispositivo de entrada e sada envia uma interrupo para o
processador;
o processador para a execuo do programa e desvia para um tratamento de interrupo;
a rotina de tratamento executada, atualizando as estruturas do sistema operacional e exibindo uma mensagem ao usurio informando da
conexo do pen-drive;
finalizando a rotina de tratamento da interrupo o processador retorna execuo do programa interrompido anteriormente.
A utilizao de interrupo permitiu o desenvolvimento de concorrncia nos computadores.

25

Sistemas Operacionais

1.5 Conceitos de concorrncia

Os primeiros sistemas operacionais, os monoprogramveis, apresentavam uma arquitetura que limitava muito seu desempenho. Isto acontecia devido utilizao pouco eficiente dos recursos computacionais
como processadores, memria, dispositivos de entrada e sada etc. Pouco
eficiente no sentido de serem recursos de alto custo e ficarem ociosos em
grande parte do tempo. O processador, por exemplo, ficava ocioso enquanto
era efetuada a entrada de dados, por exemplo, a digitao do usurio (Figura
17). A memria, que permitia carregar apenas um programa por vez, no era
ocupada totalmente, permanecendo grandes reas livres sem utilizao.

Executa

Espera

Executa

Espera

Monotarefa
Figura 17 Sistemas Monoprogramvel

Proibida a reproduo UniSEB

Com o surgimento dos sistemas operacionais multiprogramveis,


foi possvel carregar vrios programas na memria, concorrendo pela utilizao do processador. Assim quando um programa solicita uma operao de entrada/sada, que normalmente so muito lentas comparadas com
a velocidade de processamento de uma instruo, outro programa assume
o uso do processador (Figura 18).
O controle do acesso concorrente a diversos recursos implementado por mecanismos de proteo do sistema operacional para garantir a
integridade dos programas e do prprio sistema operacional. Assim, podemos visualizar o sistema operacional como sendo um conjunto de rotinas
que so executadas de forma concorrente e ordenada.

26

Programa A

Executa

Espera

Executa

Espera

Programa B

Espera

Executa

Espera

Executa

Multitarefa

Figura 18 Sistemas Multiprogramvel.

Introduo a Sistemas Operacionais Captulo 1

1.6 Estruturas dos Sistemas Operacionais.

Os sistemas operacionais so diferentes dos demais programas que


so executados sequencialmente, tendo incio, meio e fim. A execuo das
rotinas est baseada em eventos relacionados s tarefas internas do sistema operacional e do hardware. Dessa forma o sistema operacional atravs
de um conjunto de rotinas, oferece servios aos usurios do sistema, aos
programas que esto sendo executados e a outras rotinas do prprio sistema. O conjunto destas rotinas chamado Kernel (crebro) ou ncleo do
sistema.
As principais funes do Kernel so:
tratamento de interrupes e excees;
criao e eliminao de processos e threads;
sincronizao e comunicao entre processos e threads;
escalonamento e controle dos processos e threads;
gerncia de memria;
gerncia de sistema de arquivos;
gerncia de dispositivos de E/S;
suporte a redes locais e distribudas;
contabilizao do uso do sistema;
auditoria e segurana do sistema.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

1.6.1 Modos de Acesso

Existe uma preocupao muito grande dos desenvolvedores de sistemas operacionais quanto ao acesso direto ao Kernel por usurio e seus
aplicativos. Uma instruo indevida executada diretamente pode corromper o kernel comprometendo todo o sistema. Instrues deste tipo so denominadas instrues privilegiadas. A execuo de uma destas instrues
est vinculada aos chamamos de modos de acesso. Os modos de acesso
so:
Modo usurio: no permite que o usurio ou aplicaes executem instrues privilegiadas.
Modo Kernel: permite acesso total as instrues privilegiadas, tanto
pelo usurio quanto pelas aplicaes.

27

Sistemas Operacionais

1.6.2 System Calls

Para que o usurio ou alguma aplicao possa usufruir de algum


servio fornecido pelo Kernel deve acess-lo atravs de um mecanismo
conhecido como System Calls. O System Calls um intermedirio entre
as aplicaes do usurio e o sistema operacional. Usurios ou aplicaes
acessam os servios do Kernel chamando uma das suas rotinas atravs de
uma System Call. O servio processado, com bases nos parmetros definidos na System Call, e retorna aplicao os resultados obtidos.

Atividades

01. De acordo com o material, qual das opes abaixo pode ser classificada como sistema operacional?
a) Android e MS-Excel.
b) Windows e Internet Explorer.
c) Linux e Windows.
d) Android e MS-Word.
e) Linux e Broffice.

02. Quais as principais funes do kernel?

Proibida a reproduo UniSEB

03. Para que uma aplicao possa utilizar os servios disponveis pelo
Kernel deve efetuar a comunicao com o Kernel por meio de:
a) Device Drivers
b) Batch
c) Scripting
d) System Calls
e) Shell

28

Introduo a Sistemas Operacionais Captulo 1

Reflexo

Neste captulo aprendemos sobre as principais caractersticas e funes do sistema operacional, o que nos auxilia a utiliz-lo de forma mais
eficiente. Em seguida vimos a evoluo dos sistemas monoprogramveis
para os multiprogramveis o que nos permitiu estudar as diversas formas como o computador tem sido controlado ao longo dos anos. Vimos
tambm os diversos tipos de sistemas operacionais, como os sistemas de
tempo compartilhado, tempo real e com mltiplos processadores. Conceitos muito importantes quando h necessidade de escolher um sistema operacional para uma aplicao especfica. Fechamos estudando conceitos
como interrupes e concorrncias, que so bases para muitos programas
e no somente para o sistema operacional.

Leituras recomendadas

Para voc avanar mais o seu nvel de aprendizagem envolvendo os


conceitos de sistemas operacionais e demais assuntos deste captulo, consulte as sugestes de links abaixo:
MAZIERO, C. A. Sistemas Operacionais: Conceitos e Mecanismos. Disponvel em: <http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.
php/so:so-cap01.pdf>. Acesso em: set. 2014.

Referncias

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

CARL. Emopulse Smile smartwatch available on pre-order. Disponvel


em: <http://www.kitguru.net/channel/generaltech/carl/emopulse-smile-smartwatch-available-on-pre-order/>. Acesso em: set. 2014.
COMPUTER HISTORY ARCHIVES PROJECT. Disponvel em: <https://sites.google.com/site/worldcyber/>. Acesso em: set. 2014.
DEITEL, H. M.; DEITEL, P. J.; CHOFFNES, D. R. Sistemas Operacionais. 3 ed. So Paulo, Editora Prentice-Hall, 2005.
FERREIRA, A. L. Milhares de Imagens - Mude o fundo de tela do
seu PC, Tablet ou Smartphone. Disponvel em: http://visualdicas.blogspot.com.br/2013/09/milhares-de-imagens-mude-o-fundo-de.html.
Acesso em: set. 2014.
29

Sistemas Operacionais

HENNESSY, J. L.; PATTERSON, D. A. Arquitetura de Computadores: uma abordagem quantitativa. 3 ed. Rio de Janeiro: Campus, 2003.
MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 4 ed. Rio de Janeiro: LTC - Livros Tcnicos Editora S.A., 2007.
MATSUMOTO. Entenda o que formatao de disco rgido. Disponvel em: http://www.socialbits.com.br/2012/11/entenda-o-que-e-formatacao-de-disco-rigido/. Acesso em: set. 2014.
MAZIERO, C. A. Sistemas Operacionais: Conceitos e Mecanismos.
Disponvel em: <http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.
php/so:so-livro.pdf>. Acesso em: set. 2014.
MEGATECH BRASIL. Disponvel em: <http://megatechbrasil.com/
tecnologia/google-glass-ja-a-venda-nos-eua/>. Acesso em: set. 2014.
OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas
Operacionais. 4 ed. Porto Alegre : Editora Bookman, 2010.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G Fundamentos de
Sistemas Operacionais. 6 ed. Rio de Janeiro: LTC - Livros Tcnicos
Editora S.A., 2004.
SWADE, D. The Babbage Engine. Disponvel em: <http://www.computerhistory.org/babbage/>. Acesso em: set. 2014.
TANENBAUM, A. S.; WOODHYLL, A. S. Sistemas operacionais
projeto e implementao. 2 ed Porto Alegre: Bookman, 1999.

Proibida a reproduo UniSEB

No prximo captulo

30

No captulo seguinte, estudaremos sobre os conceitos relacionados


aos processos. Voc aprofundar seus conhecimentos de como feito o
compartilhamento de um espao de endereamento (memria) por vrios
fluxos de execuo. Sero apresentados os principais conceitos relacionados aos processos.

Processos

Cap

t u

lo

Como um sistema operacional


consegue executar vrios programas ao
mesmo tempo?
A resposta para esta pergunta est nos processos. Veremos que os programas podem ser divididos em vrios processos e que estes processos tem
a necessidade de compartilhar diversos recursos, tais
como processador, memria, dispositivos de entrada e sada, etc. Vamos neste captulo estudar o que so os processos e
como o sistema operacional faz o seu gerenciamento.

Objetivos da sua aprendizagem

Compreender os principais conceitos relacionados aos processos.


Aprofundar nossos conhecimentos de como feito o compartilhamento de um espao de endereamento (memria) por vrios fluxos
de execuo.
Discutir sobre os problemas envolvidos no compartilhamento de recursos entre os processos e as solues encontradas para resolv-los.

Voc se lembra?

Voc se lembra dos sistemas operacionais multiprogramveis? Caso no


se lembre, faa uma breve consulta e anote os principais conceitos.

Sistemas Operacionais

2.1 Conceito de Processo

Como vimos anteriormente os sistemas operacionais multiprogramveis permitem carregar mais de um programa em memria e executa-los concorrentemente. Segundo Silberschatz et al. (2004) um processo
um programa em execuo. Assim h uma diferenciao entre programas
e processos. O programa algo esttico enquanto os processos so dinmicos. Os programas so formados por sequncias de comandos e instrues e no tem a possibilidade de alterar o seu estado. Os processos por
sua vez, so quem executam os comandos dos programas, e medida que
os comandos so executados o processo pode sofrer alteraes. Quando
abrimos um navegador da Internet (ex.: Internet Explorer) um processo
associado a ele. Se abrirmos um segundo Internet Explorer, um novo
processo ser criado, totalmente independente do primeiro. Ou seja, podemos ter vrios processos relacionados a um nico programa e gerenciados
individualmente pelo sistema operacional.

Proibida a reproduo UniSEB

Figura 19 Gerenciador de tarefas Windows 8.0.

32

O Gerenciador de Tarefas do Windows 8.0 permite que possamos


visualizar os processos que esto em execuo no computador. Notem
que temos o grupo de Aplicativos e o grupo Processos em segundo plano.
Os processos ligados a execuo de um programa so listados no grupo
Aplicativo. Existem muitos processos que no tm ligao direta com
algum programa e sim com o sistema operacional. Estes processos, tais
como gerenciador de memria, gerenciador de rede, antivrus etc., so
executados em segundo plano.

Processos Captulo 2

Conexo

Leia um pouco mais sobre


processos em: <http://www.
guiky.com.br/2009/12/o-que-sao-os-processos-do-sistema-operacional.
html>. Entenda um pouco mais com este
outro artigo: <http://www.tecmundo.com.
br/memoria/3197-o-que-sao-processos-de-um-sistema-operacional-e-por-que-e-importante-saber.
htm>.

O termo Processo foi utilizado pela


primeira vez na dcada de 60 pelos
projetistas do sistema MULTICS. Desde esta
poca, houve um aumento em sua definio,
tais como tarefa, programa em execuo, o
esprito animado de um procedimento, etc.
(DEITEL et al., 2005).

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

2.1.1 Pseudoparalelismo

Quando estamos fazendo um determinado trabalho no computador,


como por exemplo, digitando um trabalho da faculdade, podemos executar um programa para escutar nossas msicas enquanto efetuamos a digitao, abrir o browser da Internet para efetuar alguma pesquisa e rodar um
programa para tratamento de imagens.
A impresso que temos e de que todos estes programas esto sendo
executados em paralelo, ou seja, todos ao mesmo tempo, mas no bem
assim que as coisas acontecem.
Neste cenrio, para que todos os programas sejam executados, o
sistema operacional associa um processo a cada programa em execuo,
assim, teremos quatro processos sendo executados. Cada processo tem
diversas caractersticas prprias, tais como, seus estados atuais, recursos
necessrios execuo de suas tarefas, valores de registradores, variveis
etc.
Como h quatro processos em execuo, os quatro concorrem pela
utilizao da CPU, forando o seu compartilhamento. O compartilhamento da CPU feito atravs de uma rpida alternncia entre um processo e
outro, executando cada um num rpido intervalo de tempo, podendo chegar a dezenas ou centenas de milissegundos. Esta alternncia conhecida
como pseudoparalelismo. importante destacar que o paralelismo real
acontece em hardware dos sistemas multiprocessadores, ou seja, possuem
duas ou mais CPU que compartilham a mesma memria fsica.
Na Figura 20 temos o detalhamento deste processo de alternncia
com quatro processos em memria. A Figura 20(a) ilustra os quatro programas na memria associados a quatro processos. Cada processo exe33

Sistemas Operacionais

Um contador de
programas
Quatro contadores
de programas

A
B
C
D

A B C D

Processo

cutado independente uns dos outros, cada um executando o seu prprio


fluxo de controle (Figura 20(b)). A Figura 20(c) exibe o progresso de execuo de cada um dos processos. Podemos notar que apenas um processo
foi executado em um determinado instante. No tempo 1 a CPU executa
as instrues do processo A. No tempo 2 o sistema operacional decide
inicializar o processo B, mas antes, todos os dados dos registradores do
processador so salvos no processo A. Este ciclo acontece para todos os
processos enquanto estiverem em execuo. Este procedimento, efetuado
pelo sistema operacional, de troca de processo por outro chamado de
mudana de contexto.

1 2 3 4 5 6 7
Tempo

Figura 20 (a) Multiprogramao de quatro programas. (b) Modelo conceitual de quatro


processos sequenciais independentes. (c) S um programa est ativo em qualquer dados
instante.

Proibida a reproduo UniSEB

Fonte: Tanenbaum e Woodhyll (1999).

34

So grandes as vantagens de utilizao de processos pelo sistema


operacional, tais como:
Simplicidade: um processo pode ser decomposto em vrios
outros processos permitindo que se realizem vrias operaes
independentes em um sistema.
Velocidade: se um processo esta em espera, por exemplo,
aguardando alguma solicitao a um dispositivo de entrada e
sada, este processo substitudo por outro.
Segurana: cada processo pode estar associado a um determinado direito.

Processos Captulo 2

Em geral os processos podem ser classificados em trs classes:


Interativos (Foreground): so processos que necessitam de
algum tipo de interao com o usurio. Normalmente esta interao relativa a solicitaes de entrada e sada, feitas atravs
de interface grfica, que exigem do sistema operacional um
tempo de resposta rpido. Exemplo: editor de texto, planilhas
eletrnicas, jogos, etc.
Batch (Backgound): so processos que realizam o processamento de dados de entrada produzindo um conjunto de dados
de sada sem que haja a interveno do usurio. Exemplo: backups, compiladores, programas de clculo numrico, etc.
Daemons: so processos carregados pelo sistema operacional
durante sua inicializao e permanece em execuo at que o
sistema seja finalizado. Processos Daemons ficam em espera
em segundo plano at que seja requerido algum servio. Exemplo: gerenciamento de log do sistema, servios de e-mail, etc.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

2.1.2 Blocos de controle de processos (PCBs)

O sistema operacional ao criar um processo, cria um bloco chamado Blocos de controle de processos (PCBs), tambm conhecido como
descritor de processo. O bloco de controle de processo contm diversas
informaes que auxiliam o seu gerenciamento pelo sistema operacional.
Entre estas informaes esto:
Nmero de Identificador de processo (PID Process Identification Number): nmero pelo qual o processo identificado pelo
sistema operacional.
Estado do processo: estado atual do processo (Pronto, Execuo, Em Espera, etc.).
Contador de programa: indica qual instruo do processo dever ser executada.
Prioridade de escalonamento: indica qual a prioridade do processo na escala de prioridade de execuo.
Credenciais: indica quais as permisses o processo possui.

35

Sistemas Operacionais

2.1.3Contexto

Na seo anterior vimos que um processo tem diversas caractersticas, entre elas, o seu estado. O estado representa a situao atual do
processo, ou seja, os valores de suas variveis, as instrues que esta executando, os recursos em uso. Conforme a execuo do processo avana, o
seu estado se altera. O estado de um processo em um determinado instante
conhecido como contexto.
Um processo formado por trs partes: contexto de hardware, contexto de software e espao de endereamento. Atravs destas trs partes
um processo guarde todas as informaes do programa em execuo.

Contexto de
Software

Espao de
Endereamento

Processo

Contexto de
Hardware

Figura 21 Estrutura do processo.

Proibida a reproduo UniSEB

2.1.4 Contexto de Hardware

36

Em sistemas de tempo compartilhado (multiprogramados), no


qual h um revezamento na utilizao do processador pelos processos,
o contexto de hardware de suma importncia. Atravs do contexto de
hardware, o sistema operacional capaz de efetuar a troca de um processo por outro no processador, esta operao conhecida como troca de
contexto.

Processos Captulo 2

A troca de contexto envolve os registradores do processador. Um


processador possui vrios registradores entre os de usos gerais e os especficos, tais como o Program Conter (PC), o Stack Pointer(SP) e o Registrador de Status (PSW). Os registradores so utilizados para armazenar
informaes enquanto um processo esta em execuo.

Processo

Contexto de
Hardware

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Figura 22 Contexto de hardware.

A troca de contexto segue a seguinte sequencia. Ao executar um


processo A, o seu contexto de hardware armazenado nos registradores
do processador. Quando o sistema operacional decide trocar de processo,
executar o processo B, primeiramente salva os dados dos registradores
no contexto de hardware do processo A e em seguida disponibiliza a
utilizao do processador para o processo B. O contexto de hardware
do processo B armazenado nos registrados do processador. A necessidade de armazenar os registradores no contexto de hardware quando um
processo perde o uso do processador que quando este processo voltar a
ser executado possa continuar exatamente de onde foi interrompido.
37

Sistemas Operacionais

Sistema Operacional

Processo A

Processo B

executando
Salva registradores do
Processo A

Carrega registradores do
Processo B

executando
Salva registradores do
Processo B

Carrega registradores do
Processo A
executando

Figura 23 Mudana de contexto.


Fonte: Machado e Maia (2007).

Proibida a reproduo UniSEB

2.1.5 Contexto de software

38

Quando um processo criado, o sistema operacional especifica os


limites e caractersticas de recursos que o processo pode alocar. Estas
informaes so armazenadas no contexto de software e so relativas :
quantidade mxima de arquivos que o processo pode abrir simultaneamente, qual a prioridade de execuo, tamanho do buffer utilizado em
operaes de entrada e sada, etc. As especificaes de limites de recursos permitidos a um processo alocar so definidos pelo administrador do
sistema e armazenado num arquivo do sistema operacional denominado
arquivo de usurios. O sistema operacional consulta o arquivo de usurios
para prover as informaes do contexto de software.

Processos Captulo 2

As informaes do processo so divididas em trs grupos no contexto de software: identificao, quotas e privilgios.
Identificao: quando um processo criado, por um usurio ou
por outro processo, recebe do sistema operacional um nmero
de identificao nica (PID Process Identification Number)
e a identificao nica do usurio (UID User Identification)
referente ao usurio ou processo que o criou. O sistema operacional e outros processos utilizam o PID para fazer referncias
aos processos em execuo.
Quotas: o limite de recursos que um processo pode alocar e
definidos em quotas. Um processo em execuo pode ter necessidade de mais recursos do que lhe foi estipulado. Esta situao
de insuficincia de quota pode causar a lentido na execuo do
processo, sua interrupo ou nem mesmo ser executado.
Privilgio: cada processo possui privilgios que lhe permite
executar aes a ele mesmo, como alterar seus limites de alocao de memria, sua prioridade de execuo etc. Alm dele
mesmo, o processo pode ter privilgios de efetuar aes a outros processos e ao sistema operacional.

Contexto de
Software

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Processo

Figura 24 - Contexto de software.


39

Sistemas Operacionais

2.1.6 Espao de endereamento

Os processos so responsveis pela execuo das instrues de um


programa. Para tanto, as instrues e os dados do programa so carregados em uma rea de memria pertencentes ao processo para serem executados. Esta rea de memria chamada de espao de endereamento.

Espao de
Endereamento

Processo

Figura 25 Espao de endereamento.

Proibida a reproduo UniSEB

2.2 Estados de um processo

40

Os processos executados pelo processador normalmente possuem


necessidades distintas de durao, importncia e comportamento. O sistema operacional tem a responsabilidade de gerenciar e estabelecer uma
ordem de execuo destes processos. Como visto anteriormente, no sistema multiprogramvel h um padro de compartilhamento do processador
entre os diversos processos em execuo. Assim h uma troca constante
de processos em execuo no processador o que faz com que o processo
passe por estados distintos durante o seu ciclo de vida. Conforme avana a execuo de um processo, o seu estado pode ser alterado tanto por

Processos Captulo 2

eventos gerados pelo prprio processo como pelo sistema operacional. Os


estados possveis para um processo so:
Pronto: este estado indica que o processo aguarda para ser
executado. Como normalmente h vrios processos em estado
de Pronto, primeiramente o sistema operacional efetua um enfileiramento destes processos (Figura 26). Em seguida utiliza
um mecanismo denominado escalonamento com o objetivo de
determinar a ordem e os critrios de uso do processador pelos
processos.
Em Execuo: este estado indica que o processo esta sendo
executado pelo processador. A troca de um processo por outro
na utilizao do processador deve respeitar os critrios de escalonamento.
Em Espera: este estado indica que o processo esta aguardando
por um evento externo ou ser atendida alguma chamada ao sistema operacional. Os processos neste estado so organizados
em fila e assim que o evento esperado ou o retorno da chamada
ao sistema operacional acontece, o processo transferido para
o estado de pronto.

Processo 1

Processo 2

Processo 3

Figura 26 Fila de processos aguardando a execuo pelo processador.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Fonte: Oliveira et al. (2010).

2.2.1 Mudana de estado de um processo

De acordo com Silberschatz et al. (2004) h quatro mudanas de estado que podem ocorrer durante o seu ciclo de vida de um processo:
Novo Pronto: esta mudana de estado ocorre quando o processo admitido pelo sistema operacional e termina de ser carregado na memria, aguardando apenas a oportunidade de ser
escolhido pelo escalonador para ser executado.

41

Sistemas Operacionais

Pronto Em Execuo: esta mudana ocorre quando o escalonador escolhe um processo na fila de pronto para ser executado.
Em Execuo Pronto: esta mudana ocorre quando o tempo
de uso do processador pelo processo chaga ao fim. O processo
retorna para a fila de processos prontos at ser novamente habilitado pelo escalonador para usar o processador.
Em Execuo Em Espera: esta mudana ocorre quando o
processo aguarda um evento ou necessite utilizar algum recurso que no esteja disponvel no momento, por exemplo. Isto faz
com que o processo libere o uso do processador e fique em estado de espera enquanto aguarda o evento ou a disponibilidade
do recurso.
Em Espera Pronto: esta mudana ocorre quando o processo
recebe o evento esperado ou o recurso solicitado fica disponvel para uso. Consequentemente o processo volta para a fila de
pronto a fim de aguardar ser processado.
Em Execuo Terminado: esta mudana ocorre quando o
processo finaliza sua execuo ou quando acontece algum erro
e o processo precisa ser abortado.
Interrupo
Processo
carregado
em memria
Novo

Selecionado
pelo
escalonador
Pronto

Ocorrncia do
evento ou
dado disponvel

Fim da
execuo

Em Execuo

Em Espera

Terminado

Aguardando um
evento ou
dado externo

Figura 27 Diagrama de estados de um processo.


Fonte: Silberschatz et al. (2004).

Proibida a reproduo UniSEB

2.2.2 Classificao de processos

42

Os processos podem ser classificados de acordo com vrios critrios


entre eles, em funo de modo como utiliza o processador e os dispositivos de entrada e sada:

Processos Captulo 2

Processo CPU-Bound: so processos que utilizam de modo


muito intenso o processador durante o seu ciclo de vida. A
maior parte do tempo os estados destes processos so Pronto
ou Em Execuo.
Processo I/O-Bound: este tipo de processo est mais ligado aos
dispositivos de entrada/sada do que propriamente ao processador. O estado deste processo fica Em Espera durante grande
parte do seu ciclo de vida devido aos longos tempos aguardando respostas das solicitaes feitas aos dispositivos de entrada
e sada.
Durante o ciclo de vida de um processo so realizadas entradas e
sadas de dados no processo. Estas entradas e sadas so feitas atravs de
canais de comunicao disponibilizada pelo processo. O processo tem no
mnimo dois canais de comunicao associados a ele. Os canais permitem
acesso de um processo a outros processos, comunicao com o usurio,
arquivos, etc.
Processo em foreground: so processos que mantm com o
usurio uma ligao direta enquanto esta sendo processado.
Esta ligao do processo com o usurio feita atravs dos canais de comunicao associados ao teclado, mouse, monitor,
etc.
Processos em background: so processos que no tem ligao
direta com o usurio enquanto esta sendo processado. Este tipo
de processo muito utilizado em processamentos do tipo batch.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

2.3Threads

Anteriormente estudamos que os processos possuem uma srie de


caractersticas tais como vistos em contexto de software, de hardware, espao de endereamento, etc. Alm das caractersticas, h associado a um
processo um fluxo de execuo que conhecido como thread. Os primeiros sistemas operacionais eram monothread, ou seja, cada processo tinha
o seu espao de endereamento individual e era associado a um nico
fluxo de execuo (thread).

43

Sistemas Operacionais

Contexto de
Software

Espao de
Endereamento

Thread 1

Contexto de
Hardware

Figura 28 Processo monothread.

Em sistemas operacionais multithreading, um nico processo pode


estar associado a vrios fluxos de execuo (threads). Como as threads
existem no interior do processo, todas compartilham o mesmo espao de
endereamento (cdigo e dados).

Contexto de
Software

Proibida a reproduo UniSEB

Espao de
Endereamento

44

Thread 1

Thread 2

Thread 3

Contexto de
Hardware

Contexto de
Hardware

Contexto de
Hardware

Figura 29 Processo multithread.

Processos Captulo 2

Compartilham o mesmo espao de endereamento faz com que o


gerenciamento de processos das aplicaes concorrentes fiquem mais
eficientes devido a drstica diminuio de tempo gasto com a criao, eliminao e troca de contextos destes processos. A troca de um thread por
outro dentro de um mesmo processo muito mais rpida do que a troca
entre dois processos. Os threads compartilham uso do processador como
se fossem processos separados. Assim os estados dos threads seguem os
mesmos princpios dos processos. Logo se uma thread esta aguardando
que um determinado recurso fique disponvel, seu estado passa de Em
Execuo para Em Espera, liberando o processador para outra thread.
Um exemplo de utilizao de threads pode ser dado atravs da
execuo de um vdeo com som em ingls e legendas
em portugus. O programa de visualizao do
vdeo pode criar um processo com trs linhas
Conexo:
Entenda como so criade execuo (trs threads). Sendo um thread
das as threads em linguapara tratar a exibio da imagem (vdeo)
gem de programao.
um segundo thread para tratar o udio e o
<http://www.macoratti.
terceiro para tratar a legenda. O usurio
net/14/07/c_gptwf.htm>.
final visualiza a imagem, o som e legenda,
tudo ao mesmo tempo, mas o processamento
de cada thread executado individualmente no
processador.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

2.4 Comunicao entre Processos

Nos dias atuais temos acesso a computadores com multiprocessadores, os quais, a maioria dos programas levam em considerao em seu
desenvolvimento, para obter melhor desempenho.
Muitos problemas solucionados por um programa no so executados sequencialmente, so divididos em vrias tarefas interdependentes
que relacionam entre si a fim de atingir um objetivo comum. Os cdigos
dos programas so estruturados de tal forma que permitem serem executados concorrentemente atravs de mltiplos processos ou threads. Programas com estas caractersticas so chamados de aplicaes concorrentes.
Aplicaes concorrentes proporcionam um melhor desempenho
mesmo no havendo um paralelismo real na execuo dos processos ou
threads. Onde h o paralelismo real, em casos de sistemas com mltiplos
processadores, as aplicaes concorrentes melhora ainda mais estas vantagens.
45

Proibida a reproduo UniSEB

Sistemas Operacionais

46

Programas desenvolvidos para serem executados de modo sequencial, que executam apenas um nico fluxo por vez, no se beneficiam das
vantagens oferecidas por um sistema com mltiplos processadores. Programas como editores de texto, navegadores web e jogos, caso fossem um
programa sequencial, no teramos a alta interatividade que temos nestas
aplicaes. Os editores de texto, por exemplo, permitem a digitao enquanto efetuam a reviso ortogrfica. Os navegadores web interagem com
usurio atravs das pginas de Internet ao mesmo tempo em que tarefas de
comunicao com a rede esto sendo executadas.
Os bancos de dados, essencial nas aplicaes atuais, principalmente
aplicaes empresariais como Sistema integrado de gesto empresarial
(SIGE ou ERP Enterprise Resource Planning) so outro exemplo de
aplicaes concorrentes. Um sistema ERP integra todos os dados e processo de uma organizao em um nico sistema e estes dados so armazenados em um banco de dados. Caso o banco de dados utilizado por um
ERP fosse sequencial, atenderia um nico usurio por vez. Logo se um
usurio estivesse dando entrada de mercadoria no estoque, todo o restante
da empresa estaria parado, aguardando o trmino desta tarefa, tornando
este tipo de sistema invivel para uma empresa.
Para que os processos concorrentes possam cooperar entre si,
necessrio que haja uma comunicao entre eles para troca e compartilhamento de informaes, alm de um sincronismo, efetuado pelos sistemas
operacional para que as atividades sejam executadas sem erros. Diversos
mecanismos podem ser utilizados para efetuar a comunicao entre os
processos, como variveis compartilhadas na memria principal, quanto
memria compartilhada entre os processos. Quando a memria no
compartilhada, os processos podem trocar mensagens para compartilhar
as informaes entre si.
Para ilustrar o uso de memria compartilhada e a eficincia dos programas concorrentes em relao aos programas sequenciais, Oliveira et al.
(2010) propem uma pequena tarefa de impresso de arquivo, que deve
ser executada por um programa. O programa deve ler um arquivo do disco
rgido, efetuar a formatao adequada para imprimir e por fim, enviar para
a impressora. A figura 30 exibe as trs operaes feitas utilizando um programa sequencial. Neste caso utilizado apenas um processo.

Processos Captulo 2

Arquivo

Impressora
Fsica

Processo

Figura 30 - Acessando arquivo e impressora atravs de um programa sequencial.


Fonte: Oliveira et al. (2010).

A Figura 31 exibe a linha do tempo necessria para que o processo


possa efetuar a sequncia de passos para a realizao da tarefa:
1. A primeira coisa efetuada pelo processo enviar um comando
de leitura do arquivo para o disco rgido.
2. Em seguida o processo fica em modo espera at que a leitura
seja finalizada.
3. O arquivo formatado pelo processo.
4. Envia os dados formatados direto para o buffer da impressora.
Como normalmente o buffer relativamente pequeno so necessrias vrias repeties das quatro etapas at que o arquivo
seja totalmente impresso.
Disco
Processo
Impressora
1

Esperando
Executando
Enviando Dados

4
Tempo

Figura 31 Linha do tempo do programa sequencial.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Fonte: Oliveira et al. (2010)

A Figura 32 exibe a mesma tarefa sendo executada por um programa concorrente. Logo foi utilizado dois processos na execuo da tarefa:
processo leitor e processo impressor.
A funo do processo leitor ler o arquivo do disco rgido, efetuar
a devida formatao e colocar na varivel compartilhada. O processo impressor retira os dados da varivel e envia para o buffer da impressora.

47

Sistemas Operacionais

Arquivo

Processo
Leitor

Varivel

Processo
Impressor

Impressora
Fsica

Figura 32 Acessando arquivo e impressora atravs de um programa concorrente.


Fonte: Oliveira et al. (2010).

Atravs do grfico, podemos notar a utilizao simultnea do disco


e da impressora. Dessa forma, o tempo de impresso ser bem menor o
que torna o programa concorrente mais eficiente que o programa sequencial.

Disco
Processo

Leitor

Processo

Impressor

Impressora

Esperando
Executando
Enviando Dados

Tempo

Proibida a reproduo UniSEB

Figura 33 Linha do tempo do programa sequencial.

48

Fonte: Oliveira et al. (2010).

Processos Captulo 2

2.5 Sincronizao entre Processos.

Na seo anterior, vimos que as aplicaes concorrentes em sistemas operacionais multiprogramveis permitiram um grande avano e
eficiente em relao aos programas sequenciais. A eficincia decorre do
trabalho cooperativo entre os processos e do acesso compartilhado de
recursos, como memria, dispositivos de entrada/sada e arquivos. Em
muitos casos o acesso a compartilhado pode gerar situaes de inconsistncia de informaes ou problemas intermitentes de difcil reproduo e
soluo do mesmo. Estes problemas impulsionaram a criao de mecanismos nos sistemas operacionais a fim de ordenar a execuo dos processos,
chamados de sincronizao.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

2.5.1 Problemas das condies de corrida e regio crtica


O problema de compartilhamento de recursos entre processos concorrentes fica evidente com o exemplo a seguir, onde a ordem de execuo
de dois processos interfere no resultado final, conhecido como condies
de corrida (race conditions).
Utilizando o diagrama da Figura 34, tm-se dois processos que postam arquivos para impresso e o spooler (tabela), que recebe arquivos a
serem impressos e ao finalizar a impresso, o arquivo retirado do spooler.
Em um determinado momento, o Processo A e B decidem imprimir
um arquivo ao mesmo tempo. Os procedimentos que se seguem so:
5. Os dois processos consultam a varivel de Entrada do spooler
para obter o prximo slot livre e para postarem os arquivos
para impresso figura 34 (a).
6. Os dois obtm o mesmo slot livre para impresso, o slot 10
(figura 34 (b)).
7. O processo A posta o arquivo Arq_A.doc para a impresso e incrementa a varivel de Entrada para 11 (figura 34 (c)).
8. No mesmo instante o processo B, posta o arquivo Arq_B.
doc, sobrepondo o Arq_A.doc, e em seguida incrementa a
varivel de Entrada para 11 (figura 34 (d)).
9. CONCLUSO: o processo A nunca receber a impresso
do arquivo Arq_A.doc.

49

Sistemas Operacionais

Arq_A.doc

Processo A
Prximo
Slot Livre

Spooler
Fila de Impresso
(slots)
7

Figura.png

Tarifa.xls

Arq_A.doc

Processo A
Entrada

9 Apostila.pdf
10

Prximo
Slot Livre

Prximo
Slot Livre

Prximo
Slot livre

Figura.png

Tarifa.xls

9 Apostila.pdf

10
Prximo
Slot Livre

10

10

Entrada
10

Prximo
Slot livre

Processo B

Processo A
Arq_B.doc
Arq_A.doc

Processo A
Prximo
Slot Livre

Arq_B.doc
Spooler
Fila de Impresso
(slots)
7

Figura.png

Tarifa.xls

Arq_A.doc

Processo A
Entrada

9 Apostila.pdf
Prximo
Slot Livre

10

Spooler
Fila de Impresso
(slots)

10

10

Arq_A.doc

Prximo
Slot Livre

Processo B
Arq_B.doc

Figura.png

Tarifa.xls

9 Apostila.pdf

11

Prximo
Slot livre

Spooler
Fila de Impresso
(slots)

10

Prximo
Slot Livre

Arq_B.doc

Entrada
11

Prximo
Slot livre

Processo B
Arq_B.doc

Proibida a reproduo UniSEB

Figura 34 Condies de corrida.

50

A soluo para o problema de condies de corrida (race conditions) se inicia pela identificao da parte do
programa que gera disputa dos recursos
compartilhados e da parte que no gera
disputa. A parte que gera disputa
Uma das tarefas dos programadoconhecida como regio crtica ou
res testar o programa que esta sendo
seo crtica e a que no gera discriado. Esta tarefa no nada fcil quando
o programa em teste contm condies de
puta e conhecida como cdigos
corrida.
Esta condio faz com que a maioria
reentrante ou cdigo pblico.
dos testes tenham bons resultados, mas,
Uma vez identificado rede tempos em tempos, algo estranho e
gio crtica, o prximo passo para
inexplicvel acontece (TANENBAUM;
WOODHYLL, 1999).
a soluo do problema atender os
seguintes aspectos:
E xcluso mtua: garantir
que apenas um processo por vez
ter acesso regio crtica.
Progresso: caso um processo deseja utilizar uma regio crtica
que no est em uso, outros processos no podem bloque-lo
de utilizar a regio crtica.

Processos Captulo 2

Espera limitada: caso um processo deseja utilizar uma regio


crtica, o mesmo no deve esperar indefinidamente para a utilizao da regio crtica.
A literatura oferece vrias solues para o problema da regio crtica e que satisfazem os trs aspectos descritos anteriormente. A seguir so
abordadas algumas destas solues.

2.5.2 Sincronismo por software

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Esta soluo leva em considerao a utilizao apenas de software.


A entrada da regio crtica feita atravs de uma varivel de sincronismo
busy (Figura 35). A varivel busy incialmente contm o valor 0 (zero) o
que indica que qualquer processo pode entrar na regio crtica. Um processo
ao entrar na regio crtica, altera busy para 1 impedido o acesso de outro processo a regio. Suponha que temos dois processos, A e B, sendo executados concorrentemente e que desejam entrar na regio crtica. O processo A
l a varivel busy com valor 0 (linha 5), entra na regio crtica e antes de mudar
o valor de busy para 1 (linha 6), ocorreu uma interrupo que passou o controle
para o processo B. O processo B l busy igual a 0, entra na regio
crtica e altera busy para 1. Ocorre novamente a interrupo voltando a
executar o processo A. Neste momento, para o processo A o valor de
busy ainda 0, o que ocasiona tambm a sua entrada na regio crtica.

Figura 35 Sincronismo por software.


Fonte: Maziero (2014).

Abordagem de software apresenta uma propriedade denominada


busy-waiting (espera ativa). Busy-wating ocorre quando um processo tem
que aguardar em um lao a sinalizao de um evento. Segundo Oliveira et
al. (2010) a propriedade Busy-wating aliado ao fato que a implementao
de solues de software serem altamente complexas, faz com que no sejam muito empregadas na prtica.
51

Sistemas Operacionais

2.5.3 Sincronismo por Hardware

Em sistemas que utilizam um nico processador a soluo adotada


desabilitar as interrupes. O processo ao entrar na regio crtica, desabilita todas as interrupes e habilita ao sair. Dessa forma o processador
no efetua a troca de processo enquanto a interrupo estiver desabilitada.
Este tipo de soluo apresenta algumas restries:
Segurana: no uma soluo segura pelo fato do processo,
por algum motivo, no habilitar novamente as interrupes e
assim no conseguir ser finalizado.
Eficincia: a perda de eficincia esta relacionada aos perifricos
que dependem das interrupes para serem atendidos imediatamente durante a utilizao de regies crticas. Os perifricos
somente sero atendidos depois que o processo sair da regio
crtica.
Limitao: desabilitar a interrupo depende de acesso privilegiado e processos do usurio pode no ter esta permisso. Em
mquinas onde h vrios processadores executando simultaneamente, desabilitar as interrupes no funciona. Isto porque
ao desabilitar a interrupo em um processador, os demais
continuaram funcionando. Desabilitando todas interrupes em
todos os processadores, ainda assim os processadores estariam
executando simultaneamente os processos.

Proibida a reproduo UniSEB

2.5.4Semforos

52

Em 1965 o matemtico holands E.W.Dijkstra sugeriu a utilizao


de um mecanismo conhecido como semforo para o sincronismo entre
processos. A proteo da regio crtica tornou-se simples com a utilizao do semforo. Logo, os projetos de sistemas operacionais e aplicaes
concorrentes passaram a adotar o mecanismo se semforo como principal
forma de implementar excluso mtua e a sincronizao condicional entre processos. Os semforos so classificados em: binrio ou contadores.
Semforos binrios s podem assumir valores 0 e 1, por isso tambm so
chamados de mutexes (mutual exclusion semaphores). J os semforos
contadores permitem qualquer valor desde que sejam inteiros positivos.
O semforo composto por uma varivel do tipo inteiro que controlada por duas instrues: Down e Up. Down e Up so instrues que
garante uma nica ao atmica e indivisvel, ou seja, no podem ser interrompidas quando estiverem em execuo.

Processos Captulo 2

O recurso compartilhado fica associado a um semforo que controla


o acesso dos processos concorrentes ao recurso. O recurso estar disponvel para uso caso a varivel semforo esteja maior que 0, caso contrrio, o
recurso esta sendo utilizado por algum processo.
A instruo Down executada quando um processo deseja entrar
em sua regio crtica. Estando o valor da varivel semforo maior que 0,
este valor decrementado de 1 e a regio crtica liberado para uso do
processo. Se em seguida, outro processo executar a instruo Down, ver
que o valor da varivel 0, no podendo assim acessar sua regio crtica,
ficando ento na fila de estado de espera. O processo que est na regio
crtica, ao sair, executa a instruo Up que incrementa o valor da varivel
semforo, liberando o acesso do recurso. Caso haja processos na fila de
espera, associados ao recurso, um desses processos ter seu estado alterado para pronto pelo sistema.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

2.5.5Monitores

O mecanismo de semforo muito importante para a implementao de excluso mtua, mas por no ser estruturado, pode ser difcil sua
utilizao em um programa. Este fato exige do desenvolvedor um cuidado
redobrado na programao, teste e depurao para no causar problemas
intermitentes, difcil de reproduzir e solucionar. Em 1974 C.A.R Hoare
props um mecanismo de sincronizao de alto nvel chamado Monitor.
Os monitores oferecem as funcionalidades dos semforos, porm tem a
caracterstica de ser estruturado, logo seu cdigo mais legvel e consequentemente mais imune a bugs.
Formado por um mdulo, que encapsula as variveis e procedimentos, o monitor diminui a complexidade da programao alm de implementar a excluso mtua entre os procedimentos de forma automtica. A
excluso mtua entre procedimentos significa que, em um determinado
instante, apenas um processo de cada vez tem a permisso de executar
um dos procedimentos do monitor. Caso outro processo chame qualquer
um dos procedimentos, este ficar bloqueado, aguardando em um fila de
entrada at que seja sua vez.

2.5.6 Troca de mensagens

Quando a memria no compartilhada, os processos trocam mensagens para compartilhar informaes entre si. Esta situao pode ocorrer
53

Sistemas Operacionais

quando os processos esto executando em diferentes computadores. A


troca de mensagens feita utilizando um canal de comunicao entre os
processos. O canal de comunicao pode ser um buffer ou um link de rede
entre os computadores. Uma vez o canal de comunicao estabelecido
entre os processos, s mensagens podem ser trocadas utilizando duas funes bsicas: Send e Receive.
O processo transmissor (origem) utiliza a funo Send(Receptor,
Mensagem) para enviar mensagens (dados) para um processo receptor
(destino). O processo receptor recebe as mensagens enviadas atravs da
funo Receive (transmissor, mensagem). A mensagem s pode ser lida
aps ter sido enviada. Logo necessrio que haja um sincronismo entre os
processos envolvidos na troca das mensagens.
Processo A

Contexto de
Software

Processo B
Send(B, MSG)

Receive(A, MSG)

Contexto de
Software

msg
Espao de
Endereamento

Espao de
Endereamento

Thread 1

Thread 1

Canal de Comunicao
Contexto de
Hardware

Contexto de
Hardware

Figura 36 Transmisso de mensagem.

Proibida a reproduo UniSEB

Para que a comunicao entre processos acontea, os processos necessitam saber como se referir um ao outro. A forma como os processos
se referenciam caracteriza o tipo de comunicao entre eles podendo ser:
Comunicao direta: este tipo de comunicao exige que o
processo que deseja enviar ou receber uma mensagem, deve
explicitar o nome do processo receptor ou transmissor da mensagem. O tipo de comunicao direta tem a restrio de permitir a troca de mensagens somente entre dois processos.

54

Processos Captulo 2

Espao de
Endereamento

Processo A

Processo B

Contexto de
Software

Contexto de
Software

Espao de
Endereamento

Thread 1

Contexto de
Hardware

Thread 1

Contexto de
Hardware

Figura 37 Comunicao direta.

Comunicao indireta: neste tipo de comunicao, so utilizadas caixas postais para o recebimento e envio de mensagens. O
processo transmissor deposita mensagens na caixa postal que
so retiradas pelo processo receptor. Neste tipo de comunicao pode haver vrias caixas postais para a comunicao dos
processos. Cada caixa recebe uma identificao nica, assim
um processo pode enviar ou receber mensagens de outro processo utilizando caixas postais diferentes, desde que os processos compartilhem o uso da mesma caixa.

Espao de
Endereamento

Processo A

Processo B

Contexto de
Software

Contexto de
Software

Thread 1

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Contexto de
Hardware

Caixa
Postal

Espao de
Endereamento

Thread 1

Contexto de
Hardware

Figura 38 Comunicao indireta.

55

Sistemas Operacionais

Atividades

01. O processo composto por trs partes, entre elas o contexto de


hardware. Das opes abaixo, qual opo que faz parte do contexto de
hardware?
a) Endereo de memria
b) Registrador PC
c) PID
d) Privilgio
e) Tempo de processador

02. O processo composto por trs partes, entre elas o contexto de software.
Das opes abaixo, qual opo que faz parte do contexto de software?
a) Registrador SP
b) Registrador PC
c) PID
d) Endereo de memria
e) Registrador de status

03. Por que os processos I/O-Bound ficam no estado Em Espera durante grande parte do seu ciclo de vida

Proibida a reproduo UniSEB

Reflexo

56

Neste captulo estudamos como os programas so executados pelo


processador atravs dos processos. Posteriormente vimos como os processos so estruturados em contexto de hardware, software e espao de
endereamento, permitindo um gerenciamento mais eficiente do sistema
operacional. Em seguida, discutimos as threads, comunicao e sincronizao entre processos, conceitos que nos auxiliam entender melhor a multiprogramao. Sugerimos que voc faa todos os exerccios propostos e
pesquise outras fontes para aprofundar seus conhecimentos. Em caso de
dvidas, retorne aos tpicos e faa a releitura com bastante ateno.

Processos Captulo 2

Leituras recomendadas

Para voc avanar mais o seu nvel de aprendizagem envolvendo os


conceitos de sistemas operacionais e demais assuntos deste captulo, consulte as sugestes de links abaixo:
MACORATTI, J. C. VB.NET Trabalhando com Threads. Disponvel em: <http://www.macoratti.net/vbn_thd1.htm>. Acesso em: set.
2014.
MACORATTI, J. C. Trabalhando com MultiThreads no VB.NET.
Disponvel em: <http://www.macoratti.net/vbn_thrd.htm>. Acesso em:
set. 2014.

Referncias
DEITEL H. M.; DEITEL P. J.; CHOFFNES D. R. Sistemas Operacionais. 3 ed. So Paulo, Editora Prentice-Hall, 2005.
HENNESSY, J. L.; PATTERSON, D. A. Arquitetura de Computadores: uma abordagem quantitativa. 3 ed. Rio de Janeiro: Campus,
2003.
MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 4 ed. Rio de Janeiro: LTC - Livros Tcnicos Editora S.A., 2007.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

MAZIERO, C. A. Sistemas Operacionais: Conceitos e Mecanismos.


Disponvel em: <http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.
php/so:so-livro.pdf>. Acesso em: set. 2014.
OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas
Operacionais. 4 ed. Porto Alegre : Editora Bookman, 2010.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G Fundamentos de
Sistemas Operacionais. 6 ed. Rio de Janeiro: LTC - Livros Tcnicos
Editora S.A., 2004.
TANENBAUM, A. S.; WOODHYLL, A. S. Sistemas operacionais
projeto e implementao. 2 ed Porto Alegre: Bookman, 1999.
57

Sistemas Operacionais

No prximo captulo

Proibida a reproduo UniSEB

No captulo seguinte, estudaremos sobre os principais conceitos relacionados ao escalonamento de processos. Voc observar as diferenas
entre os diversos tipos de escalonadores. Sero apresentados como feito
a avaliao de um escalonador.

58

Gerncia de
Processador

Cap

t u

lo

Vimos que os processos tm a necessidade de compartilhar diversos recursos do


sistema, principalmente o processador. Como o
sistema operacional gerencia quando dois ou mais
processos disputam o uso do processador? Quais os
mtodos utilizados para acesso ao processador, suas
vantagens e desvantagens? Estas so perguntas que foram
sendo solucionadas medida que os sistemas operacionais
e o prprio hardware foram evoluindo. A importncia dada
forma como os processos so escalonados, para a utilizao do
processador, ser um dos principais temas de nossa discusso.

Objetivos da sua aprendizagem

Estudarmos os principais conceitos relacionados ao escalonamento de processos.


Observar as diferenas entre os diversos tipos de escalonadores.
Entender como feita a avaliao de um escalonador.

Voc se lembra?

Voc se lembra dos estados de um processo? Como os processos so


classificados em funo de modo como utilizam o processador e os dispositivos de entrada e sada? Seria interessante voc procurar relembrar
estes conceitos no captulo 2, pois ir ajud-lo a compreender melhor a
funo do gerenciamento do processador.

Sistemas Operacionais

3.1 Fundamentos

Estudamos em captulos anteriores que em sistemas multiprogramveis podemos ter vrios processos em estado de Pronto indicando
que esto aguardando para serem executados. Neste momento, o sistema
operacional, atravs do escalonador de processo (scheduler), deve decidir
qual processo ser executado primeiramente pelo processador. A tomada
de deciso, feita pelo escalonador, leva em considerao critrios de uso
do processador pelos processos com base nas polticas de escalonamento.
A poltica de escalonamento a estrutura base da gerncia do processador.
So funes bsicas da poltica de escalonamento:
Manter o processador ocupado por maior tempo possvel.
Efetuar o balanceamento de uso do processador entre processos.
Aplicaes crticas devem ser executadas prioritariamente.
Maximizar o throughput (nmero de processos finalizados em
um dado intervalo de tempo) do sistema.
Processos interativos devem ter tempos de resposta razoveis.
Uma vez definido qual processo deve ser executado, o sistema
operacional passa a execuo para o mdulo conhecido como Dispatcher
(despachante). O mdulo Dispatcher responsvel por efetuar a troca de
contexto e dar o controle do processador para o processo selecionado pelo
escalonador. Esta operao de troca de contexto gasta um determinado
tempo que conhecido como latncia do dispatcher, ou seja, o tempo
para interromper a execuo de um processo para executar outro.
Estado de
Execuo

nto

ame
alon

Esc

Proibida a reproduo UniSEB

Estado de
Espera

60

Estado de
Pronto

Figura 39 Escalonamento.
Fonte: Machado e Maia (2007)

Gerncia de Processador Captulo 3

3.1.1 Escalonamento No-Preemptivo e Preemptivo

Inicialmente, seria razovel pensar que a atividade de polticas de


escalonamento para a troca de um processo em execuo, seria troc-lo
pelo primeiro processo que est na fila de pronto. Mas a tomada de deciso do escalonador leva em conta outros aspectos que to somente o primeiro da fila de pronto para efetuar a troca. Um dos aspectos considerados
pelo escalonador para atender a troca de um processo em execuo por
outro, mudana de estado do processo.
1. O processo carregado na memria e fica com estado de Pronto.
2. O processo muda de estado Em Execuo para Pronto.
3. O processo muda de estado Em Execuo para Em Espera.
4. O processo muda de estado Em Espera para Pronto.
5. O processo muda de estado de Em Execuo para Terminado.
Interrupo
Processo
carregado
em memria
Novo

Selecionado
pelo
escalonador
Pronto

Ocorrncia do
evento ou
dado disponvel

Fim da
execuo

Em Execuo

Em Espera

Terminado

Aguardando um
evento ou
dado externo

Figura 40 Diagrama de estados de um processo.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Fonte: Silberschatz et al. (2004).

To logo o processo tenha mudado o seu estado, o escalonador pode


interromper um processo em execuo para dar lugar a outro. Esta tarefa
de troca de processo pelo sistema operacional conhecida como preempo.
Levando em considerao a preempo, os escalonadores podem ser classificados como:
Escalonador No preempetivo: este tipo de escalonador foi um
dos primeiros a serem utilizados em sistemas multiprogramveis. Permite que o processo seja executado do incio ao fim
sem ser interrompido at ser finalizado. Escalonadores no-preemptivo mantm o processo em execuo at que seu estado
mude para Em Espera ou Terminado, item 3 e item 5.
61

Sistemas Operacionais

Escalonador Preemptivo: este


tipo de escalonador tem a
Os sistemas operacionais
capacidade de trocar um
foram criados para executar os
programas dos usurios. Nesta tarefa
processo, que poderia
so
consumidos, indiretamente, valiosos e
continuar executando,
escassos recursos do sistema. Este consumo
por outro. Esto nesta
denominado sobrecarga pelo fato dos recursituao os processos
sos no estarem sendo utilizados diretamente
pelas aplicaes (DEITEL et al., 2005).
com mudanas de
estados citados acima
de 1 a 5. Escalonadores
preemptivos permitiram
que sistemas de tempo real pudessem dar prioridade na execuo
de processos crticos.

Proibida a reproduo UniSEB

3.2 Critrios de Escalonamento

62

As caractersticas principais de uma poltica escalonamento variam


de acordo com o tipo de sistema operacional. Em sistemas de tempo real a
principal caracterstica da poltica de escalonamento garantir a prioridade de execuo a processos considerados crticos em relao aos demais.
Esta poltica no se aplica a sistemas de tempo compartilhado, pelo fato
deste tipo de sistema priorizar, na poltica de escalonamento, que no haja
starvation.
Starvation a situao onde um processo nunca consegue ter acesso
a um recurso compartilhado. A poltica nesta situao garantir que todos
os processos tenham o mesmo tempo de uso do processador.
Para Machado e Maia (2007), independente do tipo de sistema operacional, a poltica de escalonamento tem diversas funes bsicas, tais
como:
Utilizao do processador: o ideal manter o processador ocupado o maior tempo possvel. Uma faixa considerada ideal para
ocupao do processador e entre 30% a 90%. Abaixo de 30%
indica que o processador esta sendo pouco utilizado. Acima da
faixa superior, 90%, deve se ter cuidado pelo fato de estar prxima do limite do processador. As polticas de escalonamento
procuram maximizar a utilizao do processador.

Gerncia de Processador Captulo 3

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Throughput: indica o nmero de processos executados por unidade de tempo. Logo Throughput representa a produo do sistema e
deve ser maximizado. Para longos processos, o valor de Throughput ser baixo. Para curtos o valor de Throughput ser alto. As
polticas de escalonamento procuram maximizar o Throughput.
Tempo de Processador: tempo em que um processo fica em
execuo no processador. Este tempo e influenciado apenas
pelo cdigo da aplicao e entrada de dados e no pelas polticas de escalonamento. As polticas de escalonamento no tm
efeito sobre este tempo.
Tempo de Espera: tempo total de espera, para ser executado, de
um processo na fila de Pronto. As polticas de escalonamento
procuram reduzir ao mximo este tempo.
Tempo de Turnaround: indica o tempo total de vida de um processo, desde sua criao at o momento que encerrado. No
clculo deste tempo esto os tempos gastos com alocao de
memria, espera na fila de pronto, interrupes de entrada e sada. As polticas de escalonamento procuram
reduzir ao mximo este tempo.
Tempo de resposta: indica o tempo
Conexo:
Aprofunde seus conhegasto para produzir uma resposta a
cimentos sobre escalonauma solicitao de uma aplicao
mento:
ou sistema. Este tempo est re- <http://www.oficinadanet.com.br/
lacionado com a velocidade dos
post/12781-sistemas-operacionais-o-que-e-escalonamendispositivos de entrada e sadas. As
to-de-processos>.
polticas de escalonamento procuram reduzir ao mximo este tempo.

3.3 Escalonamento primeiro a entrar primeiro a


sair (FIFO First - IN - First - OUT)
Os primeiros sistema monoprogramveis utilizavam o algoritmo
de escalonamento no-preemptivo FIFO (First-In-First-Out) tambm
conhecido como escalonamento FCFS (First-Come-First-Served). J na
arquitetura de sistemas multiprogramveis o escalonamento FIFO se apresentou pouco eficiente. Assim sendo, houve vrias mudanas na verso
original para que o mesmo pudesse ser usado, de forma parcial, em sistemas de tempo compartilhado.
63

Sistemas Operacionais

O escalonamento FIFO se baseia em uma fila simples do processador. Aps ser criado e receber o estado de Pronto, o processo entra na fila
de pronto. O escalonador sempre coloca o primeiro processo da fila para
ser executado. A liberao do processador pelo processo em execuo
somente acontece caso o processo mude seu estado para Em Espera,
Terminado ou quando ocorrer um erro na execuo.
Fila dos Processos no Estado de Pronto
Estado de
Criao

UCP

Estado de
Trmino

Estado de
Espera
Figura 41 Escalonamento FIFO.

Proibida a reproduo UniSEB

Fonte: Machado e Maia (2007).

64

A vantagem do escalonamento FIFO que de fcil entendimento


e implementao, alm do que nunca acontecer o fenmeno starvation,
logo, todos os processos da fila de pronto sero executados. A desvantagem com relao ao desempenho, o escalonamento FIFO tem grande
sensibilidade ordem de chegada dos processos para serem executados.
Se os primeiros processos que estiverem na fila forem processos com tempo de execuo muito grande, consequentemente teremos o Tempo Mdio
de Espera e o Turnaround muito elevado. Este cenrio poderia acontecer
se incialmente chegasse fila processos do tipo CPU-Bound, que fazem
muito uso do processador (Ex.: programas grficos de alta resoluo).
Caso os primeiros processos forem de curta durao, o Tempo
Mdio de Espera e o Turnaround sero pequenos. Podemos citar como
processos de curta durao, os processos I/O-Bound que fazem muito uso
de dispositivos de entrada e sada e pouco do processador (Ex.: cpia de
arquivos).
Dessa forma no h possibilidade de prever quando um processo
entrar em execuo. Por exemplo, se simularmos a ordem de chegada
de trs processos para serem executados, com tempos distintos, iniciando
pelo processo com maior tempo, conforme a tabela e a figura abaixo, o
clculo do tempo mdio de espera ficaria (0+6+10)/3 = 5,33.

Gerncia de Processador Captulo 3

Tabela1 Tempo de espera.


Ordem de Chegada

Processo

Tempo de Espera

Tempo de Execuo

P3

P2

P1

10

Tempo na CPU

P3
P2
P1

10 12

Tempo

Figura 42 Escalonamento FIFO.

Simulando a ordem de chegada dos processos iniciando com os de


menor tempo, teremos o tempo mdio de espera (0+2+6)/ 3 = 2,66.
Tabela 2 Tempo de espera.
Ordem de Chegada

Processo

Tempo de Espera

Tempo de Execuo

P1

P2

P3

Tempo na CPU

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

P3
P2
P1
2

12

Tempo

Figura 43 Escalonamento FIFO.

65

Sistemas Operacionais

3.4 Escalonamento por job mais curto primeiro


(SJF Shortest - Job - First)

Como o escalonador FIFO, o escalonador SJF (Shortest-Job-First)


tambm conhecido como SPN (Shortest-Process-Next) foi inicialmente
utilizado nos primeiros sistemas monoprogramveis, de escalonamento
no-preemptivo.
O princpio de funcionamento do escalonamento SJF tambm se
baseia em uma fila de Pronto onde ficam os processos que aguardam por
execuo. O escalonador, com base em conhecimento prvio do uso do
processador e estimativa do tempo de execuo dos processos da fila,
escolhe o processo com menor tempo de execuo para ser o primeiro
a ser executado. Se houver processos com tempos de execuo iguais,
ser utilizado o critrio de ordem de chegada, o primeiro a chegar ser o
primeiro a ser executado. Uma vez em execuo, o processo no libera o
processador at finalizar seu processamento.
Na tabela abaixo, o primeiro processo a chegar o de maior tempo
e o ltimo de menor tempo. Verificando os tempos, o escalonamento SJF
inicia a ordem de execuo comeando pelo ltimo at o primeiro. Consequentemente teremos o tempo mdio de espera (0+2+6)/ 3 = 2,66.
Tabela 3 Tempo de espera
Ordem de
Chegada

Processo

Tempo de
Espera

Tempo de
Execuo

Tempo de
Espera

P3

P2

P1

Tempo na CPU

P3
P2
Proibida a reproduo UniSEB

P1

66

2
Figura 44 Escalonamento SJF.

12

Tempo

Gerncia de Processador Captulo 3

Para atender a necessidade de preempo, foi criada uma verso do


escalonador SJF conhecida como SRTF (Shortest-Remaining-Time-First).
Esta verso permite que o escalonador compare, o tempo restante necessrio para que um processo em execuo termine seu processamento, com
os tempos estimados dos processos que esto na fila de pronto. Caso o
tempo restante para terminar o processamento for maior que o tempo estimado de algum processo na fila, o processo em execuo e substitudo por
um de menor tempo.
Este algoritmo de escalonamento apresenta um problema de ter
que prever quanto tempo de processador um processo vai necessitar para
finalizar seu processamento, e isso no conhecido. Em geral, o sistema
operacional faz uma estimativa com base no tempo anterior que o processo utilizou o processador.
A vantagem do escalonador SJF um menor tempo mdio de espera
para os processos a serem executados. Esta reduo de tempo mdio de
espera faz com que o escalonador SJF seja mais eficiente que o escalonador FIFO. Podemos citar como desvantagem a possibilidade de ocorrer
starvation para processos do tipo CPU-Bound, que ocupam muito tempo
de uso do processador, caso processos de tempos curtos, como os I/O-Bound forem continuamente adicionados para a execuo.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

3.5 Escalonamento circular (Round Robin)

Com o desenvolvimento dos sistemas multiprogramveis surgiu um


escalonador para atender os requisitos de sistemas compartilhado denominado Round Robin (escalonamento circular). No escalonamento circular,
o sistema operacional determina um perodo de tempo que um processo
pode ser executado pelo processador, este perodo de tempo conhecido
como fatia de tempo (time-slice) ou quantum e normalmente pode variar
entre 10-100 milissegundos. Esta poltica de escalonamento evita que um
processo no monopolize o processador. Quando o processo est utilizando o processador dito que um surto do processador. O surto pode
ser com relao aos dispositivos de entrada e sada quando o processo
est usando estes dispositivos. O surto de um processador, referente a um
processo, pode ser menor que um quantum, se o tempo necessrio para
finalizar um processo for menor que o quantum.

67

Sistemas Operacionais

Quantum

Surto
Figura 45 Surto de um processador.

O escalonador Round Robin forma uma fila circular de processos


com estado de pronto. Todo processo carregado na memria com o estado
de pronto, sempre entra no final da fila. O escalonador, por sua vez sempre escolhe o primeiro da fila para ser executado. O processo selecionado
recebe um quantum e passa a utilizar o processador. Ao trmino do
quantum, o processo em execuo interrompido, pelo sistema operacional, e volta para o fim da fila de pronto. Situao como esta, tende a acontecer com maior frequncia em processos do tipo CPU-Bound.
Quando este mesmo processo tiver acesso novamente ao processador, retomar a execuo de onde parou no ciclo anterior. Esta forma de
troca de processo levando em considerao um perodo de tempo conhecida como preempo por tempo. A troca de um processo em execuo
por outro pode acontecer antes do final de quantum, quando o processo j
tenha terminado todo o seu processamento ou voluntariamente passe para
o estado de Em Espera.
Fila dos Processos no Estado de Pronto
Estado de
Criao

UCP

Estado de
Trmino

Preempo por Tempo

Proibida a reproduo UniSEB

Estado de
Espera

68

Figura 46 Escalonamento circular.


Fonte: Machado e Maia (2007).

Gerncia de Processador Captulo 3

O exemplo a seguir tem se trs processos com diferentes tempos


necessrios para sua execuo. O tempo de quantum equivale a duas unidades de tempo. O grfico de escalonamento circular ilustra a execuo
dos processos de acordo com o quantum atribudo a cada um. Note que o
processo B terminou antes do tempo de quantum, o que causou a troca de
processo.
Tabela 4 - Processos
Processo

Hora de Chegada

Durao

24

Processos

Diagrama de GANTT
A
C

A
C

A
Durao

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Figura 47 Escalonamento Circular.

Um ponto crtico no desempenho do escalonamento circular a definio do quantum. Alm do quantum, o sistema operacional necessita de
certa quantidade de tempo para executar a parte administrativa relacionada troca de processos salvar e carregar contexto de hardware, software
etc. Dependendo do tempo definido para o quantum, pode haver maior ou
menor nmero de trocas de contexto aumentado o tempo administrativo e
consequentemente perda de eficincia.
Por exemplo, caso tenha um processo que o tempo total para ser
executado de 10 unidades de tempo e cada unidade de tempo for 20ms,
ento o processo necessitar de 200ms para ser executado. Para o tempo
administrativo sero necessrios 5ms para efetuar todo o procedimento
para troca de contexto. Por fim podemos simular o quantum com os seguintes valores:
69

Sistemas Operacionais

a) Se o quantum for definido em 12 unidades de tempo, 240ms,


o processo ter tempo suficiente para executar todo o seu processamento e no haver troca de contexto, consequentemente
no haver nenhum custo adicional de tempo administrativo.
b) Se o quantum for definido em 6 unidades de tempo, 120ms,
ser necessrio uma troca de contexto para que o processo possa finalizar o processamento. Logo haver um custo adicional
de 5ms gastos com o tempo administrativo.
c) Se o quantum for definido em 1 unidade de tempo, 20ms, sero
necessrios 9 trocas de contexto para que o processo possa
finalizar o processamento. Logo haver um custo adicional de
45ms gastos com o tempo administrativo.
Tabela 5 - Tempo Quantum.
Quantum

tempo em ms

N Troca

Tempo Administrativo

12

240

120

20

45

a
b
c

10

11

12

Proibida a reproduo UniSEB

Figura 48 Quantidade de quantum para executar um processo.

70

Conclui se que, com o tempo definido para ao quantum for muito


grande, este tempo poder ser maior que qualquer tempo dos processos na
fila de pronto o que causaria o escalonador circular funcionar como se fosse um escalonador FIFO. Se o quantum for muito pequeno, haver muitas
trocas de contexto, e assim, haver grande perda de eficincia do sistema.
A troca de contexto no acontece somente quando o quantum muito pequeno, mas tambm em processos do tipo I/O-Bound. Processos do
tipo I/O-Bound entram com maior frequncia em estado de Em Espera
pelo fato de efetuarem constantes acessos aos dispositivos de entrada e

Gerncia de Processador Captulo 3

sada. Diferenas de caractersticas dos tipos de processos CPU-Bound e


I/O-Bound tendem a ocasionar um desbalanceamento de uso do processador.
Com o objetivo de balancear o processador, surgiu uma verso
aprimorada do escalonador circular chamado escalonamento circular
virtual. O escalonamento circular virtual criou uma segunda fila auxiliar
de pronto que recebe os processos que saem do estado de Em Espera.
O escalonador sempre verifica esta fila quando h necessidade de troca
de contexto. Caso haja processo na fila auxiliar, este ter prioridade em
relao a um processo da fila de pronto. Se a fila auxiliar estiver vazia,
o escalonador utilizar processos da fila de pronto. Este mecanismo de
troca dinmica da ordem em que os processos so executados conhecido
como mecanismo adaptativo.
Fila dos Processos no Estado de Pronto
Estado de
Criao

UCP

Estado de
Trmino

Preempo por Tempo


Fila auxiliar

Estado de
Espera
Figura 49 Escalonamento circular Virtual.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Fonte: Machado e Maia (2007).

Os tempos atribudos para os processos da fila auxiliar so diferentes da fila de tempo. O clculo de tempo que o processo da fila auxiliar
recebe para a execuo (Figura 50 (b)), leva em conta o seu ltimo tempo
de ocupao do processador (Figura 50 (a)).
Este ajuste dinmico do escalonamento dos processos para
Tempo recebido aps fila auxiliar = Quantum ltimo tempo em
execuo

71

Sistemas Operacionais

Quantum
a
ltimo tempo em execuo
b
Tempo recebido aps fila auxiliar
Figura 50 Tempo recebido aps fila auxiliar.

Proibida a reproduo UniSEB

3.6 Escalonamento por Prioridade

72

As prioridades de escalonamentos de processos podem ser definidas


com bases em diferentes critrios. Estudamos trs deles, a ordem de chegada (ex.: escalonador FCFS), menor tempo de execuo (ex.: escalonador SJF), troca dinmica (ex.: escalonador Round Robin). Maziero (2014)
define outros critrios que podem ser usados na definio de prioridades,
podendo ser o comportamento do processo, se este em lote, interativo ou
processo de tempo-real, como tambm o proprietrio do processo, podendo ser administrador, gerente ou estagirio.
Em geral, as prioridades podem ser definidas com base em critrios
internos ou externos. No caso de critrios internos, as prioridades dos
processos so dimensionadas com base em algum valor de grandeza, tempo de mdio de utilizao do processador, tempo mdio de utilizao de
dispositivos de entrada e sada, ordem de chegada, requisitos de memria
etc. J as prioridades externas so definidas por critrios que no tm interferncia do sistema operacional, como por exemplo, tipo de processo,
departamento responsvel, custo, etc.
O escalonamento por prioridade associa um valor, chamado prioridade de execuo, a um processo que entra na fila de pronto, o processo
com a maior prioridade ser o primeiro a ser escalonado para execuo.
Caso haja dois ou mais processos com o mesmo nvel de permisso, ser
escalonado o primeiro entre eles (escalonamento FIFO). Isto faz com que
o escalonamento por prioridade seja o ideal para sistemas de tempo real,
aplicaes de controle de processo e quando a necessidade de definir a
prioridade de determinados processos em sistemas de tempo compartilhado.
O valor da prioridade um nmero que pode variar de sistema para
sistema. Segundo Silberschatz et al. (2004), em alguns sistemas a faixa de

Gerncia de Processador Captulo 3

prioridades varia entre 0 a7 e em outros de 0 a 4095. O valor 0 em alguns


casos define a prioridade mais baixa e em outros, a mais alta. No exemplo
a seguir o valor 0 define a prioridade mais baixa.
Processo

Tempo de
processador
(u.t)

Prioridade

10

Processo A
Processo B
Processo C
3

13

17

u.t.

Figura 51 Exemplo de Escalonamento por prioridades.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Fonte: Machado e Maia (2007).

Diferente do escalonador circular, que divide o tempo do processador para uso dos processos, no escalonamento por prioridade no existe
este conceito de fatia de tempo, o que pode
deixar um processo com maior prioridade utilizando o processador por
tempo indeterminado (starvation)
Silberschatz et al. (2004) relata um
fato de starvation que ocorreu em 1973
e desta forma processos de menos
quando o IBM 7094 do M1T foi desligado.
prioridade podem nunca serem
Ao desligar o IBM 7094, foi encontrado um
executados.
processo de baixa prioridade que aguardava
Logo, para que um processer executado desde 1967.
so de maior prioridade no utilize
o processador por tempo indeterminado (starvation) utilizada
uma estratgia conhecida como
aging (envelhecimento). A estratgia
aging pode ser implementada de duas for73

Sistemas Operacionais

mas segundo alguns autores. A implementao, segundo Tanenbaum


e Woodhyll (1999), consiste em diminuir gradativamente a prioridade
do processo em execuo a cada interrupo de relgio. Desta forma,
a prioridade do processo em execuo, em um determinado momento,
ficar abaixo da prioridade de um processo na fila de pronto o que causar a perda do uso do processador. Esta estratgia denominada preempo por prioridade. J para Silberschatz et al. (2004) a estratgia
aging consiste em aumentando gradativo da prioridade dos processos
que esto aguardando durante muito tempo na fila de pronto. Quando
um processo da fila de pronto atingir um valor de prioridade maior do
que o processo em execuo, o processo em execuo ser substitudo
pelo da fila de pronto.
O processo pode perder o uso do processador caso haja a alterao
de seu estado de Em Execuo para Em espera ou quando entrar um
processo de maior prioridade na fila de pronto. O escalonamento por prioridade pode ter diversas filas de estado de pronto com prioridades distintas. Os processos na fila com maior prioridade tem preferncia no uso do
processador.
Fila dos Processos no Estado de Pronto
Prioridade P1

Prioridade P2

UCP

Estado de
Trmino

Estado de
Criao
Prioridade Pn

Preempo por Tempo


Estado de
Espera

Proibida a reproduo UniSEB

Figura 52 Exemplo de fila de prioridades.

74

Fonte: Machado e Maia (2007).

O escalonador de prioridade pode ser implementado de forma mais


simples no modelo no-preemptivo. No modelo no-preemptivo, se chegar um processo na fila de pronto com prioridade maior do que o processo
em execuo, no ocasionar a troca de processo. Neste caso, o processo

Gerncia de Processador Captulo 3

que chegou fila de pronto com maior prioridade, ser colocado no incio
da fila. A prioridade de execuo pode ser classificada como:
Esttica: o valor de prioridade associado ao processo no momento de sua
Conexo:
criao e no alterado durante o
Recomendamos a
leitura deste artigo para
seu ciclo de vida.
melhor
compreenso sobre
Dinmica: o valor de prioridade
escalonamento de processos:
associado ao processo pode variar
<http://www.soffner.com.br/
durante seu ciclo de vida levando
Semana5_SOII.htm>.
em considerao critrios estabelecidos pelo sistema operacional.

3.6.1 Escalonador circular com prioridades

O processador, no escalonamento por prioridade, fica desbalanceado em relao dos processos CPU-Bound e I/O-Bound. Processos do tipo
I/O bound tende a utilizar mais recursos de entrada e sada, o que faz com
que o mesmo passe a maior parte do tempo em estado de Em Espera
aguardando que uma solicitao de entrada e sada termine. Um melhor
balanceamento do processador foi alcanado com a implementao do
escalonador circular com prioridades. O escalonador circular com prioridades adicionou, j existente prioridade de processo, o conceito de fatia
de tempo. Desta maneira um processo pode perder o uso do processador
quando houver um processo com maior prioridade ou o seu quantum finalizar ou quando entrar em estado de Em Espera.
Fila dos Processos no Estado de Pronto
Prioridade P1

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Prioridade P2

UCP

Estado de
Trmino

Estado de
Criao
Prioridade Pn

Preempo por Tempo


Estado de
Espera

Preempo por
Prioridade ou Tempo
Solicitao de
Entrada/Sada

Figura 53 Escalonamento circular com preempo por tempo ou prioridade.


Fonte: Machado e Maia (2007).
75

Sistemas Operacionais

A classificao do escalonador circular com prioridades pode ser:


Esttica: o valor de prioridade associado ao processo no momento de sua criao e no alterado durante o seu ciclo de
vida.
Dinmica: o valor de prioridade associado ao processo pode
variar durante seu ciclo de vida levando em considerao critrios estabelecidos pelo sistema operacional.
O tipo escalonador circular com prioridades dinmicas melhora o
balanceamento entre os processos CPU-Bound e I/O-Bound mencionado
anteriormente. Como os processos I/O-Bound tende a ficar em estado de
Em Espera muito tempo, para compensar este tempo, a sua prioridade
alterada para um valor maior, assim quando sa do estado Em Espera,
entra em uma fila de pronto com prioridades mais altas. Consequentemente, o processo ser atendido mais rapidamente pelo escalonador.

3.6.2 Escalonamento por mltiplas filas

Um dos mais antigos escalonadores de prioridade o escalonador


de mltiplas filas. O escalonador de mltiplas filas foi utilizado no Sistema de compartilhamento por tempo CTSS (Compatible Time-Sharing
System Sistema compatvel de diviso por tempo), desenvolvido pelo
Centro Computacional do MIT em 1961 e utilizado no IBM 7090. A implementao do Escalonamento por mltiplas filas baseia-se em diversas
filas de pronto, cada qual com um nvel de prioridade.
Fila de Processos do Sistema
Maior
prioridade
Fila de Processos Interativos
UCP

Proibida a reproduo UniSEB

Fila de Processos Batch

76

Menor
prioridade
Figura 54 Mltiplas filas de escalonamento.
Fonte: Machado e Maia (2007).

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Gerncia de Processador Captulo 3

Neste sistema, o processo no possui prioridade, a prioridade


caracterstica da fila, assim, o sistema usa como critrio uma ou mais propriedades de cada processo para associ-lo a uma desta fila.
Como vimos anteriormente, os processos so divididos em trs
categorias, interativos (foreground), batch (Backgound) e daemons, sendo que cada tipo tem uma necessidade distinta de uso do processador
de acordo com o tempo de resposta exigida para cada um deles. Esta
necessidade, de tempo de resposta, um exemplo da necessidade de um
escalonamento diferenciado para cada tipo de processo. Para Silberschatz
et al. (2004) a escolha de qual fila um determinado processo deve entrar,
leva em considerao alguma propriedade do processo, podendo ser o tipo
de processo, sua prioridade, tamanho de memria, etc. Esta associao
acontece no momento da criao do processo e permanece at o fim do
seu processamento. Isto pode ser uma desvantagem, pelo fato do sistema
operacional no levar em conta que alguns processos podem alterar suas
propriedades no decorrer de sua execuo e assim poderem ser agendados
em filas de maior ou menor prioridade.
Para atender as necessidades acima descritas para os processos,
cada fila tem seu prprio algoritmo de escalonamento. Por exemplo,
processos do tipo foreground podem ser agendados em uma fila cujo
escalonador seja do tipo escalonamento circular, enquanto processos do
tipo backgound em fila com algoritmo do tipo FIFO. No escalonamento
por mltiplas filas, um processo de uma fila de menor prioridade somente
ser escalonado se no houver processos em filas de maior prioridade. Por
exemplo, se tivssemos as filas conforme a Figura 55, e algum estudante
executasse algum programa, o processo deste programa entraria na fila
Processos de estudantes. Como as filas acima da de Processos de Estudantes tem prioridade absoluta, o processo somente seria escalonado se
as demais filas estivessem completamente vazias. Uma vez em execuo,
o processo do estudante pode sofrer preempo caso um processo entre
em uma das filas de maior prioridade.

77

Sistemas Operacionais

Prioridade mais alta


Processos do Sistema
Processos Interativos
Processos de Edio Interativos
Processos Batch
Processos de Estudantes
Prioridade mais alta
Figura 55 Escalonamento com mltiplas filas de prioridade.

Para que os processos, como o do estudante, no fique indefinidamente sem execuo, caso as filas acima estejam sempre ocupadas, existe
a possibilidade de dividir o tempo de processamento entre as diversas
filas. Esta diviso pode ser feita, por exemplo, atribuindo 80% do tempo
do processador para as filas de processos do tipo foreground, com escalonamento circular, e 20% para os processos do tipo background, com escalonamento do tipo FIFO. As filas por sua vez, dividem o tempo recebido
entre os seus processos.

Proibida a reproduo UniSEB

3.7 Escalonamento por Mltiplas filas com


realimentao

78

A vantagem do escalonamento por mltiplas filas e permitir um


escalonamento de baixo custo, mas por outro lado, tem a desvantagem de
ser inflexvel em relao a mudana de processo entre as filas.
Vimos que o sistema operacional analisa as propriedades de um
processo no momento de sua criao e associa-o permanentemente a uma
das filas de prioridade. Uma vez atribudo a uma fila, o processo no tem
como se mover para outra. De maneira geral, isso coerente se levarmos
em conta a natureza dos processos (foreground e background). Se um processo do tipo foreground, ser associado a uma fila com prioridades de
foreground, se for background ser associado a uma fila com prioridades
de background.

Gerncia de Processador Captulo 3

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

O problema dessa abordagem que processos do tipo CPU-Bound,


em geral tem maior prioridade do que processos do tipo I/O-Bound. Se
houver muitos processos CPU-Bound entrando numa fila de maior prioridade, um processo do tipo I/O-Bound pode ter que aguardar um tempo
excessivo para ser escalonado. A soluo deste problema veio com o escalonamento Escalonamento por Mltiplas filas com Realimentao. Este
escalonador permite que um processo possa trocar de fila durante seu processamento. So implementadas diversas filas com nveis de prioridades
distintas. O comportamento do processo analisado dinamicamente pelo
sistema que ento ajusta sua prioridade de execuo e mecanismo de escalonamento. Esta anlise de comportamento feita, pelo sistema, ao longo
do ciclo de vida do processo, permitindo que o mesmo possa ser direcionado para uma determinada fila de acordo com sua mudana de comportamento. As filas apresentam dois tipos de escalonamento. A fila de menor
prioridade utiliza o escalonamento circular. As demais filas, de maior
prioridade, apresentam um escalonamento FIFO adaptado com fatia de
tempo. Um processo que estiver em uma fila de menor prioridade somente
ser escalonado quando as filas de maior prioridade estiverem vazias. A
fatia de tempo, atribuda a uma fila, dimensionada de acordo com a prioridade da fila. Uma fila com prioridade maior ter menos tempo de processamento e fila com prioridade menor, mais tempo de processamento.
Este mecanismo, do escalonador por Mltiplas filas com realimentao,
que efetua ajustes conforme as mudanas no comportamento do processo
chamado de mecanismo adaptativo. Em geral, os mecanismos adaptativos geram sobrecarga do sistema, mas no caso dos resultados obtidos no
escalonador por Mltiplas filas com realimentao, com estes mecanismos, justificam este aumento de sobrecarga (DEITEL et al., 2005).

79

Sistemas Operacionais

Fila 1 (FIFO Adaptado)


Maior
prioridade

Menor
fatia
de tempo

Preempo por tempo


Fila 2 (FIFO Adaptado)

Preempo por tempo


UCP

Fila 3 (FIFO Adaptado)

Preempo por tempo

Fila n (Circular)
Menor
prioridade

Maior
fatia
de tempo

Preempo por tempo


Figura 56 Escalonamento por mltiplas filas com realimentao.

Proibida a reproduo UniSEB

Fonte: Machado e Maia (2007).

80

O processo ao ser criado, no associado fila de pronto e sim


direcionado para o final da fila de maior prioridade. Como cada fila tem
uma determinada fatia de tempo, atribudo ao processo uma parte deste
tempo. Ao chegar ao incio da fila, o processo escalonado e obtm acesso ao processador. Se durante a sua execuo, ocorrer a chegada de um
processo em uma fila de maior prioridade, o processo sofrer a preempo
para dar lugar ao processo de prioridade mais alta.
A preempo por prioridade ou por solicitao a um recurso do sistema faz com que o processo seja associado para o final da mesma fila que
estava anteriormente. Caso a preempo do processo for por tempo, ou
seja, esgotou o quantum atribudo a ele, o processo associado ao final
de uma fila de menor prioridade. Esta estratgia faz com que processos
do tipo CPU-Bound entrem na fila de maior prioridade e ganhe rapidamente o uso do processador. Como sua caracterstica de utilizar o
maior tempo possvel o processador, ir gastar seu quantum de tempo

Gerncia de Processador Captulo 3

e ser associado a uma fila de menor prioridade. J os processos I/O-Bound conseguem ter um melhor tempo de resposta, isto porque este tipo
de processo tem uma grande tendncia de sofrer preempo por solicitao a um recurso do sistema, e com isso, voltar para o final da mesma fila
de prioridade de onde saiu, permanecendo um maior tempo em filas com
prioridades mais altas.

3.8 Clculo estimado de tempo de resposta.

Estudamos nas sees anteriores diversos tipos de escalonadores e


suas caractersticas, tais como modo de funcionamento, parmetros, etc.
Estas caractersticas podem definir a escolha do tipo de escalonador para
um determinado sistema. Outros critrios podem ser utilizados levando em conta a mxima utilizao do processador, tempo de resposta ou
Throughput (nmero de processos executados em um determinado intervalo de tempo).
Uma vez os critrios definidos, podemos utilizar um determinado mtodo para avaliar os escalonadores. Silberschatz et al. (2004) cita
quatro mtodos de avaliao: modelagem determinista, modelos de filas,
simulaes e implementao. Para o nosso estudo do clculo estimado do
tempo de resposta, utilizaremos a modelagem determinista. A modelagem
determinista um tipo de avaliao analtica. Segundo Silberschatz et al.
(2004) a avaliao analtica permite obter um nmero que define o desempenho do escalonador a partir de um volume de trabalho predeterminado.
A tabela 6 determina o tempo estimado de processador e a ordem de chegada dos processos. Ser utilizado as seguintes siglas: T_r = Tempo de
Resposta e T_e = Tempo Estimado de CPU.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Tabela 6 - Tempo estimado de processador.


Processo

Tempo Estimado de CPU

P1

P2

P3

P4

81

Sistemas Operacionais

Utilizando o escalonador FIFO, temos:


P4
P3
P2
P1
1

9 10 11 12 13 14 15 16 17 18 19

Figura 57 Escalonador FIFO.

Tempo de Resposta
Processo P1 Tr= 7

Processo P2 Tr= 7 + 3

Processo P3 Tr = 7 + 3 + 5
Processo P4 Tr = 7 + 3 + 5 + 4

Tr= 7ms
Tr= 10ms
Tr= 15ms
Tr= 19ms

Utilizando o escalonador SJF, teramos:

P1
P3
P4
P2
1

9 10 11 12 13 14 15 16 17 18 19

Figura 58 Escalonador SJF.

Proibida a reproduo UniSEB

Tempo de Resposta
Processo P1 Tr = 3 + 4 + 5 + 7
Processo P2 Tr = 3

Processo P3 Tr = 3 + 4 + 5
Processo P4 Tr = 3 + 4

82

Tr = 19ms
Tr = 3ms
Tr= 12ms
Tr= 7ms

Gerncia de Processador Captulo 3

Utilizando o escalonador RR, temos:

P4
P3
P2
P1
1

9 10 11 12 13 14 15 16 17 18 19

Figura 59 Escalonador RR.

Tempo de Resposta
Para o clculo utilizaremos Quantum = 30m.
Processo P1 Tr= 3 + 3 + 3 + 3 + 3 + 2 + 1 + 1
Processo P2 Tr = 3 + 3



Processo P3 Tr = 3 + 3 + 3 + 3 + 3 + 2
Processo P4 Tr = 3 + 3 + 3 + 3 + 3 + 2 + 1

Tr= 19ms
Tr= 6ms
Tr= 17ms
Tr= 18ms

Atividades

01. De acordo com o material, o que poltica de escalonamento de um


processo?

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

02. Qual a diferena entre o escalonamento preemptivo e no-preemptivo?

03. Descreva as principais diferenas entre os escalonamentos do tipo


Circular e FIFO?

83

Sistemas Operacionais

Reflexo

Neste captulo estudamos as diversas polticas de escalonamento e


suas funes bsicas. Abordamos as caractersticas de diversos escalonamentos, tais como o FIFO, SJF, Round Robin, por prioridades, circular
com prioridade, assuntos mais densos e de relativa complexidade. Estudando estas caractersticas podemos definir a escolha do tipo de escalonador para um determinado sistema. Por fim vimos alguns mtodos para
avaliar os escalonadores. Todos estes conhecimentos, certamente sero
imprescindveis para sua vida profissional.

Leituras recomendadas

Para voc avanar mais o seu nvel de aprendizagem envolvendo os


conceitos de sistemas operacionais e demais assuntos deste captulo, consulte as sugestes de links abaixo:
Captulo 8 do livro
DEITEL H. M.; DEITEL P. J.; CHOFFNES D. R. Sistemas Operacionais. 3 ed. So Paulo, Editora Prentice-Hall, 2005.

Referncias
DEITEL H. M.; DEITEL P. J.; CHOFFNES D. R. Sistemas Operacionais. 3 ed. So Paulo, Editora Prentice-Hall, 2005.
HENNESSY, J. L.; PATTERSON, D. A. Arquitetura de Computadores: uma abordagem quantitativa. 3 ed. Rio de Janeiro: Campus, 2003.
MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 4 ed. Rio de Janeiro: LTC - Livros Tcnicos Editora S.A., 2007.

Proibida a reproduo UniSEB

MAZIERO, C. A. Sistemas Operacionais: Conceitos e Mecanismos.


Disponvel em: <http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.
php/so:so-livro.pdf>. Acesso em: set. 2014.

84

OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas


Operacionais. 4 ed. Porto Alegre : Editora Bookman, 2010.

Gerncia de Processador Captulo 3

SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G Fundamentos de


Sistemas Operacionais. 6 ed. Rio de Janeiro: LTC - Livros Tcnicos
Editora S.A., 2004.
TANENBAUM, A. S.; WOODHYLL, A. S. Sistemas operacionais
projeto e implementao. 2 ed Porto Alegre: Bookman, 1999.

No prximo captulo

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

No captulo seguinte, estudaremos as estruturas de memria. Voc


entender as diferenas entre os espaos de endereamento fsico e lgico.
Sero apresentados os diversos modos de alocao da memria.

85

Sistemas Operacionais

Proibida a reproduo UniSEB

Minhas anotaes:

86

Gerncia de Memria

Cap

t u

lo

Estudamos que, na multiprogramao, vrios processos so mantidos na


memria a fim de que o sistema operacional
tenha um grande desempenho. Os programas,
cada vez mais, tm a necessidade de utilizar uma
quantidade maior de memria, sem contar a exigncia de memrias com acesso cada vez mais rpido. Este
cenrio faz com que o sistema operacional procure efetuar
um gerenciamento da memria o mais eficiente possvel,
comeando por alocar o mximo possvel de processos na memria, controlar os processos dos usurios e ter o cuidado de no
ocupar muita memria. Estes so apenas alguns pontos para comearmos a refletir sobre o gerenciamento de memria. Os conceitos
que iremos estudar sobre o assunto com certeza sero de grande importncia para a sua formao.

Objetivos da sua aprendizagem

Expor as estruturas de memria.


Entender as diferenas entre os espaos de endereamento fsico e
lgico.
Compreender os diversos modos de alocao da memria.

Voc se lembra?

Voc se lembra de como os processos so escalonados, certo? Estes conceitos ns estudamos no captulo 3. A partir deste momento, veremos
quais as estratgias que o sistema operacional utiliza para a alocao
dos processos na memria.

Sistemas Operacionais

Proibida a reproduo UniSEB

4.1 Funes

88

Estudamos anteriormente que um processo um programa em


execuo e que os sistemas operacionais multiprogramveis permitem
carregar mais de um programa em memria e execut-los. Isto faz com
que a memria seja responsvel pelo armazenamento principal do sistema
operacional, onde so carregados os programas, e os dados que o que os
programas acessam, durante a sua execuo.
Dependendo do tamanho do programa, ele pode estar armazenado
parcial ou total na memria para ser executado. Assim sendo, h uma
grande necessidade de gerenciar a alocao da memria a fim de que a
mesma seja utilizada da forma mais eficiente possvel, para isso o gerenciador de memria deve tentar manter a memria com o mximo de programas (processos) em execuo.
Com vrios programas em memria, o gerenciador de memria deve
garantir que um programa no acesse reas destinadas a outro programa,
como tambm das reas destinadas ao sistema operacional. Em situaes
onde os processos tm a necessidade de trocar dados, o gerenciador de
memria oferece mecanismos protegidos de compartilhamento de dados.
Outro ponto a ser considerado de que, mesmo com toda evoluo tecnolgica, proporcionando s memrias um grande aumentado de
sua capacidade de armazenamento e velocidade de acesso, os programas
tambm evoluram na mesma proporo, exigindo que o sistema operacional gerencie a memria disponvel para que um determinado programa
no venha a ocupar toda a memria disponvel.
Em geral, os programas devem estar armazenados permanentemente no computador, em um meio no-voltil, ou seja, a memria principal
no adequada para esta tarefa pelo fato de ser do tipo voltil, isto , se a
energia for desligada, todos os dados se perdem.
Este fato faz com que os discos rgidos, que so no volteis, de
baixo custo e de grande capacidade, seja o meio utilizado pelo sistema
operacional, como sistema de armazenamento secundrio, armazenando
os programas e os seus dados.
muito importante frisar que o processador somente executa instrues que esto carregadas na memria principal, assim, o gerenciador
de memria tem a funo de transferir os programas, que sero executados, do armazenamento secundrio (discos rgidos) para o armazenamento principal (memria). Esta transferncia do programa da memria
secundria para principal deve ser gerenciada para que no cause perda

Gerncia de Memria Captulo 4

de desempenho do sistema. Esta perda de desempenho pode ocorrer se


houver uma grande quantidade de acesso memria secundria. O tempo
de acesso memria secundria muito mais lento se comparado com a
memria principal. Dessa forma o sistema operacional deve otimizar a
quantidade de operaes de entrada e sada da memria secundria. Pode
acontecer, da memria principal estar totalmente ocupada o que faz com
que o sistema operacional utilize um mecanismo conhecido como swapping. O mecanismo de swapping transfere os processos da memria principal, temporariamente para a memria secundria, permitindo que novos
processos sejam carregados na memria principal e executados.
Outras funes do gerenciado de memria controlar os espaos
que sero utilizados pelos programas e os que no sero, alocar espaos
para os dados, conforme os programa solicitem
e desalocar quando no mais so necessrios.
Conexo:
Nesta unidade estudaremos os componentes
Aprofunde seus conhecimentos sobre gerncia de
de hardware que compem a memria e os
memria.
mecanismos de controles utilizados pelo
<http://regulus.pcs.usp.br/~jean/
sistema operacional para o gerenciamento
so/AULA%2013%20-%20
da memria
Ger%EAncia%20de%20
Mem%F3ria.pdf>.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

4.2 Estruturas de memria

O armazenamento principal (memria) e o


armazenamento secundrio (disco rgido) faz parte de uma hierarquia de
memria. Outros componentes do computador, utilizados para armazenar
dados, fazem parte desta hierarquia de memria, entre eles esto os dispositivos de armazenamento externos como as fitas magnticas, pendrives,
CD-Roms, DVD-Roms, Blu-ray, etc. e os internos como os registradores e
o cache interno do processador, o cache externo da placa-me, etc. (MAZIERO, 2014). Devido s caractersticas de cada componente, o sistema
operacional deve fornecer diversas funcionalidades para permitir que os
programas controlem todos os aspectos destes componentes. Aspectos no
sentido de componentes que podem ser acessados somente para leitura ou
leitura e escrita. Outros so de acesso sequencial ou aleatrio, sncrono
ou assncrono, etc. Outro fator que pode influenciar o sistema como um
todo a velocidade de acesso a estes componentes. Patterson e Hennessy
(2005) detalha, na tabela abaixo, o tempo de acesso de cada componente
e sua taxa de transferncia. O tempo de acesso indica quanto tempo a memria gasta para transferir uma informao para o barramento de dados
89

Sistemas Operacionais

aps uma determinada ao. Uma vez iniciada a transferncia, uma determinada quantidade de bytes por segundo podem ser lidos ou escritos em
um meio de armazenamento. A esta quantidade de bytes por segundo lidos
ou escrito por segundo e dado o nome de taxa de transferncia.
Tabela 7 - Tempos de acesso e taxas de transferncia.
Meio

Tempo de acesso

Taxa de transferncia

Cache L2

1 ns

1 GB/s (1 ns/byte)

Memria RAM

60 ns

1 GB/s (1 ns/byte)

memria flash
(NAND)

2 ms

10 MB/s 9100 ns/byte)

Disco
IDE

rgido

DVD-ROM

10 ms (tempo necessrio para o deslocamento da cabea de leitura e rotao


do disco at o setor desejado)

80 MB/s (12 ns/byte)

de 100 ms a vrios minutos (caso a gaveta do leitor esteja aberta ou o disco


no esteja no leitor)

10 MB/s (100 ns/byte)

Fonte: Patterson e Hennessy (2005)

Levando em considerao as principais caractersticas dos componentes de armazenamento, como custo, capacidade de armazenamento,
tempo de acesso e taxa de transferncia, possvel definir uma pirmide
de hierarquia de memria.
registradores
cache L1
cache L2
voltil
no-voltil

memria RAM
memria Flash

Proibida a reproduo UniSEB

disco rgido

90

CD-ROM, DVD-ROM, ta magntica


capacidade

Figura 60 Pirmide clssica de hierarquia de memria.

velocidade,
custo e
consumo
de energia

Gerncia de Memria Captulo 4

Na base pirmide esto os componentes que armazenam informaes acessadas com menor frequncia pelo processador. Isto permite
utilizar componentes de custo mais baixo e alta capacidade de armazenamento. Por outro lado, so consideradas como memrias mais lentas
e no-volateis. No topo da pirmide temos os componentes que armazenam informaes acessadas com maior frequncia pelo processador. So
memrias com custo elevado e baixa capacidade de armazenamento. No
entanto, so memrias extremamente rpidas, apesar de serem volteis.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

4.3 Espao de Endereamento Fsico e Lgico

Os processos sendo executados no processador possuem instrues que fazem referncias a endereos de memria. Estes endereos
de memria gerados pelo programa so chamados endereos lgicos ou
endereos virtuais. Os endereos lgicos esto relacionados ao programa
e no necessariamente so iguais aos endereos na memria real do computador. Como o processador apenas pode acessar posies de memria
principal, ou seja, endereos fsicos, o endereo lgico traduzido para
endereo fsico. Esta traduo conhecida como mapeamento. Para que
no haja perda de desempenho, o mapeamento feito por um dispositivo
de hardware conhecido como Unidade de Gerenciamento de Memria
(MMU - Memory Management Unit) figura 61.
A figura 61 exibe um exemplo de mapeamento de endereo lgico
para fsico segundo Silberschatz et al. (2004). Neste exemplo, a Unidade
de Gerenciamento de Memria possui um Registrador de Relocao que
est apontando para o endereo fsico de valor igual a 14000. O valor do
registrador de relocao sempre somado aos endereos de memria que
esto sendo acessados pelo processo do usurio em execuo no processador. Assim, se o processo est fazendo referncia ao endereo lgico
de valor 0 ao passar pelo MMU, ser mapeado para o endereo fsico de
valor 14000. Caso o processo faa uma referncia ao endereo lgico de
valor 346 ser mapeado para o endereo fsico de valor 14360. Mesmo
que o usurio crie um ponteiro no programa para acessar o endereo fsico
de memria 346, no acessar esta posio fsica, pois os programas de
usurios tratam de endereos lgicos e nunca acessam diretamente os endereos fsicos reais. Existem outros mtodos diferentes de mapeamento
que sero abordados nas prximas sees.

91

Sistemas Operacionais

CPU

Endereo
Lgico
346

Registrador
de relocao
14000

Endereo
Fsico
14346

Memria

MMU
Figura 61 Traduo de endereo lgico para fsico.

Dados e instrues de programas podem ser associados a endereos de memria em 3


momentos: em tempo de compilao, em tempo de carga e em tempo de execuo.
Em tempo de compilao se a posio da memria for conhecida. Neste caso os endereos
podem ser associados em valores absolutos. Em tempo de carga os endereos sero gerados
em cdigo relocvel. E o ltimo e mais utilizados na maioria dos sistemas operacionais, o em
tempo de execuo. Neste caso a associao somente feita no momento que o processo for
executado.

4.4 Estratgias de alocao

Nas sees seguintes, estudaremos as formas de alocao de memria. A alocao de memria pode ser organizada dos seguintes formas:
Simples
Contgua
Alocao

Particionada Esttica(Fixa) / Dinmica


Paginao

Proibida a reproduo UniSEB

No-contgua
(Memria
Virtual)

92

Segmentao
Segmentao com Paginao

A alocao contgua ser estudadas nos prximos tpicos e a alocao no contgua no tpico de Memria Virtual.

Gerncia de Memria Captulo 4

4.4.1 Alocao contgua simples

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Os primeiros sistemas monoprogramveis utilizava a forma de


alocao contgua de memria. Como os sistemas monoprogramveis
permitiam que apenas um programa fosse carregado na memria por
vez, a alocao contgua era a forma mais simples de gerenciamento de
memria consistindo de dividir a memria entre o sistema operacional
e o programa carregado. Tanenbaum e
Woodhyll (1999) apresenta trs formas de organizar a memria para
acomodar o sistema operacional
e um programa do usurio. A
Em geral, o sistema operacional alocado na
figura 62(a) e (b) utiliza uma
parte baixa da memria devido a posio do vetor
abordagem somente com
de interrupes que normalmente ocupa a memria
memria RAM(Random
baixa. O vetor de interrupes uma tabela que
contem os endereos das rotinas de tratamento de
Access Memory Memria
interrupo (MAZIERO, 2014).
de Acesso Aleatrio). Notem
que o sistema operacional
pode ser alocado tanto na parte
baixa como na parte alta da memria.
Na configurao da figura 62 (a) o sistema operacional alocado
na parte baixa da memria ficando o restante da memria disponvel para
o programa a ser executado. J na configurao (b) ocorre o inverso, o
sistema operacional alocado na parte superior e o programa na inferior.
A figura 62 (c) mostra uma configurao utilizando uma memria RAM
e uma ROM (Read-Only Memory Memria Apenas de Leitura). Nesta
abordagem os drivers de dispositivo ficam alocados na parte superior da
memria ROM e o sistema operacional e o programa do usurio na memria RAM.

93

Sistemas Operacionais

0xFFF...
Programa
de usurio

SO em
RAM

SO em
Ram

0xFFF... Drivers de 0xFFF...


dispositivos
em ROM
Programa
de usurio

Programa
de usurio
0

(a)

0
(b)

SO em
Ram

(c)

Figura 62 Formas de organizao da memria.

Os antigos computadores de grande porte utilizavam a estrutura da


figura 62 (a). A abordagem da figura 62 (b) tem sido utilizada em muitos
sistemas embarcados e estrutura da figura 62 (c) foi utilizada por pequenos
sistemas MS-DOS que denominava a parte do sistema na ROM de BIOS
(Basic Input Output Sistema Bsico de Entrada e Sada). Nesta forma de
alocao, o usurio pode acessar qualquer endereo de memria, ele tem
o controle total sobre a memria principal. Esta caracterstica permite que
um determinado programa possa, de forma intencional ou no, acessar a
rea destinada ao sistema operacional o que poderia causar um colapso do
sistema. Para resolver este problema foi adotado um registrador (figura
63) que tem a funo de delimitar as reas do sistema operacional e do
programa. Caso um programa faa referncia a um endereo de memria,
o sistema checa o delimitador para verificar se o endereo no est invadindo uma rea ocupada pelo sistema operacional. Se estiver invadindo,
ento o sistema operacional termina o programa e envia uma mensagem
de erro para o usurio sobre a violao de acesso da memria principal.
Memria principal
Sistema
Operacional

Registrador

Proibida a reproduo UniSEB

rea para
programa

94

Figura 63 Proteo de memria.


Fonte: Machado e Maia (2007)

Gerncia de Memria Captulo 4

4.4.2 Sobreposies (overlay)

Com o passar do tempo, a memria fsica passou a no ser suficiente


para conter todo o programa do usurio que eram maiores que a memria
principal. A soluo encontrada foi a utilizao de uma tcnica conhecida
como overlay (sobreposies). Nesta tcnica o programa desenvolvido
de forma que possa ser dividido em partes lgicas independentes de forma
a permitir que uma parte possa ser substituda por outra quando no estiver em uso. Por exemplo, a figura 64 ilustra um programa dividido em quatro
partes, de a a d. A parte principal do programa (a) deve ficar na memria
principal durante todo tempo em que o programa deve ser executado. Assim
carregado na memria principal logo acima do sistema operacional. O restante da memria, rea de overlay, ser a rea comum compartilhada pelas demais partes do programa. Quando a parte principal (a) efetuar uma chamada
a uma das partes, por exemplo, parte (b), este mdulo carregado na rea de
overlay. Caso o parte principal chame a parte (c), a parte (b) ser sobreposta
parte (c) na rea de overlay. Se a parte principal chamar um mdulo que j
esteja carregado, a carga ser desconsiderada.
A rea de overlay definida pelo programador utilizando comandos
da linguagem de programao utilizada para desenvolver o programa.
Entretanto, uma sobreposio que no for muito bem planejada pode se
tornar complexa e de difcil manuteno. Outro fator importante a ser
considerado com relao ao desempenho. Para garantir o desempenho
do programa, o programador deve ter o cuidado de evitar trocas constantes entre as partes que ocupam a rea de overlay (memria principal) e a
memria secundria.
d

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

rea de
Overlay
Poro mnima
do programa do
usurio que deve
permanecer em
memria at o
final de execuo
Sistema
Operacional

fase de
inicializao

fase de
processamento

fase de
gerao
de
resultado
d

c
a
0

Figura 64 Tcnica de overlay.

95

Sistemas Operacionais

4.4.3 Alocao contgua particionada fixa

Com a evoluo dos sistemas monoprogramveis para os multiprogramveis, houve uma grande necessidade de aprimoramento no modo de
alocao da memria. Isto pelo fato de que, um dos fatores de eficincia
dos sistemas multiprogramveis decorrem de ter vrios programas alocados na memria ao mesmo tempo para serem executados. Assim, surgiu a
alocao particionada fixa. Esta abordagem consiste em dividir a memria em tamanhos fixos, denominadas parties.
A partio da memria pode ser de tamanhos iguais ou diferentes.
O tamanho de cada partio era definido no momento da inicializao do
sistema operacional levando em considerao os programas que seriam
executados. Caso houvesse a necessidade de um particionamento diferente do que tinha sido configurado, era necessrio que o sistema operacional
fosse reinicializado com a nova configurao.
800 k
Participao 4
700 k
Participao 3
400 k
Participao 2
200 k
Participao 1
100 k
SO
0k

Proibida a reproduo UniSEB

Figura 65 Partio da memria.

96

Este esquema tornava o gerenciamento de memria relativamente


simples pelo fato dos programas, ao serem compilados, recebiam um endereo fsico da memria principal a partir de onde deveriam ser carregados. Isto fazia com que o programa somente executasse em uma partio
especfica. Dessa maneira, um programa tinha que aguardar a desocupao de sua partio para ser executado, mesmo tendo outras parties livres. Por exemplo, o programa A est sendo alocado na Partio 4 cujo

Gerncia de Memria Captulo 4

tamanho de 100k. O programa D est alocado na Partio 1, tambm


com tamanho de 100k. A Partio 3 de tamanho 300k est livre, mas a restrio imposta pelos endereos absolutos impedem que os programas B,
E ou F sejam alocados nesta partio causando um grande desperdcio de memria. Esta forma de gerenciamento de memria ficou conhecida como alocao particionada esttica absoluta.
800 k
B

Participao 4
700 k
Participao 3
400 k

Participao 2
200 k

Participao 1
100 k
SO
0k

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Figura 66 Alocao particionada esttica absoluta.

O problema de desperdcio de memria da alocao particionada


esttica absoluta foi superado com a implementao de compiladores e
carregadores de realocao. Assim, todos os endereos de memria, utilizados por um programa, ao ser compilado, passam a ser relativos ao incio
do programa e no mais endereos fsicos da memria. Esta abordagem
permite que ao carregar um programa, o carregador transforma os endereos relativos em endereos absolutos a partir de partio onde foi alocado
o programa. Esta forma de gerenciamento de memria ficou conhecida
como alocao particionada esttica relocvel.
Desta forma, o programa pode ser alocado em qualquer partio que
comporte o seu tamanho. Contudo, houve um grande aumento na complexidade dos compiladores e carregadores.

97

Sistemas Operacionais

800 k
Participao 4
700 k
Participao 3
400 k
Participao 2
200 k
D

Participao 1
100 k
SO
0k

Figura 67 Alocao particionada esttica relocvel.

Para decidir em qual partio um programa deve ser carregado, o


gerenciador de memria utiliza uma tabela conhecida como tabela de
alocao de parties. A tabela de alocao de parties permite que o
gerenciador verifique qual partio est livre e qual o seu tamanho. Caso
a partio livre seja grande o suficiente para conter o programa, ele ser
carregado nesta partio e a tabela ser atualizada para informar que a
partio est ocupada.
Memria Principal

Proibida a reproduo UniSEB

Sistema Operacional

98

Partio

Tamanho

Livre

2 Kb

No

5 Kb

Sim

8 Kb

No

Programa C

rea Livre

Programa B

Figura 68 Tabela de alocao de parties.


Fonte: Machado e Maia (2007).

Gerncia de Memria Captulo 4

Uma vez o programa carregado em uma partio, o prximo passo


e gerenciar o acesso de memria feita pelo programa para que no invada
a rea destinada ao sistema operacional ou outros programas alocados
em outras parties. A soluo encontrada foi a utilizao de dois registradores de fronteiras: registrador de base e de limite. Cada partio
delimitada pelo seu prprio registrador de base e de limite. Estes registradores contm o endereo inicial e final da partio. Quando o programa
faz uma requisio de um endereo de memria, o gerenciador verifica se
o endereo maior ou igual ao valor do limite inferior e se menor que
o valor do limite superior. Se estiver dentro da faixa permitida, a requisio atendida, caso contrrio o sistema termina o programa com uma
mensagem de erro para o usurio sobre a violao de acesso da memria
principal.
Memria Principal
Sistema Operacional

Endereo Inicial

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Endereo Final

Figura 69 Registradores de fronteiras.


Fonte: Machado e Maia (2007).

4.4.4 Alocao contgua particionada dinmica

Um grande problema enfrentado nas abordagens anteriores, onde a


partio fixa a fragmentao da memria conhecida com fragmentao interna. A fragmentao interna acontece quando um programa no
ocupa totalmente a partio em que foi alocado.
99

Sistemas Operacionais

Alm disso, uma partio pode ser muito pequena que no possa
acomodar um programa que esteja esperando.
Memria principal
Reg

Sistema
Operacional

Reg

Participao A
Participao B

Fragmentao interna
Participao C

Figura 70 Fragmentao interna.

Proibida a reproduo UniSEB

A soluo encontrada foi permitir que um programa ocupasse o espao que for necessrio, de acordo com sua necessidade, desde que haja
espao disponvel na memria. Assim, foi substituda a partio de tamanho fixo pela alocao particionada dinmica. Inicialmente a memria
organizada de forma a no ter nenhuma partio. Conforme h a necessidade de carregar um programa, o sistema operacional cria a partio dinamicamente, de acordo com as necessidades do programa. Consequentemente, eliminou-se a fragmentao interna, mas por outro lado, aumentou
a complexidade da tabela de alocao de parties. A tabela de alocao
de parties passou a no ter mais um nmero fixo de entradas, agora o
nmero de entradas varia de acordo com o nmero de parties.

100

2 Kb

3 Kb

1 Kb

4 Kb

Memria Principal

Memria Principal

Sistema Operacional

Sistema Operacional

15 Kb

Programa B

4 Kb

Programa C

1 Kb

Programa E

3 Kb

Programa A

2 Kb
5 Kb

Figura 71 Alocao particionada dinmica.


Fonte: Machado e Maia (2007).

Gerncia de Memria Captulo 4

Esta soluo gerou um outro problema. Conforme os programas terminam sua execuo e desalocam a partio, vo deixando cada vez mais,
pequenos espaos vazios na memria. Estes espaos vo se espalhando
pela memria e muitas vezes so to pequenos, que no possvel utiliz-los
para alocar um novo programa. Este problema conhecido como fragmentao externa.
Memria principal
Sistema
Operacional
Processo A
Processo C
Processo F

Fragmentao externa

Processo E

Figura 72 Fragmentao externa.

possvel resolver o problema de fragmentao externa atravs de


duas solues. A primeira soluo consiste em reunir os espaos livres
adjacentes quando um programa libera a partio. Na figura abaixo, quando o Programa C finaliza sua execuo, sua partio de 1kb combinada
com as duas parties adjacentes formando um espao maior de 8kb.
Memria Principal

Memria Principal

Memria Principal

Sistema Operacional

Sistema Operacional

Sistema Operacional
4 Kb

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

4 Kb

8 Kb

Programa C
3 Kb

3 Kb
Programa A

Programa A
5 Kb

Programa A
5 Kb

5 Kb

Figura 73 Soluo para Fragmentao externa.


Fonte: Machado e Maia (2007).

101

Sistemas Operacionais

A segunda soluo exige que todas as parties na memria sejam


realocadas de forma que sejam eliminados todos os espaos vazios entre
elas. Esta soluo conhecida como realocao dinmica ou alocao
particionada dinamicamente com realocao. Esta abordagem praticamente elimina a fragmentao externa, mas h um excessivo consumo de
recurso do sistema, como processamento e rea de disco rgido, alm de
ser muito complexa.
Memria Principal

Memria Principal

Sistema Operacional

Sistema Operacional
Programa C
Programa A

4 Kb
Programa C
3 Kb Relocao
Programa A

12 Kb
5 Kb

Figura 74 Soluo para Fragmentao externa.

Proibida a reproduo UniSEB

Fonte: Machado e Maia (2007).

102

Conexo:
Entenda um pouco mais
sobre gerenciamento de
memria
<http://www.ricardobarcelar.com.
br/aulas/soa/mod2-ger_memoria.pdf>.

Gerncia de Memria Captulo 4

4.4,5 Estratgia de posicionamento de memria


Inicialmente, quando um programa necessita ser alocado, o sistema
pode escolher qualquer partio livre que contenha o espao suficiente
para receb-lo. A escolha feita pelo gerenciador de memria utilizando
diversas estratgias e levando em considerao diversos fatores com o
objetivo de determinar em qual a melhor partio livre, um programa esperando por memria, pode ser alocado. Consequentemente a escolha de
uma terminada estratgia pode influenciar no desempenho do sistema. Independente de qual estratgia seja adotada, a fragmentao externa tende
a diminuir ou praticamente ser eliminada. Para implementar qualquer uma
das estratgias, o sistema operacional matem uma tabela com os dados
das reas livres e qual a sua quantidade de espao disponvel, permitindo
desta forma a agilidade na identificao das reas livres.
Memria Principal
Sistema Operacional

Partio

Tamanho

Livre

2 Kb

No

5 Kb

Sim

8 Kb

No

rea Livre 1

4 Kb

Programa C
rea Livre 2

5 Kb

Programa A
rea Livre 3

3 Kb

Figura 75 Tabela de memrias livres.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Fonte: Machado e Maia (2007).

103

Sistemas Operacionais

Entre as estratgias mais utilizadas esto:


Estratgia o primeiro que couber (First-Fit): percorre a tabela
de memrias livres procurando pela primeira rea capaz de
comportar o programa a ser alocado. Esta estratgia minimiza
o trabalho de busca e extremamente rpida principalmente se
houver reas livres muito longas. Nesta estratgia, a tabela de
memrias livres no possui nenhuma ordenao.
0
(a) Estratgia o primeiro que couber
Coloque o job na primeira lacuna de memria
da lista de memrias livres na qual ele couber.
Lista de memrias livres (mantida em ordem aleatria)
Endereo
Tamanho
de incio
a

16MB

5MB

14MB

30MB

a
b
c
d

Requisio
de 13 MB

e
f

Sistema operacional
Lacuna de 16 MB
Em uso
Lacuna de 14 MB
Em uso
Lacuna de 5 MB
Em uso

g
.
.
.

Lacuna de 30 MB
h

Figura 76 Estratgia o primeiro que couber (First-Fit).


Fonte: Deitel et al. (2005).

Estratgia o que pior couber (Worst-Fit): percorre a tabela de


memrias livres procurando pela maior rea possvel, encontrando, aloca o programa. O restante que sobra, tambm ser grande
podendo ser utilizada para alocar um programa grande. Por ter que
pesquisar em todas as reas livres, para encontrar a de maior rea
livre, sobrecarrega o sistema e tende a deixar pequenas reas livres
sem utilizao. Nesta estratgia, a tabela de memrias livres
ordenada em ordem descendente de tamanho de rea livre.
0
(a) Estratgia o pior que couber
Coloque o job na maior lacuna
possvel na qual ele couber.

Lista de memrias livres (mantida em ordem descendente


de tamanho de lacuna)

Proibida a reproduo UniSEB

Endereo
Tamanho
de incio

104

30MB

16MB

14MB

5MB

d
Requisio
de 13 MB

e
f

Sistema operacional
Lacuna de 16 MB
Em uso
Lacuna de 14 MB
Em uso
Lacuna de 5 MB
Em uso

g
.
.
.

Figura 77 Estratgia o que pior couber (Worst-Fit).

Lacuna de 30 MB
h

Fonte: Deitel et al. (2005).

Gerncia de Memria Captulo 4

Estratgia o que melhor couber (Best-Fit): percorre a tabela de


memrias livres procurando pela menor rea possvel, encontrando, aloca o programa. O restante que sobra, tambm ser
pequeno, e desta forma ter pouco espao sem utilizao. O
problema que este pouco espao sem utilizao, com o tempo, pode causar o problema de fragmentao. Nesta estratgia,
a tabela de memrias livres ordenada em ordem ascendente
de tamanho de rea livre.
0
(a) Estratgia o que melhor couber
Coloque o job na menor lacuna
possvel na qual ele couber.

a
b

Lista de memrias livres (mantida em ordem ascendente


de tamanho de lacuna)
Endereo
Tamanho
de incio
Requisio
e
5MB
de 13 MB
c

14MB

16MB

30MB

c
d
e
f

Sistema operacional
Lacuna de 16 MB
Em uso
Lacuna de 14 MB
Em uso
Lacuna de 5 MB
Em uso

g
.
.
.

Lacuna de 30 MB
h

Figura 78 Estratgia o que melhor couber (Best-Fit).


Fonte: Deitel et al. (2005).

Nas pesquisas efetuadas por Johnstone e Wilson (1999) foram demostradas que as estratgias mais eficientes so a Estratgia o que melhor
couber (Best-Fit) e Estratgia o primeiro que couber (First-Fit), sendo
que a First-Fit se mostrou bem mais rpida que a anterior.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

4.4.6 Troca de memria (swapping)

Nas abordagens anteriores, o programa era alocado na memria e


somente saa quando era finalizado. Isto faz com que se a memria principal estiver toda ocupada, um novo programa no poder ser alocado
e consequentemente, no ser executado. Alm disso, pode ocorrer de
ter parties livres, mas no com o tamanho suficiente para alocar um
determinado programa pronto para ser executado. A soluo para estes
cenrios o mecanismo denominado swapping (troca). O mecanismo de
swapping transfere um processo da memria principal, temporariamente
para a memria secundria, permitindo que um novo processo sejam carregado na memria principal e executado. Este procedimento conhecido
105

Sistemas Operacionais

swap-out. Em um determinado momento o processo, que foi transferido


para a memria secundria, carregado de volta para a memria principal. Este procedimento conhecido swap-in.
Para que o mecanismo de swapping seja utilizado, o gerenciador
de memria, antes de qualquer coisa, reserva um espao em disco rgido
(memria secundria) para que possa receber os processos da memria.
O mecanismo de swapping permitiu que o sistema operacional executasse
um maior nmero de processos que normalmente caberia na memria.
Um ponto a ser observado que o swapping tende a aumentar o tempo de
execuo dos programas devido ao fato da troca de um processo para o
disco rgido ser demorado. Para diminuir as quantidades de troca, os processos escolhidos para swapping so processos no estado de Em Espera
ou aqueles que estejam em estado de Pronto, mas com poucas chances de
ser escalonado. Assim o gerenciador de memria tende a ter um desempenho melhor evitando trocas desnecessrias.

Sistema
Operacional
Swap Out
Espao do
usurio

Swap In

Processo 1
Processo 2

Figura 79 Swapping.

Proibida a reproduo UniSEB

4.5 Memria Virtual.

106

Estudamos nas sees anteriores que os programas maiores que o


tamanho da memria principal so divididos em mdulos e armazenados
na memria secundria. Quando este programa entra em execuo, os
mdulos so trocados (swapping) entre a memria principal e secundria
e vice-versa pelo sistema operacional. A diviso em mdulos era feita
pelo prprio programador, tarefa que dava muito trabalho principalmente
se tratando de programas muito grandes. Em 1961, Fotheringham criou
um mtodo que combina a memria principal e secundria de forma a dar

Gerncia de Memria Captulo 4

a iluso que a memria muito maior do que a memria principal. Este


mtodo ficou conhecido como memria virtual.
Desta forma o programador no tem mais a necessidade de dividir
os programas em mdulos por causa da limitao de memria. O disco
rgido (memria secundria) passa a ser utilizada como extenso da memria RAM (memria principal), e onde so armazenados parte dos programas e dados que esto carregados e executando. Assim, o sistema operacional transfere parte dos programas e dados, da memria secundria
para a principal, somente no momento que realmente sero executados.
Esta tcnica cria-se o espao de endereamento virtual (lgico) e o espao
de endereamento real (fsico) (ver seo: Espao de Endereamento Fsico e Lgico).
Devido ao grande crescimento de capacidades das memrias RAM
nos ltimos anos, que combinadas podem passar dos 16Gbs, no h necessidade de utilizar em tempo integral a virtualizao da memria como
era necessrio at alguns anos atrs. Em alguns casos, ainda necessrio
a utilizao da memria virtual, mas importante salientar, como foi feito anteriormente, que esta tcnica pode causar perda de desempenho do
computador tendo em vista que o acesso ao disco rgido mais lento que
o acesso memria principal.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

4.5.1Paginao

O gerenciador de memria utiliza uma tcnica onde o espao de


endereamento real e o espao de endereamento virtual so divididos
em blocos do mesmo tamanho. Esta tcnica conhecida como paginao.
Os blocos obtidos da diviso so conhecidos como pginas, sendo que os
blocos do endereamento real so denominados pginas reais ou frames
e os blocos do endereamento virtual so denominados pginas virtuais.
A figura 80 exibe o esquema de paginao formado pela memria virtual,
memria principal e a tabela de pginas. Cada processo possui a sua prpria tabela de pginas. A tabela de pginas montada durante o carregamento do processo e responsvel pelo mapeamento do endereo virtual
para o endereamento real. Toda pgina virtual do processo possui uma
entrada na tabela de processos (Entrada na Tabela de Pginas ETP).
A figura exibe os endereos descritos na forma binria, sendo que os
bits de mais alta ordem (trs primeiros nmeros da esquerda para direita)
correspondem ao nmero da pgina e os bits de mais baixa ordem (2 ltimos nmeros) correspondem ao deslocamento dentro da pgina.
107

Sistemas Operacionais

Tomemos como exemplo, mapear referente ao endereo virtual


(lgico) Y2 para o endereo real (fsico). O endereo virtual de Y2 corresponde a 00101 sendo que o nmero da pgina 001 e o deslocamento 01.
Atravs da tabela de pginas encontramos que a entrada da pgina virtual
001 foi carregada na pgina real 101. Basta agora unir os bits de deslocamento ao nmero da pgina real, encontrado ento o endereo real 10101.
Memria Principal
000 00
000 01
000 10
000 11
000 00
000 01
000 10
000 11
000 00
000 01
000 10
000 11

X1
X2
X3
X4
Y1
Y2
Y3
Y4
Z1
Z2
Z3
Z4

Z1
Z2
Z3
Z4

X1
X2
X3
X4

Endereo Virtual de
Y2
001

Endereo Virtual de
Y2

01

101

01

ETP
Tabela de Pginas
Pag. Virtual

Pag. Real

000

010

001

101

010

000

Y1
Y2
Y3
Y4

000 00
000 01
000 10
000 11
001 00
001 01
001 10
001 11
010 00
010 01
010 10
010 11
011 00
011 01
011 10
011 11
100 00
100 01
100 10
100 11
101 00
101 01
101 10
101 11

Figura 80 Esquema de paginao.

4.5.2Segmentao

Proibida a reproduo UniSEB

Enquanto a paginao divide a memria virtual e blocos do mesmo


tamanho, a segmentao uma tcnica que permite dividir tanto o espao
de endereo virtual e real em blocos de tamanhos diferentes.

108

Gerncia de Memria Captulo 4

Memria Principal
Sistema
Operacional

7KB
10KB

10KB

Livre

Livre

9KB

30KB

14KB
Requisitos de
espao do processo
que est chegando

16KB

Livre

Figura 81 Sistema de segmentao.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Fonte: Deitel et al. (2005).

A diviso do tamanho do bloco est relacionado a diviso lgica de


um programa. Uma diviso lgica de blocos para um programa poderia
ser, por exemplo, instrues, dados e pilhas. Estes blocos so chamados
de segmentos. Os segmentos no necessariamente precisam ser do mesmo
tamanho ou ocupar posies adjacentes na memria principal. Os endereos virtuais so mapeados para o endereo real atravs de uma tabela
de segmentos. As informaes mantidas na tabela de segmento so semelhantes tabela de paginao.

109

Sistemas Operacionais

Segmento 00 - Cdigo
00000
00001
00010
00011
00100
00101

C1
C2
C3
C4
C5
C6

Memria Lgica

Memria Fisica
D1
D2
D3
D4

Segmento 01 - Dados
00000
00001
00010
00011

D1
D2
D3
D4

C1
C2
C3
C4
C5
C6

Segmento 10 - Pilha
00000
00001
00010

p1
p2
p3
Tabela de Segmentos

Segmento

Base

Limite

00

01000

0110

01

00000

0100

10

10100

0011

p1
p2
p3

00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111

Figura 82 Esquema de segmentao.

Proibida a reproduo UniSEB

4.5.3 Segmentao com paginao

110

Neste tipo de gerenciamento de memria so combinadas as tcnicas de segmentao e paginao. Os segmentos so arranjados ao longo
de pginas de memria virtual, permitindo desta forma as vantagens das
duas tcnicas. O mapeamento do endereo virtual para um endereo real
utiliza uma tabela de segmentos e uma tabela de pginas. O endereo virtual formado por um nmero de segmento, nmero de pgina e deslocamento. Cada segmento est associado a uma tabela de pginas. A Figura
83 mostra como feito o mapeamento de um determinado endereo virtual. O nmero de segmento indica qual tabela de segmentos o endereo
est associado. Na tabela de segmentos indica qual tabela de pginas o
segmento est associado. Combinando o nmero da pgina com o deslocamento temos o endereo real.

Gerncia de Memria Captulo 4

Segmento virtual
Endereo Virtual

Num.
segmento

Num.
pgina

Deslocamento
Tabela de segmentos
ETS
End. da tabela de pginas

Tabela de pginas
ETP
Endereo do frame

Endereo do frame

Deslocamento

Endereo fsico
Figura 83 Segmentao com paginao.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Fonte: Machado e Maia (2007)

Atividades

01. Quais so as formas de alocao de memria pelo sistema operacional?

02. Como funciona a tcnica conhecida como Sobreposies (overlay)?

111

Sistemas Operacionais

Reflexo

Neste captulo estudamos o gerenciamento da memria, para tanto


iniciamos vendo as estruturas de memria, espaamentos de endereamento fsico e lgico. Para melhor entender como o sistema operacional
efetua este gerenciamento, abordamos as diversas formas de alocao da
memria, como a alocao contgua e no-contgua. importante que, baseado nos conceitos e arquiteturas apresentadas, voc seja capaz de identificar as vantagens e desvantagens de cada modelo de alocao de memria. Reflita sobre isso e identifique as diferenas ente cada uma delas.

Leituras recomendadas

Para voc avanar mais o seu nvel de aprendizagem envolvendo os


conceitos de sistemas operacionais e demais assuntos deste captulo, consulte as sugestes de links abaixo:
Captulo 4 do livro
TANENBAUM, A. S.; WOODHYLL, A. S. Sistemas operacionais
projeto e implementao. 2 ed Porto Alegre: Bookman, 1999.

Referncias
DEITEL H. M.; DEITEL P. J.; CHOFFNES D. R. Sistemas Operacionais. 3 ed. So Paulo, Editora Prentice-Hall, 2005.
HENNESSY, J. L.; PATTERSON, D. A. Arquitetura de Computadores: uma abordagem quantitativa. 3 ed. Rio de Janeiro: Campus, 2003.
JOHNSTONE, M. S.; WILSON, P. R. The memory fragmentation
problem: solved? ACM SIGPLAN Notices, 34(3): 2636, 1998.

Proibida a reproduo UniSEB

MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 4 ed. Rio de Janeiro: LTC - Livros Tcnicos Editora S.A., 2007.

112

MAZIERO, C. A. Sistemas Operacionais: Conceitos e Mecanismos.


Disponvel em: <http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.
php/so:so-livro.pdf>. Acesso em: set. 2014.

Gerncia de Memria Captulo 4

OLIVEIRA, R. S.; CARISSIMI, A. S.; TOSCANI, S. S. Sistemas


Operacionais. 4 ed. Porto Alegre : Editora Bookman, 2010.
PATTERSON, D. A.; HENNESSY, J. L. Organizao e Projeto de
Computadores. 3 Ed. Rio de Janeiro: Campus, 2005.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G Fundamentos de
Sistemas Operacionais. 6 ed. Rio de Janeiro: LTC - Livros Tcnicos
Editora S.A., 2004.
TANENBAUM, A. S.; WOODHYLL, A. S. Sistemas operacionais
projeto e implementao. 2 ed Porto Alegre: Bookman, 1999.

No prximo captulo

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

No captulo seguinte, estudaremos os principais componentes de


hardware e software de entrada e sada. Voc entender como feita a
comunicao dos dispositivos com o computador. Ser apresentado como
o sistema operacional efetua o gerenciamento dos arquivos e diretrios.

113

Sistemas Operacionais

Proibida a reproduo UniSEB

Minhas anotaes:

114

Gerncia de Entrada e
Sada

Cap

t u

lo

Atualmente podemos conectar, alm dos


j existentes, uma infinidade de dispositivos
em nosso computador, tais como, mquinas
fotogrficas, filmadoras, tablets, celulares etc. Efetuar um gerenciamento de todos estes dispositivos
considerado a funo mais complexa do sistema operacional e uma das principais. Outro ponto com relao aos
sistemas de arquivos. Quantas informaes de alta relevncia
guardamos em nossos arquivos? Quantos dias de trabalho podem estar armazenados em um simples arquivo? Quais as consequncias de perdermos um destes arquivos? Para responder a este
questionamento, estudaremos como o sistema operacional efetua o
gerenciamento dos arquivos de forma a garantir segurana e integridade dos seus dados.

Objetivos da sua aprendizagem

Estudar os principais componentes de hardware e software de entrada


e sada.
Entender como feita a comunicao dos dispositivos com o computador.
Compreender como o sistema operacional efetua o gerenciamento dos
arquivos e diretrios.

Voc se lembra?

Voc se lembra de alocao de memria, contgua e paginao? Caso


no se lembre, faa uma breve consulta e anote os principais conceitos.

Sistemas Operacionais

5.1 Introduo

Proibida a reproduo UniSEB

Uma das principais funes do sistema operacional fornecer mecanismos que possam servir de comunicao entre o usurio e os diversos
componentes de um computador. Estes componentes so conhecidos
como dispositivos de entrada e sada, tais como mouse, teclado, monitor,
telas sensveis ao toque, impressora, pen drive, etc. No somente interao homem\mquina, mas tambm entre outros computadores (modems,
placas de redes), outros dispositivos como celulares, cmeras digitais,
tablets, etc., ou mesmo dispositivos que permitem o armazenamento de
informaes (disco rgido, fita magntica, CD-ROM, etc.).
Assim, o sistema operacional mantm uma estrutura que permite controlar a diversidade de dispositivos de entrada e sada, atravs de
operaes, tais como envio de comando para os dispositivos, captura das
interrupes geradas, tratamento de erros, interface entre os dispositivos e
o restante do sistema os programas dos usurios, entre outros.
Os dispositivos de entrada e sada podem ser classificados em perifricos de entrada, perifricos de sada ou perifricos de entrada e sada,
de acordo com o fluxo de dados entre o computador e o dispositivo. Segundo Oliveira et al. (2010) um perifrico qualquer dispositivo conectado a um computador de forma a permitir a sua interao com o mundo
externo. Como exemplo de perifricos, podemos citar:
Perifricos de entrada: teclado, mouse, webcam, scanner, etc.
Perifricos de sada: monitor, impressora, caixas de som, etc.
Perifricos de entrada e sada: monitor touchscreen, modem,
pendrive, joystick, impressoras com scanners, etc.

116

Cada um destes perifricos possuem suas prprias caractersticas e


necessidades de mecanismos de acesso especficos. Consequentemente,
geram um grande desafio no sentido de desenvolvimento e manuteno de
sistemas operacionais.
Gerenciar todas estas diversidades de perifricos de entrada e sada
uma das funes principais e mais complexas efetuada pelo sistema operacional. Alm disso, deve fornecer um conjunto de rotinas e servios para
que os dispositivos possam ser acessados pelos usurios e os seus programas. Para tanto, o sistema operacional utiliza uma arquitetura de camadas
para melhor gerenciar os dispositivos de entrada e sada.

Gerncia de Entrada e Sada Captulo 5

Processos de Aplicao
nvel de usurio
nvel de ncleo

data
control
API Entrada/Sada
data
control
Subsistema de Entrada e Sada

Gerenciador
Interrupo
software
hardware

data
control

IRQ

Device Driver
control

IRQ
Controlador
Interrupo

data/control

IRQ

Controlador
DMA

Controlador
Dispositivo

IRQ
data/control

I/O device

Figura 84 Arquitetura de entrada e sada.


Fonte: Adaptado de Maziero (2014).

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

5.2 Componentes de hardware de ENTRADA E


SADA
O sistema operacional tem como funo gerenciar a comunicao entre os programas e os diversos dispositivos de entrada e sada. O
sistema operacional no acessa diretamente os dispositivos. O acesso e
gerenciamento aos dispositivos feito pelo sistema operacional passam
pela controladora. Nesta seo estudaremos os aspectos envolvidos nesta
comunicao com a controladora, bem como as caractersticas destes dispositivos.

117

Sistemas Operacionais

Gerenciador
Interrupo

IRQ
Device Driver
control

HARDWARE

IRQ
Controlador
Interrupo

data/control

IRQ

Controlador
DMA

Controlador
Dispositivo

IRQ
data/control

Dispositivos

Figura 85 Componentes de hardware de E/S.


Fonte: Adaptado de Maziero (2014).

5.2.1 Dispositivos de Entrada e Sada

Atualmente h diversos dispositivos perifricos que permitem ao


homem se comunicar com o computador, como tambm entre computadores. Segundo Maziero (2014) os perifricos podem variar em suas
caractersticas, velocidade e forma de transferncia dos dados e mtodo
de acesso. A velocidade tpica de transferncia de dados de alguns dispositivos ilustrada na tabela a seguir.
Tabela 8 - Velocidades de dispositivo de E/S.

Proibida a reproduo UniSEB

Dispositivo

118

velocidade

Teclado

10 B/s

Mouse tico

100 B/s

Interface infravermelho (IrDA-SIR)

14 KB/s

Interface paralela padro

125 KB/s

Interface de udio digital S/PDFIF

384 KB/s

Interface de rede Fast Ethernet

11.6 MB/s

Chave ou disco USB 2.0

50 MB/s

Interface de rede Gigabit Ethernet

116 MB/s

Disco rgido SATA 2

300 MB/s

Interface grfica high-end

4.2 GB/s
Fonte: Mazieiro

Gerncia de Entrada e Sada Captulo 5

A classificao dos dispositivos pode variar de autor para autor. A


primeira classificao e utilizada anteriormente neste captulo, a feita
por Carpinelli (2001) onde os dispositivos de E/S so classificados em:
Dispositivos de entrada: so os dispositivos utilizados apenas
para a entrada dados no sistema. Exemplo: teclado, mouse,
webcam, scanner, etc.
Dispositivos de sada: so os dispositivos utilizados apenas
para sada de dados do sistema. Exemplo: monitor, impressora,
caixas de som, etc.
Dispositivos de entrada e sada: so os dispositivos utilizados
tanto para a entrada como a sada de dados no sistema. Exemplo: monitor touchscreen, modem, disco rgido, etc.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Para Stallings (2002) os dispositivos podem ser classificados de


acordo com sua finalidade e como interage com o usurio e outros dispositivos. Assim temos:
Voltados para a comunicao com o usurio: so dispositivos
adequados para a comunicao com o usurio. Exemplo: teclado, mouse, monitor, impressora, caixas de som, etc.
Voltados para a comunicao com mquina: so dispositivos adequados para a comunicao com dispositivos eletrnicos. Exemplo: disco rgido, fita magntica, CD-ROMs, controladores, etc.
Voltados para a comunicao com dispositivos remotos: so
dispositivos adequados para a comunicao remota. Exemplo:
placa de rede, modem, etc.
A classificao dada por Tanenbaum e Woodhyll (1999) leva em
considerao a forma em que os dados podem ser acessados e/ou obtidos
a partir destes dispositivos. Podendo ser:
Dispositivos de blocos: so dispositivos que transferem ou
armazenam dados em blocos de tamanho fixo, cada um desses blocos possui um endereo, sendo que cada bloco pode
ser acessado independentemente. Exemplo: disco rgido, CD-ROM, etc.
Dispositivos de caractere: so dispositivos que enviam ou
recebe um fluxo de caracteres. Os caracteres no possuem endereamento e no podem ser acessados de forma individual.
Exemplo: teclado, mouse, impressoras, placas de rede, etc.
119

Sistemas Operacionais

5.2.2 Controlador de entrada e sada

Para que os perifricos sejam conectados ao computador, o sistema


disponibiliza componentes de hardware conhecidos como interfaces. As
interfaces, por sua vez, so conectadas aos barramentos de dados para
que, independente do tipo de perifrico, todos se comunicam com o computador. As interfaces implementam um outro hardware denominado
controlador.
O controlador responsvel por gerenciar diretamente os dispositivos de entrada e sada como tambm permitir a comunicao entre estes
dispositivos e o sistema operacional. Normalmente o controlador em um
computador uma placa de circuito impresso inserida em um determinado
slot da placa me. De modo geral, o controlador pode ser entendido como
um processador, que possui alguns registradores, dedicados a gerenciar as
complexas funes necessrias para o acesso aos perifricos de entrada e
sada. Cada dispositivo necessita de um controlador diferente, isto porque
o controlador tem que conhecer como o dispositivo funciona para poder
efetuar o seu controle.
O controle feito atravs de diversas funes como escrever dados,
ler dados, executar comandos, ler status, etc. Para tanto, a comunicao
entre a UCP e o controlador feita atravs de um conjunto de registradores: registrador de dado, registrador de status e registrador de comando.
Memria
Principal

UCP
Controlador
de Impressora

Controlador
de Disco

Controlador
de Fita

Impressora

Disco

Fita

Proibida a reproduo UniSEB

Figura 86 Controladores.

120

Fonte: Machado e Maia (2007).

Gerncia de Entrada e Sada Captulo 5

Alm dos registradores, o controlador possui um buffer que utilizado para armazenar os dados lidos nos dispositivos at que seja formado
um bloco. Quando o bloco formado, o controlador faz a checagem de
erros, e se no houver nenhum erro, o bloco pode ser transferido para a
um buffer de entrada e sada na memria principal. Esta transferncia do
bloco do buffer interno do controlador para a memria principal pode ser
feita pela UCP ou por um controlador DMA (Acesso Direto Memria Direct Memory Access).
A utilizao do DMA permite, entre outras coisas, que seja liberada a UCP durante o operao de busca de dados nos dispositivos de blocos. Sem o DMA a UCP teria que executar loops
para a transferncia do bloco para a memria principal. A UPC apenas inicia a operao de Entrada e sada informando o endereo inicial na memria e a quantidade de bytes a ser transferido. Desta forma, vrias controladoras possuem suporte a DMA, principalmente as controladoras
de dispositivos de bloco (SILBERSCHATZ et al., 2004).

Conexo:

Aprofunde seus conhecimentos sobre Gerncia de Entrada e Sada:


<http://www.devmedia.com.br/como-funcionam-os-dispositivos-de-entrada-e-saida/28275>.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

5.3 Componentes de Software de ENTRADA E


SADA
O objetivo principal dos componentes de software, em relao aos
dispositivos de entrada e sada, padronizar ao mximo o acesso a estes
dispositivos. Isto permite que novos dispositivos, como por exemplo,
novos discos rgidos sejam acrescentados ao computador sem que seja necessrio mudar o sistema operacional. A padronizao permite ainda que
uma aplicao possa abrir um determinado arquivo no disco rgido sem
se preocupar com a complexidade envolvida no acesso e leitura do disco.

121

Sistemas Operacionais

Processos de Aplicao
nvel de usurio
nvel de ncleo

data
control
API Entrada/Sada
data
control
Subsistema de Entrada e Sada

Gerenciador
Interrupo

data
control

IRQ

Device Driver
control

SOFTWARE
hardware

IRQ
Controlador
Interrupo

data/control

IRQ

Controlador
DMA

Controlador
Dispositivo

IRQ
data/control

Dispositivos

Figura 87 Componentes de Software de E/S.


Fonte: Adaptado de Maziero (2014).

Proibida a reproduo UniSEB

5.3.1 Drivers

122

A comunicao entre a camada de subsistemas de entrada e sada e


os controladores feita pelos devices drivers ou simplesmente drivers. Os
drivers so camadas de software responsvel pela implementao de rotinas especficas que permitem o acesso, inicializao e o gerenciamento
de um determinado dispositivo de entrada e sada. As rotinas permitem
que, ao receber uma a instruo de acesso ou controle de dispositivo, esta
instruo seja traduzida de uma forma que o dispositivo possa entend-la.
A camada dos drivers considerada uma camada dependente dos
dispositivos. Cada driver implementado levando em conta um determinado dispositivo de entrada ou um grupo de dispositivo com caractersticas semelhantes. Isto porque funo dos drivers programar os registradores internos dos controladores a fim de fazer o acesso e a gerncia
destes dispositivos.
Outro fator a ser considerado com relao aos drivers o alto grau
de dependncia do sistema operacional e o restante do kernel do sistema
em que ser instalado. A implementao dos drivers, leva em considera-

Gerncia de Entrada e Sada Captulo 5

o o sistema operacional, para que as corretas instrues de acesso ao


dispositivo estejam presentes no driver.
O alto grau de dependncia entre os driver e o restante do kernel do
sistema fazia com que em sistemas mais antigos, ao ser instalado um novo
driver, o kernel tinha que ser recompilado e em seguida, reinicializado o
sistema. Com a modernizao dos sistemas operacionais, no h mais a
necessidade de reinicializar o sistema aps uma instalao, pois os drivers
so carregados dinamicamente.

Processo

Subsistema de E/S

Driver de
Impressora

Driver de
Disco

Driver de
Fita

Controlador
de Impressora

Controlador
de Disco

Controlador
de Fita

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Figura 88 Device drivers.


Fonte: Machado e Maia (2007).

A figura a seguir ilustra o gerenciado de dispositivo do Windows 7.


Atravs do gerenciador de dispositivo, podemos visualizar, atualizar ou
configurar os drivers dos dispositivos que esto instalados no computador.
Quando um determinado hardware est com mau funcionamento, o sistema operacional sinalizado no gerenciador de dispositivo. Verificando esta
sinalizao, possvel efetuar as devidas correes.

123

Sistemas Operacionais

Figura 89 Gerenciador de Dispositivos do Windows 7.

Proibida a reproduo UniSEB

5.3.2 Subsistemas de entrada e sada

124

Atualmente h uma grande quantidade de perifricos conectados ao


computador, para diversas funes, com velocidades diferentes e formatos
variados. Para isolar a complexidade de operaes especficas para controle da grande variedade de dispositivo de hardware e usurios e os seus
programas, o sistema operacional implementa uma camada de software,
denominada Subsistemas de Entrada/Sada.
A funo dos Subsistemas de Entrada/Sada fornecer diversas
rotinas necessrias para controle da grande quantidade de dispositivos,
isolando o usurio e os programas da complexidade de gerenciamento dos
dispositivos de entrada e sada, como tambm permitir uma maior flexibilidade do sistema. Isto feito atravs da abstrao de uma camada para
outra, ou seja, uma camada de baixo nvel oferece rotinas simples de comunicao com sua camada superior. Dessa forma, a camada superior no
necessita conhecer toda a complexidade da camada inferior para efetuar a
comunicao. As camadas mais prximas dos dispositivos, normalmente
so as que tm a tarefa de tratar os erros destes dispositivos.

Gerncia de Entrada e Sada Captulo 5

Esta estratgia permite uma maior padronizao e diminuio do


nmero de rotinas de acesso aos perifricos de entrada e sada. Assim o
subsistema de E/S oferece um conjunto de rotinas, chamadas de rotinas
de entrada/sada, pelo qual o usurio consegue acessar os dispositivos,
independentes de ter que conhecer toda sua complexidade. Dessa forma, o
subsistema de E/S considerado independente de dispositivo.
Consequentemente, ao instalar um novo dispositivo no computador,
no h necessidade de alterar as rotinas dos programas do usurio.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

5.3.3 Aplicao do usurio

Os dispositivos de entrada e sada so acessados atravs dos aplicativos e linguagens de programao utilizadas pelos usurios. Por exemplo,
o caso de um aplicativo de planilha eletrnica, as operaes para abrir e
salvar um arquivo no disco rgido (dispositivo de armazenamento) feitas
pelo aplicativo ficam transparentes para o usurio. As linguagens de programao, utilizadas para desenvolvimento dos aplicativos, possuem um
conjunto de comandos de alto nvel que so traduzidos pelo compilador
da linguagem em funes que so disponveis em bibliotecas de entrada e
sada. Estas bibliotecas contm funes de chamadas ao sistema operacional e so fornecidas pelos fabricantes do compilador. Uma caracterstica
importante destas bibliotecas e que so fornecidas como um mdulo objeto (relocvel), ou seja, a biblioteca ligada com o programa desenvolvido
pelo programador para compor o aplicativo final.
As operaes de entrada e sada podem ser classificadas de acordo
com o seu sincronismo, podendo ser sncrona ou assncrona. A maioria
dos comandos de alto nvel funciona na forma sncrona. Neste modelo de
sincronismo, o processo chama uma operao e fica em estado de espera
aguardando o final da chamada. Na chamada assncrona, o processo chama a operao e no necessita aguardar o final da chamada em estado de
espera, o processo continua pronto para ser executado.
Tempo
Processo
Bloqueado

Processo A
Chamada

Retorno

Chamada Sincrona
125

Sistemas Operacionais

Tempo
Processo A
Chamada

Retorno

Processo B
Chamada Assincrona

Figura 90 Chamada sncrona e assncrona.

Proibida a reproduo UniSEB

5.4 Sistema de Arquivos

126

Estudamos em captulos anteriores o armazenamento primrio e


secundrio do sistema operacional. O armazenamento secundrio e o
local onde os arquivos (programas e dados) so armazenados de forma
confivel e ntegro, mesmo que o computador permanea longos perodos
de tempo desligado. O armazenamento secundrio pode ser feito por diversos tipos de dispositivos de entrada e sada como, por exemplo, disco
rgido, discos pticos, fitas magnticas, etc. Os arquivos so gerenciados e
organizados pelo sistema operacional atravs do sistema de arquivos.
Segundo Deitel et al. (2005) o sistema de arquivos tem a funo de:
Gerenciamento de arquivos: fornecer estrutura para que os arquivos possam ser armazenados, referenciados, compartilhados
e que possam estar em segurana.
Integridade do arquivo: garantir que os dados armazenados em
um arquivo no sejam corrompidos por qualquer motivo que
seja.
Mtodos de acesso: fornecer mecanismo de acesso aos dados
armazenados.
Estas caractersticas permitem que o usurio possa, atravs dos
sistemas de arquivo, estruturar os arquivos da melhor forma para que
possam ser utilizados em cada aplicao. O sistema de arquivos deve
prover mecanismos em que os arquivos possam ser compartilhados entre
usurios de uma forma segura e controlada. O sistema de arquivo deve
garantir a independncia do dispositivo, ou seja, o usurio pode efetuar
operaes com os arquivos atravs de nomes simblicos. Nomes simblicos so nomes lgicos de fcil interpretao do usurio, por exemplo,
MeuDiretrio:MeuArquivo.txt. Caso fosse necessrio utilizar nomes de
dispositivos fsicos para operaes com arquivos, teria que especificar o
lugar do dispositivo onde o arquivo deveria ser acessado, por exemplo,

Gerncia de Entrada e Sada Captulo 5

disco 2, blocos 782-791. Alm disso, os usuConexo:


rios devem poder criar, modificar, eliminar
Leia mais sobre Sistema
arquivos e que o sistema de arquivo oferea
de Arquivos em:
<http://pt.kioskea.net/
uma interface amigvel e consistente a reacontents/612-o-sistema-delizao de todas as tarefas citadas anterior-arquivos>.
mente. Deitel et al. (2005) destaca ainda a
importncia do sistema de arquivo fornecer
mecanismo que facilitem a criao de cpias
de segurana e recuperao que permitam ao
usurio a recuperar quaisquer dados danificados ou
perdidos.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

5.5 Conceitos de Arquivos e Diretrios

Silberschatz et al. (2004) define os arquivos como sendo um conjunto de dados relacionados que gravado no armazenamento secundrio
atravs de um nome. A gravao feita no armazenamento secundrio
principalmente por ser um dispositivo no voltil como um disco rgido,
discos magnticos e discos pticos.
O conjunto de dados contidos em um arquivo pode ser uma sequncia de bit, bytes, linhas ou registros. Os dados ainda podem estar na forma
numrica, alfabtica, alfanumrica ou binria. Desta forma possvel armazenar um arquivo figura, texto, programa executvel, programa fonte, msica,
vdeo, etc. Assim, os arquivos podem representar programas ou dados.
Na viso do usurio e dos programas os arquivos so uma maneira
de gravar informaes no disco rgido e de recuper-las de volta em algum momento. Tanto a gravao quanto a leitura deve ser feita de forma
que o usurio no tenha que conhecer os detalhes de como o disco rgido
trabalha realmente. Isto feito atravs de uma viso lgica uniforme fornecida pelo sistema operacional para o armazenamento de informaes.
Quando um arquivo criado por um programa, ele recebe um nome,
composto por uma cadeia de caracteres. Atravs do nome o arquivo pode
ser acessado pelo programa que o criou ou por outros programas. Tanenbaum e Woodhyll (1999) afirma que dependendo do sistema operacional
h regras diferentes para os nomes dos arquivos, mas todos os sistemas
operacionais aceitam como nomes vlidos de arquivos, sequncias de
caracteres com oito letras. Sistemas mais modernos permitem at 255
caracteres para nomes de arquivos. Outro ponto a ser observado com
relao a nomes escritos com letras maisculas e nomes escritos com letras
127

Sistemas Operacionais

minsculas. No sistema Windows, por exemplo, o arquivo com nome SISTEMA_OPERACIONAL.DOCX a mesma coisa que sistema_operacional.
docx e Sistema_Operacional.DocX. J para o UNIX, os nomes de arquivos
SISTEMA_OPERACIONAL.DOCX, sistema_operacional.docx e Sistema_
Operacional.DocX so arquivos distintos. Em geral, os sistemas operacionais
permitem nomes de arquivos com duas ou mais partes separadas por um
ponto. A parte aps o ponto chamada de extenso. A extenso tem como
finalidade informar algo sobre o arquivo ou uma conveno definida para
ele. Por exemplo, um arquivo com o nome noticia.txt, a extenso .txt, tem
como conveco indicar que o arquivo provavelmente contm um texto. A
tabela a seguir exibe algumas extenses mais comuns para arquivos.
Tabela 9 - Extenses tpicas de arquivos.

Proibida a reproduo UniSEB

Extenso

128

Significado

file.back

Arquivo de cpia de segurana

file.c

Programa fonte em C

file.gif

Imagem no formato de intercmbio grfico da Compuserve


(graphical interchange format)

file.html

Arquivo de auxlio

file.jpg

Documento do Word Wide Web em linguagem de marcao de


hipertexto (hypertex markup language HTML)

file.mp3

Imagem codificada com padro JPEG

file.mpg

Msica codificada no formato de udio MPEG camada 3

file.o

Filme codificado com padro MPEG

file.pdf

Arquivo-objeto (sada do compilador, ainda no-ligado)

file.ps

Arquivo no formado porttil de documentos (portable document format PDF)

file.tex

Arquivo no formato PostScript

file.tex

Entrada para o programa de formatao TEX

file.txt

Arquivo de textos

file.zip

Arquivo comprimido

Os arquivos possuem um conjunto de informaes de controle conhecidas como atributos. Dependendo do sistema operacional, os atributos de um arquivo podem variar. Em geral os atributos so:
Tamanho: o total de dados que esto armazenados no arquivo.
Localizao: o local onde o arquivo est armazenado.

Gerncia de Entrada e Sada Captulo 5

Acessibilidade: restrio quanto ao acesso dos dados do arquivo.


Tipo: indica o formato dos dados do arquivo permitindo saber
como o arquivo utilizado. Arquivo utilizado como imagem,
vdeo, udio, etc.
Datas: os arquivos mantm as datas de criao, ltimo acesso e
a sua ltima modificao.

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

A figura abaixo exibe as telas, no Windows 7, com os principais


atributos de um arquivo. Estas telas podem ser acessadas clicando com o
boto direito do mouse sobre um arquivo e escolhendo a opo Propriedade.

Figura 91 Propriedade de um arquivo no Windows 7.

Os dados armazenados e recuperados em um arquivo, feitas por


uma aplicao ou pelo sistema operacional, so feitas atravs de um conjunto de operaes. As operaes bsicas oferecidas pelo sistema operacional so:
129

Sistemas Operacionais

Criar: permite a criao de um novo arquivo. A criao de um


arquivo envolve definir nome, atributos, localizao, permisses, etc.
Abrir: permite a abertura do arquivo. Antes de abrir, o sistema
operacional efetua vrias operaes, tais como verificar se o
arquivo existe na localizao informada, se as permisses informadas permitem o acesso ao arquivo, etc.
Ler: permite a leitura do arquivo.
Escrever: permite adicionar dados ao arquivo.
Copiar: permite que um arquivo seja copiado.
Renomear: permite que um arquivo seja renomeado.
Listar: permite exibir ou imprimir o contedo de um arquivo.
Fechar: impedir que novas referncias sejam feitas a um arquivo at que o mesmo seja reaberto.
Destruir: elimina o arquivo do armazenamento secundrio.
Deitel et al. (2005) descreve as operaes que podem ser feitas para
a manipulao do conjunto de dados contidos em um arquivo. Estas operaes so:
Ler: a memria de um processo recebe uma cpia dos dados
contidos em um arquivo.
Escrever: os dados contidos na memria de um processo so
copiados para um arquivo.
Atualizar: permite alterar os dados contidos em um arquivo.
Inserir: permite inserir dados em um arquivo.
Apagar: permite remover dados de um arquivo.

Proibida a reproduo UniSEB

5.5.1 Estrutura de arquivos

130

A forma como os dados esto organizados internamente dentro de


um arquivo conhecida como estrutura de arquivos. As estruturas de arquivos podem ser feitas de diversas formas. Algumas das estruturas mais
comuns encontradas para arquivos so apresentadas na figura 92.
A primeira forma de organizao (figura 92 (a)) uma sequncia de
bytes no estruturados. Neste tipo de estrutura, a aplicao que define toda
a organizao interna do arquivo. A forma de estruturao de um arquivo
apresentada na figura 92 (b). Nesta estrutura, um arquivo contm um
conjunto de registros de comprimento fixo. Os registros possuem uma

Gerncia de Entrada e Sada Captulo 5

estrutura interna para organizar os dados. Na terceira forma (figura 92 (c))


os registros no tem a necessidade de serem do mesmo comprimento.
O registro possui um campo chave. O campo chave permite uma
organizao em forma de rvore de registro, como tambm, permitir a
rpida localizao de uma chave particular dentro da rvore.
1 Byte

1 Registro

Gato

Vaca

Cachorro

Galinha

(a)

bis

(b)

Formiga

Raposa

Porco

Cabrito

Leo

Coruja

Potro

Rato

Minhoca

Carneiro

(c)

Figura 92 Tipos de estruturas de arquivos. (a) Sequencia de bytes. (b) Sequencia de


registros. (c) rvore.
Fonte: Tanenbaum e Woodhyll (1999)

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

5.5.2 Sistema de Diretrio

Um sistema pode conter uma elevada quantidade de arquivos armazenados em seu disco rgido. A organizao lgica destes arquivos feita
pelo sistema de arquivos atravs de estruturas de diretrios.
A forma como os diretrios so organizados pode variar de acordo
com o sistema operacional. As formas mais comuns de organizao so
mostradas na figura 99. A primeira forma de estrutura e que foi utilizada
nos primeiros computadores mostrada na figura 99 (a). Esta estrutura,
considerada a forma mais simples de organizao, uma estrutura de
diretrio de nvel nico (ou plana). No diretrio de nvel nico, todos
os arquivos de todos os usurios so mantidos em um nico diretrio. O
problema desta estrutura que os usurios criem arquivos com o mesmo
nome.
A figura 93 (b) exibe uma estrutura de diretrio em dois nveis.
Com a estrutura em dois nveis possvel que cada usurio possua o seu
prprio diretrio. Desta forma, os usurios podem criar seus arquivos com
qualquer nome sem ter a necessidade de verificar se outro usurio criou
um arquivo com o mesmo nome. Para permitir que os usurios possam
131

Sistemas Operacionais

agrupar seus arquivos de forma lgica surgiu a abordagem mostrada na


figura 93 (c). Esta estrutura conhecida como diretrio estrutudados em
rvore. Nesta estrutura os usurios podem criar quantos diretrios forem
necessrios permitindo que possam agrupar seus arquivos de forma lgica.
Diretrio-raiz

Diretrio-raiz
A

Diretrio-raiz
A

B
A

Diretrio
de usurio

Arquivos

B
B

(b)

Subdiretrios
de usurio
(a)

C
C

(c)

Figura 93 Trs projetos de sistemas de arquivos. (a)Diretrio de nvel nico (ou plana).
(b) Diretrio em dois nveis. (c) Diretrio em rvore.
Fonte: Tanenbaum e Woodhyll (1999).
Segundo Deitel et al. (2005), um diretrio um arquivo onde so armazenados os nomes e as localizaes referentes a outros arquivos.

5.6 Mtodos alocao

A alocao de espao em armazenamento secundrio enfrenta problemas semelhantes aos de alocao da memria principal. Toda vez que
se aloca e libera espaos no disco rgido, este fica cada vez mais fragmentado. A fragmentao do disco faz com que os arquivos fiquem espalhados
por blocos, muitas vezes distantes uns dos outros, que podem causar perda
de desempenho do sistema.
Existem trs formas mais utilizada para alocar espao em disco:
contguo, encadeado e indexado.

Proibida a reproduo UniSEB

5.6.1 Alocao Contgua

132

A abordagem de Alocao Contgua a mais simples de alocao de


espao no disco rgido. Na alocao contgua um arquivo ocupa um conjunto de blocos sequenciais. Para acessar um arquivo, o sistema operacional necessita conhecer o endereo fsico do bloco e o tamanho do arquivo.
O problema neste tipo de alocao que se no houver a quantidade de
espao contguo suficiente para armazenar um arquivo, este arquivo no
pode ser criado. Outro problema est relacionado ao tamanho do arquivo

Gerncia de Entrada e Sada Captulo 5

que tende a mudar de tamanho conforme alterado pelo usurio. Isto


pode acarretar um aumento no tamanho do arquivo e talvez no haja espao contguo disponvel para suport-lo.
Tabela de diretrio
bytes

blocos

incio

foto1.jpg

10417

nome
relat.pdf

28211

13

instruc.txt

6214

20

sinfonia.mp3

19116

blocos lgicos com 4096 bytes

bloco em uso
bloco livre

00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

Figura 94 Estratgia de alocao contgua.


Fonte: Maziero (2014).

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

5.6.2 Alocao Encadeada

A alocao encadeada permite que os blocos sejam alocados de forma no contgua. Os blocos de um arquivo podem estar armazenados em
locais diferentes no disco rgido. O diretrio contm um ponteiro para o
primeiro bloco do arquivo, este bloco, por sua vez, aponta para o prximo, e assim sucessivamente o mtodo de alocao encadeada resolve boa
parte dos problemas encontrados na alocao contgua. O problema neste
tipo de alocao, est no fato dos blocos dos arquivos estarem espalhados
pelo disco rgido, h um aumento no tempo de acesso destes arquivos.

133

Sistemas Operacionais

Tabela de diretrio
nome
bytes

blocos incio

foto1.jpg

10417

relat.pdf

28211

13

instruc.txt

6214

20

sinfonia.mp3

6214

blocos lgicos com 4096 bytes

bloco em uso
bloco livre

00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

Figura 95 Alocao Encadeada.


Fonte: Maziero (2014).

5.6.3 Alocao indexada

Proibida a reproduo UniSEB

Um problema da alocao encadeada que para acessar um determinado bloco necessrio iniciar a busca no primeiro bloco e ir navegando na lista at encontrar o bloco desejado. No possvel acessar o bloco
diretamente. Este problema foi solucionado com a alocao indexada.
Neste mtodo todos os ponteiros de um arquivo so colocados em um
mesmo bloco chamado bloco de ndices, conforme figura abaixo. Desta
forma qualquer bloco do arquivo pode ser acessado diretamente.

134

Gerncia de Entrada e Sada Captulo 5

Tabela de i-nodes

Tabela de diretrio
nome
foto1.jpg
relat.pdf

i-node
4
5

instruc.txt

10

sinfonia.mp3

31

10417
...

blocos lgicos com 4096 bytes

i-node 5
meta-dados

bloco em uso
bloco livre

ponteiros
de dados

13
16
17
19
22
10
12
null
null
null

Figura 96 Alocao indexada.


Fonte: Maziero (2014).

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

5.7 Gerncia de espaos livres

Devido a quantidade limitada de espao em disco rgido, o sistema


operacional tem que manter informaes dos espaos livres no disco para
que possam ser utilizados. Estes espaos livres incluem os j existentes
alm daqueles liberados quando um arquivo excludo do sistema. As
estratgias mais comuns adotadas pelo sistema operacional para manter
estas informaes so:
Mapa de bits: neste mtodo cada bloco no disco representado
por um bit. Se o bloco estiver em uso, o seu bit no mapa de bits
tem o valor igual a 1. Se o bloco esta livre, o valor referente a
seu bit tem o valor igual a 0 (figura 97 (a)).
Lista encadeada: este mtodo mantm uma lista encadeada
com todos os blocos livres (figura 97 (b)).
Tabela de blocos livres: esta abordagem leva em considerao
a utilizada de blocos contguos. A tabela mantm o endereo do
primeiro bloco de cada segmento e a quantidade da sequencia
de blocos (figura 97 (c)).
135

Sistemas Operacionais

Incio

11001101
10000111
01110100
.
.
.
11100000
(a) Mapa de bits

(b) Lista encadeada

Bloco

Contador

10

13

25

20

50

(c) Tabela de blocos livres

Figura 97 Gerncia de espaos livres.


Fonte: Machado e Maia (2007).

5.8 Proteo de acesso

Proibida a reproduo UniSEB

Devido o acesso aos arquivos por diversos usurios e levando em


considerao que muitos destes arquivos podem conter dados confidencias como senhas, nmeros de carto de crdito, etc., h uma grande
necessidade do sistema operacional fornecer mecanismos de controle de
acesso aos arquivos. Entre os tipos de operaes que podem ser controladas so:
Leitura: controla qualquer operao para visualizar, editar ou
copiar o arquivo.
Escrever: controla qualquer operao para incluir ou alterar o
arquivo.
Executar: controla qualquer operao de carregamento e execuo do arquivo.
Excluir: controla qualquer operao para excluir o arquivo.

136

O controle de acesso a um arquivo pode ser feito atravs de senha


de acesso. Somente o usurio que possuir a senha de acesso pode efetuar
as operaes descritas acima em relao ao arquivo. Outra forma de controle baseada em grupos de usurios. Nesta abordagem o acesso a um
arquivo dado a um grupo de usurio. Os usurios ento so adicionados
a este grupo quando necessitarem fazer acesso ao arquivo.

Gerncia de Entrada e Sada Captulo 5

Atividades

01. De acordo com o material, qual a forma que o sistema operacional


acessa os dispositivos de entrada e sada?

02. Os dispositivos de entrada e sada podem ser classificados levando em


considerao a anlise de diversos autores. Quais so as formas de classificao de um dispositivo quando so consideradas as formas como os
dados so acessados a partir deste dispositivo.

Reflexo

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Neste captulo estudamos os principais componentes de hardware e


software de entrada e sada. Vimos como o sistema operacional tem a difcil tarefa de gerenciar a complexidade dos diversos tipos de dispositivos
de entrada e sada que podem variar em funo, velocidade, etc. Fomos
alm, e compreendemos como so feitas as comunicaes entre estes dispositivos e o sistema operacional, atravs das controladoras, drives, etc.
Por fim estudamos os principais aspectos envolvidos no gerenciamento
de arquivos e diretrios. A compreenso das dificuldades do sistema de
gerenciamento de dispositivos de entrada e sada como tambm do sistema de gerenciamento de arquivos de grande relevncia para um melhor
entendimento das solues providas para um sistema operacional.
No pare os seus estudos, mantenha-se sempre lendo e pesquisando
sobre os diversos temas relacionados aos sistemas operacionais. Esperamos que todos estes conhecimentos adquiridos sejam um diferencial em
sua vida profissional. Desejamos a voc um grande sucesso!

Leituras recomendadas

Para voc avanar mais o seu nvel de aprendizagem envolvendo os


conceitos de sistemas operacionais e demais assuntos deste captulo, consulte as sugestes de links abaixo:
Captulos 11 e 12 do livro
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G Fundamentos
de Sistemas Operacionais. 6 ed. Rio de Janeiro: LTC - Livros Tcnicos
Editora S.A., 2004.
137

Sistemas Operacionais

Referncias
CARPINELLI, J.D. Computer Systems Organization and Architecture.
Boston, MA: Addison-Wsley, 2001.
DEITEL H. M.; DEITEL P. J.; CHOFFNES D. R. Sistemas Operacionais. 3 ed. So Paulo, Editora Prentice-Hall, 2005.
HENNESSY, J. L.; PATTERSON, D. A. Arquitetura de Computadores: uma abordagem quantitativa. 3 ed. Rio de Janeiro: Campus, 2003.
JOHNSTONE, M. S.; WILSON, P. R. The memory fragmentation
problem: solved? ACM SIGPLAN Notices, 34(3): 2636, 1998.
MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 4 ed. Rio de Janeiro: LTC - Livros Tcnicos Editora S.A., 2007.
MAZIERO, C. A. Sistemas Operacionais: Conceitos e Mecanismos.
Disponvel em: <http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.
php/so:so-livro.pdf>. Acesso em: set. 2014.
OLIVEIRA, R. S., CARISSIMI, A. S., TOSCANI, S. S. Sistemas
Operacionais. 4 ed. Porto Alegre : Editora Bookman, 2010.
PATTERSON, D. A.; HENNESSY, J. L. Organizao e Projeto de
Computadores. 3 Ed. Rio de Janeiro: Campus, 2005.
SILBERSCHATZ, A.; GALVIN, P. B.; GAGNE, G Fundamentos de
Sistemas Operacionais. 6 ed. Rio de Janeiro: LTC - Livros Tcnicos
Editora S.A., 2004.

Proibida a reproduo UniSEB

STALLINGS, W. Arquitetura e Organizao de Computadores, 5


Edio, Prentice Hall, So Paulo, 2002.

138

TANENBAUM, A. S.; WOODHYLL, A. S. Sistemas operacionais


projeto e implementao. 2 ed Porto Alegre: Bookman, 1999.

Gerncia de Entrada e Sada Captulo 5

Gabarito
Captulo 1
01. De acordo com o material, qual das opes abaixo pode ser classificada como
sistema operacional?
a) Android e MS-Excel.
b) Windows e Internet Explorer.
c) Linux e Windows.
d) Android e MS-Word.
e) Linux e Broffice.
Dos programas acima citados, os que so considerados sistemas operacionais so: Android, Windows e Linux. Assim, a opo correta a C.
02. Quais as principais funes do kernel?
As principais funes do kernel so a sincronizao e comunicao entre processos,
escalonamento e controle dos processos, gerncia de memria, gerncia de sistema de
arquivos, gerncia de dispositivos de E/S.
03. Para que uma aplicao possa utilizar os servios disponveis pelo Kernel deve
efetuar a comunicao com o Kernel por meio de:
a) Device Drivers
b) Batch
c) Scripting
d) System Calls
e) Shell
A resposta certa a D. O System Calls um intermedirio entre as aplicaes do usurio
e o Kernel.

Captulo 2

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

01. O processo composto por trs partes, entre elas o contexto de hardware. Das
opes abaixo, qual opo que faz parte do contexto de hardware?
a) Endereo de memria
b) Registrador PC
c) PID
d) Privilgio
e) Tempo de processador
A resposta correta a B. Das opes acima, apenas o Registrador PC faz parte do contexto de hardware.
02. O processo composto por trs partes, entre elas o contexto de software. Das
opes abaixo, qual opo que faz parte do contexto de software?
a) Registrador SP
b) Registrador PC
139

Sistemas Operacionais

c) PID
d) Endereo de memria
e) Registrador de status
A resposta correta a C. Das opes acima, apenas o PID faz parte do contexto de software.
03. Por que os processos I/O-Bound ficam no estado Em Espera durante grande
parte do seu ciclo de vida
Porque os processos I/O-Bound esto mais ligados aos dispositivos de entrada e sada,
cujo acesso so mais lentos que outros componentes do sistema

Captulo 3
01. De acordo com o material, o que poltica de escalonamento de um processo?
Atravs da politica de escalonamento, o sistema operacional gerencia o processador definindo qual processo deve ser executado, tornando possvel a multiprogramao.
02. Qual a diferena entre o escalonamento preemptivo e no-preemptivo?
O escalonamento no-preemptivo permite que o processo seja executado do incio ao fim
sem ser interrompido at ser finalizado. J no escalonamento preemptivo, o escalonador
tem a capacidade de trocar um processo, que poderia continuar executando, por outro
03. Descreva as principais diferenas entre os escalonamentos do tipo Circular e
FIFO?
O escalonamento circular o sistema operacional determina um perodo de tempo que um
processo pode ser executado pelo processador. No final do tempo, o processo trocado
por outro. J no escalonamento FIFO o processo utiliza o processador at terminar para
ento ser trocado por outro. O escalonador FIFO no-preemptivo enquanto o circular
preemptivo.

Captulo 4

Proibida a reproduo UniSEB

01. Quais so as formas de alocao de memria pelo sistema operacional?


O sistema operacional pode alocar a memria de forma Contgua ou No-Contgua. A
forma Contgua pode ser Simples ou Particionada Esttica (Fixa) / Dinmica. J a No-Contgua pode ser por Paginao, Segmentao ou Segmentao com Paginao.

140

02. Como funciona a tcnica conhecida como Sobreposies (overlay)?


Nesta tcnica o programa desenvolvido de forma que possa ser dividido em partes
lgicas independentes de forma a permitir que uma parte possa ser substituda por outra
quando no estiver em uso.

Gerncia de Entrada e Sada Captulo 5

Captulo 5
01. De acordo com o material, qual a forma que o sistema operacional acessa os
dispositivos de entrada e sada?
O sistema operacional no acessa diretamente os dispositivos de entrada e sada. O acesso aos diapositivos feito atravs de uma controladora.
02. Os dispositivos de entrada e sada podem ser classificados levando em considerao a analise de diversos autores. Quais so as formas de classificao de um dispositivo quando so consideradas as formas como os dados so acessados a partir

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

deste dispositivo.
De acordo com Tanenbaum e Woodhyll (1999), que leva em considerao a forma em
que os dados podem ser acessados e/ou obtidos a partir dispositivos de E/S, os dispositivos podem ser classificados em: dispositivos de blocos ou dispositivos de caractere.

141

Sistemas Operacionais

Proibida a reproduo UniSEB

Minhas anotaes:

142

EAD-15-Sistemas Operacionais Proibida a reproduo UniSEB

Gerncia de Entrada e Sada Captulo 5

Minhas anotaes:

143

Sistemas Operacionais

Proibida a reproduo UniSEB

Minhas anotaes:

144