Vous êtes sur la page 1sur 70

PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

SISTEMAS
OPERACIONAIS

1
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

PROGRAMA DE DISCIPLINA

ESCOLA OFERTANTE:

CURSO: TCNICO EM INFORMTICA

SEMESTRE: ANO: 2013

DISCIPLINA: SISTEMAS OPERACIONAIS C/H ANUAL: 85h/a

MDULO: I C/H SEMANAL: 5h/a

I Objetivos

A disciplina Sistemas Operacionais tem por objetivo fornecer ao aluno uma viso detalhada dos
principais mecanismos envolvidos na concepo de um sistema operacional moderno.
Compreendendo sua importncia, conhecendo as metodologias utilizadas para controle e
aproveitamento dos recursos do computador; conhecendo os principais componentes de um sistema
operacional e dos mecanismos e tcnicas usadas para desenvolv-los.

Apresentar aos estudantes os conceitos e princpios bsicos dos sistemas operacionais de


computadores digitais, observando os sistemas operacionais como gerente dos recursos
computacional e como elemento de interface entre programas de aplicao e os recursos da
mquina.

II Contedo

VISO GERAL
Introduo
2. Definio de Sistemas Operacionais
3. Histria dos Sistemas Operacionais
4 Classificao dos Sistemas Operacionais
5 Funcionalidades
6 Estruturas do Sistema Operaciona
7 Chamadas de Sistemas
8 Arquiteturas de Sistemas Operacionais
GERENCIAMENTO DE PROCESSOS
1 Introduo ao modelo de processos
2 Estados de um Processo
3 Threads
4 Comunicao Interprocessos.
5 Sees Crticas
6 Deadlocks : Impasse entre Processos
2
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

7 Gerenciador de processos
8 Escalonamento de processos
9 Escalonamentos No-Preemptivos
10 Escalonamentos Preemptivos
GERENCIAMENTO DE ENTRADA E SADA
1 Introduo
2. Princpios de Hardware de E/S
Controladoras de Dispositivos
3 Princpios de Software de E/S
GERENCIAMENTO DE MEMRIA
1 Introduo
2. Gerenciamento Bsico de Memria
3. Gerencia de Memria para Multiprogramao
3 Memria Virtual
GERENCIA DE ARQUIVOS
1. Introduo aos Sistemas de Arquivos
2 Tipos de Arquivos
3 Atributos
3 Operaes
4 Implementao de Arquivos
5 Diretrios

III - Metodologia
- Aulas expositivas e dialogadas,
- Aulas prticas com Simulao e Demonstrao utilizando o Simulador de Sistema Operacional
SOsim 2.0,
- Apresentao de seminrios e Discusso dirigida,
-Atividades e exerccios propostos no material.

IV - Avaliao
- A avaliao dos discentes ser realizada perante os resultados diagnsticos aplicados ao longo
do mdulo e dividida conforme as formas formativas e somativas de verificao de aprendizagem.
Os instrumentos de avaliao formal (provas e/ou trabalhos) compem o valor mximo de 5
(cinco) pontos e tero um complemento de 5 (cinco) pontos considerando aspectos qualitativos
como: participao nas discusses sobre tpicos da disciplina, a resoluo de exerccios, a
execuo de trabalhos de pesquisa, assiduidade, realizao de trabalhos prticos.

.
V Bibliografia
TANEMBAUM,A.S. Sistemas Operacionais Modernos .2 edio . So Paulo,Ed.Prentice
Hall,2003
LEO,Erico Meneses : Sistemas Operacionais .Universidade Aberta do Brasil
OLSEN .Diogo Roberto .Sistemas Operacionais/ LAUREANO.Marcos Aurlio.-Curitiba: Editora
do Livro Tcnico .2010
Maziero, Carlos Alberto. Sistemas Operacionais Conceitos Bsicos .2011
Machado, Francis B. Arquitetura de Sistemas Operacionais.Ed. LTC
Abraham Silberschatz .Sistemas Operacionais: Conceitos e Aplicaes.Ed. Campus
3
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Tanenbaum , A.S. Sistemas Operacionais Modernos .Ed. Campus


A evoluo dos sistemas operacionais-Traduzido e adaptado por Raimundo G Nbrega Filho o
texto Operating Systems: Design And Implementation,Andrew S. Tanenbaum - Editora Prentice
Hall
http://www.inf.ufes.br/~zegonc/material/Sistemas%20Operacionais/Introducao.pdf
http://www.afms.com.br/sistemas_operacionais.html
www.docstoc.com/.../Lista-de-Exerccios-respondida---Grupo-Educacion
Simulador de Ensino para Sistemas Operacionais
http://www.training.com.br/sosim/-
http://www.ppgia.pucpr.br/_maziero
http://www.inf.unioeste.br/~marcio/SO/Aula9SistemadeArquivos.pdf
http://docente.lages.ifsc.edu.br/juliano.goncalves/MaterialDidatico/Sistemas%20Operacionais/Exer
c%C3%ADcios%20Revis%C3%A3o%20ProvaI.pdf
http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.php/so:filesystem.pdf
http://www.cafw.ufsm.br/~roberto/?page_id=26
http://www.metropoledigital.ufrn.br/aulas/disciplinas/sist_operacional

4
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

SUMRIO
VISO GERAL ..................................................................................................................................... 6
1 Introduo ....................................................................................................................... 6
2. Definio de Sistemas Operacionais ............................................................................... 7
3. Histria dos Sistemas Operacionais ................................................................................ 8
4 Classificao dos Sistemas Operacionais ....................................................................... 12
5 Funcionalidades ............................................................................................................. 17
6 Estruturas do Sistema Operacional................................................................................. 18
7 Chamadas de Sistemas ................................................................................................... 19
8 Arquiteturas de Sistemas Operacionais .......................................................................... 19
GERENCIAMENTO DE PROCESSOS .....................................................................................................24
1 Introduo ao modelo de processos................................................................................ 24
2 Estados de um Processo ................................................................................................. 26
3 Threads ......................................................................................................................... 27
4 Comunicao Interprocessos.......................................................................................... 28
5 Sees Crticas .............................................................................................................. 30
6 Deadlocks : Impasse entre Processos ............................................................................. 30
Gerenciador de Processos ................................................................................................. 34
8 Escalonamento de Processos.......................................................................................... 34
9 Escalonamentos No-Preemptivos ................................................................................. 35
10 Escalonamentos Preemptivos ....................................................................................... 36
II ATIVIDADE PRTICA .......................................................................................................................41
GERENCIAMENTO DE ENTRADA E SADA ...........................................................................................43
1 Introduo ..................................................................................................................... 43
2. Princpios de Hardware de E/S...................................................................................... 43
Controladoras de Dispositivos .......................................................................................... 44
3 Princpios de Software de E/S ........................................................................................ 45
GERENCIAMENTO DE MEMRIA ...............................................................................................49
1 Introduo ..................................................................................................................... 49
2. Gerenciamento Bsico de Memria .............................................................................. 50
3. Gerencia de Memria para Multiprogramao .............................................................. 51
Memria Virtual ............................................................................................................... 55
GERENCIA DE ARQUIVOS...................................................................................................................59
1. Introduo aos Sistemas de Arquivos............................................................................ 59
2 Tipos de Arquivos ......................................................................................................... 61
3 Atributos ....................................................................................................................... 61
3 Operaes...................................................................................................................... 62
4 Implementao de Arquivos .......................................................................................... 63
5 Diretrios ...................................................................................................................... 67
REFERENCIAS BIBLIOGRFICAS ..........................................................................................................70

5
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

VISO GERAL

1 Introduo

O Sistema Operacional um software que habilita as aplicaes e interagem


com o hardware de um computador, suas aplicaes gerenciam todos os recursos do
sistema (memria,processador,discos,impressoras e outros dispositivos ) de forma
organizada e otimizada.(Livro Tcnico ,Sistemas Operacionais . pg.09)
Os sistemas Operacionais podem ser encontrados em dispositivos que vo de
telefones celulares e automveis e de computadores pessoais a computadores de grande
porte
O software, de um modo geral, utilizado para solucionar os problemas do
usurio, enquanto que o hardware do computador o dispositivo fsico capaz de
executar esses softwares. Esses softwares, responsveis por realizar as atividades dos
usurios, comumente so chamados de programas aplicativos.

Como pode ser visto na Figura , levando em considerao que temos uma
camada intermediria, o SO entre os programas aplicativos e o hardware em si, o
usurio no necessita conhecer toda a complexidade de implementao do hardware do
Sistema Computacional para, assim, poder utiliz-lo.
O Sistema Operacional, de fato, opera como uma interface entre o usurio e o
dispositivo fsico em si, no qual o usurio, quando necessita acess-lo, faz essa
solicitao diretamente ao Sistema Operacional.

6
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

O sistema operacional uma estrutura de software ampla, muitas vezes


complexa que incorpora aspectos de baixo nvel (como drives de dispositivos e gerncia
de memria fsica) e de alto nvel (como programas utilitrios e a prpria interface
grfica).
Podemos concluir que os objetivos bsicos de um sistema operacional podem
ser sintetizados em duas palavras-chave: abstrao e gerncia, cujos principais
aspectos so detalhados a seguir.

2. Definio de Sistemas Operacionais

Segundo Tanenbaum, podemos definir um Sistema Operacional levando em


considerao dois pontos de vistas:

O Sistema Operacional como uma Mquina estendida;


O Sistema Operacional como gerenciador de recursos.

O Sistema Operacional como uma Mquina estendida

Acessar os recursos de hardware de um sistema de computao pode ser uma


tarefa complexa, devido s caractersticas especficas de cada dispositivo fsico e a
complexidade de suas interfaces.
O usurio (que pode ser um programador ou um usurio final), comumente,
no est interessado em saber os detalhes funcionais dos dispositivos. Como exemplo, o
usurio no quer saber o que preciso, em nvel de hardware, para que seja lida uma
determinada informao um disco rgido (tarefa bem complexa, que exige o
conhecimento de registradores, motores, cilindros e outros dispositivos fsicos). O
usurio deseja ter uma interface mais palpvel e mais simples de lidar. No caso dos
discos, por exemplo, uma abstrao tpica seria que o disco contenha um conjunto de
nomes de arquivos. A partir desses nomes, possvel realizar as operaes bsicas
(abrir, ler, escrever e fechar), sem se importar qual a velocidade e estado atual do motor,
por exemplo.
Assim, o Sistema Operacional aparece como o programa que esconde do
usurio a complexidade do hardware e apresenta uma viso fcil e simples para as
operaes sobre os dispositivos. Essa viso equivalente a uma mquina estendida ou
mquina virtual, mais fcil de lidar.

O Sistema Operacional como gerenciador de recursos

Por outro lado, o Sistema Computacional composto de uma srie de recursos,


no qual podemos enumerar: processadores, memrias, discos, mouses, teclados,
impressoras, placas de rede e uma infinidade de dispositivos em geral. Dessa forma, o
Sistema Operacional aparece como sendo o responsvel por organizar e alocar de forma
ordenada todos esses recursos disponveis.
Essa tarefa, em uma primeira vista, pode parecer simples. Porm, quando se
tem vrios programas disputando os recursos,que so limitados, necessrio utilizar
tcnicas de alocao dos dispositivos, a fim de se evitar inconsistncias e, at mesmo,
situaes que resultem numa parada do sistema de uma forma geral.Ento cabe ao
7
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

sistema operacional definir polticas para gerenciar o uso dos recursos de hardware
pelos aplicativos, e resolver eventuais disputas e conflitos.
Assim, um sistema operacional visa abstrair o acesso e gerenciar os recursos de
hardware, provendo aos aplicativos um ambiente de execuo abstrato, no qual o acesso
aos recursos se faz atravs de interfaces simples, independentes das caractersticas e
detalhes de baixo nvel, e no qual os conflitos no uso do hardware so minimizados.

Objetivos de um Sistema Operacional

Tornar a utilizao do computador eficiente e conveniente, a fim de ter


um ganho de produtividade e, dessa forma, utilizar o Sistema Computacional para
agilizar as atividades do dia-a-dia;
Garantir a integridade e segurana dos dados armazenados e processados
pelos programas e dos recursos fsicos disponveis.

3. Histria dos Sistemas Operacionais

Os Sistemas Operacionais, ao longo dos anos, vm se desenvolvendo e


ganhando novas caractersticas, sendo necessrio partimos ao seu histrico para que
possamos compreender como se deu essa evoluo. Partindo do pressuposto que a
histria dos Sistemas Operacionais sempre esteve intimamente vinculado histria das
arquiteturas de computadores, iremos fazer um breve resumo dos principais eventos
relacionados evoluo dos Sistemas Operacionais.( ERICO MENESES
LEO,SISTEMAS OPERACIONAIS )

Incio

Mquina Analtica de Babage

O primeiro computador digital, de fato, foi projetado por volta da dcada de


1820 pelo matemtico Charles Babbage e intitulada como motor analtico. Esta
mquina, por se tratar de um equipamento puramente mecnico e a tecnologia da poca
no permitir a construo de engrenagens de alta preciso o qual Babbage necessitava,
nunca funcionou adequadamente. Assim, o motor analtico de Babbage no possua
Sistema Operacional.

8
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Primeira Gerao (1945-1955)

Mark I ENIAC

Impulsionado pela Segunda Guerra Mundial, surgiram os grandes


computadores digitais, formados por milhares de vlvulas e que ocupavam salas
inteiras. Estes computadores, desenvolvidos por Howard Aiken e John Von Neumann,
eram extremamente lentos.
Para trabalhar nesta mquina era necessrio o conhecimento do funcionamento
do seu hardware, onde a programao era feita atravs de linguagem de mquina,
freqentemente ligando painis de conectores com fios para o controle das funes
bsicas.
Nessa poca, ainda no existia o conceito de Sistema Operacional. Por esse
fato, esta gerao ficou conhecida como a gerao das vlvulas e painis de conectores.

Segunda Gerao (1956-1965)

Em 1952, a Bell Laboratories inventou o Transstor que passou a ser um


componente bsico na construo de computadores e que lhes garantia algumas
vantagens como menor aquecimento, maior poder de clculo, mais fivel e rpido,
menor consumo de energia para alm de no precisar de tempo para aquecer. Os
clculos passaram a ser medidos de segundos para microssegundos. O primeiro
computador a transstores o TRADIC, da Bell Laboratories e apareceu em 1955,
possua 800 transstores cada um em seu prprio recipiente. Outro modelo dessa poca
era o IBM 1401, com uma capacidade memria base de 4.096 bytes operando em ciclos
de memria de 12 microssegundos. O tamanho dos computadores era ainda bastante
grande e a instalao de um destes IBM 1401 ocupava uma sala. Em 1958 apareceu o
IBM TX-0, tinha um monitor de vdeo de alta qualidade, alem de ser rpido e
relativamente pequeno. O PDP-1 virou mania no MIT pois os alunos utilizavam o
computador para jogar Rato-no-Labirinto e Spacewar com o auxlio de uma caneta
ptica e um joystick. O elevado preo desta mquina restringia a sua utilizao a
aplicaes estratgicas do governo, grandes empresas e universidades.

9
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Primeiro transistor

Terceira Gerao (1966-1970)

Circuitos integrados

A terceira gerao conhecida com gerao dos circuitos integrados (CIs) e


