Você está na página 1de 75

1

PROF. EVERSON SCHERRER BORGES

SISTEMAS OPERACIONAIS

CACHOEIRO DE ITAPEMIRIM

2009

Sistemas Operacionais
2

Governo Federal
Ministro de Educação
Fernando Haddad

Ifes – Instituto Federal do Espírito Santo


Reitor
Dênio Rebello Arantes

Pró-Reitora de Ensino
Cristiane Tenan Schlittler dos Santos

Coordenadora do CEAD – Centro de Educação a Distância


Yvina Pavan Baldo

Coordenadoras da UAB – Universidade Aberta do Brasil


Yvina Pavan Baldo
Maria das Graças Zamborlini

Curso de Tecnologia em Análise e Desenvolvimento de Sistemas


Coordenação de Curso
Giovany Frossard Teixeira

Designer Instrucional
Jonathan Toczek Souza

Professor Especialista/Autor
Everson Scherrer Borges

Borges, Everson Scherrer


Sistemas operacionais / Everson Scherrer Borges. – 2009. Cachoeiro de
Itapemirim: Ifes, 2009.
75 folhas.
Material do curso de Licenciatura de Informática à Distância – Instituto
Federal do Espírito Santo, Campus Cachoeiro de Itapemirim, 2009.
1. Informática - Sistemas operacionais. 2. Sistemas operacionais - Processos. I. Título.

CDD 005.43

DIREITOS RESERVADOS
Ifes – Instituto Federal do Espírito Santo
Av. Vitória – Jucutuquara – Vitória – ES - CEP - (27) 3331.2139

Créditos de autoria da editoração


Capa: Juliana Cristina da Silva
Projeto gráfico: Juliana Cristina da Silva / Nelson Torres
Iconografia: Nelson Torres
Editoração eletrônica: Duo Translations

Revisão de texto:
Zenas Vieira Romano

COPYRIGHT – É proibida a reprodução, mesmo que parcial, por qualquer meio, sem autorização escrita dos autores
e do detentor dos direitos autorais.

Licenciatura em Informática
3

Olá, Aluno(a)!

É um prazer tê-lo conosco.

O Ifes oferece a você, em parceria com as Prefeituras e com o Governo


Federal, o Curso de Licenciatura em Informática, na modalidade à dis-
tância. Apesar de este curso ser ofertado à distância, esperamos que haja
proximidade entre nós, pois, hoje, graças aos recursos da tecnologia da
informação (e-mails, chat, videoconferênca, etc.), podemos manter uma
comunicação efetiva.

É importante que você conheça toda a equipe envolvida neste curso: coor-
denadores, professores especialistas, tutores à distância e tutores presenciais.
Assim, quando precisar de algum tipo de ajuda, saberá a quem recorrer.

Na EaD - Educação a Distância - você é o grande responsável pelo sucesso


da aprendizagem. Por isso é necessário que se organize para os estudos e
para a realização de todas as atividades, nos prazos estabelecidos, confor-
me orientação dos Professores Especialistas e Tutores.

Fique atento às orientações de estudo que se encontram no Manual do Aluno!

A EaD, pela sua característica de amplitude e pelo uso de tecnologias modernas,


representa uma nova forma de aprender, respeitando, sempre, o seu tempo.

Desejamos a você sucesso e dedicação!

Equipe do Ifes

Sistemas Operacionais
4

ICONOGRAFIA

Veja, abaixo, alguns símbolos utilizados neste material para guiá-lo em seus estudos.

Fala do Professor

Conceitos importantes. Fique atento!

Atividades que devem ser elaboradas por você,


após a leitura dos textos.

Indicação de leituras complemtares, referentes


ao conteúdo estudado.

Destaque de algo importante, referente ao


conteúdo apresentado. Atenção!

Reflexão/questionamento sobre algo impor-


tante referente ao conteúdo apresentado.

Espaço reservado para as anotações que você


julgar necessárias.

Licenciatura em Informática
5

SISTEMAS OPERACIONAIS

Cap. 1 - INTRODUÇÃO SISTEMAS


OPERACIONAIS 9
1.1 Introdução 9
1.1.1 Facilidade de acesso aos recursos do
    sistema 10
1.1.2 Compartilhamento de recursos de forma
    organizada e protegida 10
1.2 Máquinas de Níveis 12
1.3 Ativação e Desativação do Sistema 13

Cap. 2 - TIPOS DE SISTEMAS OPERACIONAIS 17


2.1 Introdução 17
2.2 Sistemas Monoprogramáveis / Monotarefa 18
2.3 Sistemas Multiprogramáveis / Multitarefa 19
2.3.1 Sistemas Batch 21
2.3.2 Sistemas de Tempo Compartilhado 21
2.3.3 Sistemas de Tempo Real 22
2.4 Sistemas Com Multiprocessadores 23
2.4.1 Sistemas Fortemente Acoplados 24
2.4.1.1 Sistemas Assimétricos 24
2.4.1.2 Sistemas Simétricos 25
2.4.2 Sistemas Fracamente Acoplados 27
2.4.2.1 Sistemas Operacionais de Rede 28
2.4.2.2 Sistemas Operacionais Distribuídos 29

Cap. 3 - PROCESSOS 33
3.1 Introdução 33
3.2 Gerenciamento de Programas 35
3.3 Estados do Processo 36
3.3.1 Estados de um Processo Ativo 36
3.3.1.1 Executando (running) 37
3.3.1.2 Apto ou Pronto (ready) 37
3.4 Estados de Criação e Destruição de um
   Processo 38
3.5 Transições de Estado do Processo 39
3.5.1 Apto → Executando 39
3.5.2 Execução → Apto 40
3.5.3 Execução → Bloqueado 40

Sistemas Operacionais
6

3.5.4 Bloqueado → Apto 40


3.6 Transições de Estado com Swapping 41
3.7 Processos Independentes, Subprocessos e
   Threads 42
3.7.1 Processos Foreground e Background e
    Pipes 44
3.7.1.1 Processo Foreground 44
3.7.1.2 Processo Background 44
3.7.1.3 Pipe entre Processos 45
3.8 Processos do Sistema Operacional 45
3.8.1 Processos CPU-bound e I/O-bound 46
3.9 Sinais 47

Cap. 4 - SISTEMAS DE ARQUIVOS 51


4.1 Introdução 51
4.2 Organização de um Sistema de Arquivos 51
4.3 Propriedades dos Arquivos 53
4.4 Organização dos Arquivos 54
4.5 Nomeação dos Arquivos e Diretórios 55
4.6 Metadados dos Arquivos 56
4.7 Classificação dos Sistemas de Arquivos 57

Cap. 5 - GERÊNCIA DE MEMÓRIA 59


5.1 Introdução 59
5.2 Proteção da Memória 60
5.3 Organização da Memória 61
5.4 Limpeza da Memória 62
5.5 Compartilhamento da Memória 62
5.6 Memória Virtual 63
5.7 Memória Paginada 65
5.8 Memória Segmentada 66

Cap. 6 - GERÊNCIA DE DISPOSITIVOS 69


6.1 Introdução 69
6.2 Driver de Dispositivo 69
6.3 Dispositivos Plug and Play 73
6.4 Drives no Windows e Linux 74

Licenciatura em Informática
7

APRESENTAÇÃO

Caro Aluno,

Meu nome é EVERSON SCHERRER BORGES, responsável pela discipli-


na Sistemas Operacionais.
Atuo como professor do IFES há um ano. Sou graduado em Sistemas de
Informação (2004) pelo Centro Universitário São Camilo - Espirito Santo.
Atualmente, sou responsável pelas disciplinas de Introdução a Redes, Im-
plementação de Redes, Projetos de Redes e Sistemas Operacionais. Minhas
áreas de interesse são Redes de Computadores e Sistemas Operacionais.
Nesta disciplina você conhecerá o que é um sistema operacional e suas
funcionalidades, identificará os diferentes tipos de sistemas operacionais,
compreenderá como ocorre a concorrência em sistemas operacionais, en-
tenderá a estrutura e organização da estrutura do sistema operacional e
conhecerá os sistemas de arquivos.
A disciplina de Introdução à Informática auxiliará no entendimento de al-
guns conceitos que serão abordados nesta disciplina, apesar de não serem
necessários conhecimentos prévios acerca dos assuntos aqui abordados.
O objetivo deste material é auxiliá-lo no estudo da disciplina Sistemas
Operacionais, por meio de dicas e sugestões que destacam os pontos mais
importantes a serem estudados.
Aqui, você encontrará conceitos com os quais trabalharemos ao longo de
todo o curso, o que não dispensa a utilização dos outros livros que fazem
parte da bibliografia sugerida.
Em geral, para ser bem sucedido neste curso, é importante que se façam os
exercícios e se estude regularmente, evitando-se, dessa forma, o acúmulo
de conteúdo.
Estudar só é bom quando se estuda o que gosta. Portanto, passe a gostar
de Sistemas Operacionais.
Assim, espero que alcance o sucesso!

Prof. Everson Scherrer Borges

Sistemas Operacionais
8

Licenciatura em Informática
9

INTRODUÇÃO SISTEMAS
OPERACIONAIS

Caro aluno,

Iniciaremos nossa primeira aula com a introdução aos sistemas


operacionais (SO). Este primeiro capítulo contém os conceitos básicos
para o entendimento de Sistemas Operacionais.

Em geral, essa disciplina é acumulativa, ou seja, a compreensão dos


conceitos estudados em um capítulo é a base para o entendimento dos
capítulos posteriores.

Bom estudo!

1.1 Introdução

Os sistemas operacionais possuem duas funções básicas que se apre-


sentam de extrema importância para o entendimento do sistema
operacional, sendo assim antes de estudarmos os conceitos básicos
veremos suas funções.

Por mais complexo que possa parecer, um sistema operacional é um


grupo integrado de programas que permitem a comunicação entre
o computador e o usuário. Sua principal função é controlar o fun-
cionamento do computador, como um gerente dos diversos recursos
disponíveis no sistema.

Sistemas Operacionais
10
Capítulo 1

O nome sistema operacional não é único para designar esse con-


junto de programas. Nomes como monitor, executivo, supervisor
ou controlador possuem, normalmente, o mesmo significado. [1]

Um sistema operacional, porém, possui inúmeras funções e resumimos


essas funções, basicamente, em duas, que são descritas a seguir.

1.1.1 Facilidade de acesso aos recursos do sistema

Um sistema de computação possui, normalmente, diversos componen-


tes, como terminais, impressoras, discos e fitas. Quando utilizamos es-
ses dispositivos, não nos preocupamos com a maneira como é realizada
a comunicação entre eles e o processador, nem nos preocupamos com
os inúmeros detalhes envolvidos.

Para a maioria de nós, uma operação habitual, como a leitura de um


arquivo em disquete, por exemplo, pode parecer simples. Na realida-
de, existe um conjunto de rotinas especiais, controladas pelo sistema
operacional, responsável por acionar a cabeça de leitura e gravação
da unidade de disco, posicionar essa cabeça na trilha e no setor onde
estão os dados, transferir os dados do disco para a memória e, final-
mente, informar ao programa a chegada dos dados. [3]

O sistema operacional serve de interface (intermediário) entre o usuá-


rios e os recursos disponíveis no sistema, tornando esta comunicação
transparente e permitindo ao usuário um trabalho mais eficiente e com
menores chances de erros (Figura 1).

O conceito de ambiente simulado, criado pelo sistema operacional, é de-


nominado máquina virtual (virtual machine) está presente, de alguma
forma, na maioria dos sistemas atuais.

1.1.2 Compartilhamento de recursos de forma organizada


e protegida

Quando pensamos em sistema multiusuário, onde vários usuários


podem estar compartilhando os mesmos recursos, como memória e
discos por exemplo, é necessário que todos tenham oportunidade de
ter acesso a esses recursos de forma que um usuário não interfira no
trabalho do outro.[1]

Licenciatura em Informática
11
Introdução Sistemas Operacionais

Se imaginarmos que uma impressora possa ser utilizada por vários


usuários do sistema, deverá existir algum controle para impedir
que a impressão de um usuário interrompa a impressão de outro.
É o sistema operacional o responsável por permitir o acesso con-
corrente a cada recurso, de forma organizada e protegida, dando
ao usuário a impressão de ser o único a utilizar tal recurso.

O compartilhamento de recursos permite, também, a diminuição de


custos, na medida em que mais de um usuário possa utilizar as mes-
mas facilidades concorrentemente, como discos, impressoras, linhas
de comunicação etc.

Não é apenas em sistemas multiusuário que o sistema operacional é im-


portante. Se pensarmos que um computador pessoal nos permite exe-
cutar várias tarefas, como imprimir um documento, copiar um arquivo
pela internet ou processar uma planilha, o sistema operacional deve ser
capaz de controlar a execução concorrente de todas essas tarefas.

A Figura 1 mostra uma visão do sistema operacional como interface


entre os usuários e os recursos do sistema.

Figura 1: Visão do sistema operacional como interface entre os usuários


e os recursos do sistema
Fonte: Machado e Maia, 2004. Adaptação.

Sistemas Operacionais
12
Capítulo 1

1.2 Máquinas de Níveis

Um computador é visto somente como um gabinete composto de cir-


cuitos eletrônicos, cabos e fontes de alimentação (hardware), não tem
nenhuma utilidade. É através de programas (software) que o compu-
tador consegue armazenar dados em discos, imprimir relatórios, gerar
gráficos, realizar cálculos, entre outras funções. O hardware é o respon-
sável pela execução das instruções de um programa, com a finalidade de
se realizar alguma tarefa.

Uma operação efetuada pelo software pode ser implementada em har-


dware, enquanto uma instrução executada pelo hardware pode ser si-
mulada via software. Esta decisão fica a cargo do projetista do compu-
tador em função de aspectos como custo, confiabilidade e desempenho.
Tanto o hardware como o software são logicamente equivalentes, intera-
gindo de uma forma única para benefício do usuário.[3]

Nos primeiros computadores, a programação era realizada em painéis,


através de fios, exigindo um grande conhecimento do hardware e de sua
linguagem de máquina. Isso era uma grande dificuldade para os progra-
madores da época.

A solução para esse problema foi o surgimento do sistema operacio-


nal, que tornou a interação entre usuário e computador mais simples,
confiável e eficiente. A partir desse acontecimento, não existiu mais
a necessidade de o programador se envolver com a complexidade do
hardware para poder trabalhar. Ou seja, a parte física do computador
tornou-se transparente para o usuário, conforme podemos observar
na Figura 2. [1]

  Figura 2 - Visão do computador pelo usuário


  Fonte: Machado e Maia, 2004. Adaptação.

Licenciatura em Informática
13
Introdução Sistemas Operacionais

Partindo do princípio acima mencionado, podemos considerar


o computador como uma máquina de níveis ou camadas, onde
inicialmente existem dois níveis: o nível 0 (hardware) e o nível
1 (sistema operacional). Dessa forma, o usuário pode enxergar a
máquina como sendo apenas o sistema operacional, ou seja, como
se o hardware não existisse. Essa visão modular e abstrata é cha-
mada máquina virtual.[1]

Na realidade, um computador não possui apenas dois níveis, e sim


tantos níveis quantos forem necessários para adequar ao usuário suas
diversas aplicações. Quando o usuário está trabalhando em um desses
níveis, não necessita da existência das outras camadas acima ou abaixo
de sua máquina virtual.

Ultimamente, a maior parte dos computadores possui uma estrutura


mostrada na Figura 3, podendo conter mais ou menos camadas. A lin-
guagem utilizada em cada um desses níveis é diferente, variando da mais
elementar (baixo nível) à mais sofisticada (alto nível).

   Figura 3 - Máquina de níveis.


   Fonte: Machado e Maia, 2004. Adaptação.

1.3 Ativação e Desativação do Sistema

O sistema operacional é essencial para o funcionamento de um com-


putador. Sem ele, grande parte dos recursos do sistema computacional
não estaria disponível, ou se apresentaria de uma forma complexa para
utilização pelos usuários.

Sistemas Operacionais
14
Capítulo 1

Toda vez que um computador é ligado, é necessário que o sistema opera-


cional seja carregado da memória secundária para a memória principal.
Esse processo, denominado ativação do sistema (boot), é realizado por um
programa localizado em uma posição específica do disco (disco block),
geralmente o primeiro bloco. O procedimento de ativação varia em fun-
ção do equipamento, podendo ser realizado através do teclado, de um
terminal ou por manipulação de chaves de um painel (Figura 4).

Figura 4 - Ativação do sistema


Fonte: Machado e Maia, 2004. Adaptação.

Em computação, boot é o termo em inglês para o processo de


iniciação do computador, que carrega o sistema operacional
quando a máquina é ligada. Muitos computadores podem execu-
tar apenas códigos existentes na memória de trabalho (ROM ou
RAM). Os sistemas operacionais modernos são normalmente ar-
mazenados em disco rígido, CD-ROM ou outros dispositivos de
armazenamento.
Logo que o computador é ligado, ele não tem um sistema operacio-
nal na memória. Portanto, ele ficaria apenas “energizado”, já que o
hardware do computador não pode fazer nenhuma operação por
si mesmo. Então, é preciso que o sistema operacional seja carrega-
do na memória principal assim que ligarmos o computador. Feito
isso, podemos realizar qualquer ação via hardware, como carregar
na memória um programa que está no disco, por exemplo.

Na maioria dos sistemas, também existe o processo de desativação


(Desligar). Este procedimento permite que as aplicações e componentes
do sistema operacional sejam desativados de forma ordenada, garan-
tindo sua integridade.[1]

Licenciatura em Informática
15
Introdução Sistemas Operacionais

Atividades
1. Durante os estudos sobre a introdução dos sistemas operacio-
nais, verificamos sua importância para a utilização do computa-
dor. Defina quais as principais razões para se estudar Sistemas
Operacionais?
2. Quais são as principais funções do Sistema Operacional?
Explique-as.
3. Defina o conceito de uma máquina de níveis ou camadas.
4. Descreva o processo de ativação do sistema operacional.