da multiprogramao, diminuindo consideravelmente o preo do computador,
possibilitando assim sua aquisio por empresas. Esta poca se caracteriza pelo grande
aumento do poder de processamento e, tambm, a diminuio dos equipamentos.
Nesta poca, a IBM lanou o System/360, que era uma srie de computadores
pequena, poderosa e, sobre tudo, compatvel. O 360 foi projetado para manipular
clculos tanto cientficos como comerciais, ou seja, em uma nica famlia de mquinas
era possvel satisfazer as necessidades de praticamente todos os clientes.
Porm, para atender todas as aplicaes e perifricos disponveis por essa
famlia de mquinas, a IBM teve que desenvolver um Sistema Operacional (OS/360)
10
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

extremamente grande e complexo, posto que as aplicaes disponveis, comumente,


eram contraditrias. Este Sistema Operacional consistia de milhes de linhas de
linguagem assembler escrita por milhares de programadores e muitos bugs, que exigiam
verses e mais verses a fim de corrigi-los.
Apesar de todos os problemas, o OS/360 e os Sistemas Operacionais
semelhantes atenderam a maioria dos seus clientes razoavelmente bem. Alm disso, eles
lanaram vrias tcnicas utilizadas at hoje, como exemplo a multiprogramao. A
multiprogramao consistia em dividir a memria em vrias parties a fim de permitir
que vrias tarefas sejam carregadas em cada partio. Enquanto uma tarefa esperava
alguma operao de Entrada ou Sada, outra tarefa poderia usar o processador (CPU).
Outro recurso disponvel nos Sistemas Operacionais da terceira gerao era a
capacidade de ler Jobs (tarefas) de cartes para o disco. Assim, sempre que um job
acabava sua execuo, o Sistema Operacional podia carregar um novo job do disco para
a partio e execut-lo. Esta tcnica conhecida como spooling.
Entretanto, os Sistemas Operacionais ainda eram basicamente sistemas em lote
e que no exigiam comunicao com o usurio. Assim, muitos programadores sentiam
falta das mquinas de primeira gerao, que eram disponibilizadas por completa para
eles e, assim, podiam depurar seus programas. Assim, a multiprogramao evoluiu
preocupada em oferecer aos usurios tempos de respostas razoveis e uma interface
cada vez mais amigvel. Para tal, cada programa na memria utilizaria o processador
em pequenos intervalos de tempo. Esse sistema de diviso de tempo ficou conhecido
como compartilhamento de Tempo (time-sharing).
A terceira gerao tambm marcada pelo surgimento do Sistema Operacional
UNIX, escrito em linguagem de programao de alto nvel, que se tornou popular no
mundo acadmico, entre rgos do governo e entre muitas empresas.

Quarta Gerao (1980-1990)

Computador Pessoal

11
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

De fato, a dcada de 1980 caracterizada pelo surgimento dos computadores


pessoais. Os computadores pessoais se tornaram possveis devido ao advento de novas
tecnologias, impulsionados pelo avano da indstria de hardware, com a introduo de
novos circuitos integrados. Os computadores pessoais permitiram que as pessoas
pudessem ter seu prprio computador.
Os equipamentos desta gerao se tornaram cada vez menores, mais velozes e,
principalmente, mais baratos. Esses novos equipamentos, com alta disponibilidade de
poder de computao, especialmente a computao altamente interativa, normalmente
com excelentes grficos, levaram ao crescimento de uma importante indstria, a
indstria de softwares para computadores pessoais.
Dois Sistemas Operacionais inicialmente dominaram o cenrio dos
computadores pessoais: o MS-DOS (Microsoft) e o UNIX. O MS-DOS foi amplamente
utilizado no IBM PC e em computadores com a tecnologia Intel. Esse Sistema
Operacional evolui para o sistema conhecido como Windows.
Outra evoluo que surgiu nesta gerao foi o crescimento de redes de
computadores pessoais executando Sistemas Operacionais de rede e Sistemas
Operacionais distribudos. Em um Sistema Operacional de rede, os usurios podem
conectar-se a mquinas remotas e copiar arquivos de uma mquina para a outra.

Quinta Gerao (Dias atuais)


Em 1993, Surge o primeiro processador Pentium dotado de memrias de 108
pinos, ou DIMM. Depois vem o Pentium II, o Pentium III e mais recentemente o
Pentium 4 (sem contar os modelos similares da concorrente AMD). Nesse meio tempo
iam surgindo o slot AGP de 64 bits, memrias com mais pinos e maior velocidade,
HDs cada vez mais rpidos e com maior capacidade, etc. Basicamente so os
computadores modernos. Ampliou-se drasticamente a capacidade de processamento de
dados, armazenamento e taxas de transferncia. Tambm nessa poca que os
processos de miniaturizao so iniciados, diminuindo o tamanho e aumentando a
velocidade dos agora "populares" PCs. O conceito de processamento est a ir para os
processadores paralelos, ou seja, a execuo de muitas operaes em simultneo. Na
realidade, as maiores novidades desta poca so os novos processadores, cada vez mais
velozes.

A informtica evolui cada vez mais rapidamente e as velocidades de


processamento dobram em perodos cada vez mais curtos. Para se ter uma noo disso,
basta observar que entre os modelos de computador mais antigos, os espaamentos entre
uma novidade e outra eram de dezenas de anos, sendo que hoje no chega a durar um
ms. Isso leva-nos a concluir que o avano cientfico e do poder de clculo avana de
maneira que no se encontra paralelo da histria humana, fazendo baixar os custos e
tornando acessveis os computadores s pessoas de baixa renda.

4 Classificao dos Sistemas Operacionais

Os Sistemas Operacionais evoluram juntamente com a evoluo do hardware


e das aplicaes por ele suportada. Muitos termos inicialmente introduzidos para definir
conceitos e tcnicas foram substitudos por outros.

12
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Abordaremos neste tpico, os diversos tipos de Sistemas Operacionais


classificados quanto ao seu tipo de processamento, apontando suas principais
caractersticas.

Classificao dos Sistemas Operacionais

Sistemas Monoprogramveis ou Monotarefas

Os Sistemas monoprogramveis ou monotarefas so caracterizados por alocar


o Sistema Computacional disponvel exclusivamente para um nico programa, ou seja,
um programa tem todos os dispositivos, incluindo perifricos, memria e processador
disponvel durante todo o tempo em que ele est ativo, mesmo se no estiver usando.
Os primeiros sistemas operacionais eram tipicamente voltados para a execuo
de um nico programa. Os sistemas monoprogramveis esto tipicamente relacionados
ao surgimento dos primeiros computadores na dcada de 1960 e se caracterizam por
permitir que todos os recursos do sistema fiquem exclusivamente dedicados a uma nica
tarefa, como ilustrado na Figura abaixo.

Sistemas Mono Programveis

13
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Era muito clara a desvantagem deste tipo de sistema, no que diz respeito
limitao de tarefas (uma de cada vez), o que provocava um grande desperdcio de
recursos de hardware.

Sistemas Multiprogramveis ou Multitarefa

Constituindo-se uma evoluo dos sistemas monoprogramveis, neste tipo de


sistema os recursos computacionais so compartilhados entre os diversos usurios e
aplicaes: enquanto um programa espera por um evento, outros programas podem estar
processando neste mesmo intervalo de tempo. Neste caso, podemos observar o
compartilhamento da memria e do processador. O sistema operacional se incumbe de
gerenciar o acesso concorrente aos seus diversos recursos, como processador, memria
e perifricos, de forma ordenada e protegida, entre os diversos programas.
As vantagens do uso deste tipo de sistema so a reduo do tempo de resposta
das aplicaes, alm dos custos reduzidos devido ao compartilhamento dos recursos do
sistema entre as diferentes aplicaes. Apesar de mais eficientes que os
monoprogramveis, os sistemas multiprogramveis so de implementao muito mais
complexa.

Sistemas Multiprogramveis

Os sistemas multiprogramveis podem ser classificados pelo nmero de usurios


que interagem com o sistema e pela forma com que suas aplicaes so gerenciadas.

Quanto ao nmero de usurios que interagem com o Sistema, podem ser


classificados a seguir:

Sistemas monousurios: Apenas um usurio interage com o sistema,


podendo realizar vrias atividades ao mesmo tempo, como edio de texto, impresso e
acesso a Internet, por exemplo.
Sistemas multiusurios: Sistema Operacional que possibilita vrios
usurios simultneos. Esse sistema deve suportar a identificao de cada recurso, tais
como arquivos, processos, ou conexes de redes e impor regras de controles de acesso
14
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

para impedir o uso desses recursos por usurios no identificados. Os principais


sistemas operacionais como Linux, Windows so considerados multiusurios.

De acordo com a forma com que suas aplicaes so gerenciadas, podem ser
divididos em: sistemas batch, de tempo compartilhado e de tempo real, de acordo com
a figura abaixo.
Sistemas
Multiprogramveis/
Multitarefa

Sistemas BATCH Sistemas de Sistemas de


ou Tempo Compartilhado Tempo Real
Lote

Sistemas Batch : Neste tipo de sistemas todos os programas so


colocados em uma fila para execuo do processador .Este recebe um programa aps o
outro (em seqncia). Atualmente o termo batch utilizado para definir um conjunto de
comandos que rodam sem interferncia do usurio.
Estes sistemas, se bem projetados, podem ser bastante eficientes devido
melhor utilizao do processador, mas podem oferecer tempos de resposta bastante
longos. Atualmente, os sistemas operacionais simulam este tipo de processamento, no
havendo sistemas dedicados a este tipo de execuo.

Sistemas de Tempo Compartilhado: Tambm chamados sistemas de


time-sharing, permitem que diversos programas sejam executados a partir da diviso de
tempo do processador em pequenos intervalos, denominados fatia de tempo (ou time-
slice). Caso a fatia de tempo no seja suficiente para a concluso do programa, este
interrompido pelo sistema operacional e substitudo no processador por outro, enquanto
aguarda nova fatia de tempo. Neste tipo de processamento, cada usurio tem a
impresso de que a mquina est dedicada ao seu programa, como se ele fosse o nico
usurio a se utilizar do sistema.
Geralmente permitem interao do usurio com a aplicao atravs de
terminais compostos por monitor, teclado e mouse. Estes sistemas possuem uma
linguagem de controle que permite ao usurio interagir com o sistema operacional
atravs de comandos. Assim, possvel verificar arquivos armazenados em disco ou
cancelar execuo de programas. Normalmente, o sistema responde em apenas alguns
segundos maioria destes comandos, o que se levou a cham-los tambm de sistemas
on-line.
A maioria das aplicaes comerciais atualmente processada em ambiente de
tempo compartilhado, que oferece tempos baixos de respostas a seus usurios e menores
custos, em funo do alto grau de compartilhamento dos diversos recursos do sistema.

15
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Sistemas de Tempo Real: Este tipo de sistema implementado de forma


bastante semelhante ao de tempo compartilhado. O que caracteriza a diferena entre eles
o tempo exigido no processamento das aplicaes.
Enquanto nos sistemas de tempo compartilhado o tempo de processamento
pode variar sem comprometer as aplicaes em execuo, nos sistemas de tempo real os
tempos de execuo devem estar dentro de limites rgidos, que devem ser obedecidos,
caso contrrio podero ocorrer problemas irreparveis.
No sistema de tempo real no existe a idia de fatia de tempo como nos
sistemas de tempo compartilhado. Um programa ocupa o processador o tempo que for
necessrio ou at que aparea um outro com um nvel de prioridade maior. Esta
prioridade de execuo definida pela prpria aplicao e no pelo sistema operacional,
como nos sistemas de tempo compartilhado.
Estes sistemas so utilizados em aplicaes de controle de processos, como
monitoramento de refinarias de petrleo, controle de trfego areo, de usinas, ou em
qualquer aplicao onde o tempo de processamento fator fundamental.

Sistemas Multiprocessadores

Os sistemas com mltiplos processadores caracterizam-se por possuir duas ou


mais CPUs interligadas e trabalhando em conjunto. Esta caracterstica traz com
principal vantagem permitir que vrios programas sejam executados ao mesmo tempo
ou que um mesmo programa seja subdividido em vrias partes para serem executadas
simultaneamente em mais de um processador, de fato. Os conceitos aplicados ao projeto
de sistemas com mltiplos processadores incorporam os mesmos princpios bsicos e
benefcios apresentados na multiprogramao, alm de outras caractersticas e
vantagens especficas como escalabilidade, disponibilidade e balanceamento de carga.
Escalabilidade: a capacidade de ampliar o poder computacional do
sistema apenas adicionando novos processadores.
Disponibilidade: a capacidade de manter o sistema em operao
mesmo em casos de falhas.
Balanceamento de carga: a possibilidade de distribuir o
processamento entre os diversos processadores da configurao a partir da carga de
trabalho de cada processador, melhorando, assim, o desempenho do sistema como um
todo.
Esta tcnica permitiu a criao de sistemas computacionais voltados para
processamento cientfico, prospeco de petrleo, simulaes, processamento de
imagens e CAD.
Um fator chave no desenvolvimento dos sistemas multiprocessador a forma
de comunicao entre as CPUs e o grau de compartilhamento da memria e dos
dispositivos de E/S. Em funo destes fatores, podemos classificar os sistemas
multiprocessador de acordo com a figura a seguir:

16
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Na figura podemos perceber a diviso dos sistemas multiprocessador em duas


categorias iniciais: sistemas fortemente acoplados e fracamente acoplados. A grande
diferena entre estas duas categorias que nos sistemas fortemente acoplados existe
apenas uma memria a ser compartilhada pelos processadores do conjunto, enquanto
que nos fracamente acoplados cada sistema tem sua prpria memria individual. A taxa
de transferncia entre processadores e memria em sistemas fortemente acoplados
muito maior que nos fracamente acoplados.
Nos sistemas fortemente acoplados a memria principal e os dispositivos de
E/S so gerenciados por um nico sistema operacional. Quando todos os processadores
na arquitetura so iguais, diz-se que o sistema simtrico. No entanto, quando os
processadores so diferentes, d-se arquitetura a denominao assimtrica.
Nos sistemas fracamente acoplados, como os processadores esto em
arquiteturas diferentes, somente interligados por cabos de interconexo, cada CPU
constitui uma mquina independente, com memria prpria, dispositivos de E/S e
sistemas operacionais independentes.

Nesta subdiviso, temos como exemplo as redes e os sistemas distribudos.

Rede: A caracterstica deste sistema possibilitar o compartilhamento de


recursos e disponibiliz-lo para uso.
Distribudos: Os recursos de cada mquina esto disponveis globalmente de
forma transparente para o usurio. Do ponto de vista das aplicaes como se no
houvesse um conjunto de vrios computadores, mas apenas um nico sistema
centralizado. Portanto o usurio desconhece qual o computador que atendeu a sua
solicitao. Infelizmente, estes sistemas operacionais no so uma realidade no
mercado.
Outros exemplos de sistemas distribudos so os clusters, so formados por um
conjunto de computadores convencionais ,os quais so ligados em rede e comunicam-se
por meio do sistemas, trabalhando como se fossem uma nica mquina de grande porte .

5 Funcionalidades
Para cumprir seus objetivos de abstrao e gerncia, o sistema operacional
deve atuar em vrias frentes. Cada um dos recursos do sistema possui suas
particularidades, o que impe exigncias especficas para gerenciar e abstrair os

17
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

mesmos. Sob esta perspectiva, as principais funcionalidades implementadas por um


sistema operacional tpico so:

Gerncia do Processador: Visa distribuir a capacidade de