REFERÊNCIAS
[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Ope-
racionais. 4.ed. LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamen-
tos de Sistemas Operacionais. 6.ed. LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
Pearson Brasil, 2007.

___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________

Sistemas Operacionais
16
Capítulo 1

Licenciatura em Informática
17

TIPOS DE SISTEMAS
OPERACIONAIS

Caro aluno,
Esta é a segunda aula. Nela, veremos os tipos de Sistemas Ope-
racionais, isto é importante para entendermos as diferentes apli-
cações, conceitos e funcionalidades que envolvem os Sistemas
Operacionais.

Bom estudo!

2.1 Introdução

A evolução dos hardware relaciona-se diretamente com a evolução dos


sistemas operacionais, que popularizou diversos conceitos e técnicas,
antes só conhecida em ambientes de grande porte.

Estes são divididos em grupos, conforme a Figura 5 e esta relacionado com


o tipo de computador que controlam e o tipo de aplicativos que suportam.

Figura 5: Tipos de Sistemas Operacionais


Fonte: Machado e Maia, 2004. Adaptação.

Sistemas Operacionais
18
Capítulo 2

2.2 Sistemas Monoprogramáveis / Monotarefa

Os primeiros sistemas operacionais eram tipicamente voltados


para a execução de um único programa. Qualquer outra apli-
cação, para ser executada, deveria aguardar o término do pro-
grama corrente. [1]

Aqueles tipos de sistema, também conhecidos como sistemas monota-


refa, se caracterizavam por permitir que todos os recursos do sistema
computacional (o processador, a memória e os periféricos) permane-
cessem exclusivamente dedicados à execução de um único programa ou
a uma única tarefa.

Neles, enquanto um programa aguardava por um evento, como a digi-


tação de um dado, o processador permanecia ocioso, sem realizar qual-
quer tipo de processamento.

A memória ficava subutilizada caso o programa não a preenchesse to-


talmente, e os periféricos, como discos e impressoras, dedicados a um
único usuário, nem sempre eram utilizados de forma integral.

Nos sistemas monotarefa, não existia muita preocupação com proble-


mas decorrentes do compartilhamento de recursos como memória,
processador e dispositivos de E/S. A Figura 6 mostra a organização de
um sistema Monoprogramável ou Monotarefa.

   Figura 6: Sistemas Monoprogramáveis / Monotarefa


   Fonte: Machado e Maia, 2004. Adaptação

Licenciatura em Informática
19
Tipos de Sistemas Operacionais

O sistema operacional monotarefa foi criado para que um único


usuário pudesse fazer uma coisa por vez. Nos dias atuais ainda
podemos encontrar esses tipos de sistemas operacionais, embora
pareça um tipo de sistema antigo, ainda existem sistemas opera-
cionais monoprogramáveis ou monotarefa. Um bom exemplo é
o sistema operacional Nokia OS S40, que trabalha nos celulares
mais simples da Nokia, como no modelo 6212 (Figura 7); outro
exemplo é o O Palm OS, dos computadores Palm, um moderno
sistema operacional monousuário e monotarefa.

    Figura 7: Sistemas Monoprogramáveis / Monotarefa


    Fonte: http://www.gdhpress.com.br/blog/celulares-nokia/

2.3 Sistemas Multiprogramáveis / Multitarefa

Este é o tipo de sistema operacional mais utilizado em computadores de


mesa e notebooks. As plataformas Microsoft Windows e Apple MacOS
são exemplos de sistemas operacionais que permitem que um único
usuário utilize diversos programas ao “mesmo tempo”. Por exemplo, é
possível para um usuário de Windows escrever uma nota em um sof-
tware editor de texto ao mesmo tempo em que faz download de um
arquivo da internet e impressão de um e-mail.

Verificamos que esse tipo de sistema, os recursos computacionais são


compartilhados entre diversos usuários e aplicativos. Neles, enquanto
um programa espera uma operação de leitura ou gravação em disco,
outros programas podem estar sendo processados simultaneamente, ou
seja, no mesmo intervalo de tempo.

Sistemas Operacionais
20
Capítulo 2

Podemos observar, nesse caso, o compartilhamento da memória e


do processador. O sistema operacional se preocupa em gerenciar
o acesso concorrente aos seus recursos, como memória, processa-
dor e periféricos, de forma ordenada e protegida, entre os diversos
programas.[1]

O uso de sistemas multiprogramáveis proporciona a redução de tempo


de resposta das aplicações processadas no sistema e a redução de custo.
Sistemas multiprogramáveis, embora sejam mais eficientes que os mo-
noprogramáveis, são de implementação muito mais difícil.

De acordo do número de usuários que estão interagindo com o sis-


tema, podemos classificar os sistemas multiprogramáveis como mo-
nousuário e multiusuário.

Sistemas multiprogramáveis monousuário são encontrados em com-


putadores pessoais ou em estações de trabalho, onde há apenas um
único usuário interagindo com o sistema. Neste caso, existe a possibili-
dade da execução de diversas tarefas ao mesmo tempo, como a edição
de texto, uma impressão e o acesso à Internet. [1]

Sistemas operacionais multiprogramáveis multiusuário (Figura 8), são


ambientes que possibilitam diversos usuários possam conectar-se ao
sistema de forma simultânea.

   Figura 8: Sistemas Multiprogramáveis / Multitarefa


   Fonte: Machado e Maia, 2004. Adaptação

Licenciatura em Informática
21
Tipos de Sistemas Operacionais

Sistemas operacionais multiprogramáveis são os mais utilizados em


computadores de mesa e notebooks. Um sistema operacional mul-
titarefa permite que diversos programas utilizem simultaneamente
os recursos do computador. O sistema operacional deve se certificar
de que as solicitações de vários programas estejam balanceadas.

Os ambientes multiprogramáveis ou multitarefa classificam-se pela for-


ma com que suas aplicações são gerenciadas ou interadas com os usuá-
rios, podendo ser divididos em sistemas batch, de tempo compartilhado
ou de tempo real.

2.3.1 Sistemas Batch

Foram os primeiros sistemas operacionais multiprogramáveis a serem


implementados na década de 1960. Os programas, que também eram
chamados de jobs, eram submetidos para execução através de cartões
perfurados, e eram armazenados em disco ou fita, onde aguardavam
para serem processados. Posteriormente, em função da disponibilida-
de de espaço na memória principal, os jobs eram executados produzin-
do uma saída em disco ou fita. [1]

Este tipo de processamento tem a característica de não interagir com o


usuário e a aplicação. Todas as entradas e saídas de dados da aplicação
são implementadas por algum tipo de memória secundária.

Atualmente, os sistemas operacionais implementam e simulam o


processamento batch, não existindo sistemas exclusivamente de-
dicados a este tipo de processamento. [1]

2.3.2 Sistemas de Tempo Compartilhado

Sistemas de tempo compartilhado ou time-sharing possibilita a execução


de diversos programas a partir da divisão do tempo de processamento em
intervalos intervalos, chamados fatia de tempo (time-slice). Caso a fatia
de tempo não seja satisfatório para a conclusão da execução do programa,
este é interrompido pelo sistema operacional e substituído por um outro,
enquanto fica aguardando por uma nova fatia de tempo. Com isso, o siste-

Sistemas Operacionais
22
Capítulo 2

ma cria um ambiente de trabalho próprio, dando a impressão de que todo


o sistema está dedicado, exclusivamente, para cada usuário.

Grande parte dos aplicativos comerciais ultimamente são processadas


em sistemas de tempo compartilhado, que permitem tempos curtos
de respostas a seus usuários, e menores custos em função da utilização
compartilhada dos diversos recursos do sistema.

2.3.3 Sistemas de Tempo Real

Nos sistemas de tempo real ou real-time, os tempos de resposta devem


estar dentro de limites rígidos, que devem ser satisfeitos. Caso contrá-
rio, poderão ocorrer problemas irreparáveis. Neste tipo de sistema, não
existe a idéia de pedaço/fatia de tempo. Um programa utiliza o proces-
sador durante o tempo que for necessário ou até que apareça outro cujo
uso seja prioritário. A autoridade ou prioridade de execução é definida
pelo próprio programa/ aplicativo e não pelo sistema operacional, como
nos sistemas de tempo compartilhado.

Esses sistemas, normalmente, estão presentes em aplicações de con-


trole de processos, como no monitoramento de refinarias de petró-
leo, controle de tráfego aéreo, de usinas termoelétricas e nucleares,
ou em qualquer aplicação onde o tempo de respostas é fator fun-
damental. [1]

(RTOS - Real-time operating system). É o Sistema Operacional


de Tempo Real, utilizado para controlar máquinas, instrumen-
tos científicos e sistemas industriais. Geralmente um RTOS não
tem uma interface muito simples para o usuário e não é desti-
nado para o usuário final, pois esse tipo de sistema é entregue
como uma “caixa selada”.

A função do RTOS é gerenciar os recursos do computador para


que uma operação específica seja sempre executada durante um
mesmo período de tempo. Numa máquina complexa, se uma par-
te se move mais rapidamente só porque existem recursos de siste-
ma disponíveis, isto pode ser tão catastrófico quanto se uma parte
não conseguisse se mover porque o sistema está ocupado.

Licenciatura em Informática
23
Tipos de Sistemas Operacionais

2.4 Sistemas com Multiprocessadores

Sistema monoprocessado - Caracteriza-se por possuir um único pro-


cessador, sendo este controlado pelo sistema operacional instalado. Ex.:
Microcomputador PC com Windows 98.

Sistema multiprocessado - Caracteriza-se por possuir mais de um pro-


cessador, sendo que estes podem compartilhar o mesmo sistema opera-
cional, ou cada um pode possuir o seu próprio sistema.

A principal vantagem desse tipo de sistema é permitir que vários pro-


cessos possam ser executados simultaneamente, sem a necessidade de
compartilhamento do tempo do processador, ou então que um deter-
minado processo possa ser dividido entre as unidades de processa-
mento para agilizar a sua conclusão.

Como o sistema operacional é responsável por gerenciar a execução das


tarefas, deve estar devidamente adaptado para operar em sistemas com
mais de uma unidade de processamento, para poder distribuir a execu-
ção dos programas e maximizar a utilização dos recursos disponíveis.

A construção de Sistemas com suporte a Múltiplos processadores foi


feita pensando-se em aplicações voltadas para o processamento cien-
tífico, exploração de minerais e petróleo, simulações e computação
gráfica. Grande parte dos supercomputadores instalados ao redor do
mundo está em uso em Laboratórios de Pesquisa dos EUA, Europa e
Japão, e em grandes empresas como Dupont, Petrobrás, entre outras.

Os Sistemas com múltiplos processadores são divididos conforme Figura 9.

    Figura 9: Sistemas com Múltiplos Processadores


    Fonte: Machado e Maia, 2004. Adaptação.

Sistemas Operacionais
24
Capítulo 2

2.4.1 Sistemas Fortemente Acoplados

Nos sistemas fortemente acoplados (Figura 10), existem vários proces-


sadores compartilhando uma única memória e gerenciados por apenas
um sistema operacional. Múltiplos processadores permitem que vários
programas sejam executados ao mesmo tempo, ou que um programa
seja dividido em subprogramas, para execução simultânea em mais de
um processador. Dessa forma, é possível ampliar a capacidade de com-
putação de um sistema, adicionando-se apenas novos processadores,
com um custo muito inferior à aquisição de outros computadores.[1]

Com a introdução do multiprocessamento, novos problemas surgi-


ram, pois vários processadores podem acessar as mesmas áreas de
memória, a isso chamamos de concorrência. Além disso, existe o
problema de organizar de forma eficiente os processadores, a memó-
ria e os periféricos.

Decorrência do multiprocessamento foi o aparecimento dos com-


putadores voltados, principalmente, para processamento científico,
aplicado, por exemplo, ao desenvolvimento aeroespacial, à prospec-
ção de petróleo, às simulações, ao processamento de imagens e a
CAD (desenhos técnicos).

A princípio, qualquer programa que faça uso intensivo do processador


será beneficiado pela adição de processadores ao sistema computacional.

  Figura 10: Sistemas Fortemente Acoplados


  Fonte: Machado e Maia, 2004. Adaptação.

2.4.1.1 Sistemas Assimétricos

No sistema assimétrico ou mestre/escravo (Figura 11), somente um pro-


cessador (mestre) pode executar serviços do sistema operacional, como,
por exemplo, realizar operações de entrada/saída, gerenciar processos,
inicializar o sistema. Sempre que um processador do tipo escravo preci-
sar realizar uma operação de entrada/saída, escalonar um processo terá

Licenciatura em Informática
25
Tipos de Sistemas Operacionais

que solicitar o serviço ao processador mestre. Dependendo da quanti-


dade de operações de entrada/saída destinadas aos processadores escra-
vos, o sistema pode se tornar ineficiente, devido ao elevado número de
interrupções que deverão ser tratadas pelo mestre.

   Figura 11: Sistemas Assimétricos


   Fonte: Machado e Maia, 2004. Adaptação.

Se o processador mestre falhar, todo o sistema ficará incapaz de


continuar o processamento. Nesse caso, o sistema deve ser recon-
figurado, fazendo um dos processadores escravos assumirem o
papel do mestre.
Mesmo sendo uma organização simples de implementar e quase
uma extensão dos sistemas multiprogramáveis, esse tipo de siste-
ma não utiliza eficientemente o hardware, devido à assimetria dos
processadores, que não realizam as mesmas funções.

2.4.1.2 Sistemas Simétricos

No multiprocessamento simétrico (Figura 12), também conhecido como


SMP(Symmetric Multi-Procesors), ao contrário da organização mestre/
escravo(master/slave), implementa a simetria dos processadores, ou
seja, todos os processadores desempenham as mesmas funções. Apenas
algumas poucas funções ficam a cargo de um único processador, como,
por exemplo, a inicialização (boot) do sistema.

Sistemas Operacionais
26
Capítulo 2

Figura 12: Sistemas Simétricos


Fonte: Machado e Maia, 2004. Adaptação.

Como vários processadores estão utilizando, independentemente,


a mesma memória e o mesmo sistema operacional, é natural a
ocorrência de acessos simultâneos às mesmas áreas de memória.
A solução desses conflitos fica a cargo do hardware e do sistema
operacional.

No processamento simétrico, um programa pode ser executado por


qualquer processador, inclusive por vários processadores ao mesmo
tempo (paralelismo). Além disso, quando um processador falha, o sis-
tema continua em funcionamento sem nenhuma interferência manual,
porém com menor capacidade de computação, pois o sistema agora esta
com um processador a menos.

Os sistemas simétricos são mais poderosos que os assimétricos, pois


possibilitam uma melhor divisão do processamento e das operações de
entrada/saída, apesar de sua implementação ser muito mais difícil.

Para exemplificar a diferença entre sistemas Assimétricos e Simé-


tricos, vamos fazer a seguinte analogia: imagine dois funcionários
que sabem realizar as mesmas tarefas e trabalham em dias alter-
nados; porém, mesmo trabalhando em dias alternados, o trabalho
tem sua devida continuidade, funcionando em simetria. É assim
que ocorre nos Sistemas Simétricos.
Já nos sistemas assimétricos isso não acontece, pois cada funcio-
nário realiza tarefas distintas, de forma assimétrica.

Licenciatura em Informática
27
Tipos de Sistemas Operacionais

2.4.2 Sistemas Fracamente Acoplados

Os sistemas fracamente acoplados caracterizam-se por possuir


dois ou mais sistemas de computação interligados, sendo que
cada sistema possui o seu próprio sistema operacional, gerencian-
do os seus recursos, como processador, memória e dispositivos de
entrada/saída.[1]

Durante a década de 80, os sistemas operacionais e os aplicativos supor-


tados por eles eram tipicamente concentradas em sistemas de grande
porte (centralizados), com um ou mais processadores.

Nos sistemas centralizados, os usuários utilizam terminais não inteli-


gentes conectados a linhas seriais dedicadas ou linhas telefônicas pú-
blicas para a comunicação interativa com esses sistemas. Nesse modelo
de sistema, os terminais não têm capacidade de processamento. Sempre
que um usuário deseja alguma tarefa, o pedido é encaminhado ao siste-
ma, que realiza o processamento e retorna uma resposta, utilizando as
linhas de comunicação.

Com a evolução dos computadores pessoais e das estações de trabalho,


juntamente com o avanço das telecomunicações e da tecnologia de re-
des, surgiu um novo modelo de computação, chamado de modelo de
rede de computadores (Figura 13). [1]

    Figura 13: Sistemas Fracamente Acoplado


    Fonte: Machado e Maia, 2004. Adaptação.

Sistemas Operacionais
28
Capítulo 2

2.4.2.1 Sistemas Operacionais de Rede

Basicamente, um sistema operacional de rede é um conjunto de mó-


dulos que ampliam as tarefas dos sistemas operacionais locais, comple-
mentando-os com um conjunto de funções básicas, e de uso geral, que
tornam transparente o uso de recursos compartilhados da rede. Portan-
to, um computador de rede tem o sistema operacional local interagin-
do com sistema operacional de rede, para que possam ser utilizados os
recursos de rede tão facilmente quanto os recursos na máquina local.
Com efeito, o sistema operacional de rede coloca um redirecionador en-
tre o aplicativo do cliente e o sistema operacional local para redirecionar
as solicitações de recursos da rede para o programa de comunicação que
vai buscar os recursos na própria rede.

Figura 14: Sistemas Operacionais de Redes

O sistema operacional de rede (Figura 14), portanto, controla os siste-


mas e dispositivos dos computadores em uma rede e permitindo que se
comuniquem uns com os outros. Normalmente, o modelo de operação
desse sistema é o modelo Cliente/ Servidor, ou seja, o ambiente onde o
processamento da aplicação é partilhado entre um outro cliente (solicita
serviço) e um ou mais servidores prestam serviços). Os tipos de arqui-
teturas para sistemas operacionais de rede podem ser:

Peer-to-Peer (ou ponto a ponto): Nessas redes, todos poderiam ser (ou
não) servidores, mas certamente todos são clientes.

Cliente/Servidor: Nessas redes, podem existir dois tipos: o Servidor De-


dicado e o Servidor não Dedicado.

No caso dos sistemas Cliente/Servidor, o sistema cliente possui carac-


terísticas mais simples, voltadas para a utilização de serviços, enquanto

Licenciatura em Informática
29
Tipos de Sistemas Operacionais

que o sistema do servidor possui maior quantidade de recursos, com o


único propósito de serem disponibilizados aos clientes da rede.

Os sistemas baseados em Unix (sistema operacional cuja plataforma ser-


viu de base para o atual Linux) são potencialmente clientes e servidores,
sendo feita a escolha durante a instalação dos pacotes de aplicativos, en-
quanto que nos sistemas Windows existem versões clientes (Windows
2000 Professional, Windows XP) e versões servidores (Windows 2000
Server, Windows 2003 Server e Windows 2008 Server).

Um bom exemplo da utilização dos sistemas operacionais de rede são


as redes locais. Nesse ambiente, cada estação pode compartilhar seus
recursos com o restante da rede. Caso uma estação sofra qualquer pro-
blema, os demais componentes da rede podem continuar o processa-
mento, apenas não dispondo dos recursos oferecidos por aquela.

2.4.2.2 Sistemas Operacionais Distribuídos

Assim como nos sistemas operacionais de rede, cada estação também


possui seu próprio sistema operacional, mas o que o caracteriza como
sendo um sistema distribuído, também conhecido como cluster, é a exis-
tência de um relacionamento mais forte entre os seus componentes,
onde geralmente (mas não necessariamente) os sistemas operacionais
são os mesmos, funcionando como um único sistema centralizado. Um
sistema distribuído é formado por um conjunto de módulos processado-
res interligados por um sistema de comunicação.

Como as aplicações são distribuídas, a redundância é uma grande van-


tagem pois, quando há problema com um dos componentes, outro as-
sume a tarefa em questão.

Estudiosos classificam os Sistemas Distribuídos em Máquinas de Arqui-


tetura Distribuída e Redes de Computadores.

Um sistema de cômputo com Arquitetura Distribuída pode possuir um


número ilimitado de módulos autônomos para processamento, interco-
nectados de tal forma que, para o usuário final, o sistema todo se apre-
sente como uma única máquina, no qual o controle geral é implementa-
do através da cooperação de elementos descentralizados. Uma Rede de
Computadores também pode (em teoria) estar formada por um número

Sistemas Operacionais
30
Capítulo 2

ilimitado de estações, mas a independência dos vários módulos de pro-


cessamento é preservada em razão da tarefa de compartilhamento de
recursos e troca de informações.

Um exemplo prático (e muito interessante) de um sistema distribuído