processamento (uso de CPU) de forma justa. Deve-se lembrar que algumas aplicaes
demandam mais processamentos que outras (navegador de internet versus
processamento de vdeo , por exemplo )

Gerncia de Memria: Tem como objetivo fornecer a cada aplicao


um espao prprio de memria, independente e isolada das demais aplicaes
Gerncia de Dispositivos: A funo da gerncia de dispositivos
(tambm conhecida como gerncia de entrada/sada) implementar a interao com
cada dispositivo por meio de drivers e criar modelos abstratos que permitam agrupar
vrios dispositivos distintos sob a mesma interface de acesso.

Gerncia de Arquivos: Esta funcionalidade construda sobre a


gerncia de dispositivos e visa criar arquivos e diretrios, definindo sua interface de
acesso e as regras para seu uso. importante observar que os conceitos abstratos de
arquivo e diretrio so to importantes e difundidos que muitos sistemas operacionais os
usam para permitir o acesso a recursos que nada tem a ver com armazenamento.

Gerncia de Proteo: Polticas de acesso e uso do sistema operacional.


Permite a definio de usurios ,grupos de usurios e registros de recursos por usurios.

Interface Grfica: A interao com usurio se faz necessrio, assim a


maioria dos sistemas apresentam telas, nas quais se pode informar ao sistema
operacional qual a operao que ele dever fazer.

Suporte de Rede: A comunicao em rede , atualmente, essencial ao


mundo dos computadores. Assim, o gerenciamento dessas comunicaes se faz
necessrio e realizado sob a abstrao do sistema operacional sobre os dispositivos
fsicos, como placas de redes ou modem.

6 Estruturas do Sistema Operacional


O sistema operacional formado por um conjunto de rotinas que oferecem
servios essenciais aos usurios, s suas aplicaes, e tambm ao prprio sistema. A
esse conjunto de rotinas d-se o nome de ncleo do sistema ou kernel.
fundamental no se confundir o ncleo do sistema com aplicaes, utilitrios
ou o interpretador de comandos, que acompanham o sistema operacional. As aplicaes
so utilizadas pelos usurios de maneira transparente, escondendo todos os detalhes da
interao com o sistema. Os utilitrios, como os compiladores, editores de texto e
interpretadores de comandos permitem aos usurios, desenvolvedores e administradores
de sistema uma interao amigvel com o sistema.
Existe uma grande dificuldade em compreender a estrutura e o funcionamento
do sistema operacional, pois ele no executado como uma aplicao tipicamente
seqencial, com incio, meio e fim. Os procedimentos do sistema so executados
concorrentemente sem uma ordem especfica ou predefinida, com base em eventos
18
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

dissociados do tempo. Muitos desses eventos esto relacionados ao hardware e a tarefas


internas do prprio sistema operacional.

7 Chamadas de Sistemas
Uma grande preocupao no projeto de sistemas operacionais se refere
implementao de mecanismos de proteo ao ncleo do sistema e tambm o controle
de acesso aos servios oferecidos pelo sistema. Caso uma aplicao que tenha acesso ao
ncleo realize alguma operao que altere sua integridade, todo o sistema poder ficar
comprometido e inoperante.
As chamadas de sistemas (system calls) constituem a interface entre um
programa do usurio e o Sistema Operacional. Elas podem ser entendidas como uma
porta de entrada para acesso ao ncleo do sistema, que contm suas funes. Sempre
que o usurio necessitar de algum servio, realizada uma chamada a uma de suas
rotinas atravs de uma system call.
Atravs dos parmetros fornecidos na system call, a solicitao processada e
uma resposta enviada aplicao juntamente com um estado de concluso indicando o
sucesso ou no da operao. Para cada servio disponvel existe um system call
associada, e cada sistema operacional possui seu prprio conjunto de chamadas, com
nomes, parmetros e formas de ativao especfica. Isto explica por que uma aplicao
desenvolvida utilizando servios de um determinado sistema operacional no pode ser
diretamente portada para outro sistema.

8 Arquiteturas de Sistemas Operacionais


Em funo de sua arquitetura os sistemas operacionais podem ser classificados
em:
Ncleo monoltico ou monobloco: um ncleo que implementa uma
interface de alto nvel, para possibilitar chamadas de sistemas especficas para gesto de
processos , concorrncia e gesto de memria por parte de mdulos dedicados ,que so
executados com privilgios especiais .Exemplos Windows e Linux.
19
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Microncleo ou Microkernel : um termo usado para caracterizar o


sistema cujas funcionalidades saram do ncleo e foram para servidores ,que se
comunicam com um ncleo mnimo possvel do espao do sistema(nesse, local o
programa tem acesso a todas as instrues e a todo o hardware ) e deixando o mximo
de recursos rodando no espao do usurio (nesse espao, o software sofre algumas
restries , no podendo acessar alguns hardware e no tendo acesso a todas as
instrues )

Viso Geral de uma arquitetura micro-ncleo

Mquina Virtual: uma arquitetura que permite que um sistema


operacional suporte aplicaes de outro sistema (Linux executando sobre Windows, por
exemplo)m ou mesmo outro sistema operacional completo. Possibilita que sobre um
mesmo hardware possam ser executados dois ou mais sistemas operacionais. Exemplo
VMware , VirtualBox.

20
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

EXERCICIOS

1. Como seria utilizar um computador sem um sistema operacional? Quais so suas


duas principais funes?

2. Defina Sistemas Operacionais, procurando abordar os dois pontos de vista


segundo Tanembaum.

3. Explique o conceito de mquina virtual. Qual a grande vantagem em utilizar este


conceito?

4. Defina o conceito de uma mquina de nveis ou camadas.

5. Quais os tipos de sistemas operacionais existentes?

6. Por que dizemos que existe uma subutilizao de recursos em sistemas


monoprogamveis?

7. Qual a grande diferena entre sistemas monoprogramveis e sistemas


multiprogramveis?

8. Quais as vantagens dos sistemas multiprogramveis?

9. Um sistema monousurio pode ser um sistema multiprogramvel? D um


exemplo.

10. Quais so os tipos de sistemas multiprogramveis?

11. O que caracteriza o processamento batch? Quais aplicaes podem ser


processadas neste tipo de ambiente?

12. Os primeiros Sistemas Operacionais eram Monotarefas, j os atuais so


Multitarefa. De acordo com os tipos de Sistemas Operacionais identifique-os na
figura abaixo e explique seu funcionamento e suas principais caractersticas.

a.

21
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

13. Como funcionam os sistemas de tempo compartilhado? Quais as vantagens em


utiliz-los?

14. Qual a principal diferena entre sistemas de tempo compartilhado e tempo real?
Quais aplicaes so indicadas para sistemas de tempo real?

15. O que so sistemas com mltiplos processadores e quais as vantagens em utiliz-


los?
16. Qual a diferena entre sistemas fortemente acoplados e fracamente acoplados?

17. O que um sistema fracamente acoplado? Qual a diferena entre sistemas


operacionais de rede e sistemas operacionais distribudos?

18. Cite as principais funcionalidades de um projeto de Sistema Operacional.

19. O que uma system call e qual sua importncia para a segurana do sistema?
Como as system calls so utilizadas por um programa?

20. O que o ncleo do sistema e quais so suas principais funes?

21. Como o kernel do sistema operacional pode ser protegido pelo mecanismo de
modos de acesso?

22. Explique as trs arquiteturas do kernel de um Sistema Operacional.

22
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

ATIVIDADE COMPLEMENTAR

1) Faa uma pesquisa e tente identificar os principais sistemas operacionais em


uso. Classifique-os de acordo com sua arquitetura (monoltico, microncleo, ou mquina
virtual) e tipo (rede, distribudo, multiusurio, etc.)

LEITURA COMPLEMENTAR

Existem diversos documentrios sobre a histria


dos computadores. Pois bem, caso queira
conhecer um pouco mais sobre a histria recente
do computador pessoal, existe um filme
chamado O Triunfo dos Nerds, que conta a
histria da do surgimento da Microsot e da
Apple, ou seja, o inico da computao pessoal.
Uma verdadeira aula de histria!

Fonte da figura:
http://macmagazine.uol.com.br/wp-
content/uploads/2008/10/12-triunfosilicio2.jpg.
Acesso em: 11 de Maio de 2010.

Tambm existe um pequeno e informativo vdeo


sobre a histria dos computadores no Museu do
Telefone no Rio de Janeiro. Voc pode assisti-lo
atravs do link a seguir:

<http://midiaseducacao.blogspot.com/2009/06/hist
oria-do-computador-em-minutos.html>.

23
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

GERENCIAMENTO DE PROCESSOS

1 introduo ao modelo de processos

Os primeiros Sistemas Operacionais eram caracterizados por apenas um


programa poder ser executado de cada vez. Os computadores mais modernos so
constitudos de Sistemas Operacionais com capacidade de executar vrias tarefas ao
mesmo tempo.
De fato, o processador pode ser alternado de um programa para o outro,
executando cada um por um determinado tempo (comumente em milissegundos). Em
outras palavras, para um determinado intervalo de tempo, vrios programas utilizam
uma fatia desse tempo para realizar suas atividades, passando, assim, para o usurio a
falsa impresso de que todos eles esto sendo executados ao mesmo tempo.
Essa falsa impresso passada ao usurio de que vrios programas esto sendo
executados ao mesmo tempo comumente conhecido por pseudoparalelismo. Para que
isso seja possvel necessrio um monitoramento das mltiplas atividades entre os
vrios programas, que se trata de uma tarefa difcil e bastante complexa.
Segundo Tanenbaum, os projetistas de Sistemas Operacionais desenvolveram
um modelo que torna o paralelismo mais fcil de tratar, conhecido como modelo de
processos, assunto desta unidade.

Conceito de Processos

Um processo pode ser entendido inicialmente como um programa em


execuo, que tem suas informaes mantidas pelo sistema operacional.
Num sistema multiusurio, cada usurio tem a impresso de possuir o
processador e todos os demais recursos reservados exclusivamente para si, mas isto no
verdade. Todos os recursos esto sendo compartilhados, inclusive a CPU. Neste caso,
o processador executa o processo do usurio por um intervalo de tempo e, no instante
seguinte, poder estar processando outro programa, do mesmo ou de outro usurio.
Para que a troca de processos possa ser feita sem problemas, necessrio que
todas as informaes do programa que est sendo interrompido sejam guardadas, para
que ele possa retornar CPU exatamente do ponto em que parou no lhe faltando
nenhuma informao vital sua continuao. Todas as informaes necessrias
execuo de um programa fazem parte do processo.
Um processo tambm pode ser definido como o ambiente onde o programa
executado. Este ambiente, alm das informaes sobre a execuo, possui tambm a
quantidade de recursos do sistema que o programa pode utilizar como espao de
endereamento, tempo do processador e rea em disco.
Para que o Sistema Operacional gerencie os processos, primeiro ele deve ser
capaz de: (1) cri-los, (2) reservar memria e (3) colocar os processos numa fila de
espera para uso do processador. O prprio Sistema Operacional um conjunto de vrios
processos que tambm compartilham a CPU para serem executados.

24
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Por exemplo, quando voc executa o programa Internet Explorer do sistema


operacional Windows para navegar na Internet, na verdade, voc est solicitando a
criao do iexplorer.exe (processo do programa Internet Explorer) ao explorer.exe
(processo genrico do sistema responsvel por fornecer comandos bsicos e gerenciar o
ambiente grfico padro do Windows). A Figura 2 mostra a tela de um computador que
est executando o Process Explorer, um programa de gerenciamento de processos que
na sua tela inicial mostra todos os processos que esto executando em seu computador e
a relao entre eles (por exemplo, se um processo pai de um outro), observe como o
processo iexplorer.exe est situado entre os processos filhos do explorer.exe.

Para voc apenas visualizar quais processos esto sendo executado, o Windows
possui o gerenciador de tarefas do sistema. Uma forma de acess-lo pressionando os
botes Ctrl, Alt e Del, simultaneamente e escolher a opo Iniciar Gerenciador de
Tarefas,ou clicar com o boto direito do mouse na barra de tarefas do meu iniciar aba
Iniciar gerenciador de Processos. Assim, voc ter acesso a essa importante
ferramenta do sistema e poder utiliz-las no s para visualizar os processos, mas
tambm, caso ocorra algum problema com um processo especfico, voc poder
encerr-lo.

25
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

DICA !

Para visualizar a rvore de processos no Windows, existe o


programa Process Explorer que traz muito mais informaes que o
gerenciador de tarefas do Windows. Alm de apresentar a estrutura
de processos, indicando o parentesco entre eles, informa dados
referente a cada processo, como a quantidade de memria utilizada
por cada um. Vale a pena conferir, ele um software gratuito
disponvel no seguinte link para download:

<http://www.baixaki.com.br/download/process-explorer.htm>

2 Estados de um Processo
Os vrios processos criados competem entre si pela ateno do processador a
cada instante, cabendo ao gerenciador de processos do Sistema Operacional estabelecer
uma ordem

Em diferentes momentos, um processo pode est utilizando-se do processador,


ou simplesmente aguardando, alm disso, existem situaes onde o processo, mesmo
tendo o processador disponvel, fica impossibilitado de prosseguir a execuo, pois
geralmente est aguardando por alguma entrada. Ento, para que no exista desperdcio
no uso do processador, processos que estejam aguardando algum dado externo ficam
bloqueados, deixando aos demais processos disputarem o uso do processador. Dessa
forma, podemos dizer que os processos podem est em trs estados, que seriam:
Executando: um processo est no estado executando quando ele, de fato,
est sendo processado pela CPU. Em sistemas monoprocessados (nico processador),
somente um processo por vez pode estar de posse da CPU em um dado instante. Os
processos se alternam na utilizao do processador.
Pronto: um processo est no estado de pronto quando ele possui todas as
condies necessrias para a sua execuo, porm, no est de posse do processador.
Em geral, existem vrios processos no sistema prontos para serem executados e o
Sistema Operacional responsvel por, dessa lista de processos, selecionar qual utilizar
o processador em um determinado instante de tempo.
Bloqueado: um processo est no estado de bloqueado quando ele
aguarda por algum evento externo ou por algum recurso do sistema indisponvel no
momento. Por exemplo, se um processo necessita de uma informao de algum
dispositivo de E/S, enquanto essa informao no se torna disponvel, o processo entra
no estado de bloqueado.
Os trs estados de um processo em um Sistema Operacional tornam possvel
algumas transies, como ser observado na Figura abaixo.
.

26
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

A transio 1 (Executando - Bloqueado) ocorre quando um processo que


estava utilizando o processador precisou de algum evento externo (operao de
Entrada/Sada, por exemplo), no podendo continuar executando, passando, assim, para
o estado de bloqueado.

A transio 2 (Bloqueado - Pronto) ocorre quando o evento externo, no


qual o processo bloqueado aguardava, acontece. Nesse caso, o processo passa para o
estado de pronto e volta para a fila para poder concorrer novamente ao processador. Se
no existir nenhum processo na fila de prontos, naturalmente, o processo desbloqueado
utilizar a CPU.

J as transies 3 (Pronto - Executando) e 4 (Executando -Pronto) so


realizados pelo escalonador de processos. Comumente, existem vrios processos
prontos e esperando para serem executados. Cabe ento ao Sistema Operacional
(escalonador) escolher, entre os processos prontos, qual utilizar o processador e poder
executar suas atividades. O Sistema Operacional (dependendo da poltica do
escalonador) pode, tambm, retirar o processador de um determinado processo e
disponibiliz-lo para outro processo.

3 Threads

Atualmente, vrios programas precisam executar vrias tarefas ao mesmo


tempo, por exemplo, um sistema de segurana de um prdio precisa receber imagens de
vrias cmeras, grav-las em um disco e ainda exibi-las em uma tela para que possam
ser monitoradas.
Para que um nico processo possa realizar mais que uma tarefa ao mesmo
tempo , H as Threads.
Threads so fluxos de execuo (linha de controle) que rodam dentro de um
processo, ou seja, uma Thread pode ser vista como um fluxo de execuo de uma
tarefa. Em processos tradicionais, h uma nica linha de controle e um nico contador
de programa. Porm, alguns Sistemas Operacionais fornecem suporte para mltiplas
linhas de controle dentro de um processo (sistemas multithread).
27
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Ter mltiplas linhas de controle ou threads executando em paralelo em um


processo equivale a ter mltiplos processos executando em paralelo em um nico
computador. Um exemplo tradicional do uso de mltiplas thread seria um navegador
web, no qual pode ter uma thread para exigir imagens ou texto enquanto outro thread
recupera dados de uma rede.
importante destacar que as threads existem no interior de um processo e
compartilham entre elas os recursos do processo, como o espao de endereamento
(cdigo e dados).

4 Comunicao Interprocessos.

Em um Sistema Operacional, freqentemente, os processos podem precisar


trocar informaes entre eles ou podem solicitar a utilizao de um mesmo recurso
simultaneamente, como arquivos,registros, dispositivos de E/S e memria. O
compartilhamento de recursos entre vrios processos pode causar situaes indesejveis
e, dependendo do caso, gerar o comprometimento da aplicao.
O Sistema Operacional tem a funo de gerenciar e sincronizar processos
concorrentes, com o objetivo de manter o bom funcionamento do sistema

Condies de Corrida

Podemos definir uma condio de corrida quando dois ou mais processos


podem compartilhar algum espao de memria compartilhado no qual, o resultado da
informao deste espao de armazenamento depende de quem executa. Um exemplo
tpico de condio de corrida, apontado por vrios autores, o spool de impresso.
Quando um processo deseja imprimir alguma informao, ele insere o nome de
arquivo em um espao denominado diretrio de spooler. Existe outro processo, o
servidor de impresso, que verifica periodicamente se h qualquer arquivo a ser
impresso e, caso haja, ele os imprime e remove a informao do diretrio.
Consideremos a seguinte situao: o diretrio de spooler contm um nmero de
entradas numeradas e um processo, quando deseja imprimir alguma informao,
consulta uma varivel (entrada) a fim de saber em qual posio inserir o nome de
arquivo no diretrio.

O diretrio de impresso est ilustrado na Figura abaixo.

Diretrio de spooler (impresso)

28
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Podemos imaginar agora a seguinte situao: um processo A l a varivel


entrada e armazena o valor dela (valor 0) em uma varivel local. Porm, o tempo de
execuo do processo A termina e o Sistema Operacional o retira do processador,
disponibilizando-o a um outro processo B. O processo B, por sua vez, tambm deseja
imprimir um arquivo, acessa a rea do diretrio de impresso, verifica o valor da
varivel entrada (valor 0), armazena este valor em uma varivel local e, por fim, insere
o nome de seu arquivo a ser impresso na posio 0 do diretrio de impresso, mudando
o valor da varivel entrada para 1.
A Figura abaixo visualiza esta situao atual.

Situao do Diretrio de impresso aps insero do nome de arquivo do processo B

Por fim, o processo A retoma o processador, iniciando novamente de onde


parou. Ao examinar em sua varivel local o valor da varivel entrada (esta informao
ele guardou em sua tabela, momento em que ele parou a execuo), o processo observa
o valor 0 e escreve seu nome de arquivo nessa posio, apagando o nome de arquivo do
processo B. Em seguida, incrementa o valor da varivel entrada para 1.
A Figura abaixo mostra a nova situao do servidor de impresso.

Situao do Diretrio de impresso aps insero do nome de arquivo do processo A

29
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Internamente, o servidor de impresso continua consistente, porm o arquivo


do processo B jamais ser impresso. Caracterizamos este tipo de situao como uma
condio de corrida.

5 Sees Crticas
Para se evitar uma condio de corrida preciso definir mtodos que proba
que mais de um processo acesse uma determinada rea de memria compartilhada ao
mesmo tempo. Esses mtodos so conhecidos como excluso mtua. Um processo,
durante seu tempo de execuo, pode realizar uma srie de computaes internas que
no geram condies de corrida ou pode estar acessando memria compartilhada, que
levam condio de corrida.
A parte do programa no qual o processo acessa memria compartilhada
chamada seo crtica ou regio crtica. Dessa forma, a soluo para se evitar uma
condio de corrida seria organizar os problemas de tal forma que nenhum de dois ou
mais processos estivessem em suas regies crticas ao mesmo tempo.
Para se ter uma boa soluo de excluso mtua, precisamos evitar algumas
situaes indesejveis, como:
Nenhum processo que esteja fora de sua regio crtica pode bloquear a
execuo de outro processo;
Nenhum processo deve esperar indefinidamente para poder entrar em sua
regio crtica.

6 Deadlocks : Impasse entre Processos

O Sistema Computacional est repleto de recursos, que podem ser utilizados


pelos processos. Comumente, a quantidade de recursos disponveis muito menor que a
quantidade de processos solicitando esse recurso. Dependendo do recurso, este fato
pode gerar uma situao de bloqueio eterno do processo.
Podemos, assim, definir que um conjunto de processos est em deadlock ou
impasse quando cada um desses processos est bloqueado esperando um evento que s
pode ser gerado por outro processo desse conjunto. Como todos os processos esto
bloqueados, nenhum deles poder gerar um evento e, naturalmente, todos continuaro
nessa situao.
Um bom exemplo apontado por Tanenbaum trata-se de dois processos
querendo ler dados de um CD e imprimindo em uma impressora.
Suponha que o processo A solicite a impressora, que disponibilizada. De
forma anloga, o processo B solicita o CD-ROM,que lhe disponibilizado. Agora o
processo A solicita o CD-ROM, enquanto que o processo B solicita a impressora. Como
ambos os recursos j esto alocados, o processo A e B sero bloqueados.
Nessa situao eles continuaro indefinidamente, pois nenhum processo ter
como se finalizar e, por fim, liberar o recurso j alocado. Esses processos geram um
deadlock.
importante destacar, que os impasses podem ser gerados tanto por recursos
de hardware quanto por recursos de software. Um recurso de software seria um impasse
gerado no acesso a registros sendo assim, trataremos o termo recurso de uma forma
geral.

30
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Os recursos podem ser divididos em dois tipos:

Recursos preemptveis: trata-se de recursos que podem ser retirados de


um determinado processo sem gerar problema algum. Por exemplo, a memria.
Recursos no-preemptveis: trata-se de recursos que no podem ser
retirados de um determinado processo sem causar problemas. Por exemplo, invivel
retirar a impressora de um determinado processo que comeou a imprimir sua sada.

Condies para um Impasse.

Coffman demonstrou em 1971 que existe quatro condies para que haja um
impasse:
Condio de excluso mtua: Somente um processo de cada vez pode
acessar um recurso. Caso contrrio, o recurso estar disponvel.
Condio de posse e espera: Um processo deve estar de posse de um
recurso e solicitando novos recursos.
Condio de no preempo: Os recursos concedidos aos processos no
podem ser retirados deles.
Condio de espera circular: Deve haver uma cadeia circular de dois ou
mais processos, cada um dos quais est esperando um recurso j segurado pelo prximo
membro da cadeia e, assim por diante.

Mtodos de Lidar com Deadlocks

Existem vrias formas de lidar com deadlocks. Em geral, temos quatro


mtodos:
Ignorar completamente o problema.
Detectar e recuperar uma situao de deadlock.
Prevenir um deadlock atravs da negao das quatros condies de
Coffman.
Impedimento de um deadlock atravs de uma alocao dinmica
cuidadosa de recursos.
Por incrvel que parea, a estratgia mais usada nos
sistemas operacionais a de ignorar os problemas de deadlock, pois os
possveis tratamentos desse tipo de situao podem acarretar em perdas de
desempenho do sistema, comprometendo a execuo dos processos.
Assim, mais comum que os prprios softwares procurem
evitar situaes de deadlock na lgica em seus cdigos e, no caso de
ocorrer alguma situao de impasse, prefervel encerrar a execuo de
um processo ou at reiniciar o computador em casos mais extremos.

DICA !

O SOsim 2.0 (Simulador de Sistema Operacional) um software


educacional que permite simular situaes de gerencias de um sistema
Operacional .
31
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

EXERCICIO

1. Defina processos.

2. Por que o conceito de processo to importante no projeto de sistemas


multiprogramveis?

3. Descrevas os estados que um processo pode ocupar em um sistema


baseado no modelo de processos.

4. Comente as possveis transies que podem ocorrer entre os estados de


um processo.

5. O que so Threads. Caracterize os sistemas multithreads.

6. O que so condies de corrida?

7. O que uma regio crtica e excluso mtua?

8. Cite as condies para se ter uma boa soluo que evite condies de
corrida.

9. Descreva de forma sucinta o mtodo de excluso mtua ativa

10. Defina deadlock .

11. Quais as condies segundo Coffman para que acontea um impasse


entre processos?

32
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

ATIVIDADE COMPLEMENTAR

1. Diversos exemplos na literatura de sistemas operacionais procuram


demonstrar situaes de deadlock. So exemplos simples, como o clssico exemplo dos
cinco filsofos jantando. Procure na internet dados sobre esse exemplo e apresente.

ATIVIDADE PRTICA

1. Criao de Processos

a) Prticas de simulao
Execute o simulador SOsim e identifique as quatro janelas que so abertas na
inicializao.
Crie um processo: janela Gerncia de Processos / Criar janela Criao de
Processos /
Criar.
b) Anlise Prtica
Na janela Gerncia de Processos, observe algumas informaes sobre o
contexto de
software do processo como prioridade, estado do processo e tempo de
processador.
Na janela Gerncia de Processador, observe o processo transacionando entre
estados.
Na janela Gerncia de Processador, movimente a barra de Clock de UCP e
observe as
variaes ocorridas.
c) Questo terica para responder com a ajuda do simulador :Com base na
observao do comportamento do processo criado, identifique se o processo
I/Obound
ou CPU-bound. Justifique sua resposta.

2. Tipos de Processos
a) Prticas de simulao
Reinicialize o simulador.
Crie um processo do tipo CPU-bound: janela Gerncia de Processos / Criar
janela Criao de Processos / Criar (tipo de processo deve ser CPU-bound).
Crie outro processo do tipo I/O-bound: janela Gerncia de Processos / Cria
janela Criao de Processos / Criar (tipo de processo deve ser I/O-bound).
b) Anlise Prtica
Na janela Gerncia de Processos, observe as mudanas de estado dos dois
processos.
Na janela Gerncia de Processador, observe o comportamento dos processos e
as mudanas de contexto em funo do tipo I/O-bound e CPU-bound.
Na janela Gerncia de Processos, compare a taxa de crescimento do tempo de
processador dos dois processos.

33
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

c) Questo terica para responder com a ajuda do simulador :Analise os


efeitos gerados no caso de reduo do tempo gasto na operao de E/S pelo processo
I/O-bound.

Gerenciador de Processos
Com o surgimento dos sistemas multiprogramveis, onde mltiplos processos
poderiam permanecer na memria e disputar o uso de um nico processador, a gerncia
do processador tornou-se uma das atividades mais importantes em um sistema
operacional.
A partir do momento em que vrios processos podem estar no estado de pronto,
devem ser estabelecidos critrios para definir qual processo ser escolhido para fazer
uso do processador. Tais critrios compem a poltica de escalonamento, que a base
da gerncia do processador e da multiprogramao em um sistema operacional.
Dentre as funes da gerncia do processador, podemos citar: manter o
processador ocupado a maior parte do tempo. balancear o uso da CPU entre processos,
privilegiar a execuo de aplicaes crticas, maximizar o throughput e oferecer tempos
de resposta razoveis aos usurios interativos.
Cada sistema operacional possui sua poltica de escalonamento adequada ao
seu propsito e s suas caractersticas. Sistemas de tempo compartilhado, por exemplo,
possuem requisitos de escalonamento distintos dos sistemas de tempo real.

3. Escalonamento de Processos

O escalonamento de processos a forma com que os processadores


disponveis (um ou vrios) no Sistema Computacional so distribudos ou alocados para
os vrios processos prontos.
A parte do Sistema Operacional responsvel por selecionar qual ser o
processo que executar no processador chamado de escalonador ou agendador.
Dessa forma, a ordem com que os processos sero executados pelo processador
definida por um determinado algoritmo ou poltica de escalonamento de processos.
O projeto de um algoritmo de escalonamento deve levar em conta uma srie de
critrios , no qual alguns so apontados a seguir:

Throughput: o nmero de processos executados em um determinado


intervalo de tempo. Quanto maior o throughput, maior o nmero de tarefas executadas
em funo do tempo. A maximizao do throughput desejada na maioria dos sistemas.

Tempo de Processador: o tempo que um processo leva no estado de


execuo, durante seu processamento. As polticas de escalonamento no interferem
neste parmetro, sendo este tempo funo apenas do cdigo executvel e da
entrada/sada de dados.

Tempo de Espera (pela CPU): todo o tempo que o processo permanece


na fila de pronto, aguardando a liberao da CPU para ser executado. A reduo deste
tempo de espera desejada pela maioria das polticas de escalonamento.

34
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Tempo de Turnaround: o tempo total que o processo permaneceu no


sistema, desde sua criao at o momento em que encerrado. So contados os tempos
de alocao de memria, espera na fila de pronto e interrupo (E/S).

Tempo de Resposta: o tempo decorrido entre uma requisio ao sistema


e o instante em que a resposta comea a ser exibida. Em sistemas interativos, como
aplicaes on-line ou acesso Web, os tempos de resposta devem ser da ordem de
apenas poucos segundos.
Os algoritmos de escalonamentos podem ser classificados em preemptveis e
no-preemptveis. O algoritmo de escalonamento no-preemptvel quando o
processador alocado para um determinado processo no pode ser retirado deste at que
o processo seja finalizado.
J o algoritmo de escalonamento dito preemptvel quando o processador
alocado para um determinado processo pode ser retirado deste em favor de outro
processo.
Atualmente a maioria dos sistemas so preemptvos

4. Escalonamentos No-Preemptivos
Algoritmo de Escalonamento FIFO (First in First out)
Trata-se do algoritmo de escalonamento de implementao mais simples. Com
este algoritmo de escalonamento, o primeiro processo que solicita a CPU o primeiro a
ser alocado. Dessa forma, os processos que esto prontos para serem executados pela
CPU so organizados numa fila, que funciona baseado na poltica FIFO (First in First
out Primeiro a entrar o primeiro a sair).
Vejamos um exemplo. Considere o seguinte conjunto de processos:

Supondo que a ordem de chegada dos processos seja: A B C D. Dessa


forma, baseado na poltica FIFO, a ordem de execuo dos processos mostrado na
Figura abaixo (diagrama de tempo).

Diagrama de tempo usando a poltica FIFO.