é o projeto SETI (Search for Extra Terrestrial Intelligence). O projeto
SETI, desenvolvido pela Universidade de Berkeley, na Califórnia, é um
experimento científico que utiliza o tempo ocioso dos computadores
conectados à Internet para seu objetivo principal de procura por vida
inteligente extraterrestre. Qualquer pessoa conectada à Internet pode
participar, basta rodar o programa gratuito disponível no site BOINC
(http://boinc.berkeley.edu). Basicamente, este programa permite que
sua máquina disponibilize o tempo ocioso dela para fazer parte de pro-
jetos científicos, o projeto é constituído de diferentes screen savers (pro-
tetores de tela) e está disponível para Windows, MacOS, e Linux.

Toda vez que sua máquina esta ociosa sem que esteja desligada é ativado
uma proteção de tela (screen saver). Cada um dos screen savers permite
que a sua máquina faça parte de algum dos seguintes projetos: SETI@
home, Climateprediction.net, Rosetta@home, World Community Grid,
entre outros. Quando um desses screen savers é inicializado, a sua má-
quina passa automaticamente a fazer parte do sistema distribuído do
projeto SETI. Assim que o screen saver é desativado, a sua máquina dei-
xa o sistema de computação distribuída desse projeto.

Figura 15: Sistemas Operacionais Distribuídos


Fonte: Machado e Maia, 2004. Adaptação.

Licenciatura em Informática
31
Tipos de Sistemas Operacionais

A grande vantagem dos Sistemas Operacionais Distribuídos (Fi-


gura 15), é a possibilidade do balanceamento de carga, ou seja,
quando um programa é admitido para execução, a carga de pro-
cessamento de cada sistema é avaliada e o processador menos
ocupado é escolhido. Depois de aceito para processamento, o pro-
grama é executado no mesmo processador até o seu término.
Também é possível o compartilhamento de impressoras, discos
e fitas, independentemente do sistema em que a aplicação este-
ja sendo processada.

Atividades
1. Por que dizemos que existe uma subutilização de recursos em
sistemas monoprogramáveis?
2. Qual a grande diferença entre sistemas monoprogramáveis e
sistemas multiprogramáveis?
3. Um sistema monousuário pode ser um sistema multiprogramá-
vel? Dê exemplo.
4. Quais são os tipos de sistemas multiprogramáveis?
5. Como funcionam os sistemas de tempo compartilhado? Quais
as vantagens em utilizá-los?
6. O que são sistemas com múltiplos processadores e quais as van-
tagens em utilizá-los?
7. Qual a grande diferença entre sistemas fortemente acoplados e
fracamente acoplados?
8. O que é um sistema fracamente acoplado? Qual a diferen-
ça entre sistemas operacionais de rede e sistemas operacio-
nais distribuídos?

Sistemas Operacionais
32
Capítulo 2

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Ope-


racionais. 4.ed. LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamen-
tos de Sistemas Operacionais. 6.ed. LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
Pearson Brasil, 2007.
[4] SOARES, RICARDO DE MAGALHÃES. Sistemas Operacio-
nais. 1 ed. Esab, 2008.

___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________

Licenciatura em Informática
33

PROCESSOS

Caro aluno,

Nesta terceira aula, vamos entender um pouco como o Sistema


Operacional Gerencia os programas em execução, ou mais pre-
cisamente os Processos em Sistemas Operacionais.

Você entenderá como acontece a execução de um programa ou


processo no sistema operacional, como acontece o gerencia-
mento e controle dasprioridades da execução nos ambientes
multiprogramáveis.

Além disso, é importante que você termine este capítulo compre-


endendo a importância do compartilhamento de recursos em
um Sistema Operacional, as trocas de contexto, o escalonamen-
to e os vários estados de transição dos processos.

Bom estudo!

3.1 Introdução

Tradicionalmente, um processo é definido como sendo um programa em


execução. Porém, devido às características dos ambientes multiprogra-
máveis, onde diversos usuários ou programas devem ser executados ao
mesmo tempo, pode-se definir processo como sendo a estrutura respon-
sável pela manutenção de todas as informações necessárias à execução de
um programa, como conteúdo de registradores e espaço de memória.

Programa é um conjunto de instruções organizadas e escritas em


uma linguagem de programação. Um programa esta em execu-
ção quando o processador esta executando suas instruções em
um instante do tempo.

O gerenciamento de processos é um dos conceitos fundamentais dos sis-


temas operacionais modernos. Nesse gerenciamento, são definidas as
propriedades dos processos em execução e a maneira como cada um
receberá o tempo de execução no processador.

Sistemas Operacionais
34
Capítulo 3

A principal função do gerenciador de processos é exatamente a execu-


ção do processo no processador de maneira adequada (considerando a
prioridade do processo e a quantidade de processos gerenciados).

Nos sistemas multiprogramáveis, os processos são executados concor-


rentemente, compartilhando, dentre outros recursos, o uso do proces-
sador, da memória principal e dos dispositivos de E/S. Nos sistemas
com múltiplos processadores temos a execução simultânea de proces-
sos nos diferentes processadores.[1]

Dependendo de como o programa foi desenvolvido, mais de um


processo pode estar pertinente a ele durante sua execução, sendo
que cada processo representa um determinado conjunto de ins-
truções do programa original.
No Internet Explorer, por exemplo, enquanto uma página esta car-
regando o usuário já esta visualizando outra página, neste caso
existe um programa em execução e pelo menos dois processos as-
sociados também em execução.

Podemos até pensar em um processo como um aplicativo, mas isso dá


uma idéia incompleta de como os processos se relacionam com o siste-
ma operacional e com o hardware. O aplicativo que você vê (processa-
dor de texto, planilha eletrônica ou jogo) é, de fato, um processo. Porém,
os aplicativos podem ativar outros processos para se comunicarem com
outros dispositivos ou computadores. Também existe uma série de pro-
cessos que são executados sem que você perceba. O Windows e o UNIX
podem executar, em background, dezenas de processos para lidar com a
rede, gerenciar a memória e o disco rígido, verificar vírus etc.

O Windows e UNIX, são dois Sistemas Operacionais bastante co-


nhecidos e utilizados no mercado atual. Estes entre outros Siste-
mas Operacionais modernos, são capazes de fazer várias coisas
ao mesmo tempo, baseado na idéia de paralelismo ou multitarefa,
realizada através do compartilhamento do tempo do processador

Licenciatura em Informática
35
Processos

3.2 Gerenciamento de Programas

O sistema operacional, sendo multitarefa, realiza o compartilhamento


do processador entre os processos por meio da ativação, momentânea,
do processo que será executado no processador. Como apenas um pro-
cesso pode estar ativo no processador, os outros deverão esperar alguns
instantes, até que o processo em execução tenha sido executado pelo
tempo que o sistema operacional designou a ele.

Quando o tempo do processo atual terminar, o sistema operacional realizará


uma operação chamada “Troca de Contexto”, em que o processo atual será subs-
tituído por outro processo que estava esperando a liberação do processador.

Conforme destacado na seção anterior, a definição de um processo


é um pouco mais abrangente do que um programa em execução,
envolvendo outras estruturas necessárias ao seu funcionamento,
estas estruturas são chamadas de CONTEXTO de processo.

A Troca de Contexto é a etapa em que o sistema operacional armaze-


nará todas as informações relativas à execução do processo atual, para
permitir que o mesmo possa continuar a execução em outro momento,
e incluir um outro processo para ser executado. Veja a Figura 16.

Figura 16: Troca de Contexto


Fonte: [1] – Machado e Maia, 2004. Adaptação.

Sistemas Operacionais
36
Capítulo 3

Esta etapa deve ser executada de maneira quase instantânea, pois o pro-
cessador deve ser utilizado principalmente para executar os programas.
Existem três eventos que podem iniciar a Troca de Contexto: Escalona-
mento de Processo, Ocorrência de Interrupção e Ocorrência de exceção,
conforme explicado abaixo:

• Escalonamento de Processo: nesta etapa cada processo em exe-


cução irá utilizar um núcleo do processador por uma fatia de
tempo, quando este tempo se esgotar, o processo atual deverá ser
substituído por outro processo;

• Ocorrência de Interrupção ou exceção: quando há a ocorrência


de uma interrupção/exceção, o sistema operacional deve entrar em
operação para tratar da interrupção/exceção, e para isso, o próprio
sistema operacional iniciará um (ou mais) processo (s) próprio(s).

Quando o processador possuir mais de um núcleo de pro-


cessamento, mais de um processo poderá estar em execução
no processador!

3.3 Estados do Processo

Durante o funcionamento do computador, os vários processos executa-


dos passarão por diferentes estados: em espera, em execução, bloquea-
do. Esses estados definem a maneira como serão tratados pelo sistema
operacional. O funcionamento específico de cada estado depende do
sistema operacional utilizado.

3.3.1 Estados de um Processo Ativo

Um processo ativo pode se encontrar em três diferentes estados: execu-


ção (running), pronto (ready) e espera (wait). Veja Figura 17.

Licenciatura em Informática
37
Processos

Figura 17: Estados de um processo ativo


Fonte: Oliveira, Carissimi e Toscani, 2004. Adaptação

3.3.1.1 Executando (running)

Considera-se que um processo está no estado de execução quando ele


está sendo processado pela UCP. Em sistemas com um único processa-
dor, somente um processo pode ser executado em um dado momento.
O sistema operacional alterna (escalona) a utilização do processador
entre os processos, segundo alguma política estabelecida por ele.

Em sistemas com múltiplos processadores, existe a possibilidade de


mais de um processo estar sendo executado ao mesmo tempo. Nesse
tipo de sistema, também é possível um mesmo processo ser executado
simultaneamente em mais de uma UCP (processamento paralelo).

3.3.1.2 Apto ou Pronto (ready)

Um processo está no estado de apto ou pronto, quando aguarda sua vez de


ser executado. Em geral, existem vários processos no sistema em estado
de pronto, organizados em uma fila. Por meio dessa fila, chamada de fila
de aptos ou fila de prontos, o sistema operacional determina a ordem e os
critérios pelos quais os processos em estado de pronto devem utilizar o
processador. Esse mecanismo é conhecido como escalonamento.

Existem vários critérios de escalonamento de processos, tais como: fila


simples (FIFO), sigla em inglês para First In First Out ou Primeiro a
Entrar Primeiro a Sair, circular, fila com prioridades, etc. Tais critérios
serão vistos posteriormente. Neste material, os termos fila de prontos e
fila de aptos serão utilizados como sinônimos.

Sistemas Operacionais
38
Capítulo 3

3.3.1.3 Bloqueado ou Espera (wait)

Um processo no estado bloqueado ou espera aguarda por algum even-


to externo ou por algum recurso para prosseguir seu processamento.
Como exemplo, podemos citar um processo que aguarda o término de
uma operação de entrada/saída ou a espera de uma determinada data e/
ou hora para continuar sua execução.

O sistema operacional organiza os vários processos no estado de espera


em listas. Quando ocorre um evento, o sistema operacional verifica qual
processo estava aguardando aquele evento, e o processo é transferido
para o estado de pronto. Em outras palavras, o processo volta à fila de
aptos e está pronto para prosseguir sua execução.

3.4 Estados de Criação e Destruição de um Processo

Para um processo entrar na fila de aptos e aguardar sua vez de executar, é


necessário que seja criado pelo sistema operacional (loader ou carregador).

Primeiro, o sistema operacional deve alocar na memória principal as


áreas de código, dados e pilha. Em seguida, o programa deve ser trans-
ferido da memória secundária para a memória principal nas áreas alo-
cadas. Por último, o PCB é criado e inicializado apropriadamente, com
as informações do processo. A partir desse momento, o sistema opera-
cional já reconhece a existência do processo.

Após criar o processo, o sistema operacional normalmente o coloca na


fila de aptos para que ele concorra à utilização do processador, a Figura
18 mostra os estados do processo. No entanto, algumas vezes, podem
faltar recursos (por exemplo: número máximo de processos ativos al-
cançado); nesse caso, o sistema operacional manterá o processo no esta-
do de criação, até que haja recursos para ele se tornar ativo.

Figura 18: Estados do processo


Fonte: Oliveira, Carissimi e Toscani, 2004. Adaptação

Licenciatura em Informática
39
Processos

Quando um processo é finalizado, todos os recursos do processo devem


ser desalocados e o PCB deve ser eliminado pelo sistema operacional. O
término de um processo pode ocorrer pelas seguintes razões:

término normal de execução;


eliminação forçada por erros de proteção;
eliminação por outro processo;
eliminação forçada por ausência de recursos disponíveis no sistema.

Algumas vezes, o sistema operacional pode manter em memória as


informações de um processo finalizado. Nesse caso, o processo não é
considerado mais ativo, mas, como o PCB ainda existe, o sistema ope-
racional pode obter informações sobre o processo, como contabilização
e uso de recursos. Após as informações serem extraídas, geralmente o
processo deixa de existir.

3.5 Transições de Estado do Processo

Um processo muda de estado, durante seu processamento, em função de


eventos originados por ele próprio (eventos voluntários) ou pelo sistema
operacional (eventos involuntários). Basicamente, existem quatro mudan-
ças de estado que podem ocorrer a um processo. Veja a Figura 19.

Figura 19: Transição de Estados do processo


Fonte: Oliveira, Carissimi e Toscani, 2004. Adaptação

3.5.1 Apto → Executando

Após a criação de um processo, o sistema o coloca em uma fila de pro-


cessos no estado de apto, onde aguarda por uma oportunidade para ser
executado. Cada sistema operacional tem seus próprios critérios e algo-

Sistemas Operacionais
40
Capítulo 3

ritmos para a escolha da ordem em que os processos serão executados


(política de escalonamento). Esses critérios e seus algoritmos serão ana-
lisados em detalhes nos capítulos seguintes.

A transferência de um processo do estado apto para o estado de exe-


cução indica que outro processo saiu do estado de execução (perdeu
o processador). Um processo perde o processador quando sua fatia de
tempo (time slice) termina, quando faz uma chamada de sistema ou
quando chega ao fim de sua execução (normal ou forçada). Isso faz com
que o sistema operacional selecione um processo no estado apto para
ser executado.

3.5.2 Execução → Apto

Um processo em execução passa para o estado de apto por eventos ge-


rados pelo sistema, como o término da sua fatia de tempo (time slice)
ou para ceder a vez a um processo de maior prioridade. Nesse caso, o
processo volta para a fila de aptos, onde aguarda por uma nova oportu-
nidade para continuar seu processamento.

3.5.3 Execução → Bloqueado

Um processo em execução pode passar para o estado de bloqueado,


por eventos gerados pelo próprio processo. Por exemplo, quando um
processo em execução necessita realizar uma operação de E/S, realiza a
solicitação por meio de uma chamada de sistema. Ao fazer isso, o siste-
ma operacional é chamado, retira o processo da execução e o coloca no
estado bloqueado. Em seguida, instrui o controlador de dispositivos de
E/S, para que a operação seja realizada, e seleciona um processo da fila
de aptos, para executar. O processo que foi bloqueado aguardará nesse
estado até que sua operação de E/S seja concluída.

Além disso, um processo em execução também pode passar para o es-


tado de bloqueado em função de eventos externos. Um evento externo
é gerado, por exemplo, quando o sistema operacional suspende, por um
período de tempo, a execução de um processo.

3.5.4 Bloqueado → Apto

Um processo no estado bloqueado passa para o estado de apto quan-


do a operação solicitada é atendida ou o recurso esperado é concedido.
Por exemplo, um processo que solicitou uma operação de E/S ficará no
estado bloqueado até que o controlador de dispositivos informe que a
operação foi concluída. O controlador sinaliza a conclusão da operação

Licenciatura em Informática
41
Processos

de E/S através de uma interrupção de hardware que, imediatamente,


chama o sistema operacional para transferir o respectivo processo do
estado bloqueado para apto.

Em geral, um processo no estado bloqueado sempre terá de passar pelo


estado de apto antes de poder ser novamente selecionado para execu-
ção. Normalmente, não existe a mudança do estado bloqueado para o
estado de execução diretamente. Em casos raros, um processo poderá
fazer isso caso a chamada de sistema seja extremamente rápida, como
por exemplo a leitura da hora do sistema.

3.6 Transições de Estado com Swapping

Um processo no estado apto ou bloqueado pode não se encontrar resi-


dente na memória principal. Essa condição ocorre quando não existe
espaço suficiente para todos os processos na memória principal e parte
do contexto do processo é levada para a memória secundária. Uma téc-
nica conhecida como swapping retira processo da memória principal e
o traz de volta, seguindo os critérios de cada sistema operacional.

Nesse caso, os processos em estado bloqueado e apto podem estar resi-


dentes ou não-residentes na memória principal.

Na Figura 20, você pode observar o esquema de funcionamento das


transições de estado com swapping.

Figura 20: Transições de estado com Swapping


Fonte: Oliveira, Carissimi e Toscani, 2004. Adaptação

Sistemas Operacionais
42
Capítulo 3

3.7 Processos Independentes, Subprocessos e


Threads

Processos independentes, subprocessos e threads são maneiras diferen-


tes de implementar a concorrência dentro de uma aplicação. Nesse caso,
busca-se subdividir o código em partes para trabalharem de forma coo-
perativa. Em aplicações acessadas simultaneamente por vários usuários,
a concorrência pode proporcionar um tempo de espera menor, melho-
rando o desempenho da aplicação e beneficiando os usuários.

O uso de processos independentes é a maneira mais simples de imple-


mentar a concorrência em sistemas multiprogramáveis. Nesse caso não
existe vínculo entre o processo criado e seu criador. A criação de um pro-
cesso independente exige a alocação de um PCB, possuindo contextos de
hardware, contexto de software e espaço de endereçamento próprios [1].

Subprocessos são processos criados dentro de uma estrutura hierárquica.


Nesse modo, o processo criador é denominado processo pai e o novo
processo é chamado de processo filho ou subprocesso. O subprocesso
pode criar outras estruturas de subprocessos. Uma característica dessa
implementação é a dependência existente entre o processo criador e o
subprocesso. Caso um processo pai deixe de existir, o sistema operacional
pode ser configurado para eliminar automaticamente os processos filhos.

Além da dependência hierárquica entre processos e subprocessos, uma ou-


tra característica nesse tipo de implementação é que subprocessos podem
compartilhar quotas com o processo pai. Nesse caso, quando um subpro-
cesso é criado, o processo pai cede parte de suas quotas ao processo filho.

Pode-se observar na Figura 21 a relação entre processos e subprocessos.

Figura 21: Processos dependentes


Fonte: Machado e Maia, 2004. Adaptação.

Licenciatura em Informática
43
Processos

O uso de processos independentes e subprocessos no desenvolvimento


de aplicações concorrentes demanda consumo de diversos recursos do
sistema. Sempre que um novo processo é criado, o sistema deve alocar
recursos (contexto de hardware, contexto de software e espaço de ende-
reçamento), consumindo tempo de UCP nesse trabalho. No momen-
to do término dos processos, o sistema operacional também dispensa
tempo para desalocar recursos previamente alocados. Outro problema
existente é a comunicação e a sincronização entre processos, considera-
da pouco eficiente, visto que cada processo possui seu próprio espaço
de endereçamento.

O thread representa uma tentativa de reduzir o tempo gasto na criação,


eliminação e chaveamento de contexto de processos nas aplicações con-
correntes, bem como de economizar recursos do sistema.

Em um ambiente multithread, um único processo pode suportar múl-


tiplos threads, cada qual associado a uma parte do código da aplicação.
Nesse caso, não é necessário haver diversos processos para a implemen-
tação da concorrência. Threads compartilham o processador da mesma
maneira que um processo, ou seja, enquanto um thread espera por uma
operação de E/S, outro thread pode ser executado.

Veja na Figura 22 um esquema de funcionamento de processos


multithread.

Figura 22: Processo multithread


Fonte: Machado e Maia, 2004. Adaptação.

Cada thread possui seu próprio contexto de hardware, porém, compar-


tilha o mesmo contexto de software e espaço de endereçamento como
os demais threads do processo. Por compartilharem o espaço de endere-
çamento, a comunicação entre os threads de um mesmo processo pode

Sistemas Operacionais
44
Capítulo 3

ser feita de forma simples e rápida. E o compartilhamento do contexto


de software torna mais rápido a criação, a eliminação e o chaveamento
de contexto dos threads.

3.7.1 Processos Foreground e Background e Pipes

Um processo possui, sempre associado à sua estrutura, pelo menos


dois canais de comunicação por onde são realizadas todas as entradas
e saídas de dados ao longo do seu processamento. Os canais de entrada
(input) e saída (output) de dados podem estar associados a terminais,
arquivos, impressoras e até mesmo a outros processos.

3.7.1.1 Processo Foreground

Um processo foreground é aquele que permite a comunicação direta do


usuário com o processo durante o seu processamento.

Nesse caso, tanto o canal de entrada quanto o de saída estão associa-


dos a um terminal com teclado, mouse e monitor, permitindo, assim,
a interação com o usuário. O processamento interativo tem como base
processos foreground.

Observe na Figura 23 o funcionamento de um processo foreground.

Figura 23: Processo foreground


Fonte: Machado e Maia, 2004. Adaptação.

3.7.1.2 Processo Background

Um processo background é aquele em que não existe a comunicação com


o usuário durante o seu processamento. Nesse caso, os canais de E/S não
estão associados a nenhum dispositivo de E/S interativo, mas, em geral,
a arquivos de E/S. Em outras palavras, não há interação com o usuário,
pois tanto a entrada quanto a saída são realizadas por meio de arquivos.
O processamento do tipo batch (lote) é realizado através de processos
background.

Licenciatura em Informática
45
Processos

Observe na Figura 24 o funcionamento de um processo background.

Figura 24: Processo background


Fonte: Machado e Maia, 2004. Adaptação.

3.7.1.3 Pipe entre Processos

É possível associar o canal de saída de um processo ao canal de entrada


de outro processo. Nesse caso, dizemos que existe um pipe ligando os
dois processos. Por exemplo, se um processo A gera uma listagem e um
processo B tem como função ordená-la, basta associar o canal de saída
do processo A ao canal de entrada do processo B.

Verifique na Figura 25 o funcionamento de um processo foreground.

Figura 25: Pipe entre processos


Fonte: Machado e Maia, 2004. Adaptação.

3.8 Processos do Sistema Operacional

O conceito de processo, além de estar associado a aplicações de


usuários, também pode ser implementado na própria arquitetura
do sistema operacional.

A listagem a seguir apresenta alguns serviços que o sistema operacional


pode implementar por meio de processos:

Sistemas Operacionais
46
Capítulo 3

• auditoria e segurança;
• serviços de rede;
• contabilização do uso de recursos;
• contabilização de erros;
• gerência de impressão;
• gerência de jobs batch;
• temporização;
• comunicação de eventos;
• interface de comandos (shell).

3.8.1 Processos CPU-bound e I/O-bound

Os processos podem ser classificados como CPU-bound (ligado à Uni-


dade Central de Processamento) ou I/O-bound (ligado a E/S), de acor-
do com a utilização do processador e dos dispositivos de E/S. [5]

Um processo é definido como CPU-bound quando passa a maior parte do


tempo no estado de execução, ou seja, utilizando o processador, veja a Figu-
ra 26. Esse tipo de processo realiza poucas operações de leitura e gravação e
é encontrado em aplicações científicas que efetuam muitos cálculos.

Figura 26: Processo CPU-bound


Fonte: Machado e Maia, 2004. Adaptação.

Um processo é classificado como I/O-bound quando passa a maior


parte do tempo no estado bloqueado, pois realiza um elevado número
de operações de E/S, verifique a Figura 27. Esse tipo de processo é
encontrado em aplicações comerciais, que se baseiam em leitura, pro-
cessamento e gravação.

Licenciatura em Informática
47
Processos

Figura 27: Processo I/O-bound


Fonte: Machado e Maia, 2004. Adaptação.

Os processos interativos também são bons exemplos de processos I/O-


bound, pela forma de comunicação entre o usuário e o sistema, nor-
malmente lenta, devido à utilização de terminais. [5]

3.9 Sinais

O uso de Sinais é um mecanismo que permite notificar processos sobre


eventos gerados pelo sistema operacional ou por outros processos. A
utilização de sinais é fundamental para a gerência de processos, além de
possibilitar a comunicação e sincronização entre processos.

Um exemplo de uso de sinais é quando alguém utiliza uma sequência


de caracteres do teclado, como [Ctrl-C], para interromper a execução
de um programa (sugiro mudar o exemplo, pois “Ctrl-C” é usado lar-
gamente como comando [Windows, Word, Excel etc] para copiar um
objeto selecionado).
Nesse caso, o usuário gerou uma interrupção de hardware (tecla-
do) por meio da digitação dessa combinação de teclas e, a partir
dela, o sistema operacional gera um sinal indicando ao processo a
ocorrência do evento. No momento em que o processo identifica a
chegada do sinal, uma rotina específica de tratamento é executada.

Grande parte dos eventos associados a sinais é gerada pelo sistema ope-
racional ou pelo hardware, como a ocorrência de exceções, interrupções
geradas por terminais, limites de quotas excedidos durante a execução
dos processos e alarmes de tempo. Em outras situações, os eventos são
gerados a partir de outros processos, com o propósito de sincronizar
suas execuções.

Sistemas Operacionais
48
Capítulo 3

Figura 28: Sinais


Fonte: Machado e Maia, 2004. Adaptação.

A geração de um sinal (Figura 28) ocorre quando o sistema operacio-


nal, a partir da ocorrência de eventos síncronos ou assíncronos, notifica
o processo através de bits de sinalização localizados no seu PCB. Um
processo não responde instantaneamente a um sinal. Os sinais ficam
pendentes até que o processo seja escalonado, quando então serão trata-
dos. Por exemplo, quando um processo é eliminado, o sistema ativa o bit
associado a esse evento. O processo somente será excluído do sistema
quando for selecionado para execução. Nesse caso, é possível que o pro-
cesso demore algum período de tempo até ser eliminado de fato.

O tratamento de um sinal é muito semelhante ao mecanismo de interrup-


ções. Quando um sinal é tratado, o contexto do processo é salvo e a exe-
cução desviada para um código de tratamento de sinal (signal handler),
geralmente no núcleo do sistema. Após a execução do tratador de sinais, o
programa pode voltar a ser processado do ponto onde foi interrompido.

Em certas implementações, o próprio processo pode tratar o sinal por


meio de rotinas de tratamento definidas no código do próprio progra-
ma. É possível também que um processo bloqueie temporariamente ou
ignore por completo alguns sinais. O mecanismo de sinais assemelha-se
ao tratamento de interrupções e exceções vistos anteriormente, porém,
com propósitos diferentes. O sinal está para o processo assim como as
interrupções e exceções estão para o sistema operacional. [5]

Licenciatura em Informática
49
Processos

Atividades
1. Defina o conceito de processo.
2. Por que o conceito de processo é tão importante no projeto de
sistemas multiprogramáveis?
3. Quais partes compõem um processo?
4. Defina os cinco estados possíveis de um processo.
5. Diferencie processos multithreads, subprocessos e proces-
sos independentes.
6. Explique a diferença entre processos foreground e background.
7. Qual a relação entre processo e a arquitetura microkernel?
8. Dê exemplos de aplicações CPU-bound e I/O-bound.
9. Justifique com um exemplo a frase “o sinal está para o pro-
cesso assim como as interrupções e exceções estão para o sis-
tema operacional”.

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Ope-


racionais. 4.ed. LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamen-
tos de Sistemas Operacionais. 6.ed. LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
Pearson Brasil, 2007.
[4] OLIVEIRA, R.S., CARISSIMI, A.S., TOSCANI, S.S. Sistemas
Operacionais. 3.ed. Sagra-Luzzato. 2004.
[5] SIMÕES, SERGIO NERY. Sistemas Operacionais I.1 ed. IFES,
2008.
[6] SOARES, RICARDO DE MAGALHÃES. Sistemas Operacio-
nais. 1 ed. Esab, 2008.

Sistemas Operacionais
50
Capítulo 3

___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________

Licenciatura em Informática
51

SISTEMAS DE ARQUIVOS

Caros alunos,

Neste quarta aula você entenderá como é a organização de um


sistema de arquivos, suas propriedades, organização dos arqui-
vos, nomeação dos arquivos e diretórios entre outros.

Estes conceitos são muito importantes, pois é através deles que

podemos entender como é internamente a organização dos ar-


quivos diretórios e pastas.

Bom estudo!

4.1 Introdução

Um sistema de arquivos é o conjunto de normas que definem o modo


como os dados do usuário, programas, informações de configuração,
entre outras, serão gravados e gerenciados nos dispositivos de armaze-
namento acessados pelo computador. Essas informações serão armaze-
nadas fisicamente nos dispositivos, e gerenciadas pelo sistema opera-
cional através de estruturas de dados, que serão a representação lógica
das informações.

Um sistema operacional em sua grande maioria é caracterizado pelo sis-


tema de arquivos que utiliza, mas um mesmo sistema operacional pode
utilizar mais de um sistema de arquivos para gerenciar o computador.

4.2 Organização de um Sistema de Arquivos

Grande parte dos sistemas de arquivos trabalha organizando os dados


em blocos de informação, sendo que o tamanho de cada bloco depen-
derá de algumas características específicas de cada sistema de arquivos,
e do dispositivo de armazenamento utilizado.

Sistemas Operacionais
52
Capítulo 4

Um exemplo de utilização de blocos de informação pode ser o


seguinte: em um disco-rígido de 40 GB utilizam-se blocos de in-
formação de 4 KB de tamanho, assim o disco é dividido em 10
milhões de blocos de informação

Os blocos de informação são utilizados, pois todo o controle da infor-


mação é feito utilizando os blocos como unidade básica de informação.
Esse conceito surgiu no início da utilização de computadores, pois a
limitação dos computadores impedia um controle mais apurado.

O ideal era que cada unidade de informação correspondesse a um


byte, se isso fosse feito, seriam necessários 40 bilhões de unidades
de informação separadas no disco-rígido de 40 GB (em um com-
putador de 32bits o maior número que pode ser interpretado pelo
processador é um pouco maior que quatro bilhões).

Como os computadores trabalham com números binários, os blocos de


informação são múltiplos de dois e geralmente abrangem o seguinte in-
tervalo: 512 bytes, 1024 bytes, 2048 bytes, até 65536 bytes, este último
praticamente não utilizado nos sistemas operacionais atuais. Não existe
atualmente nenhum sistema que utiliza um bloco de informação infe-
rior a 512 bytes, pois todos os discos-rígidos são divididos em blocos
físicos (chamados clusters) de informação de 512 bytes. Os blocos de
informação podem ser entendidos como sendo formados por grupos de
blocos físicos de dados.

Não ha possibilidade de gravar dados em um Hard Disk(HD) ou


em disquete, sem um sistema de arquivos, que consiste, em uma
estrutura que indica como os arquivos devem ser gravados e ar-
mazenados nos discos. Através do sistema de arquivos, é possível
determinar o espaço utilizado no disco, além de ser o método
que permite gerenciar como partes de um arquivo podem ficar
“espalhadas” no dispositivo de armazenamento. Outro detalhe
importante é que o sistema de arquivos determina como arquivos
podem ser gravados, copiados, alterados, nomeados e até apa-
gados, ou seja, toda e qualquer manipulação de dados em uma
mídia necessita de um sistema de arquivos para que essas ações
sejam possíveis.

Licenciatura em Informática
53
Sistemas de Arquivos

Os dados gravados no sistema recebem o nome de arquivo. Um arquivo


pode conter um relatório de trabalho, um desenho, uma música, ou um
programa. Cada arquivo possui um conjunto de propriedades que de-
finirão a maneira como a informação dentro dele poderá ser acessada.
Se não houver estrutura de armazenamento e manipulação (sistema de
arquivos) é impossível gravar dados.

4.3 Propriedades dos Arquivos

Os arquivos possuem uma série de propriedades que são utilizadas para


definir a maneira como os dados serão lidos, atualizados, apagados,
como será mostrado o arquivo para o usuário, a data em que o arquivo
foi criado, dentre outras. As principais propriedades de um arquivo en-
contradas nos sistemas operacionais atuais são:

• Modo de Acesso: esta propriedade define a maneira como o ar-


quivo será acessado, podendo ser basicamente da seguinte forma:
o arquivo poderá ou não ser lido, poderá ou não ser escrito, e se
for um programa, o programa poderá ou não ser executado;
• Modo de Exibição: aqui é definido se o arquivo será exibido ao
usuário normalmente, ou se ficará oculto, não sendo exibido;
• Data de Criação: quando o arquivo é criado, a data de criação
é armazenada;
• Data de Alteração: a cada instante que o conteúdo do arquivo for
modificado, ficará armazenada a data da alteração. Em sistemas que
possuem apenas uma data como propriedade do arquivo, utiliza-se
geralmente a data de alteração do arquivo na propriedade Data;
• Nome do Arquivo: esta propriedade identifica o arquivo, e é
através do nome que se tem acesso ao conteúdo do arquivo;
• Extensão do Arquivo: aqui será definido o tipo do arquivo. Esta
propriedade geralmente faz a associação do conteúdo de um ar-
quivo com o programa utilizado, por exemplo, um arquivo “rela-
tório de trabalho.doc” possui o nome: “relatório de trabalho” e a
“extensão.doc”, que o associa com o programa MS-Word.

Nos sistemas operacionais mais avançados, que utilizam critérios para


diferenciar os usuários que utilizam o computador, os arquivos podem
ter algumas propriedades que irão armazenar informações sobre o usu-
ário que criou o arquivo, e o modo de acesso que os outros usuários
terão ao arquivo. O conjunto completo de propriedades que um arquivo
possuirá dependerá diretamente do sistema de arquivos utilizado pelo
sistema operacional. Veja a Figura 29.

Sistemas Operacionais
54
Capítulo 4

Figura 29: Propriedades dos Arquivos

4.4 Organização dos Arquivos

Os arquivos ficam armazenados no disco-rígido e para facilitar o ge-


renciamento dos arquivos, várias técnicas são empregadas, as principais
são: a separação dos arquivos em Diretórios, e a utilização de uma Ta-
bela de Arquivos. Veja figura 02.

Um diretório é um mecanismo de organização dos arquivos. Os arqui-


vos são, sob um aspecto lógico-computacional, organizados primaria-
mente em diretórios. Os diretórios podem ser criados e removidos pelo
usuário, e por meio deles, o usuário consegue realizar a separação dos
arquivos a partir de critérios definidos previamente. Alguns sistemas
operacionais, durante a instalação do sistema no computador, criam al-
guns diretórios iniciais, que são utilizados para organizar os arquivos do
próprio sistema operacional, e também para auxiliar o usuário apresen-
tando uma pré-organização que poderá ou não ser seguida. Os diretórios
recebem vários nomes, entre eles: pastas e caminhos. No MS-Windows
XP, a pasta “Meus Documentos” na área de trabalho, corresponde ao
diretório: “C:\Documents and Settings\<usuário>\Meus documentos”.

A Tabela de Arquivos é outro mecanismo utilizado pelos sistemas ope-


racionais para organizar os arquivos (Figura 30), mas nesse caso a orga-
nização pretendida é para o tratamento dos dados fisicamente gravados
no disco-rígido. Graças à utilização dessa tabela, os arquivos podem ser
encontrados e editados sem que haja necessidade de mecanismos com-

Licenciatura em Informática
55
Sistemas de Arquivos

plexos ou demorados para se realizar esse trabalho. Na Tabela de ar-


quivos ficarão armazenadas basicamente as seguintes informações: um
identificador do arquivo (geralmente sendo o caminho do arquivo que
inclui o diretório completo e o nome do arquivo, mais um número de
identificação único para cada arquivo), e o número do primeiro bloco
físico de dados no disco-rígido.

Fazendo analogia, essa organização assemelha-se a uma biblio-


teca escolar. O bibliotecário organiza os livros conforme o seu
gosto, cuja busca, convenientemente, procura deixar mais fácil,
sem ocupar muitas prateleiras e assegurando a integridade deste.
Ainda, certamente, organizam os livros segundo suas caracterís-
ticas (assunto, censura, etc.). Depois de organizados, ou durante a
organização, o bibliotecário cria uma lista com todos os livros da
biblioteca, com seus assuntos, localizações e códigos respectivos.

Figura 30: Organização dos Arquivos


Fonte: http://pt.wikipedia.org/wiki/Sistema_de_ficheiros

4.5 Nomeação dos Arquivos e Diretórios

Os sistemas de arquivos atualmente utilizados nos sistemas operacio-


nais permitem a criação de arquivos e diretórios com nomes de até 255
caracteres. Mas no início, esse número era bem inferior. Na década de
1980 era comum o uso do MS-DOS, e este sistema permitia a criação
de arquivos com no máximo 11 caracteres (8 caracteres no nome + 3
caracteres de extensão).

Sistemas Operacionais
56
Capítulo 4

Um detalhe importante na nomeação dos arquivos e diretórios é o


cuidado que se deve ter para não utilizar nenhum caractere espe-
cial, pois alguns são utilizados para auxiliar a organização, exibição
e administração dos arquivos, como por exemplo, os caracteres: “/”,
“?”, “$”, etc. Estes dependem do sistema de arquivos, que depende do
sistema operacional.

“Por exemplo, nos sistemas Unix, se um arquivo começa com o carac-


tere “.”, indica que o arquivo ficará oculto, e se começa com “~” significa
que é uma cópia de segurança.

O sistema MS-Windows 95 ao ser lançado permitiu a utilização de no-


mes de arquivos com 255 caracteres, mas teve que ser feito com uma
Tabela de Arquivos especial, pois deveria ser compatível com o sistema
MS-DOS e MS-Windows 3. Quando o arquivo era visualizado a partir
do MS-Windows 95 o nome era exibido corretamente, mas quando era
visto no MSDOS ou MS-Windows 3 o nome era exibido no formato
“8.3” caracteres.

4.6 Metadados dos Arquivos

Existe um grupo de informações que são armazenadas na Tabela de


Arquivos, chamada de metadados. Essas informações podem ser, por
exemplo: o tamanho em bytes dos dados do arquivo, o formato do con-
teúdo, a data de criação, data de modificação, nome do usuário que
criou, propriedades do modo de acesso, resumo do conteúdo do arqui-
vo, e várias outras informações (dependendo do sistema operacional).

As informações contidas nos metadados são úteis para o sistema opera-


cional oferecer algumas funções adicionais ao usuário, como por exem-
plo, se o usuário precisar acessar os arquivos que uma determinada pes-
soa criou em uma certa data, o sistema operacional deverá possuir essas
informações para poder dar a resposta correta ao usuário.

Metadados (Dicionário de dados), ou Metainformação, são dados


sobre outros dados.

Licenciatura em Informática
57
Sistemas de Arquivos

4.7 Classificação dos Sistemas de Arquivos

Os sistemas de arquivos podem ser classificados em dois tipos básicos:

• Sistemas de Disco: uma unidade de armazenamento não-volátil


(disco-rígido, CD-R, flashdrive) é utilizada para guardar os arqui-
vos e seus dados. A Tabela de Arquivos geralmente fica armazena-
da na própria unidade de armazenamento onde se encontram os
arquivos referenciados por ela. Exemplos de sistemas de arquivo
em disco são: FAT32, NTFS, HFS, ext2, ext3, isso 9660, etc.
• Sistemas de Arquivo em Rede: Um sistema de arquivo em rede é
um sistema em que o gerenciamento e armazenagem dos arquivos
de um computador é feito em um outro computador conectado
à rede, que permite o acesso aos dados de maneira transparente,
como se estivessem no próprio computador do usuário. O sistema
mais utilizado é o NFS.

Atividades

1. Defina o que é um sistema de arquivos.

2. Quais as principais propriedades de um arquivo encontradas


nos sistemas operacionais atuais? Descreva cada uma delas.

3. Os metadados são estruturas de extrema importância para o


sistema de arquivo, quais informações podem ser armazenadas
pelos metadados e porque elas são tão úteis?

4. Quais as desvantagens de um sistema de nomeação de arquivos


e diretórios com apenas 11 caracteres?

5. Crie uma analogia diferente e criativa para caracterizar um


sistemas de arquivos. Veja o exemplo da analogia, biblioteca
de livros.

6. Desenvolva uma pesquisa sobre as principais diferenças


existentes entre sistema de arquivo Ext3 (Utilizado pelo siste-
ma operacional linux) e NTFS (Utilizado pelo sistema opera-
cional Windows).

Sistemas Operacionais
58
Capítulo 4

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Ope-


racionais. 4.ed. LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamen-
tos de Sistemas Operacionais. 6.ed. LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
Pearson Brasil, 2007.
[4] SOARES, RICARDO DE MAGALHÃES. Sistemas Operacio-
nais. 1 ed. Esab, 2008.

___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________

Licenciatura em Informática
59

GERÊNCIA DE MEMÓRIA

Caros alunos,

Nesta quinta aula desvendaremos a gerência de memória, en-


tendendo como funciona a proteção da memória, organização,
limpeza e compartilhamento.

Além disso, você compreenderá os conceitos sobre memória vir-


tual, memória paginada e segmentada.

Como não é possível visualizar a organização da memória, en-


tender seu funcionamento será um bom exercício de abstração.

Bom estudo!

5.1 Introdução

Historicamente, a memória principal sempre foi vista como um recurso


escasso e caro. Uma das maiores preocupações dos projetistas foi desen-
volver sistemas operacionais que não ocupassem muito espaço de me-
mória e, ao mesmo tempo, otimizassem a utilização dos recursos com-
putacionais. Mesmo atualmente, com a redução de custo e o conseqüente
aumento da capacidade da memória principal, seu gerenciamento é um
dos fatores mais importantes no projeto de sistema operacionais.

Fundamentalmente, o gerenciamento da memória é a ferramenta em-


pregada para permitir aos programas em execução no computador
aproveitarem a memória do computador para armazenar as instruções
e dados que serão manipulados. Os principais objetivos a serem alcan-
çados no gerenciamento da memória são:

• Oferecer uma área de armazenamento para os processos se-


rem executados;
• Proteger a execução dos processos contra eventuais falhas causa-
das por erro em um determinado processo;
• Criar um ambiente de execução com desempenho satisfatório
aos usuários;

Sistemas Operacionais
60
Capítulo 5

• Além dessas características, adicionalmente deseja-se de um


bom gerenciador:
• Compartilhamento da memória entre os processos (em siste-
mas avançados);
• Permitir aos programadores desenvolverem programas que te-
nham um acesso transparente à memória do computador.

Nos sistemas operacionais modernos, o gerenciamento da memória


desempenha a tarefa de alocar memória de forma eficaz, para diversos
tipos de aplicações.

Nos sistemas monoprogramáveis a gerência da memória não é


muito complexa, nos sistemas multiprogramáveis essa gerência se
torna crítica, devido à necessidade de se maximizar o número de
usuários e aplicações, utilizando eficientemente o espaço da me-
mória principal.

5.2 Proteção da Memória

Em um ambiente de multiprogramação, o sistema operacional


deve proteger as áreas de memória ocupadas por cada processo,
além da área onde reside o próprio sistema. Caso um programa
tente realizar algum acesso indevido à memória, o sistema deve
impedi-lo de alguma forma. Apesar de a gerência de memória
garantir a proteção de áreas da memória, mecanismos de com-
partilhamento devem ser oferecidos para que diferentes processos
possam trocar dados de forma protegida.

A Proteção da Memória é a estratégia utilizada pelos sistemas operacio-


nais para controlar a memória em utilização no computador. A princi-
pal função da proteção da memória é a separação dos processos e suas
informações, e impedir que um processo acesse uma área de memória
que não foi reservada para ele. Para realizar a proteção da memória,
uma das seguintes medidas pode ser escolhida: Segmentação da Memó-
ria ou a Paginação da Memória.

Licenciatura em Informática
61
Gerência de Memória

Na Paginação da Memória, a memória é dividida em páginas, com ta-


manho fixo. Com a utilização de um outro mecanismo chamado Me-
mória Virtual, cada página pode ser armazenada em qualquer lugar da
memória do computador. A Segmentação da Memória é a divisão da
memória do computador em segmentos de dados. Quando um progra-
ma vai acessar uma área de memória, ele deve informar também o nú-
mero do segmento de memória.

A gerência de memória deve tentar manter na memória prin-


cipal o maior número de processos residentes, permitindo
maximizar o compartilhamento do processador e demais re-
cursos computacionais.

5.3 Organização da Memória

A memória geralmente é dividida em três partes, veja também a Figura


31 que mostra a pirâmide de memórias do computador.

• Memória Cache: esta memória fica dentro do processador, é


muito menor que a Memória Principal, mas possui uma impor-
tância muito grande, pois é utilizada para acelerar a obtenção de
informações para o processador;
• Memória Principal: também chamada de Memória RAM, é
ela que armazena os programas e informações que estão em
uso no computador;
• Memória Secundária: Nesta memória ficam os dados tempora-
riamente não utilizados, para liberar espaço na Memória Princi-
pal, e aqui também ficam armazenados os arquivos do usuário.

Sistemas Operacionais
62
Capítulo 5

Figura 31: Pirâmide de memórias do computador


Fonte: http://static.hsw.com.br/gif/computer-memory-pyramid.gif

5.4 Limpeza da Memória

Uma última tarefa sob responsabilidade do Gerenciador de Memória


é fazer a “coleta de lixo”. Esta tarefa consiste em coletar os dados não
mais utilizados na memória, e liberar espaço, para poder ser utilizar-se
de outros programas. Os sistemas operacionais modernos, como o Ma-
cOS X e MS-Windows XP, possuem esse mecanismo. Versões anteriores
desses sistemas que não possuíam o Coletor de Lixo não realizavam a
limpeza automática da memória. Se um programa não limpasse a área
da memória que ele mesmo utilizou o sistema operacional não iria de-
tectar que a memória poderia ser utilizada, o que acarretava na perda
de recurso durante a utilização do computador (dependendo do tempo
de uso contínuo do computador, nitidamente percebia-se uma queda no
seu desempenho).

5.5 Compartilhamento da Memória

Uma memória é chamada de “memória compartilhada” quando vários


processos podem acessá-la simultaneamente. Dependo do processador
utilizado no computador, vários processos podem ser executados ao
mesmo tempo, e a comunicação entre os processos pode ser feita utili-

Licenciatura em Informática
63
Gerência de Memória

zando-se uma área da memória que seja acessível a todos os processos.


A memória compartilhada pode ser criada de duas maneiras:

• Eletronicamente (Hardware): o compartilhamento é feito em uma


grande área de memória RAM que pode ser acessada por vários proces-
sadores, geralmente utilizados em supercomputadores;

• Logicamente (Software): aqui o compartilhamento é feito utilizando-


se estruturas de dados especiais nos programas, para que possam reali-
zar a troca de informação durante a sua execução.

A memória compartilhada é uma memória que pode ser aces-


sada simultaneamente por múltiplos programas com a intenção
de prover comunicação entre eles ou para evitar cópias redun-
dantes. Dependendo do contexto, os programas podem ser exe-
cutados em somente um processador ou por pelo menos dois
processadores distintos.

5.6 Memória Virtual

A memória virtual é um recurso utilizado na computação que cria para


os programas um ambiente de memória contínua e na prática é constru-
ído em um ambiente de memória fragmentada, podendo até ser utiliza-
do dispositivos de armazenamento para o salvamento de informações
de maneira temporária. A utilização de memória virtual torna o uso da
memória principal mais eficiente.

O entendimento de Memória Virtual deve ir além do conceito de “me-


mória temporária armazenada em disco”. O aumento da memória é o
primeiro ganho que se tem ao utilizar-se memória virtual. O conceito
real de memória virtual é: “gerenciar a memória de forma que os pro-
gramas em execução no computador tenham um ambiente de memória
unificada e contínua”. Os principais sistemas operacionais em operação
atualmente fazem uso da técnica de Memória Virtual para obter com
isso um aumento no desempenho do computador.

A técnica de memória virtual foi inicialmente desenvolvida nos anos de


1959 a 1962, na Universidade Manchester, Inglaterra, para o computa-
dor Atlas. Antes da criação da memória virtual gerenciada pelo sistema
operacional, os próprios programas eram responsáveis por realizarem
o gerenciamento da informação, utilizando a memória principal e os

Sistemas Operacionais
64
Capítulo 5

dispositivos de armazenamento de acordo com a necessidade inerente


ao próprio programa.

A principal motivação para a criação da memória virtual foi o pensa-


mento de se proporcionar aos desenvolvedores de programas um recur-
so mais facilitado de utilização da memória do computador. Na década
de 1960 começaram a surgir os primeiros modelos de computadores
comerciais que possuíam o recurso de memória virtual disponível, mas
como toda tecnologia recém lançada, passou por um processo de popu-
larização difícil.

Os primeiros sistemas operacionais implementavam técnicas rudimen-


tares de memória virtual, que em comparação com os sistemas proprie-
tários, em que os programas gerenciavam sua própria memória, tinham
um desempenho abaixo do desejado para justificar uma substituição.
Foi a IBM no final da década de 1960 que oficializou a adoção da memó-
ria virtual nos computadores ao lançar alguns modelos que utilizavam
esse recurso. A partir de então, todas as empresas passaram a implantar
nos sistemas operacionais a capacidade de gerenciamento da memória
através da Memória Virtual.

A utilização de memória virtual em um sistema computadorizado de-


pende principalmente da arquitetura do computador, mais especifica-
mente, do modo de endereçamento de memória utilizado pelo proces-
sador. A Intel, desenvolvedora dos processadores Pentium, adotou o
recurso de memória virtual em seus processadores em 1982 com o lan-
çamento do modelo 80286. A Microsoft passou a utilizar o recurso de
memória virtual apenas em 1990, no lançamento do MS-Windows 3.

Os programas utilizam a memória reservando espaços de dados para


serem armazenados o código do programa em si e os dados que serão
processados pelo programa. Este espaço de dados é chamado de Área
de Endereçamento. Quando um programa é iniciado, o próprio sistema
operacional reserva um Espaço de Endereçamento para armazenar o
código executável do programa, e à medida que o programa é utiliza-
do pelo usuário, mais espaços de endereçamento podem ser solicitados
para armazenar os dados que estiverem sendo informados.

Para o sistema operacional gerenciar de forma mais eficiente a memória


do computador, os espaços de endereçamento que um programa está
utilizando são agrupados em um bloco único (a Área de Armazena-
mento formada pelos Espaços de Endereçamento) que é manipulado e
administrado como uma única seqüência de dados na memória.

Licenciatura em Informática
65
Gerência de Memória

O conceito de swapping permite maior compartilhamento da me-


mória principal e, conseqüentemente, maior utilização dos recur-
sos do sistema computacional.

5.7 Memória Paginada

Memória Paginada é a tática utilizada pelo sistema operacional para


melhor gerenciar a memória do computador. Tanto a memória princi-
pal quanto a memória secundária será dividida em Páginas de Memó-
ria, formando a Memória Virtual. O conteúdo armazenado nas páginas
de memória estará armazenado na memória principal ou na secundária
e a alteração de uma página entre a memória principal e secundária é
chamada de paginação.

A principal vantagem alcançada pela utilização da Memória Paginada


é a facilidade na recuperação de informações que estão em páginas na
memória secundária. A recuperação acontecerá por dois motivos: o
processador estará carregando o código executável de um programa (o
processo passou do estado de Bloqueio para o estado de Espera), ou um
programa estará acessando alguma informação na memória virtual.

O sistema operacional, por meio do gerenciador de memória, detec-


ta que essa informação não está na memória principal (essa situação é
chamada de “Falha de Página”, ou “Page Fault” em inglês). Sempre que
acontecer uma falha de página, o sistema operacional deverá realizar o
seguinte procedimento:

• Encontrar a página de memória na Memória Secundária;


• Determinar qual área da Memória Principal será utilizado para
receber os dados da Memória Secundária, e armazenar esses da-
dos na Memória principal;
• Passar para o programa a nova página de memória correspon-
dente à informação solicitada.

O item dois pode ser expandido, caso não haja uma página de memó-
ria livre na memória principal (toda a memória principal está em uso)
para armazenar os dados da memória secundária. Nesse caso, haverá
duas paginações: uma retirando uma página da memória principal para
a memória secundária, e outra no caminho inverso. Diz-se então que
houve uma Troca de Páginas (Page Swap, em inglês).

Sistemas Operacionais
66
Capítulo 5

No contexto dos sistemas operacionais, a paginação da memória


do computador é um processo de virtualização da memória que
consiste na subdivisão da memória física em pequenas partições
(frames), para permitir uma utilização mais eficiente da mesma.
A alocação de memória é requisitada por páginas, a menor unida-
de deste método. Cada página é mapeada num frame de memória
através de um processo que chama paginação.
Um exemplo de Sistema Operacional que usa memória pagina-
da é o Linux. Nos Sistemas Operacionais com memória virtual
paginada podemos ter programas em execução cujo tamanho é
maior que a memória física disponível, uma vez que se permite o
mapeamento de páginas em memória secundária.

5.8 Memória Segmentada

A Segmentação da Memória consiste na divisão da memória em seg-


mentos de dados. Cada segmento possuirá as seguintes propriedades:
a sua localização física na memória, permissão de acesso, tamanho e
um identificador. Se um processo possuir permissão para utilizar um
segmento, e se o processo solicitar acesso a uma informação dentro do
segmento poderá fazer isso, caso contrário um aviso de erro será passa-
do ao processo (e conseqüentemente ao usuário).

Além das propriedades citadas, dependendo do sistema operacional,


o segmento pode possuir um indicador informando se sua localização
está na memória principal ou na memória secundária. Caso esteja na
memória secundária, e seja acessado por algum processo, o sistema
operacional irá realizar o carregamento do segmento na memória prin-
cipal para poder acessar as informações contidas nele.

Com a evolução dos sistemas operacionais, novos esquemas de ge-


rência de memória passaram a incorporar a técnica de swapping,
como a gerência de memória virtual. Você pode encontrar mais in-
formações sobre gerência de memória nas bibliografias citadas.

Licenciatura em Informática
67
Gerência de Memória

Atividades
1. Que benefícios são obtidos com o gerenciamento de memória?
2. Em que consiste a estratégia de proteção de memória?
3. Explique a tática empregada na utilização de memória
paginada.
4. Quais os principais critérios para substituição de páginas de
memória? Por que é usado?
5. Como é dividida a organização de memória? Defina cada parte
da divisão.
6. O que é memória paginada? Comente suas vantagens.
7. Em que consiste a segmentação de memória?
8. Quais são as causas que um programa que não implementa o
sistema de limpeza de memória pode causar?

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Ope-


racionais. 4.ed. LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamen-
tos de Sistemas Operacionais. 6.ed. LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
Pearson Brasil, 2007.
[4] SOARES, RICARDO DE MAGALHÃES. Sistemas Operacio-
nais. 1 ed. Esab, 2008.

Sistemas Operacionais
68
Capítulo 5

___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________

Licenciatura em Informática
69

GERÊNCIA DE DISPOSITIVOS

Caros alunos,

Estaremos dando início a nossa sexta e última aula com o conte-


údo sobre Gerência de Dispositivos em Sistemas Operacionais.

A gerência de dispositivos permitira que vocês compreendam, de


forma embasada, como é a integração do hardware do compu-
tador e o sistema operacional, pois o ato ”simples” de imprimir
um arquivo e receber da impressora um papel cheio de letras,
não é tão simples quanto pensamos ser.

Bom estudo!

6.1 Introdução

Gerenciar os dispositivos do computador é parte da função de um siste-


ma operacional e, no caso de sistemas operacionais de tempo real, este
pode ser todo o trabalho. Para outros sistemas operacionais, o objetivo
é fornecer, de maneira simples e consistente, poder de processamento
para aplicativos e usuários. Gerenciar dispositivos plugados ao compu-
tador, como: monitor, mouse, teclado, impressora, e outros, o sistema
operacional necessita em primeiro lugar ter a capacidade de acessar o
dispositivo e enviar comandos e receber informações do mesmo. Para
realização desta tarefa, os sistemas operacionais recebe um conjunto de
instruções específicos para o tratamento dos dispositivos, esse conjunto
de instruções é chamado de driver de dispositivo.

6.2 Driver de Dispositivo

O funcionamento dos drivers depende do tipo de dispositivo de har-


dware, em sua grande maioria os drivers são executados quando o dis-
positivo é acionado, eles funcionam de maneira semelhante a qualquer
outro processo. O sistema operacional dá maior prioridade aos drivers
para que os recursos dos hardwares sejam liberados e disponibilizados
o mais rápido possível.

Sistemas Operacionais
70
Capítulo 6

Drivers são pequenos programas que fazem a comunicação entre


o Sistema Operacional e o hardware do computador.

A razão para que os drivers sejam separados do sistema operacional é


para que novas funções sejam adicionadas ao drivers sem que o sistema
operacional seja modificado, recompilado e redistribuído. O desenvol-
vimento de novos drivers, geralmente é realizado ou pago pelo fabri-
cante do dispositivo em vez do desenvolvedor do sistema operacional
melhora as capacidades de entrada/saída de todo o sistema.

a função de um driver de dispositivo é aceitar requerimentos abs-


tratos do software independente de dispositivo acima dele e cuidar
para que a solicitação seja executada, permitindo que o software
interaja com o hardware do computador.

Dessa forma o driver de um dispositivo funcionará como um tradutor


de comandos entre o sistema operacional e o equipamento eletrônico.
O sistema operacional utilizará as rotinas existentes no driver para
poder manipular e gerenciar o dispositivo de hardware. Por exemplo,
se o equipamento for uma impressora, o sistema operacional poderá
solicitar ao driver que imprima um determinado texto. O driver passa-
rá à impressora o texto a ser impresso e o comando de impressão. Cada
nova versão de uma impressora necessita de um novo driver, isso não
significa que cada modelo de impressora irá utilizar um driver diferen-
te. Uma mesma versão de impressora pode ser entregue em modelos
diferentes, por exemplo: Epson Stylus 5300, Epson Stylus 5500, Epson
Stylus 5700, e Epson Stylus 5900. [4]

Os drivers são divididos em duas partes: comandos lógicos e comandos


físicos. Os comandos lógicos são acessados pelo sistema operacional e por
qualquer programa que utilize o driver para comunicar com o dispositivo.
Os comandos lógicos serão utilizados pelo sistema operacional para in-
formar ao driver os comandos que devem ser executados e para transferir
dados para o dispositivo. Os comandos físicos são utilizados pelo próprio
driver, para executar no dispositivo os comandos lógicos solicitados.

O código de alto nível das aplicações pode ser escrito independentemen-


te do dispositivo que será utilizado. Qualquer versão de um dispositivo,
como uma impressora, requer os seus próprios comandos. Entretan-
to, a maioria das aplicações acessam os dispositivos usando comandos
genéricos de alto-nível, como println, que imprime um texto. O driver
converte esses comandos genéricos e converte para um código de baixo-

Licenciatura em Informática
71
Gerência de Dispositivos

nível interpretado pelo dispositivo. Em uma melhor tradução, drive do


verbo driver, dirige um hardware a um software, ou seja, é o meio de
comunicação de um hardware. Veja a Figura 31.

Figura 32: Device drivers


Fonte: Machado e Maia, 2004. Adaptação.

Para usar o driver, o mesmo deve estar instalado no sistema operacional.


No processo de instalação, o sistema operacional registrará o driver, os
dispositivos que podem ser utilizados através dele, a localização das ro-
tinas de operação do dispositivo, entre outras informações. Essa tarefa
de instalação, atualmente, é feita de maneira simples e em muitos casos
não chega a ser necessária, pois alguns sistemas operacionais já são dis-
tribuídos com uma série de drivers pré-instalados, havendo apenas a
necessidade de se instalar manualmente o driver para um dispositivo
lançado após a aquisição do sistema operacional. As Figuras 33 e 34,
mostra no sistema operacional Windows XP Professional onde esta o
gerenciador de dispositivos. Para acessá-lo basta ir até o painel de con-
trole e executar o ícone chamado de sistema.

Sistemas Operacionais
72
Capítulo 6

Figura 33: Propriedades do Sistema no Windows XP

Figura 34: Gerenciador de dispositivos do Windows XP

Licenciatura em Informática
73
Gerência de Dispositivos

Para gerenciar os dispositivos, os sistemas operacionais contam com


gerenciadores específicos: Gerenciador de Impressão, Gerenciador de
Disco, Gerenciador de Modem, Gerenciador USB, Gerenciador de Ví-
deo, entre outros. Cada gerenciador será responsável por realizar a
administração e controle da utilização do respectivo dispositivo. O Ge-
renciador de Impressão irá controlar quais documentos serão enviados
para a impressora, quando ela estará disponível para ser utilizada, e
várias outras tarefas. [4]

6.3 Dispositivos Plug and Play

A tecnologia Plug and Play (PnP) , que significa “ligar e usar”, foi criada
com o objetivo de fazer com que o computador reconheça os disposi-
tivos instalados e configure automaticamente, facilitando a expansão
segura dos computadores e eliminando a configuração manual.

Em 1994 vários fabricantes de dispositivos se uniram para definir um


novo conceito na utilização do computador, e na maneira como seria
feita a instalação dos drivers de dispositivos. Até essa época, a ins-
talação e utilização de um dispositivo era muito complexa (causada
principalmente pelo MS-DOS). Para melhorar e facilitar a interação
entre os sistemas operacionais e dispositivos foi criado o modelo Plug-
and-Play. Esse modelo define um conjunto de características que os
dispositivos irão possuir para facilitar a instalação dos drivers. [4]

Quando ligamos o computador, a BIOS (Basic Input/Output System -


Sistema Básico de Entrada/Saída) envia sinais a todos os dispositivos.
Aqueles que enviam uma resposta são reconhecidos, como acontece
com os Plug and Play. A partir deste reconhecimento é montado e atri-
buído a uma tabela de IRQ (abreviação para Interrupt Request) para
cada dispositivo reconhecido. Quando o sistema operacional entra em
operação, ele recolhe a tabela que foi gerada informando os dispositivos
reconhecidos e se adapta a ela fornecendo os softwares drivers que per-
mitirão aos programas utilizarem estes dispositivos.

Alunos, embora seja uma maravilha da tecnologia, existem muitos dis-


positivos que não são 100% compatíveis com esta tecnologia, principal-
mente por existir diferentes sistemas operacionais. Quando isso aconte-
ce é necessário que o driver seja instalado manualmente.

Sistemas Operacionais
74
Capítulo 6

Antes dos dispositivos Plug-and-Play surgirem, o usuário deveria confi-


gurar manualmente o dispositivo, passando ao sistema operacional uma
séria de informações: o conector físico na placa-mãe estava o dispositi-
vo, o endereço padrão para acessar o dispositivo, o número de identifi-
cação, o número do gerador de interrupções, entre outras.

6.4 Drives no Windows e Linux

O driver é dependente do sistema operacional, portanto sua utilização


deve seguir critérios definidos pelos fabricantes dos sistemas operacio-
nais. Estes critérios definem como será feita a interação entre o sistema
operacional e os comandos lógicos do driver.

Os drivers para MS-Windows 3 e MS-Windows 95 eram desenvolvi-


dos segundo um modelo definido pela Microsoft chamado VxD, a sigla
VxD representa “Virtual X Driver”. Nos sistemas MS-Windows 98,
MS-Windows 2000 e MS-Windows XP o modelo utilizado é chama-
do de “Windows Driver Model” e a principal diferença em relação ao
modelo anterior refere-se a melhorias no tratamento de dispositivos
Plug-and-Play. Atualmente, no MS-Windows Vista, o modelo para
utilização dos drivers de dispositivo é chamado de “Windows Driver
Foundation”. [4]

No Linux, os drivers podem ser programas separados, ou fazer parte


do próprio kernel (núcleo do Sistema operacional). Quando os drivers
fazem parte do kernel eles são carregados na inicialização do sistema.
Os drivers que não fazem parte do kernel são chamados de “Módulos
Carregáveis”, e tem a vantagem de poderem ser carregados na memória
apenas no momento de utilização do dispositivo.

Atividades

1. Qual ou quais as funções de um driver?


2. Em que consiste a tecnologia plug and play?
3. Os drivers são divididos em duas partes, quais são e descreva
cada uma.
4. Por que um driver para um determinado sistema operacional
não pode ser utilizado em outro?
5. Como funcionam os drivers no sistema operacional Linux?

Licenciatura em Informática
75
Gerência de Dispositivos

6. Como funcionava a instalação de drivers antes do surgimento


da tecnologia plug and play?
7. De que forma o sistema operacional realiza a administração e
controle da utilização do respectivo dispositivo?

[1] MACHADO, F.B. e MAIA, L.P. Arquitetura de Sistemas Ope-


racionais. 4.ed. LTC, 2007.
[2] SILBERSCHATZ, A., GALVIN, P.B., GAGNE, G. Fundamen-
tos de Sistemas Operacionais. 6.ed. LTC, 2004.
[3] TANENBAUM, A.S. Sistemas Operacionais Modernos. 2.ed.
Pearson Brasil, 2007.
[4] SOARES, RICARDO DE MAGALHÃES. Sistemas Operacio-
nais. 1 ed. Esab, 2008.

___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________

Sistemas Operacionais