35
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Para este conjunto de tarefas o tempo de espera do processo A de 0 (zero)


unidades de tempo; para o processo B de 12 unidades de tempo; para o processo C de
20 unidades de tempo; e para o processo D de 35 unidades de tempo. O tempo mdio de
espera na fila de prontos de (0+12+20+35)/4, que equivale a 16,75 unidades de
tempo.
Nesta poltica de escalonamento o tempo mdio de espera , com freqncia,
um tanto longo. Outro ponto que processos importantes podem ser obrigados a esperar
devido execuo de outros processos menos importantes dado que o escalonamento
FIFO no considera qualquer mecanismo de distino entre processos.

Algoritmo de Escalonamento Menor Tarefa Primeiro (SJF shortest job


first)

Neste escalonamento o processo que tem o menor ciclo de processamento


(tempo de execuo) ser selecionado para usar o processador.
Considerando o mesmo conjunto de tarefas apresentados, teramos o diagrama
de tempo apresentado na Figura abaixo.

Diagrama de tempo usando a poltica Menor Tarefa Primeiro.

Nesta poltica de escalonamento, o tempo de espera do processo A de 13


unidades de tempo; para o processo B de 5 unidades de tempo; para o processo C de 25
unidades de tempo; e para o processo D de 0 unidades de tempo. O tempo mdio de
espera na fila de prontos de (13+5+25+0)/4, que equivale a 10,75 unidades de tempo.
Em mdia, nessa poltica de escalonamento, os processos tiveram que esperar
menos para serem executados pelo processador.
Segundo Silberschatz, a dificuldade real com o algoritmo de Menor Tarefa
Primeiro saber o tempo de durao da prxima solicitao de CPU. Assim, trata-se de
um algoritmo timo, porm, no pode ser implementado, pois no h modo de saber o
tempo de durao do prximo pico de CPU. Uma abordagem possvel tentar
aproximar-se do algoritmo de Menor Tarefa Primeiro.

5. Escalonamentos Preemptivos
Algoritmo de Escalonamento Round Robin

O algoritmo Round Robin, conhecido tambm como algoritmo de


escalonamento circular, tambm organiza a lista de processos prontos como uma fila
simples, semelhante ao algoritmo FIFO.

36
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

. muito semelhante ao FIFO (obedece a ordem de chegada fila de


PRONTO), mas quando um processo passa para o estado de execuo h um limite de
tempo para o uso contnuo do processador, chamado fatia de tempo (time-slice) ou
quantum. Assim, toda vez que um processo selecionado para execuo uma nova fatia
de tempo lhe concedida. Caso esta fatia de tempo expire, o sistema operacional
interrompe o processo, salva seu contexto e o direciona para a fila de PRONTO.

Algoritmo de Escalonamento por Prioridades


Nesta poltica, os processos so organizados na fila de prontos baseado em
prioridades. Quem tiver maior prioridade vai para o incio da fila. Quem tiver menor
prioridade vai se encaixando no final da fila. Esta prioridade pode ser uma atribuio
externa ao sistema.
Vejamos um exemplo. Considere o seguinte conjunto de processos:

Dessa forma, baseado na poltica de escalonamento por prioridades (quanto


menor o nmero, maior a prioridade), a ordem de execuo dos processos mostrado
atravs da Figura abaixo (diagrama de tempo).

Diagrama de tempo usando a poltica por prioridades.

Alguns aspectos devem ser considerados na poltica de escalonamento por


prioridades. Primeiro, se no sistema existir uma quantidade grande e interativa de
processos de alta prioridade, podemos chegar a uma situao onde processos de baixa
prioridade nunca executaro.
Uma possvel soluo para este problema a utilizao de prioridades
dinmicas. Dessa forma, os processos de baixa prioridade podem ter suas prioridades
lentamente aumentadas, tendo, assim, chances de utilizar o processador.

37
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Algoritmo de Escalonamento Mltiplas Filas

Este escalonamento implementa vrias filas de pronto, cada uma com


prioridade especfica. Os processos so associados s filas de acordo com caractersticas
prprias, como importncia da aplicao, tipo de processamento ou rea de memria
necessria. Assim, no o processo que detm a prioridade, mas sim a fila.. Dessa
forma, ao invs de termos apenas uma nica fila de prontos, poderamos construir vrias
filas de prontos e agrupar os processos de mesma categoria nessas filas. Para cada fila
poderamos definir prioridades diferentes e polticas de escalonamentos especficas
.Um exemplo deste algoritmo seria considerar duas filas de prontos, uma com
maior prioridade e outra de menor prioridade, as duas funcionando segunda a poltica
Round Robin. Dessa forma, se a fila mais prioritria tiver processos, estes tero
prioridade sobre o processador. Caso a fila mais prioritria estiver vazia, os processos
prontos da fila menos prioritria iro concorrer ao processador.

2.4 Sincronizao dos Recursos


A sincronizao dos recursos do computador uma tarefa muito importante,
realizada pelos sistemas operacionais multitarefa e feita em duas reas distintas:
Sincronizao dos Dados: nesse caso o objetivo manter os dados do
computador em perfeita integridade;
Sincronizao dos Processos: refere-se sincronizao da execuo dos
processos,com o objetivo de se evitar o conflito na utilizao dos recursos do
computador;
A sincronizao dos processos s faz sentido em sistemas multitarefa, em que a
cada instante, vrios processos podero estar em execuo. O trabalho do sistema
operacional ser garantir que cada processo seja concludo corretamente. Aqui, o
conceito de processo ser aplicado tanto ao processo em si quanto thread, ou seja, a
sincronizao de processos e sincronizao de threads sero tratados de maneiras
unificadas, como Sincronizao de Processos.
Para realizar a sincronizao algumas medidas podem ser tomadas: a utilizao
de Barreiras, Travas, Semforos, Comunicao e vrias outras. Algumas dessas medidas
so implementadas no cdigo dos programas, como as Barreiras, e outras medidas so
realizadas no sistema operacional, as Travas.
As Barreiras so criadas e gerenciadas pelos desenvolvedores de programas
aplicativos. Dentro das instrues desses programas, deve-se incluir uma instruo de
criao de Barreira. Quando um processo executa tal instruo, entra em estado de
Espera (ou Bloqueio), e permanece assim at que todos os processos pertencentes ao
mesmo programa tambm executem a instruo de Barreira. Com isso consegue-se
colocar todos os processos no mesmo ponto de execuo do programa.
Semforos podem ser utilizados tanto pelos programas quanto pelo sistema
operacional. So variveis de controle, que indicam se um determinado recurso pode ser
utilizado ou no. O modo mais frequente de controle a utilizao de um contador no
semforo. O contador indica a quantidade de processos que podem compartilhar o
recurso, quando o limite alcanado, nenhum processo a mais pode utilizar o mesmo
recurso.
Barreiras e Semforos geralmente so utilizados para lidar com situaes em
que vrios processos podem (ou devem) compartilhar um mesmo recurso. Nos casos,

38
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

nos quais um recurso deve ser utilizado exclusivamente por apenas um processo
utilizada a Trava.
Alguns sistemas implementam Travas Simples, que impedem a utilizao do
recurso por outro processo, e outros sistemas implementam Travas Especiais, que
emitem um sinal (aviso de erro) quando um processo tenta acessar um recurso j em
uso. Existe tambm a possibilidade de se ter uma Trava Compartilhada por vrios
processos, mas nesse caso, o acesso ao recurso fica limitado apenas leitura dos dados
contidos nele.
Para o correto funcionamento dos mtodos de sincronizao, o processador
deve estar preparado para permitir que os processos consigam compartilhar um recurso
at o limite estabelecido, sem que haja conflito no controle de sincronia. Por exemplo,
em um sistema de Trava, se ela estiver aberta significa que um processo poder acessar
o recurso. Se, em um mesmo instante, dois processos tentarem utilizar o recurso, os dois
conseguiro acesso ao recurso e com certeza isso resultar em m utilizao dele
(imagine uma impressora imprimindo simultaneamente dois documentos diferentes).
Para evitar essa falha, os processadores devem possuir mecanismos de
verificao e ativao da sincronia quase instantnea, ou no mnimo, no conflitante.
Esses mecanismos no processador so instrues que realizaro a sincronizao de
maneira correta, as instrues sero do tipo verificar e travar recurso, uma mesma
instruo faz a verificao e, se possvel, o travamento do recurso. Esse mecanismo s
vlido em computadores com um processador (podendo o processador ter vrios
ncleos). Em computadores com vrios processadores, o controle da sincronizao
mais complexo, havendo um maior nmero de consideraes a serem feitas. A etapa de
efetivao do sincronismo muito importante, o tempo que ela demora no deve em
hiptese alguma ser demorado. A efetivao da sincronizao deve acontecer
obrigatoriamente antes de o processador executar mais uma instruo de outro processo
(ou do mesmo processo).
A etapa de liberao de uma sincronizao tambm deve ser tratada de
maneira adequada, pois em um ambiente de execuo de mltiplos processos, para
haver a real otimizao da utilizao dos recursos, os processos devem ter acesso aos
mesmos assim que eles no estiverem em uso.

39
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

EXERCICIO

1. O que poltica de escalonamento de um sistema operacional?

2. Quais as funes do escalonador e do dispatcher?

3. Quais os principais critrios utilizados em uma poltica de escalonamento?

4. Diferencie os tempos de processador, espera, turnaround e resposta.

5. Diferencie os escalonamentos preemptivos e no-preemptivos.

6. Qual a diferena entre os escalonamentos FIFO e circular?

7. Descreva o escalonamento SJF e o escalonamento por prioridades.

8. Qual a diferena entre preempo por tempo e preempo por prioridade?

9. O que um mecanismo de escalonamento adaptativo?

10. Que tipo de escalonamento aplicaes de tempo real exigem?

11.Considere um sistema operacional que implemente escalonamento circular


com fatia de tempo igual a 10 u.t.. Em um determinado instante de tempo, existem
apenas trs processos (P1, P2 e P3) na fila de pronto, e o tempo de UCP de cada
processo 18, 4 e 13 u.t, respectivamente. Qual o estado de cada processo no instante
de tempo T, considerando a execuo dos processos P1, P2 e P3, nesta ordem, e que
nenhuma operao de E/S realizada?
a) T = 8 u.t.

b) T = 11 u.t.

c) T = 33 u.t.

12. Considere um sistema operacional que implemente escalonamento circular


com fatia de tempo igual a 10 u.t. Em um determinado instante de tempo, existem
apenas trs processos (P1, P2 e P3) na fila de pronto,e o tempo de UCP de cada
processo 14, 4 e 12 u.t, respectivamente. Qual o estado de cada processo no instante
de tempo T, considerando a execuo dos processos P1, P2 e P3, nesta ordem, e que
apenas o processo P1 realiza operaes de E/S? Cada operao de E/S executada aps
5 u.t. e consome 10 u.t.
a) T = 8 u.t.

b) T = 18 u.t.

40
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

c) T = 28 u.t.
13. Existem quatro processos (P1, P2, P3 e P4) na fila de pronto, com tempos
de UCP estimados em 9, 6, 3 e 5, respectivamente. Em que ordem os processos devem
ser executados para minimizar o tempo de turnaround dos processos?

ATIVIDADE PRTICA

1) Estatsticas

a)Prticas de simulao
Reinicialize o simulador.
Ative a janela de Estatsticas em Console SOsim / Janelas / Estatsticas.
Crie dois novos processos: janela Gerncia de Processos / Criar janela
criao de Processos / Criar.
b)Anlise Prtica
Na janela Estatstica, observe as informaes: nmero de processos, estados
dos processos e processos escalonados
c)Questo terica para responder com a ajuda do simulador: Observe que
em alguns momentos existem processos no estado de pronto, porm
nenhum em estado de execuo. Explique a razo dessa situao.

2) Log de Execuo dos Processos

a)Prticas de simulao
Reinicialize o simulador.
Ative a janela de Log em Console SOsim / Janelas / Log.
Crie dois novos processos do tipo CPU-bound: janela Gerncia de Processos /
Cria janela Criao de Processos / Criar (tipo de processo deve ser CPU-
bound).
b)Anlise Prtica
Na janela Log, observe as informaes sobre as mudanas de estado dos
processos observando o tempo que cada processo permanece nos estados de
execuo e Pronto.
Reinicialize o simulador parametrizado com um valor de fatia de tempo
diferente observe as diferenas na janela Log.
c)Questo terica para responder usando o simulador :Analise
comparativamente a concorrncia de dois processos CPU-bound
executando em dois sistemas operacionais que se diferenciam apenas pelo
valor da fatia de tempo.

3) Suspenso e Eliminao de Processos

a)Prticas de simulao
Reinicialize o simulador.

41
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Crie dois novos processos: janela Gerncia de Processos / Cria janela


criao de processos / Criar.
b)Anlise Prtica
Na janela Gerncia de Processos, observe as informaes sobre o contexto de
software dos processos criados.
Na janela Gerncia de Processador, observe a concorrncia no uso do
processador pelos dois processos.
Compare percentualmente os tempos de uso do processador entre os dois
processos.
Suspenda temporariamente um dos processos na janela Gerncia de Processos
/ Suspender.
Observe os estados dos processos, a concorrncia no uso do processador e
novamente compare percentualmente os tempos de uso do processador entre
os dois processos.
Libere o processo do estado de espera (suspenso) na janela Gerncia de
Processos / Prosseguir.
Elimine um dos processos na janela Gerncia de Processos / Finalizar.
c)Questo terica para responder com a ajuda do simulador :Ao se
eliminar um processo em estado de suspenso, o processo no eliminado
imediatamente.
Reproduza essa situao no simulador e explique a razo da situao.

4) Escalonamento Circular

a)Prticas de simulao
Execute o simulador SOsim e configure-o para trabalhar com Escalonamento
Circular: janela Console SOsim / Opes / Parmetros do Sistema na guia
Processador.
b)Anlise Prtica
Crie dois processos com a mesma prioridade (um CPU-bound e outro I/O-
bound): janela Gerncia de Processos / Criar janela Criao de Processos /
Criar.
Na janela Gerncia de Processos, observe o tempo de processador de cada
processo durante dois minutos e as mudanas de estado. Aps esse perodo
anote o tempo de processador de cada processo. Analise o balanceamento no
uso do processador pelos dois processos.
Na janela Gerncia de Processos finalize os dois processos.
Na janela Gerncia de Processador, aumente a fatia de tempo movimentando
a barra de fatia de tempo.
Na janela Gerncia de Processos, observe mais uma vez o tempo de
processador de cada processo durante dois minutos e as mudanas de estado.
Aps esse perodo anote o tempo de Processador de cada processo. Compare os
tempos anotados nas duas e analise o resultado do balanceamento no uso do
processador pelos dois processos. Identifique as causas da variao.
c)Questo terica para responder com a ajuda do simulador
Considere a concorrncia, nesse tipo de escalonamento, com dois processos
CPU-bound que no realizam operaes de E/S. Qual o efeito da variao
da fatia de tempo sobre o balanceamento no uso do processador?
42
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

GERENCIAMENTO DE ENTRADA E SADA

1 Introduo
Para gerenciar os dispositivos, os sistemas operacionais contam com
gerenciadores especficos: Gerenciador de Impresso, Gerenciador de Disco,
Gerenciador de Modem, Gerenciador USB, Gerenciador de Vdeo, entre outros, Para
realizar essa tarefa, os sistemas operacionais recebem um conjunto de instrues
especficas para o tratamento dos dispositivos. Cada gerenciador ser responsvel por
realizar a administrao e controle da utilizao do respectivo dispositivo.

Princpios de hardware e de software de E/S.

2. Princpios de Hardware de E/S


Segundo Tanenbaum, o hardware de entrada e sada pode ser visto sob dois
pontos de vista:
Viso do Engenheiro Eltrico: v o hardware sob o ponto de vista
de chips, fios, fontes de alimentao, de motores e de todos os componentes
fsicos que o constituem.
Viso do Programador: j o programador v a interface
apresentada para o software (comandos que o hardware aceita, as funes que
ele executa e os erros que podem ser retornados).
43
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Dispositivos de Entrada e Sada

Os dispositivos de entrada e sada o mecanismo utilizado para fazer a


interface entre o mundo exterior e o sistema e sem ele o computador no teria muita
funcionalidade. possvel encontrar uma grande diversidade de dispositivos de entrada
e sada, como: teclados, mouses, monitor de vdeo, impressora, scanners, dentre outros.
Os dispositivos de entrada e sada, dependendo do sentido o do fluxo de
informaes entre o sistema e o dispositivo, podem ser divididos, grosso modo, em
dispositivos de entrada, dispositivos de sada ou dispositivos de entrada e sada. Os
dispositivos de entrada so caracterizados por conter um fluxo de informaes do
dispositivo para o sistema, ou seja, so responsveis por inserir no sistema informao
do mundo externo. J os dispositivos de sada so caracterizados pelo fluxo de
informaes do sistema para o mundo externo, ou seja, responsveis por disponibilizar
respostas ao mundo externo. J os dispositivos e entrada e sada contemplam os dois
fluxos.
Segundo Tanenbaum, os dispositivos tambm podem ser divididos, grosso
modo, em duas categorias: dispositivos de bloco e dispositivos de caractere. Os
dispositivos de bloco so caracterizados por armazenar informaes em blocos de
tamanhos fixos, cada um com seu endereo prprio. A propriedade essencial desse tipo
de dispositivos que possvel ler ou gravar blocos independentemente um do outro. O
disco um bom exemplo deste tipo de dispositivo.
J os dispositivos de caractere so caracterizados por aceitar ou entregar um
fluxo de caracteres, sem considerar qualquer estrutura de bloco, sem endereamento ou
qualquer operao de busca.
Embora esta classificao seja, de forma geral, muito utilizada, segundo o autor
Tanenbaum, existem dispositivos que no so classificveis em nenhum desses tipos.
Como exemplo, tomemos por base os relgios. Os relgios so dispositivos que geram
interrupes em intervalos definidos de tempo. Este dispositivo no se encaixa nos
dispositivos de bloco, pois no possuem estrutura de blocos e, tambm, no se encaixam
como dispositivos de caractere, pois no gera nenhum fluxo de caracteres.

Controladoras de Dispositivos
Para que os dispositivos se comuniquem com o sistema, eles so ligados ao
computador atravs de um componente de hardware chamado de interface. Assim, os
dispositivos no esto ligados diretamente aos barramentos do computador. Devido a
diversidade de tipos de dispositivos, que abstrai diferentes formas de operaes e
complexidade, as interfaces empregam no seu projeto outro componente de hardware
conhecido como controladora de dispositivo.
A controladora de dispositivo (chamada tambm de adaptador de dispositivo)
trata-se de um componente eletrnico, comumente na forma de uma placa de circuito
impresso, que pode ser inserido na placa me do computador. O dispositivo em si trata
se de um componente mecnico. Uma controladora pode manipular mais de um
dispositivo e, quando padronizadas, podem ser fabricadas por diversas empresas. Como
exemplo de controladoras, temos as controladoras de disco IDE ou SCSI.
Cada controladora deve saber especificamente como o dispositivo a ela
relacionado funciona, a fim de que possa enviar comandos a serem realizados.
44
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Basicamente, uma controladora tem a funo de converter um fluxo serial de bits em


um bloco de bytes e executar uma correo de erros. Este bloco de bytes, montado em
um buffer interno da controladora, aps verificado erros, pode ser copiado para a
memria principal. A maioria dos Sistemas Operacionais quase sempre lida com a
controladora, no com o dispositivo.
As controladoras so formadas de um conjunto de registradores que so
enxergados pelo processador. Esses registradores recebem ordens do processador,
fornecem o estado de uma operao ou permitem a leitura ou escrita de dados do
dispositivo. O Sistema Operacional quando deseja dar algum comando controladora
acessam esses registradores (cada registrador possui um endereo). Os endereos dos
registradores podem fazer parte do espao normal de endereamento de memria. Esse
esquema conhecido como mapeamento de entrada e sada em memria.

Controladoras que suportam Acesso Direto Memria

As controladoras comuns (sem acesso direto memria) recebem um fluxo de


caracteres, converte para um bloco, armazenado em seu buffer, depois verifica possveis
erros. Por seguinte, a controladora gera uma interrupo no Sistema Operacional, que
por sua vez, comea a ler o bloco do buffer da controladora, cada byte por vez, e
armazena-os na memria principal. Esta operao, naturalmente, exige desperdcio de
CPU.
O Acesso Direto Memria (DMA Direct Memory Access) um
mecanismo criado para liberar a CPU do trabalho de cpia dos dados da controladora
para a memria. O controlador DMA conectado diretamente ao barramento de dados e
de endereos do computador, para ter a capacidade de acessar diretamente endereos de
memria.
Com a controladora DMA, aps o bloco ter sido lido do dispositivo
completamente e verificado possveis erros, ela copia o primeiro byte para o endereo
de memria principal especificado pelo endereo de memria DMA. Aps terminar a
transferncias dos dados para a memria principal, a controladora DMA gera uma
interrupo para o Sistema Operacional, que ao ser iniciado j encontra o dado em
memria principal.
Segundo Oliveira, a tcnica de DMA mais eficiente quando a operao de
entrada e sada envolve a leitura ou escrita de muitos dados, como exemplo, uma leitura
de disco. Nem todos os computadores utilizam a tcnica de DMA. A justificativa disso
o fato de que a CPU, comumente, bem mais rpida que a controladora DMA e pode
fazer o trabalho de cpia de dados para a memria muito mais rpida.

3 Princpios de Software de E/S

O software de entrada e sada, comumente, organizado em uma estrutura de


camadas, no qual as camadas mais baixas tm como principal funo esconder das
camadas mais altas as peculiaridades do hardware. J as camadas mais altas tm como
principal funo apresentar uma interface amigvel e simples para o usurio final.
Algumas metas de software de entrada e sada podem ser apontadas:
Independncia de dispositivo: deve ser possvel escrever programas que
podem, por exemplo, l arquivos de qualquer dispositivo.
45
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Atribuio uniforme de nomes: o nome de um arquivo ou de um


dispositivo no pode depender do dispositivo.
Tratamento de erros: os erros devem ser tratados o mais perto possvel do
hardware.
Transferncias sncronas ou assncronas: a maior parte dos dispositivos
de E/S so assncronos e os programas dos usurios so mais fceis de implementar
atravs de bloqueios. Assim o Sistema Operacional deve fazer com que as operaes
paream, de fato, com bloqueios para os programas do usurio.
Dispositivos compartilhveis ou dedicados: O Sistema Operacional deve
ser capaz de tratar dispositivos tanto dedicados como compartilhados de uma maneira
que no gere problemas.

Manipuladores de Interrupes
As interrupes devem ser escondidas do sistema. O ideal bloquear um
processo que inicia uma operao de E/S e mant-lo bloqueado at que a operao de
E/S complete e a interrupo tenha ocorrido. O importante a se saber que quando uma
interrupo gerada, o processo desbloqueado, passando para um estado capaz de ser
executado.

Drivers de Dispositivos
O driver de dispositivo (device driver) composto de um conjunto de mdulos
de software cada um implementado para fornecer mecanismos de acesso a um
dispositivo de entrada e sada especfico. Assim, cada driver de dispositivo trata de um
tipo de dispositivo ou de uma classe de dispositivos correlacionados.
De modo geral, um driver responsvel por aceitar uma solicitao abstrata
(por exemplo, ler alguma informao) e cuidar para que esta solicitao seja atendida.
Assim o driver de um dispositivo tem o conhecimento de como funciona a controladora
funciona.

Software de E/S Independente de Dispositivo


A principal funo do software de E/S independente de dispositivo executar
funes que so comuns para vrios dispositivos e oferecer uma interface uniforme para
o software de nvel de usurio.
Segundo Oliveira, podemos enumerar alguns servios sob responsabilidade
dessa camada:
Nomeao de Dispositivo: Cada dispositivo deve receber um nome
lgico e ser identificado a partir dele.
Buferizao: Buffer uma zona de memria temporria utilizada para
armazenar dados enquanto eles esto sendo transferidos entre as diferentes camadas do
software de E/S.
Cache de Dados: Armazenar na memria um conjunto de dados que
esto sendo frequentemente utilizados.
Alocao e Liberao: Devido a alguns dispositivos admitirem, no
mximo, um usurio por vez, o software de E/S deve gerenciar a alocao, liberao e
uso destes dispositivos.
Tratamento de Erros: o software de E/S deve fornecer mecanismos de
manipulao de erros, informando camada superior o sucesso ou fracasso de uma
operao.
46
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Software de E/S de Nvel de Usurio


A viso dos dispositivos de E/S para o usurio consiste de bibliotecas
vinculadas em programas de usurios. Essas bibliotecas so fornecidas pelas linguagens
de programao e podem ser utilizadas pelos usurios e ligadas com seus programas
para compor o arquivo executvel.
As funes de entrada e sada so dependentes e especficas de cada linguagem
de programao. Por exemplo, na linguagem C as funes printf e scanf so utilizadas
para impresso formatada e leitura, respectivamente. As bibliotecas de entrada e sada
no fazem parte do ncleo do Sistema Operacional. Elas so associadas s vrias
linguagens de programao.

47
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

EXERCICIO

1) Qual o papel do Sistema Operacional com relao aos dispositivos de


entrada e sada?

2) Diferencie a viso do engenheiro eltrico e do programador quanto ao


hardware de entrada e sada.

3) Como so caracterizados os dispositivos de E/S de bloco e de caractere.

4) Qual a funo dos Drivers de Dispositivos ?

5) Como funciona as controladoras que suportam DMA.

6) Aponte as metas de software de E/S, explicando cada uma.

7) Qual a principal funo do software de E/S independente de dispositivo?

48
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

GERENCIAMENTO DE MEMRIA

1 Introduo

Historicamente, a memria principal sempre foi vista como um recurso escasso


e caro. Uma das maiores preocupaes dos projetistas foi desenvolver sistemas
operacionais que no ocupassem muito espao de memria e, ao mesmo tempo,
otimizassem a utilizao dos recursos computacionais. Mesmo atualmente, com a
reduo do custo e o aumento considervel da capacidade da memria principal, seu
gerenciamento dos fatores mais importantes no projeto e implementao dos sistemas
operacionais.
O Sistema Operacional tem como principal funo gerenciar a hierarquia de
memria. A parte do SO responsvel por essa funo chamada de gerenciamento de
memria. Entre as funes do gerenciador de memria est em controlar as partes de
memria utilizada e as partes no utilizadas, alocar (disponibilizar) memria para os
processos, desalocar (retirar) memria de processos e gerenciar a troca entre memria
principal (primria) e memria secundria.

Hierarquia de Memria

Basicamente, o gerenciamento da memria a ferramenta utilizada para


permitir aos programas em execuo no computador utilizarem a memria do
computador para armazenar as instrues e dados que sero manipulados.
Os principais objetivos a serem alcanados no gerenciamento da memria so:
Oferecer uma rea de armazenamento para os processos serem
executados;
49
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Proteger a execuo dos processos contra eventuais falhas causadas por


erro em um determinado processo;
Criar um ambiente de execuo com desempenho satisfatrio aos
usurios;
Alm dessas caractersticas, adicionalmente deseja-se de um bom gerenciador:
Compartilhamento da memria entre os processos (em sistemas
avanados);
Permitir aos programadores desenvolverem programas que tenham um
acesso transparente memria do computador.
Nos sistemas operacionais modernos, o gerenciamento da memria realizar
essas tarefas atravs da Proteo da Memria.

2. Gerenciamento Bsico de Memria

O esquema mais simples de gerenciamento de memria foi implementado nos


primeiros Sistemas Operacionais, porm ainda est presente em alguns sistemas
monoprogramveis. Este esquema chamado por alguns autores como alocao
contgua.
Basicamente, a memria principal disponvel dividida entre o Sistema
Operacional e o programa em execuo. Como este esquema de gerenciamento
utilizado em sistemas monoprogramveis, temos apenas um processo em execuo por
vez.

Esquema Bsico de gerenciamento de memria

Neste tipo de gerenciamento, o usurio tem acesso a toda memria principal,


inclusive o espao do Sistema Operacional. possvel proteger a rea de memria do
Sistema Operacional utilizando registradores delimitadores de rea de usurio e do
SO.Assim, os programas esto limitados ao tamanho de memria principal disponvel.
Uma tcnica conhecida como overlay, permite que um programa seja dividido em
mdulos, de forma que seja possvel a execuo independente de cada mdulo,
utilizando uma mesma rea de memria.
50
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

3. Gerencia de Memria para Multiprogramao

Atualmente, os sistemas multiprogramveis so amplamente mais utilizados do


que os sistemas monoprogramveis, devido a maior eficincia do uso do processador,
pois permitem que mltiplos processos executem simultaneamente.
A forma mais simples de gerenciar memria em sistemas multiprogramveis
dividindo a memria principal em parties estticas e com tamanhos definidos,
estabelecidas na fase de inicializao do sistema. Esse tipo de gerncia chamado por
alguns autores por alocao particionada esttica ou alocao fixa.
Quando um processo chega, ele colocado em uma fila de entrada da partio
menor capaz de armazen-lo. Como o esquema prev que a partio fixa, se o
processo no ocupar o espao total da sua partio, o resto de espao desperdiado.

Esquema de gerencia de memria para multiprogramao com Parties Fixas.

Assim, os programas eram carregados em uma partio especfica. Em algumas


situaes, possvel que uma determinada fila exista uma quantidade grande de
processos esperando pela partio enquanto que em outras filas de partio no exista
nenhum processo. Isso era uma grande desvantagem para o sistema.

Por exemplo, na Figura acima podemos verificar que a partio 4 possui trs
processos em espera, enquanto que na partio 2 no existe nenhum processo. Essa
partio poderia, assim, ser utilizado por um desses processos na fila.
Dessa forma, uma soluo para tentar contornar esse problema implementar
este mtodo com uma nica fila. Assim, quando uma determinada partio estivesse
livre, o processo mais prximo do incio da fila que melhor se ajusta essa partio
poderia ser carregado nela. Este mtodo mostrado na Figura abaixo.

51
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Mtodo de parties fixas com nica fila.

Este mtodo de gerncia de memria baseado em parties fixas, de uma forma


ou de outra, gera um grande desperdcio de memria, posto que, um processo ao ser
carregado em uma partio, se ele no ocupa todo o seu espao, o restante no poder
ser utilizado por nenhum outro processo.
Para evitar esse desperdcio, foi desenvolvido um esquema de gerenciamento e
alocao de memria dinamicamente, dependendo da necessidade do processo. Este
esquema conhecido como alocao com parties variveis.

Alocao com Parties Variveis


Quando o mtodo de alocao de parties variveis utilizado, o tamanho das
parties de memria ajustado dinamicamente medida que os processos vo
chegando.
Nesse tipo de esquema, o processo utilizar um espao de memria necessrio,
tornando esse espao sua partio. Isto resolve o problema da fragmentao, pois as
parties passaro a ser definidas a partir da alocao dos processos na memria.
O mtodo bem simples. Observe atravs da Figura abaixo, que um processo
A ao chegar, carregado na memria e o seu tamanho define do tamanho da sua
partio. O processo B e C, de forma anloga, so carregados no espao livre, ainda
disponvel. Ao chegar o processo D, no existe espao livre contnuo suficiente para ele
ser carregado.

52
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Esquema de Alocao com Parties Variveis.

Note que, para inserir o novo processo D na memria foi preciso retirar o
processo A, a fim de o espao de memria suficiente seja disponibilizado para o novo
processo. Assim, o processo A atualizado em disco e o processo D carregado em
memria principal, podendo executar suas atividades.
Este processo de retirar um processo de memria, atualizar em disco e colocar
outro no lugar chamado, segundo Tanenbaum, por mtodo de Troca.

A troca consiste em trazer um processo inteiro, executa-lo temporariamente e,


ento, devolve-lo ao disco. Isto acontece quando a memria principal disponvel
insuficiente para manter todos os nossos processos carregados (situao que seria a
tima).
Existe outra estratgia, que permite que apenas parte do programa fique em
memria principal. Esta estratgia, bem mais complexa que a troca, conhecida como
Memria Virtual.
O mtodo de alocao dinmica da partio bem mais flexvel que o mtodo
de alocao esttica. Porm, essa flexibilidade tambm complica mais a tarefa de alocar
e desalocar a memria, assim como a monitorao da memria utilizada. O Sistema
Operacional tem a funo de gerenciar essa memria. De modo geral, h duas maneiras
de monitorar o uso da memria: atravs do mapa de bits e listas encadeadas.

Gerenciamento de Memria com Mapa de Bits

Com o mapa de bits, a memria dividida em unidades de alocao e para


cada unidade associado um bit no mapa. Se este bit estiver com valor 0 implica que
esta unidade de alocao est vazia. Se este bit estiver com valor 1 implica que esta
unidade de alocao est preenchida por algum processo.
Atravs da Figura abaixo mais fcil compreender como essa estratgia de
gerenciamento funciona. Considere a memria, particionada em XX unidades de
53
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

alocao, com processos e espaos vazios (lacunas). O mapa de bits dessa memria
ser configurado como mostrado na figura.

Memria dividida em unidade de alocao e o Mapa de bits correspondente

O ponto crucial do mapa de bits a definio do tamanho da unidade de


alocao. Se ele for muito pequeno, o mapa de bits poder ser muito grande. Se a
unidade for muito grande, o mapa de bits ser menor, mas uma quantia de memria
poder ser desperdiada na ltima unidade se o tamanho do processo no for um
mltiplo exato da unidade de alocao.

Gerenciamento de Memria com Listas Encadeadas


Outra estratgia manter uma lista encadeada dos segmentos de memria
alocados e livres, onde um segmento pode ser um processo ou lacuna entre dois
processos.
Assim, cada n da lista seria formado por uma entrada especificando se um
processo (P) ou uma lacuna (L), o endereo de onde se inicia a quantidade de unidades
de alocao e um ponteiro para a prxima entrada. A Figura abaixo ilustra a mesma
memria gerenciada atravs de listas encadeadas.

Memria dividida em unidade de alocao, monitorada atravs de lista encadeada

54
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Memria Virtual

Em 1961, Fotheringham desenvolveu um mtodo conhecido como memria


virtual. O principal objetivo desta tcnica estender a memria principal atravs de
memria secundria, dando impresso ao usurio que ele tem a disposio uma
quantidade de memria maior do que a memria real disponvel. Em outras palavras,
para facilitar o entendimento, a tcnica de memria virtual disponibiliza para o usurio
uma memria de trabalho maior do que a memria principal (RAM). Esse espao de
memria adicional implementado em disco conhecido como memria de swap.
Os primeiros sistemas operacionais implementavam tcnicas rudimentares de
memria virtual, que em comparao com os sistemas proprietrios, em que os
programas gerenciavam sua prpria memria, tinham um desempenho abaixo do
desejado para justificar uma substituio. Foi a IBM no final da dcada de 1960 que
oficializou a adoo da memria virtual nos computadores ao lanar alguns modelos
que utilizavam esse recurso. A partir de ento, todas as empresas passaram a implantar
nos sistemas operacionais a capacidade de gerenciamento da memria atravs da
Memria Virtual.
A utilizao de memria virtual em um sistema computadorizado depende
principalmente da arquitetura do computador, mais especificamente, do modo de
endereamento de memria utilizado pelo processador. A Intel, desenvolvedora dos
processadores Pentium, adotou o recurso de memria virtual em seus processadores em
1982 com o lanamento do modelo 80286. A Microsoft passou a utilizar o recurso de
memria virtual apenas em 1990, no lanamento do MS-Windows 3.

Ilustrao do mtodo de memria virtual.

Assim, o Sistema Operacional deve manter parte do programa que est em uso
na memria principal e parte dele na memria swap. Na multiprogramao, partes de
vrios processos podem ser mantidas em memria principal e partes em memria swap.

55
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Paginao
Segundo Silberstchaz, a paginao um esquema de gerenciamento de
memria em que o espao de endereamento fsico (endereos de memria principal) de
um processo no contguo. A paginao, assim, evita o problema da fragmentao
externa gerado pela alocao de memria dinmica.
Os programas so capazes de gerar endereos, chamados de endereos
virtuais. Esse conjunto de endereos forma o que chamamos de espao de
endereamento virtual.
Em sistemas que no utilizam a tcnica de memria virtual, o endereo virtual
equivale ao endereo fsico, especificando exatamente onde o programa ser
armazenado na memria principal.
Em computadores que utilizam a tcnica de memria virtual, os endereos
virtuais no vo diretamente para o barramento de memria. Primeiramente, ele passa
por uma unidade chamada de Unidade de Gerenciamento de Memria (MMU
Memory Management Unit). A MMU tem como funo mapear um endereo virtual
para um endereo lgico. Adiante, o espao de endereamento virtual dividido em
unidade chamadas de pginas.
A memria principal tambm dividida em unidades, do mesmo tamanho das
pginas, chamadas de molduras de pgina (quadro). Assim, num sistema que contm
pginas de 4k, as molduras tambm sero de 4k.
Considere a Figura abaixo, com o espao de endereo virtual formado de 64k e
o a memria fsica de 32k, com pginas de molduras de 4k.Note atravs da figura, que
temos 16 pginas virtuais e 8 molduras de pginas. Quando um programa tenta acessar
um endereo virtual, este passado para a MMU, que vai analisar o mapeamento deste
endereo e descobrir a qual moldura pertence. A MMU mapeia este endereo virtual
para o endereo fsico, que, por fim, colocado no barramento de memria.

Tcnica de Paginao

56
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

EXERCICIO

1. Qual a funo do gerenciador de memria de um Sistema Operacional.

2. Como funciona o gerenciamento bsico de memria.

3. Como funciona o gerenciamento de memria para multiprogramao por


alocao particionada esttica.

4. Explique a tcnica overlay

5. Como funciona o gerenciamento de memria para multiprogramao por


alocao com parties variveis e qual sua vantagem com relao s parties fixas.

6. Diferencie as abordagens de gerenciamento de memria baseado por


troca e memria virtual.

9. Quais os benefcios oferecidos pela tcnica de memria virtual? Como este


conceito permite que um programa e seus dados ultrapassem os limites da memria
principal?
10. Defina Paginao

11. Explique o gerenciamento de memria com mapa de bits.

57
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

ATIVIDADE PRTICA

1) Espao de Endereamento Virtual


a) Prticas de simulao
Execute o simulador SOsim e configure-o para trabalhar com
Escalonamento Circular: janela Console SOsim / Opes / Parmetros do Sistema na
guia Processador.
Configure a poltica de busca de pginas sob demanda: janela Console
SOsim / Opes / Parmetros do Sistema na guia Memria.
Re-inicie o simulador SOsim para que a nova parametrizao passe a ser
vlida.

b) Anlise Prtica
Crie dois processos CPU-bound: janela Gerncia de Processos / Criar janela
Criao de Processos / Criar.
Ative a janela Contexto do Processo para visualizar a tabela de pginas do
processo criado: Gerncia de Processos / PCB na guia Tab. de Pag.
Na janela Gerncia de Memria observe a alocao dos frames na memria
principal.
Na janela Contexto do Processo observe as alteraes nas tabelas de pginas
dos dois processos navegando com as setas inferiores.

c) Questes tericas para responder com a ajuda do simulador


Qual o espao de endereamento real mximo de um processo?
Qual o espao de endereamento real mnimo de um processo?
Qual o tamanho da pgina virtual?

58
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

GERENCIA DE ARQUIVOS

1. Introduo aos Sistemas de Arquivos

O sistema de Arquivo o modo como o sistema operacional organiza o acesso


aos arquivos e pastas no computador. Cada sistema de arquivo tem uma caracterstica
particular, mas em geral, seu propsito criar abstrao necessria para dar acesso
fsico aos dispositivos e permitir que sejam gravadas/lidas informaes nele.(
MARCOS AURELIO LAUREANO/Diogo Roberto Olsen,LIVRO TECNICO )

Segundo Tanenbaum, existem trs requisitos essenciais para o armazenamento


de informao por longo prazo:
Deve ser possvel armazenar uma grande quantidade de
informao;
A informao deve sobreviver ao trmino do processo que a usa;
Mltiplos processos tm de ser capazes de acessar a informao
concorrentemente.
A soluo encontrada usualmente para o armazenamento de informaes
utilizar mdias externas e distintas da memria principal (voltil) em unidades chamadas
arquivos, de modo que essas informaes devem ser armazenadas de forma persistente,
ou seja, no pode ser afetada pela criao e trmino de um processo. Assim, um arquivo
s ir ser destrudo quando seu proprietrio remov-lo explicitamente. (ERICO
MENESES LEO, SISTEMAS OPERACIONAIS)

Arquivo

Um arquivo basicamente um conjunto de dados armazenados em um


dispositivo fsico no-voltil, com um nome ou outra referncia que permita sua
localizao posterior. Do ponto de vista do usurio e das aplicaes, o arquivo a
unidade bsica de armazenamento de informao em um dispositivo no-voltil, pois
para eles no h forma mais simples de armazenamento persistente de dados. Arquivos
so extremamente versteis em contedo e capacidade: podem conter desde um texto
ASCII com alguns bytes at sequncias de vdeo com dezenas de gigabytes, ou mesmo
mais (Carlos Alberto Maziero,Sistemas Operacionais: Conceitos e Mecanismos)
. Como um dispositivo de armazenamento pode conter milhes de arquivos,
estes so organizados em estruturas hierrquicas denominadas diretrios.
A organizao fsica e lgica dos arquivos e diretrios dentro de um dispositivo
denominada sistema de arquivos.
Um sistema de arquivos pode ser visto como uma imensa estrutura de dados
armazenada de forma persistente em um dispositivo fsico. Existe um grande nmero de
sistemas de arquivos, dentre os quais podem ser citados o NTFS (nos
sistemasWindows),Ext2/Ext3/Ext4 (Linux), HPFS (MacOS), FFS (Solaris) e FAT
(usado em pendrives USB,mquinas fotogrficas digitais e leitores MP3).

59
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Nomeao de Arquivos
Segundo Tanenbaum, o arquivo um mecanismo de abstrao, no qual oferece
meios de armazenar informaes no disco e l-las posteriormente. A caracterstica mais
importante de qualquer mecanismo de abstrao o modo como os objetos so
gerenciados e nomeados, isto , a nomeao de arquivos.
Um processo ao criar um arquivo, atribui um nome a ele e quando o processo
termina, este arquivo continua existindo,possibilitando que outros processos possam ter
acesso a ele simplesmente buscando por seu nome.
As regras de nomeao de arquivos variam de sistema para sistema, porm,
como caracterstica comum, todos os Sistemas Operacionais atuais permitem cadeias de
caracteres de um at oito letras como nomes vlidos de arquivos. Alguns Sistemas de
Arquivos permite a utilizao de caracteres especiais, outros no; alguns Sistemas de
Arquivos permitem nomes com tamanhos at 255 caracteres; alguns Sistemas de
Arquivos fazem distino entre letras maisculas e minsculas (case sensitive), como
exemplo o Sistema de Arquivo do Unix, enquanto que outros no diferenciam,como
exemplo o Sistema de Arquivo do MS-DOS e do Windows.
A maioria dos Sistemas Operacionais (na verdade, o Sistema de Arquivo do
SO) suporta nomes de arquivos de duas partes, separados por um ponto. A parte aps o
ponto chamada de extenso do arquivo e o contedo do arquivo. Essa extenso, em
alguns Sistemas Operacionais, utilizada para atribuir qual programa deve abrir aquele
arquivo em especfico.
Exemplos :
arquivo.c Arquivo fonte em C
arquivo.mp3- Arquivo de msica
arquivo.dll-Biblioteca dinmica

Estruturas de Arquivos
Segundo Tanenbaum, os arquivos podem ser estruturados, basicamente, atravs
de trs maneiras, como visualizados na Figura abaixo

Estrutura de Arquivo

60
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Seqncia de bytes no-estruturada: Nessa estrutura o SO no sabe o


que o arquivo contm e tudo que ele enxerga uma sequncia de bytes. Tal estratgia
apresenta uma mxima flexibilidade, uma vez que os programas dos usurios podem
pr qualquer coisa que queiram em seus arquivos e cham-los do nome que lhes
convier.
Seqncia de registro de comprimento fixo: Um arquivo uma
seqncia de registros de tamanho fixo, cada um com alguma estrutura interna. A idia
central que a operao de leitura retorna um registro e a operao de escrita sobrepe
ou anexa um registro.
rvore de Registros: Um arquivo constitudo de uma rvore de
registros (no necessariamente do mesmo tamanho), cada um contendo um campo-
chave em uma posio fixa no registro, na qual a rvore ordenada pelo campo-chave
para que se busque mais rapidamente por uma chave especfica. Alm disso, novos
registros podem ser adicionados ao arquivo, decidindo o sistema operacional onde
coloc-los. Este tipo de arquivo amplamente aplicado em computadores de grande
porte usados ainda para alguns processamentos de dados comerciais.

2 Tipos de Arquivos
Vrios tipos de arquivos so suportados pelos Sistemas Operacionais. Podemos
enumerar os principais tipos:
Arquivos comuns: Arquivos que contm informaes do usurio.
Diretrios: Arquivos do sistema que mantm a estrutura do sistema de
arquivos.
Arquivos especiais de caracteres: Arquivos relacionados entrada e
sada e usados para modelar dispositivos de E/S.
Arquivos especiais de blocos: arquivos usados para modelar discos.
Os arquivos comuns (informaes do usurio), em geral, so arquivos ASCII
ou arquivos binrios. Os arquivos ASCII so constitudos de linhas de texto, possuindo
como grande vantagem o fato de que eles podem ser mostrados e impressos como so e
poder ser editados com qualquer editor de textos. Alm disso, facilita a conexo entre a
sada de um programa e a entrada de outro. J os arquivos binrios, em geral, possuem
alguma estrutura interna, conhecida pelos programas que os usam.
Todo Sistema Operacional deve reconhecer pelo menos um tipo de arquivo:
seu prprio arquivo executvel.

3 Atributos
Conforme apresentado, um arquivo uma unidade de armazenamento de
informaes que podem ser dados, cdigo executvel, etc. Cada arquivo caracterizado
por um conjunto de atributos, que podem variar de acordo com o sistema de arquivos
utilizado.
Os atributos mais usuais so:
Nome: string de caracteres que identifica o arquivo para o usurio, como
foto1.jpg, relatrio.pdf, hello.c, etc.;

61
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Tipo: indicao do formato dos dados contidos no arquivo, como udio,


vdeo, imagem, texto, etc. Muitos sistemas operacionais usam parte do nome do
arquivo para identificar o tipo de seu contedo, na forma de uma extenso: .doc,
.jpg, .mp3, etc.;
Tamanho: indicao do tamanho do contedo do arquivo, em bytes ou
registros;
Datas: para fins de gerncia, importante manter as datas mais importantes
relacionadas ao arquivo, como suas datas de criao, de ltimo acesso e de ltima
modificao do contedo;
Proprietrio: em sistemas multi-usurios, cada arquivo tem um proprietrio,
que deve estar corretamente identificado;
Permisses de acesso: indicam que usurios tm acesso quele arquivo e que
formas de acesso so permitidas (leitura, escrita, remoo, etc.);
Localizao: indicao do dispositivo fsico onde o arquivo se encontra e da
posio do arquivo dentro do mesmo;
Outros atributos: vrios outros atributos podem ser associados a um arquivo,
por exemplo, para indicar se um arquivo de sistema, se est visvel aos usurios, se
tem contedo binrio ou textual, etc. Cada sistema de arquivos normalmente define seus
prprios atributos especficos, alm dos atributos usuais.

3 Operaes
As aplicaes e o sistema operacional usam arquivos para armazenar e
recuperar dados. O uso dos arquivos feito atravs de um conjunto de operaes,
geralmente implementadas sob a forma de chamadas de sistema e funes de
bibliotecas. As operaes bsicas envolvendo arquivos so:
Criar: a criao de um novo arquivo implica em alocar espao para ele no
dispositivo de armazenamento e definir seus atributos (nome, localizao, proprietrio,
permisses de acesso, etc.);
Abrir: antes que uma aplicao possa ler ou escrever dados em um arquivo,
ela deve solicitar ao sistema operacional a abertura desse arquivo. O sistema ir ento
verificar se o arquivo existe verificar se as permisses associadas ao arquivo permitem
aquele acesso, localizar seu contedo no dispositivo de armazenamento e criar uma
referncia para ele na memria da aplicao;
Ler: permite transferir dados presentes no arquivo para uma rea de memria
da aplicao;
Escrever: permite transferir dados na memria da aplicao para o arquivo no
dispositivo fsico; os novos dados podem ser adicionados no final do arquivo ou
sobrescrever dados j existentes;
Mudar atributos: para modificar outras caractersticas do arquivo, como
nome, localizao, proprietrio, permisses, etc.
Fechar: ao concluir o uso do arquivo, a aplicao deve informar ao sistema
operacional que o mesmo no mais necessrio, a fim de liberar as estruturas de
gerncia do arquivo na memria do ncleo;
Remover: para eliminar o arquivo do dispositivo, descartando seus dados e
liberando o espao ocupado por ele.

62
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Alm dessas operaes bsicas, outras operaes podem ser definidas, como
copiar, mover ou renomear arquivos. Todavia, essas operaes geralmente podem ser
construdas usando as operaes bsicas.

4 Implementao de Arquivos
A criao de arquivos exige que o sistema operacional tenha controle de quais
reas ou blocos no disco esto livres. importante o controle de quais blocos de discos
esto relacionados a quais arquivos. Este gerenciamento pode ser feito, principalmente
de varias formas: Alocao contgua, alocao por lista encadeada, alocao
indexada e alocao combinada.

Alocao Contgua

Consiste em armazenar um arquivo em blocos sequencialmente


dispostos.Neste tipo, o sistema localiza um arquivo atravs do endereo do primeiro
bloco e da sua extenso em blocos.
Este tipo de alocao apresenta duas vantagens significativas.
bastante simples de implementar e de realizar o controle sobre os onde
os blocos esto.
O desempenho de leitura excelente, pois todo o arquivo pode ser lido
em uma nica operao a partir do primeiro bloco de dados.

Arquivos Incio #blocos

acorde.txt 010 003


prova.doc 002 008
Aula.pdf 017 005

Quando o sistema operacional deseja alocar espao para um novo arquivo,


pode existir mais de um segmento livre disponivl com o tamanho exigido e
necessario que alguma estrategia de alocao seja adotada para selecionar qual
segmento deve ser escolhido. Algumas estratgias podem ser utilizadas :

First-fit: O primeiro segmento livre com tamanho suficiente para alocar


o arquivo selecionado . A busca na lista sequencial, sendo interrompida to logo se
encontre o segmento adequado.

Best-fit: Seleciona o menor segmento livre disponvel com tamanho


suficiente para armazenar o arquivo.

63
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Worst-fit: O maior segmento alocado e a busca por toda a lista se faz


necessria, a menos que haja uma ordenao por tamanho

No entanto este tipo de implementao apresenta uma grande problema:


Fragmentao do disco. Como os arquivos podem ser criados e eliminados
frequentemente, os segmentos livres vo se fragmentando em pequenos pedaos por
todo o disco. O problema pode tornar-se crtico quando um disco possui blocos livres
disponveis, porm no existe um segmento contguo em que o arquivo possa ser
alocado.

Como alocar um arquivo com 4 blocos ?

64
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

O problema da fragmentao pode ser contornado atravs de rotinas que


reorganizem todos os arquivos no disco de maneira que s exista um nico segmento de
blocos livres. Este procedimento, denominado desfragmentao.
A desfragmentao tem por objetivo reorganizar os arquivos no disco para que
haja um unico segmento de blocos livres .Isto exige um grande numero de tempo e tem
efeitos temporarios

Alocao por Lista Encadeada


O arquivo organizado como um conjunto de blocos ligados no disco.
Independente de sua localizao fsica cada bloco deve possuir um ponteiro para o
bloco seguinte.

Arquivos Incio #blocos

acorde.txt 010 003


prova.doc 002 008
Aula.pdf 017 005

65
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

A principal vantagem de se utilizar a alocao por lista encadeada est no fato


de evita o grande desperdcio em disco, comum na alocao contgua. Alm disso, para
acessar todo o arquivo suficiente armazenar apenas o endereo de disco do primeiro
bloco.
Porm, a principal desvantagem da utilizao desse mtodo que o acesso
aleatrio extremamente lento. Alm disso, considerando que cada bloco ter que
guardar o endereo do bloco seguinte, existe um gasto de memria adicional.

1.2.3. Alocao por Lista Encadeada Usando ndice

Neste tipo de alocao ocorre a existncia de ponteiros indexando todos os


blocos de arquivos em uma nica estrutura denominada bloco de ndice ou n-ndice
(inode). Permite o acesso direto aos blocos de arquivo e no utiliza informaes de
controle nos blocos de dados como na alocao encadeada.

Arquivos Incio #blocos

acorde.txt 010 003


prova.doc 002 008
Aula.pdf 017 005

66
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

5 Diretrios
A quantidade de arquivos em um sistema atual pode ser muito grande,
chegando facilmente a milhes deles em um computador desktop tpico, e muito mais
em servidores. Embora o sistema operacional possa tratar facilmente essa imensa
quantidade de arquivos, essa tarefa no to simples para os usurios: identificar e
localizar de forma inequvoca um arquivo especfico em meio a milhes de outros
arquivos pode ser impraticvel. Para permitir a organizao de arquivos dentro de uma
partio, so usados diretrios. (Sistemas Operacionais: Conceitos e Mecanismos, Prof.
Carlos Alberto Maziero)
Um diretrio, tambm chamado de pasta (folder), representa um continer de
informaes, que pode conter arquivos ou mesmo outros diretrios. Da mesma forma
que os arquivos, diretrios tm nome e atributos, que so usados na localizao e acesso
aos arquivos neles contidos. Cada espao de armazenamento possui ao menos um
diretrio principal, denominado diretria raiz (root directory).
Em sistemas de arquivos mais antigos e simples, o diretrio raiz de um volume
estava definido em seus blocos de inicializao, normalmente reservados para
informaes de gerncia. Todavia, como o nmero de blocos reservados era pequeno e
fixo, o nmero de entradas no diretrio raiz era limitado.
Nos sistemas mais recentes, um registro especfico dentro dos blocos de
inicializao aponta para a posio do diretrio raiz dentro do sistema de arquivos,
permitindo que este tenha um nmero muito maior de entradas.
O uso de diretrios permite construir uma estrutura hierrquica (em rvore) de
armazenamento dentro de um volume, sobre a qual os arquivos so distribudos.
Os primeiros sistemas de arquivos implementavam apenas o diretrio raiz, que
continha todos os arquivos do volume. Posteriormente, ofereceram subdiretrios, ou
seja, um nvel de diretrios abaixo do diretrio raiz.
Os sistemas atuais oferecem uma estrutura muito mais flexvel, com um
nmero de nveis de diretrio muito mais elevado, ou mesmo ilimitada (como no NTFS
e no Ext3).A implementao de diretrios relativamente simples: um diretrio
implementado como um arquivo estruturado, cujo contedo uma relao de entradas.

Figura 1 Projeto de Sistema de Arquivo hierrquico


67
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

Nomes de Caminhos

Quando organizamos um Sistema de arquivos baseado em uma rvore de


diretrios, torna-se necessrio uma forma de especificar o nome dos arquivos, e para
isso so usados, comumente, dois mtodos: nome de caminho absoluto e nome de
caminho relativo.
Um nome de caminho absoluto formado pelo caminho entre o diretrio-raiz e
o arquivo especfico. Os nomes de caminhos absolutos sempre iniciam no diretrio-raiz
e so nicos.
Em Sistemas de Arquivos do Windows os componentes do caminho so
separados por \. J em Sistemas de Arquivos do Unix so separados por /.
J o nome de caminho relativo utilizado em conjunto com o conceito de
diretrio de trabalho (tambm chamado diretrio atual).
Assim, um usurio pode designar um diretrio de trabalho especfico e
quaisquer nomes de caminhos que no comecem a partir do diretrio-raiz so
interpretados em relao ao diretrio do trabalho.
Como exemplo, imagine que o diretrio de trabalho de um usurio UNIX seja
/home/usurio, ento o arquivo, cujo nome de caminho absoluto seja
/home/usurio/arquivo.txt pode, simplesmente, ser interpretado como arquivo.txt.
Cada processo possui seu prprio diretrio de trabalho. Dessa forma, quando
um processo altera seu diretrio de trabalho e depois sai, nenhum outro processo
afetado e nenhum vestgio da mudana deixado no sistema de arquivos. Por outro
lado, procedimentos de bibliotecas raramente alteram o diretrio de trabalho e, quando
precisam faz-lo, eles sempre voltam para onde estavam, se no o resto do programa
poder no funcionar.
A maioria dos Sistemas Operacionais que suportam um sistema de diretrio
hierrquico tem duas entradas especiais em cada diretrio: ponto (.) e o ponto-ponto (..).
O ponto refere-se ao diretrio atual, enquanto que o ponto-ponto refere-se ao diretrio
pai (diretrio anterior). Como exemplo, se um usurio tiver trabalhando no diretrio
/home/usurio, caso utilize o ponto-ponto, ele estar subindo na rvore de diretrios, ou
seja, referenciando o diretrio /home. Se ele utilizar o ponto, estar referenciando o
prprio diretrio (/home/usurio).

Operaes com Diretrios


Como os arquivos, existem diversas chamadas ao sistema para gerenciar
diretrios, que, tambm, variam de sistema para sistema. As operaes mais importantes
so:
Criar: utilizado para criar um determinado diretrio. Inicialmente
criado um diretrio vazio, contendo apenas o ponto e o ponto-ponto.
Apagar: operao utilizada para apagar um determinado diretrio.
Normalmente, s possvel excluir um diretrio vazio.
Abrir diretrio: a partir desta operao possvel abrir um diretrio.
Antes de ler um diretrio preciso, inicialmente, abri-lo.
Fechar diretrio: operao utilizada para fechar um diretrio.
Ler: esta chamada utilizada para ler o contedo de um diretrio.
Renomear: fornece a possibilidade de alterar o nome do diretrio.

68
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

EXERCCIO

1. Qual a funo de um sistema de gerenciamento de arquivos em um


Sistema Operacional.

2. O que so arquivos e diretrios.

3. Aponte as principais caractersticas de nomeao de arquivos.

4. Como os arquivos podem ser estruturados.

5. Enumere os principais atributos de um arquivo.

6. Enumere as principais operaes com arquivos, explicando-as.

7. Como caracterizado a implementao de um arquivo a partir de


alocao contgua.

8. Como caracterizado a implementao de um arquivo a partir de listas


encadeadas.

9. O que muda na implementao de arquivos a partir de listas encadeadas com


ndice.

69
PRONATEC/SEDUC-PI SISTEMAS OPERACIONAIS

REFERENCIAS BIBLIOGRFICAS

TANEMBAUM,A.S. Sistemas Operacionais Modernos .2 edio . So


Paulo,Ed.Prentice Hall,2003
LEO,Erico Meneses : Sistemas Operacionais .Universidade Aberta do Brasil
OLSEN .Diogo Roberto .Sistemas Operacionais/ LAUREANO.Marcos Aurlio.-
Curitiba: Editora do Livro Tcnico .2010
Maziero, Carlos Alberto. Sistemas Operacionais Conceitos Bsicos .2011
Machado, Francis B. Arquitetura de Sistemas Operacionais.Ed. LTC
Abraham Silberschatz .Sistemas Operacionais: Conceitos e Aplicaes.Ed. Campus
Tanenbaum , A.S. Sistemas Operacionais Modernos .Ed. Campus
A evoluo dos sistemas operacionais-Traduzido e adaptado por Raimundo G Nbrega
Filho o texto Operating Systems: Design And Implementation,Andrew S. Tanenbaum -
Editora Prentice Hall
http://www.inf.ufes.br/~zegonc/material/Sistemas%20Operacionais/Introducao.pdf
http://www.afms.com.br/sistemas_operacionais.html
www.docstoc.com/.../Lista-de-Exerccios-respondida---Grupo-Educacion
Simulador de Ensino para Sistemas Operacionais
http://www.training.com.br/sosim/-
http://www.ppgia.pucpr.br/_maziero

REFERENCIA SISTEMA DE ARQUIVO

http://www.inf.unioeste.br/~marcio/SO/Aula9SistemadeArquivos.pdf

REFERENCIA PROCESSOS

http://docente.lages.ifsc.edu.br/juliano.goncalves/MaterialDidatico/Sistemas%20Operac
ionais/Exerc%C3%ADcios%20Revis%C3%A3o%20ProvaI.pdf
http://dainf.ct.utfpr.edu.br/~maziero/lib/exe/fetch.php/so:filesystem.pdf
http://www.cafw.ufsm.br/~roberto/?page_id=26
http://www.metropoledigital.ufrn.br/aulas/disciplinas/sist_operacional/aula_03.html

70