operacao de com put adores e sistemas operacionais completa

72
Técnico em Informática Operação de Computadores e Sistemas Operacionais Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Fábio Justo dos Santos 2009 São João da Boa Vista - SP

Upload: aguinaldo-jose-siqueira

Post on 25-Jun-2015

920 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Operacao de Com Put Adores e Sistemas Operacionais Completa

Técnico em InformáticaOperação de Computadores e Sistemas Operacionais

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Fábio Justo dos Santos

2009São João da Boa Vista - SP

Page 2: Operacao de Com Put Adores e Sistemas Operacionais Completa

Presidência da República Federativa do Brasil

Ministério da Educação

Secretaria de Educação a Distância

Equipe de ElaboraçãoIFSP

Coordenação InstitucionalCampus São João da Boa Vista

Professor-autorFábio Justo do Santos

Comissão de Acompanhamento e ValidaçãoGustavo Aurélio Prieto

Yara Maria Guisso de Andrade Facchini

Projeto GráficoEduardo Meneses e Fábio Brumana

DiagramaçãoMatheus Félix de Andrade”!

RevisãoElizabeth Gouveia da Silva Vanni

Ficha catalográfica

Este Caderno foi elaborado em parceria entre o Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - Campus São João da Boa Vista e o Sistema Escola Técnica Aberta do Brasil – e-Tec Brasil.

Page 3: Operacao de Com Put Adores e Sistemas Operacionais Completa

Amigo(a) estudante!

O Ministério da Educação vem desenvolvendo Políticas e Programas para

expansãoda Educação Básica e do Ensino Superior no País. Um dos caminhos

encontradospara que essa expansão se efetive com maior rapidez e eficiên-

cia é a modalidade adistância. No mundo inteiro são milhões os estudantes

que frequentam cursos a distância. Aqui no Brasil, são mais de 300 mil os

matriculados em cursos regulares de Ensino Médio e Superior a distância,

oferecidos por instituições públicas e privadas de ensino.

Em 2005, o MEC implantou o Sistema Universidade Aberta do Brasil (UAB),

hoje, consolidado como o maior programa nacional de formação de profes-

sores, em nível superior.

Para expansão e melhoria da educação profissional e fortalecimento do En-

sino Médio, o MEC está implementando o Programa Escola Técnica Aberta

do Brasil (e-TecBrasil). Espera, assim, oferecer aos jovens das periferias dos

grandes centros urbanose dos municípios do interior do País oportunidades

para maior escolaridade, melhorescondições de inserção no mundo do tra-

balho e, dessa forma, com elevado potencialpara o desenvolvimento produ-

tivo regional.

O e-Tec é resultado de uma parceria entre a Secretaria de Educação Pro-

fissionale Tecnológica (SETEC), a Secretaria de Educação a Distância (SED)

do Ministério daEducação, as universidades e escolas técnicas estaduais e

federais.

O Programa apóia a oferta de cursos técnicos de nível médio por parte das

escolaspúblicas de educação profissional federais, estaduais, municipais e,

por outro lado,a adequação da infra-estrutura de escolas públicas estaduais

e municipais.

Do primeiro Edital do e-Tec Brasil participaram 430 proponentes de ade-

quaçãode escolas e 74 instituições de ensino técnico, as quais propuseram

147 cursos técnicosde nível médio, abrangendo 14 áreas profissionais.

Apresentação e-Tec Brasil

Page 4: Operacao de Com Put Adores e Sistemas Operacionais Completa

O resultado desse Edital contemplou193 escolas em 20 unidades federa-

tivas. A perspectiva do Programa é que sejam ofertadas10.000 vagas, em

250 polos, até 2010.

Assim, a modalidade de Educação a Distância oferece nova interface para

amais expressiva expansão da rede federal de educação tecnológica dos úl-

timos anos: aconstrução dos novos centros federais (CEFETs), a organização

dos Institutos Federaisde Educação Tecnológica (IFETs) e de seus campi.

O Programa e-Tec Brasil vai sendo desenhado na construção coletiva e par-

ticipaçãoativa nas ações de democratização e expansão da educação profis-

sional no País,valendo-se dos pilares da educação a distância, sustentados

pela formação continuadade professores e pela utilização dos recursos tec-

nológicos disponíveis.

A equipe que coordena o Programa e-Tec Brasil lhe deseja sucesso na sua

formaçãoprofissional e na sua caminhada no curso a distância em que está

matriculado(a).

Brasília, Ministério da Educação – setembro de 2008.

Page 5: Operacao de Com Put Adores e Sistemas Operacionais Completa

Sumário

Apresentação e-Tec Brasil 3

Sumário 5

Outros - instituição validadora 9

Unidade 1 - Introdução 11

1.1 Sistemas operacionais de computadores de grande porte 13 1.2 Sistemas operacionais de servidores 13 1.3 Sistemas operacionais de computadores pessoais 13 1.4 Sistemas operacionais de computadores de tempo real 14 1.5 Sistemas operacionais embarcados 14 1.6 Outros Conceitos 14 1.7 Considerações Finais 17 Exercícios 18

Unidade 2 - Gerência de Processo 19

2.1 Escalonamento de Processos 20 2.1.1 FIFO 22 2.1.2 Menor Job Primeiro Não Preemptivo 24 2.1.3 Menor Job Primeiro Pre-emptivo 25 2.1.4 Round Robin 26 2.1.5 Maior Prioridade Preemptivo 282.2 Considerações Finais 30Exercícios 30

Unidade 3 - Gerênciamento de Momento 33

3.1 Monoprogramação sem swapping ou paginação 34 3.2 Multiprogramação e utilização da memória 34 3.3 Multiprogramação com partições fixas 363.4 Multiprogramação com partições variáveis 373.5 Gerência de memória com lista ligadas 38

Page 6: Operacao de Com Put Adores e Sistemas Operacionais Completa

3.6 Memória Virtual 39 3.6.1 Paginação 40 3.6.1.1 Algoritmo ótimo de substituição de páginas 42 3.6.1.2 Troca de páginas não usadas recentemente (NUR) 42 3.6.1.3 Algoritmo FIFO 43 3.6.1.4 Algoritmo segunda chance 44 3.6.1.5 Algoritmo da pág. usada há mais tempo 44 3.6.2 Segmentação 45Exercícios 47

Unidade 4 - Sistema de Arquivos 50

4.1 Arquivos 51 4.2 Diretórios 52 4.3 Implementação do sistema de arquivos 54 4.3.1 Alocação Contígua 54 4.3.2 Alocação por lista encadeada 55 4.3.3 Lista encadeada com tabela na memória 56 4.3.4 I-nodes 564.4 Considerações Finais 57 Exercícios 58

Unidade 5 - Gerência de Entrada e Saída 60

5.1 Princípios de Hardware 61 5.1.1 Dispositivos de E/S 61 5.1.2 Controladores de dispositivos 62 5.1.3 Acesso direto à memória (DMA) 635.2 Princípios de Software 63 5.2.1 Drivers 64 5.2.2 Software de E/S independente dos dispositivos 645.3 Discos 66 5.3.1 Hardware de Disco 66 5.3.2 Software de Disco 68Exercícios 70

Referências 72

Page 7: Operacao de Com Put Adores e Sistemas Operacionais Completa

e-Tec BrasilIntrodução ao Sistema Operacional 7

Page 8: Operacao de Com Put Adores e Sistemas Operacionais Completa

O Decreto presidencial nº 7.566, de 23 de setembro de 1909, institucionalizou o ensino profis-

sional no Brasil. Em 1910 surgiu a Escola de Aprendizes e Artífices de São Paulo, assemelhando-se a das

criadas em outras capitais de Estado. Ela se destinava inicialmente as camadas mais desfavorecidas, aos

“deserdados da fortuna e menores marginalizados”, ministrando o ensino elementar. Em 1937 passou a

denominar-se Liceu Industrial de São Paulo, oferecendo ensino equivalente ao de primeiro ciclo.

Em 1942 foi promulgada a Lei orgânica do ensino industrial. A nova orientação visava à pre-

paração profissional dos trabalhadores da indústria, dos transportes, das comunicações e da pesca.

Em 1976, procedeu-se à mudança para a nova sede e, em 1978, criaram-se os cursos de ele-

trônica, telecomunicações e processamento de dados. Em 1981, instalam-se os cursos complementares

de mecânica, eletrotécnica e edificações, destinados à clientela, em grande parte integrada ao mercado

de trabalho, mais que necessitava de uma formalização profissional por meio de disciplinas de nível téc-

nico de 2º grau. Estes cursos técnicos tinham a duração de dois anos, prevendo um estágio obrigatório.

No ano de 1987 foi implantada a primeira Unidade de Ensino Descentralizada (UNED) no

Município de Cubatão e, em 1996, ocorreu o início do funcionamento da UNED Sertãozinho. Em 1999,

a Escola Técnica Federal de São Paulo, foi transformada em Centro Federal de Educação Tecnológica de

São Paulo – CEFET, conforme Decreto de 18 de janeiro de 1999. No ano de 2005, foi autorizado o funcio-

namento da UNED Guarulhos. As UNED de São João da Boa Vista e Caraguatatuba foram autorizadas a

funcionar a partir do 1º semestre do ano de 2007, enquanto que as UNED de Bragança e Salto passaram

a funcionar no 2º semestre do ano de 2007.

Em 2008 foram criadas as unidades de São Carlos, São Roque e Campos do Jordão. No mesmo

ano o CEFET-SP se transformou no Instituto Federal de Educação Ciência e Tecnologia pela Lei 11.892

de 29 de Dezembro de 2008, que instituiu a rede federal de educação profissional, científica e tecno-

lógica. De acordo com esta lei os institutos federais (IF) tornaram-se instituições de educação superior,

básica e profissional, pluricurriculares e multicampi, especializados na oferta de educação profissional e

tecnológica nas diferentes modalidades de ensino, com base na conjugação de conhecimentos técnicos

e tecnológicos com as suas práticas pedagógicas.

A expansão do CEFET-SP tem ainda previstas os Campus de Araraquara, Avaré, Barretos, Biri-

gui, Campinas, Catanduva, Itapetininga, Piracicaba, , Presidente Epitácio, Registro, Suzano e Votuporan-

ga.

Outros - instituição validadora

Técnico em Informáticae-Tec Brasil 8

Page 9: Operacao de Com Put Adores e Sistemas Operacionais Completa

A Unidade de Ensino Descentralizada de São João da Boa Vista é uma unidade educacional su-

bordinada ao Centro Federal de Educação Tecnológica de São Paulo, autorizada pela Portaria nº 1715 do

Ministro da Educação, publicada no Diário Oficial da União de 20/10/2006. Tem estrutura administrativa

definida pela resolução nº 136/06 de 16/11/2006 do Conselho Diretor do CEFET-SP.

A história do campus se inicia no ano de 1998 quando é formulado o projeto para a criação do

CEPRO em São João da Boa Vista. No ano seguinte o anteprojeto é aprovado pelo Programa de Expansão

da Educação Profissional (PROEP). No mesmo ano se dá o início das obras para construção do prédio em

terreno doado por Paulo Roberto Merlin e Flávio Augusto Canto. Em 2004, o prédio é entregue com

2529m², sendo constituído de onze laboratórios, seis salas de aulas, um auditório com capacidade para

150 lugares, sala de multimídia e demais dependências. As atividades do Centro de Educação Profissional

são iniciadas em 2005. Em 2006 é firmado o convênio entre o CEPRO e CEFET-SP, com apoio da prefei-

tura municipal para a federalização da unidade. Em Janeiro de 2007 o CEFET-SP / UNED SBV iniciou suas

atividades no município.

O IFSP, no município de São João da Boa Vista, veio para atender a necessidade de educar os

jovens são joanenses e da região, a fim de habilitá-los para o ingresso nos setores de indústria e informá-

tica, os quais demandam trabalhadores capacitados para o progresso no desenvolvimento econômico e

para o fortalecimento do pólo educacional na região leste do estado.

Atuação do IFSP na Educação a Distância

No contexto da política de expansão da educação superior no país, implementada pelo

MEC, a EaD coloca-se como uma modalidade importante no seu desenvolvimento. Nesse sentido,

criou-se uma direção para EaD dentro do IF SP.

No âmbito da política de expansão da educação profissionalizante, o Ministério da Educação,

por meio da articulação da Secretaria de Educação a Distância e Secretaria de Educação Profissional e

Tecnológica, lança o Edital 01/2007/SEED/SETEC/MEC, dispondo sobre o Programa Escola Técnica Aberta

do Brasil (e-Tec Brasil).

Tal iniciativa constitui-se uma das ações do Plano de Desenvolvimento da Educação.

Visando oferta de cursos da educação técnica e profissional o IF SP foi selecionado pelo pro-

grama e-Tec Brasil para iniciar suas atividades em 2009.

Tais atividades foram efetivamente implantadas em agosto de 2009 com a criação de dois

cursos técnicos – a saber: técnico em informática para internet e técnico em administração – atingindo 5

municípios do estado de São Paulo (Araraquara, Barretos, Itapevi, Franca e Jaboticabal) e ampliando em

500 a oferta de vagas do Instituto.

e-Tec BrasilIntrodução ao Sistema Operacional 9

Page 10: Operacao de Com Put Adores e Sistemas Operacionais Completa
Page 11: Operacao de Com Put Adores e Sistemas Operacionais Completa

As recentes mudanças na indústria da informática tornaram os

computadores pessoais (PC – Personal Computer), ou desktop, mais ba-

ratos e ao mesmo tempo mais poderosos. Atualmente, é possível encon-

trar no mercado desde computadores pequenos e baratos, até grandes e

poderosos. Independente de seu tamanho, custo e capacidade, todos os

computadores possuem várias características em comum, sendo a principal

delas a necessidade de um sistema operacional para seu correto funciona-

mento. Mas então, o que é um sistema operacional (SO)?

Basicamente um SO tem duas funções principais. A primeira delas

é gerenciar o funcionamento de todo o hardware do computador e, a se-

gunda, é fornecer os recursos lógicos para que os aplicativos possam fun-

cionar corretamente. Desta forma podemos definir um sistema operacional

como:

o software responsável por gerenciar todos os recursos de hardware e por fornecer a base lógica sobre a qual diversos progra-mas e aplicativos são executados.

A partir desta definição podemos concluir que, se é o SO quem ge-

rencia todos os recursos de hardware, também é ele quem dá as instruções

ao mesmo, ou seja, o usuário utiliza-se do SO para aproveitar da melhor

maneira seus recursos de hardware. Desta forma, cabe então ao sistema

operacional servir de interface entre os usuários e os recursos de hardware

disponíveis. A Figura 1.1 ilustra este processo.

Shay (1996) utiliza uma analogia bastante interessante para descrever a

função de um SO. Imagine que você tenha a única calculadora disponível

UNIDADE 1 - INTRODUÇÃO

Objetivos da aula

- Compreender os conceitos básicos, referentes aos sistemas opera-

cionais

e-Tec BrasilIntrodução ao Sistema Operacional 11

Page 12: Operacao de Com Put Adores e Sistemas Operacionais Completa

em um determinado reino totalmente isolado do resto da população e que

neste lugar houvesse muitas pessoas querendo usar esta calculadora.

Como você atenderia a necessidade de todos com apenas uma cal-

culadora? Quem usaria a calculadora primeiro? O que você faria se alguém

se apossasse da calculadora por muito tempo? O que faria se alguém in-

sistisse que seus cálculos são secretos e que ninguém poderia ter conhe-

cimento? O que faria se quisessem armazenar seus resultados em algum

lugar? Estas situações são semelhantes às que um SO enfrenta corriquei-

ramente. Desta forma, um sistema operacional é responsável por muitas

coisas, dentre as quais podemos destacar (Shay, 1996):

• Permitequeosprogramasarmazenemeobtenhaminformações;

• Isola(livra)osprogramasdosdetalhesespecíficosdehardware;

• Controlaofluxodedadosentreoscomponentesdocomputador;

• Permitequeosprogramassejamexecutadossemainterferênciade

outrosprogramas;

• Respondeaoserrosouasolicitaçõesdousuário.

Figura 1: Atuação do sistema operacional como intermediador entre o hardware, os aplicativos e o usuário

Técnico em Informáticae-Tec Brasil 12

Page 13: Operacao de Com Put Adores e Sistemas Operacionais Completa

Ao contrário do que muitos imaginam, existe uma ampla variedade de

SO. Neste documento estaremos apresentando cinco diferentes tipos de

sistemas operacionais, conforme abordagem apresentada em Tanenbaum

(2003).

1.1 Sistemas operacionais de computado-res de grande porte

No topo de todos os tipos de sistemas operacionais, estão os SO

para computadores de grande porte. Sua principal diferença para os com-

putadores pessoais, está na capacidade de E/S (Entrada/Saída). Um compu-

tador de grande porte com mil discos e dezenas, centenas ou até milhares

de terabytes de dados não é algo incomum. Estes computadores estão

ressurgindo, principalmente como sofisticados servidores Web.

Os sistemas operacionais para grandes computadores são, sobretu-

do, desenvolvidos para o processamento simultâneo de muitos jobs (tare-

fas/processos), sendo que a maioria precisa de quantidades prodigiosas de

E/S. Um exemplo de sistema operacional de grande porte é o OS/390, um

descendente do OS/360.

1.2 Sistemas operacionais de servidores

Um nível abaixo estão os sistemas operacionais de servidores que

são como grandes computadores pessoais. Estes computadores têm como

característica servir múltiplos usuários de uma só vez em uma rede, permi-

tindo-lhes compartilhar recursos de hardware e software.

Servidores podem fornecer serviços de impressão, serviços de ar-

quivos ou Web. Sistemas operacionais típicos de servidores são Unix, Win-

dows 2003 e Linux.

1.3 Sistemas operacionais de computa-dores pessoais

e-Tec BrasilIntrodução ao Sistema Operacional 13

Page 14: Operacao de Com Put Adores e Sistemas Operacionais Completa

Esta categoria de sistemas operacionais certamente é a mais co-

nhecida (ou talvez a única) pela maior parte dos usuários. Basicamente os

sistemas operacionais desta classe têm como objetivo fornecer uma boa

interface para os usuários. Sua aplicação tem foco no uso de processadores

de texto, planilhas e acesso à Internet. Exemplos comuns são: o Windows

XP, Windows Vista e a distribuição Ubuntu do Linux.

1.4 Sistemas operacionais de tempo real

O principal parâmetro de referência para estes sistemas é o tempo.

Em sistemas de controle de processos industriais, computadores de tempo

real devem coletar dados e utilizá-los para controlar as máquinas na linha

de produção. Por exemplo, se um carro está se movendo por uma linha de

montagem, determinadas ações devem ser realizadas em momentos espe-

cíficos. Se um robô soldador adiantar ou atrasar o momento em que deve

efetuar seu serviço (soldar), certamente aquele veículo será perdido. Dois

exemplos de sistemas operacionais de tempo real bastante conhecidos são

o VxWorks e o QNX.

1.5 Sistemas operacionais embarcados

Os sistemas operacionais de computadores de mão são denomina-

dos sistemas operacionais embarcados. Um computador de mão ou PDA

(personal digital assistent) pode se utilizar de um SO embarcado. Entre-

tanto, a ocorrência mais comum deste sistema, está em dispositivos que

muitas vezes nem são considerados computadores, como: aparelhos de TV,

microondas, telefones móveis e ar condicionado. Muitos destes sistemas

apresentam características semelhantes ao de tempo real, mas também

possuem restrições de tamanho, memória e consumo de energia. Exem-

plos comuns destes sistemas são o PalmOS e o Windows CE.

1.6 Outros conceitos

Antes de darmos sequência ao estudo de nosso conteúdo, é essen-

Técnico em Informáticae-Tec Brasil 14

Page 15: Operacao de Com Put Adores e Sistemas Operacionais Completa

cial que abordemos algumas definições básicas relacionadas ao estudo de

Sistemas Operacionais. Dentre elas podemos destacar os conceitos sobre

processos, multiprocessamento, multiprogramação, interpretador de co-

mandos, chamadas de sistemas e deadlock.

Um processo nada mais é do que um programa em execução.

Cada programa em execução pode ser considerado como uma entidade

ativa, que compete por recursos oferecidos pelo sistema (acesso a discos,

periféricos e CPU) além de interagir com outros processos (entidades ativas

ou programas). Existem três estados possíveis para um processo, dos quais

ele pode estar somente em um por vez. Executando (usando a CPU para

executar as instruções do programa), Bloqueado (aguardando a liberação

de recursos de hardware não disponíveis no momento – além da CPU) ou

Ativo (aguardando apenas a CPU para ser executado – pronto para ser

executado).

Outro conceito importante é o de multiprogramação. Para a

compreensão deste conceito é preciso entender o que é um sistema mo-noprogramado e um sistema multitarefa. Um sistema monoprogra-

mado tem a capacidade de executar somente um processo por vez, não

suportando a execução de processos concorrentes. Um sistema multitarefa

gerencia vários processos em execução ao mesmo tempo, transparecendo

ao usuário que todos eles são executados simultaneamente. Multiprogra-

mação é um conceito mais amplo do que multitarefa, e denota um sistema

operacional que realiza o gerenciamento total dos recursos de hardwa-

re, como: CPU, memórias, sistemas de arquivos, dentre outros, além de

suportar a execução concorrente de processos. Para exemplificar melhor

o conceito de sistema multiprogramado, a Figura 1.2 representa seu uso

comparado a um sistema monoprogramado.

Figura 2: (a) Sistema monoprogramável; (b) Sistema multiprogramável

Ainda que a boa parte dos computadores possua uma única CPU

que executa instruções uma a uma, certos projetos permitiram que a ve-

e-Tec BrasilIntrodução ao Sistema Operacional 15

Page 16: Operacao de Com Put Adores e Sistemas Operacionais Completa

locidade de processamento fosse incrementada, tornando possível a exe-

cução de várias instruções ao mesmo tempo. Um computador com múlti-

plos processadores que compartilhem uma memória principal, é chamado

de multiprocessador ou sistemas fortemente acoplados. Desta forma,

o conceito de multiprocessamento está diretamente relacionado ao uso

de dois ou mais processadores em um mesmo sistema. Há outro concei-

to relacionado, denominada multicomputadores ou sistemas fracamente

acoplados. Nestes casos, estes sistemas caracterizam-se por possuir dois

ou mais sistemas computacionais conectados através de linhas de comu-

nicação. Cada sistema funciona de forma independente, possuindo seu

próprio sistema operacional e gerenciando seus próprios recursos, como:

UCP, memória e dispositivos de E/S (Machado & Maia, 2007).

O Shell, ou interpretador de comandos, é um processo res-

ponsável pela interface entre o sistema operacional e o usuário. Esse pro-

cesso lê um dispositivo de entrada à espera de comandos, analisa-os e

passa seus parâmetros ao sistema operacional. Serviços como login e lo-gout do usuário, execução de programas e manipulação de arquivos são

solicitadas através do interpretador de comandos.

Da mesma forma que o interpretador de comandos é a interface entre o

sistema operacional e o usuário, as chamadas de sistema (system calls) constituem a interface entre programas aplicativos e o sistema ope-

racional. As chamadas de sistema são funções que podem ser ligadas com

os aplicativos, provendo serviços como leitura do relógio interno, opera-

ções de E/S (Entrada e Saída) e comunicação interprocessos. A Figura 1.3

representa o modo de atuação de uma chamada de sistema dentro de um

sistema operacional.

3

2

1

Figura 3: Relação entre kernel, chamadas de sistemas, interpretador de comandos e aplicativos

O núcleo da Figura 1.3, identificada pelo número 1, representa o

kernel do sistema operacional, onde estão os códigos responsáveis por

Técnico em Informáticae-Tec Brasil 16

Page 17: Operacao de Com Put Adores e Sistemas Operacionais Completa

manipular o hardware da máquina e gerenciar todo o funcionamento da

mesma. Para esconder os comandos de baixo nível existentes no núcleo do

sistema operacional, a camada identificada pelo número 2 representa as

chamadas de sistemas e o interpretador de comandos já explicados ante-

riormente. Por fim, interagindo com a camada 2, estão os aplicativos e os

usuários, respectivamente.

Outro termo relativamente comum nos estudos de sistemas ope-

racionais é o deadlock. Um deadlock é uma ocorrência de sistemas mul-

tiprogramados, onde um ou mais processos aguardam por um evento ou

recurso que jamais irá ocorrer. Um bloqueio perpétuo, ou deadlock, ocorre

em duas situações diferentes. Na primeira delas um processo é colocado

em espera por algo que SO não possui nenhuma previsão de quando o

atendimento desta espera poderá ocorrer. Neste caso, dizemos que ocor-

reu um deadlock de um processo único (one-process deadlock). A segunda

situação culmina em um arranjo circular onde um processo A, que detém

um recurso R1, necessita de um recurso R2 para ser executado. Entretanto,

R2 encontra-se alocado para um processo B, que por sua vez, está aguar-

dando o recurso R1 alocado para o processo A. Como nenhum dos dois

processos se dispõe a liberar o recurso alocado para ele, ocorre então uma

situação de deadlock.

1.7 Considerações finais

Um sistema operacional certamente é o principal software de um

computador. Entretanto, estes sistemas simplesmente atuam como um in-

termediador entre os diversos aplicativos que utilizamos para realizar as

mais variadas tarefas do dia a dia. Ou seja, na verdade pouco, ou quase

nada, utilizamos de um sistema operacional para desenvolver um texto,

criar um desenho ou ouvir uma música. Porém, a compreensão de seu fun-

cionamento é de extrema importância para o bom uso de um computador,

aplicativos e seus recursos hardware e/ou software.

Nos capítulos seguintes serão apresentados os conceitos relativos a

processos, gerência de memória, sistemas de arquivos e gerência de entra-

da e saída.

e-Tec BrasilIntrodução ao Sistema Operacional 17

Page 18: Operacao de Com Put Adores e Sistemas Operacionais Completa

Exercícios

1. Pesquise sobre outros conceitos de SO além dos apresentados

aqui. Após a leitura, crie uma definição de SO de acordo com o seu

entendimento.

2. Explique resumidamente cada um dos tipos de sistemas ope-

racionais abaixo. Cite ao menos um exemplo de SO para cada um

deles.

a. Sistemasoperacionaisparacomputadoresdegrandeporte;

b. Sistemasoperacionaisdecomputadorespessoais;

c. Sistemasoperacionaisembarcados;

d. Sistemasoperacionaisservidores;

e. Sistemasoperacionaisdetemporeal;

3. Faça uma comparação entre sistemas monoprogramados,

multitarefas e multiprogramados.

4. O que é um deadlock?

5. Pesquise a respeito de DMA (Direct Access Memory). Descreva

seu objetivo, funcionamento e benefícios.

6. Descreva em uma linha “processos”.

7. Qual a relação entre chamadas de sistema e interpretador de

comandos? O que eles possuem em comum?

8. Monte uma apresentação (ou discuta no fórum) a respeito das

características técnicas de um sistema operacional alternativo. Pesqui-

se na Internet sobre estes tipos de sistema e discuta com o professor

através dos fóruns no ambiente virtual sobre qual a melhor opção de

tema para estudo (individual). Procure levantar características como a

aplicação do SO em estudo, plataforma, características de hardware

necessário, tipo de SO, dentre outras.

Técnico em Informáticae-Tec Brasil 18

Page 19: Operacao de Com Put Adores e Sistemas Operacionais Completa

O estudo e o desenvolvimento de sistemas operacionais requerem

a compreensão de um conceito fundamental: processo computacional.

Como mencionado no capítulo anterior, um processo nada mais é do que

um programa em execução. Este programa certamente possui um objetivo

definido, requer o uso de determinados recursos e possui uma duração

finita. Dentre as propriedades pertencentes a um processo, duas delas me-

recem destaque. A primeira é o resultado de sua execução, independente

da velocidade com que ela ocorre. A segunda propriedade diz que se um

processo for executado novamente com os mesmos dados, necessariamen-

te ele passará pelo mesmo conjunto de instruções, executados na mesma

sequência e, o resultado fornecido será o mesmo em todas as vezes que

for executado (Tanenbaum, 2003).

Atualmente, todos os computadores modernos são capazes de re-

alizar diversas tarefas em paralelo. Enquanto executa o programa de um

usuário, o mesmo computador é capaz de ler uma unidade de armazena-

mento de dados ou utilizar um periférico qualquer. Normalmente, o que

ocorre internamente é o compartilhamento da CPU por parte dos proces-

sos que a requer, em períodos da ordem de milésimos de segundos, dando

ao usuário a impressão de paralelismo. Isso nos leva à conclusão de que o

tempo total para a execução de um processo é em função da quantidade

de processos competindo pela CPU. Isto implica que o tempo de execução

de um processo varia a cada nova execução, dependendo diretamente da

“carga” da máquina, em razão da concorrência entre os processos pela

CPU. Entretanto, o quando executado com os mesmos dados e instruções,

o resultado da execução será o mesmo independente do tempo requerido

UNIDADE 2 - GERÊNCIA DE

PROCESSO

Objetivos da aula

- Compreender como o sistema operacional gerencia os processos

- Diferenciar e compreender os diferentes tipos de escalonamento

de processos

e-Tec BrasilIntrodução ao Sistema Operacional 19

Page 20: Operacao de Com Put Adores e Sistemas Operacionais Completa

para sua conclusão.

2.1 Escalonamento de processos

Uma das características comuns aos sistemas multiprogramados,

é a existência de mais de um processo ativo (pronto para executar) com-

petindo pelo uso da CPU. Nestes casos deverá ser feita a escolha de qual

processo deverá ser executado primeiro, dentre todos os que estão na fila

(ativos). A parte do sistema que faz a escolha é denominada escalonador,

que utiliza um algoritmo de escalonamento para determinar a sequência

de execução dos processos que competem pela CPU (Tanenbaum, 2003).

Segundo Tanenbaum (1999), com o advento dos sistemas de com-

partilhamento de tempo, com múltiplos usuários, que muitas vezes devem

combinar a execução das tarefas destes usuários com a execução de jobs, em batch rodando em background, o algoritmo de escalonamento tornou-

se mais complexo. As principais características que um bom algoritmo de

escalonamento deve apresentar são:

• Justiça:garantir que todos os processos do sistema tenham chan-

cesiguaisdeusodaCPU;

• Eficiência:manteroprocessadorocupado100%dotempo;

• Tempo de resposta: minimizar o tempo de resposta para os

usuáriosdeprogramasinterativos;

• Turnaround(tempodeespera): minimizar o tempo que os

usuários batch (de programas não interativos como, por exemplo: compi-

laçãoeimpressão)devemesperarpelasaída;

• Throughput(vazão): maximizar o número de jobs processados

e finalizados em uma unidade de tempo (usualmente uma hora).

Embora cada processo seja uma entidade independente, muitas vezes eles

precisam concorrer por recursos e interagir com outros processos. Na Figu-

ra 2.1, extraída de Tanenbaum (2003), são apresentados os três estados de

um processo e suas possíveis interações.

Técnico em Informáticae-Tec Brasil 20

Page 21: Operacao de Com Put Adores e Sistemas Operacionais Completa

Figura 4: Estados de um processo e suas transições

Conforme descrito em Tanenbaum (2003), quatro mudanças de

estado são possíveis de acordo com a figura acima. A transição 1 ocorre

sempre que um processo descobre que não tem mais condições lógicas de

prosseguir em seu processamento, seja por ter que aguardar algum dado

ou alguma instrução do usuário, ou então por precisar aguardar o resulta-

do de outro processo ou a liberação de um recurso. Em alguns sistemas,

para ir ao estado de bloqueado, é executada uma chamada de sistema blo-

ck, alterando o estado de um processo de executando para bloqueado.

As transições 2 e 3 são causadas pelo escalonador de processos

quando um processo é preemptado, sem que o mesmo tome conhecimen-

to das rotinas responsáveis por esta mudança. A transição 2 ocorre, quan-

do o escalonador decide que o processo corrente já ocupou o processador

por tempo suficiente ou então pelo fato de existir outro processo de maior

prioridade no estado “pronto”, sendo, portanto, o momento de deixar

que outro processo assuma a CPU e vá para o estado “executando”. A

transição 3 ocorre quando um outro processo libera a CPU e dá a oportuni-

dade para que o primeiro da fila seja executado. A função do escalonador

de processos (decidir qual processo vai rodar e por quanto tempo) é impor-

tantíssima, sendo nosso próximo objeto de estudo.

Sempre que um evento externo pelo qual o processo bloqueado es-

tava aguardando ocorrer, esta ação resultará na ocorrência da transição 4.

Como exemplo, a conclusão de uma operação de E/S pode alterar o estado

de um processo de bloqueado para pronto. Se nenhum outro processo

estiver rodando neste momento, a transição 3 é acionada imediatamente,

e o processo que aguardava uma determinada ocorrência será executado.

Caso contrário, ele permanecerá no estado “pronto” até que o processa-

dor fique disponível e o escalonador o escolha para rodar.

Existem duas classes de políticas de escalonamento de processos,

a preemptiva e a não preemptiva. O escalonamento não preemptivo foi o

e-Tec BrasilIntrodução ao Sistema Operacional 21

Page 22: Operacao de Com Put Adores e Sistemas Operacionais Completa

primeiro tipo de escalonamento implementado nos sistemas multiprogra-

máveis, onde predominava tipicamente o processamento batch. Neste tipo

de escalonamento, quando um processo assume a CPU, nenhum evento

externo irá interrompê-lo até que ele seja concluído, ou seja, ele somente

irá sair do estado de execução quando for concluído ou se houver alguma

instrução do próprio código que ocasione uma mudança para o estado de

espera (Machado & Maia, 2007).

No escalonamento preemptivo, o sistema operacional pode inter-

romper um processo em execução a fim de liberar processamento para ou-

tro processo que se encontra na fila de pronto. Com o uso da preempção é

possível ao sistema priorizar a execução de determinados processos, como

no caso de aplicações de tempo real, onde o fator tempo é crítico (Ma-

chado & Maia, 2007). Outro benefício é a possibilidade de implementar

políticas de escalonamento que compartilhem o processador de maneira

uniforme, aumentando assim o throughput, diminuindo o tempo de espe-

ra e permitindo uma programação concorrente mais justa

Dentre os algoritmos de escalonamento não preemptivos que ire-

mos estudar, serão abordados o First-In-First-Out (FIFO) e o Shortest-Job-First (SJF), este último também conhecido como Menor Job Primeiro Não

Preemptivo. Os algoritmos preemptivos apresentados neste documento

são o de Menor Job Primeiro Preemptivo, o Round Robin e o de Maior

Prioridade Preemptivo.

2.1.1 FIFO

Também conhecido como First-Come-First-Served (FCFS) o FIFO

talvez seja a estratégia de escalonamento mais simples que exista. Neste

algoritmo os processos são selecionados para execução de acordo com sua

ordem de chegada na fila de processos prontos do sistema. Uma vez que

um processo assuma o controle da CPU, ele irá rodar até ser concluído. Por

esta característica FIFO é considerado um algoritmo de escalonamento não

preemptivo.

Esta política de escalonamento é justa no sentido de que todos os

processos serão executados e na ordem de chegada, mas é injusta no sen-

tido que grandes processos podem fazer pequenos processos esperarem.

Técnico em Informáticae-Tec Brasil 22

Page 23: Operacao de Com Put Adores e Sistemas Operacionais Completa

Outro problema, é que jobs sem grande importância podem ser executa-

dos antes de jobs de maior importância, fazendo com que estes últimos te-

nham que esperar. Apesar de garantir que, em situações onde não ocorra,

por exemplo, um deadlock, todos os processos/jobs sejam executados, este

algoritmo não apresenta bons resultados no escalonamento de processos

interativos e em sistemas multitarefa/multiprogramado, por não garantir

bons resultados nos tempos de resposta.

Para exemplificar o funcionamento deste algoritmo, suponha que

quatro processos (P1, P2, P3 e P4) tenham sido criados e que cada um pos-

sua, respectivamente, a duração (Burst Time) de 4, 8, 6 e 5 unidades de

tempo (u.t.) cada um. Vamos supor que estes processos chegaram para ser

executados no mesmo instante (zero) e na ordem acima (P1, P2, P3 e P4).

Para representar a execução destes processos podemos construir o gráfico

de Gantt conforme apresentado na Figura 5.

Figura 5: Gráfico de Gantt

Mas quais são as informações mais importantes que podemos ex-

trair deste gráfico? Uma informação importante é o tempo médio de es-

pera apresentado por cada algoritmo. O procedimento para calcular este

valor é simples. Basta saber o quanto cada processo aguardou para ser

executado. A média aritmética destes valores apresentará o Tempo Médio

de Espera do algoritmo analisado para uma determinada situação. A fór-

mula abaixo nos permite calcular o tempo de espera para cada processo Pi

, com i = 1,2,...,n , onde n representa o número total de processos criados

e o processo em análise.

(1)

e-Tec BrasilIntrodução ao Sistema Operacional 23

Page 24: Operacao de Com Put Adores e Sistemas Operacionais Completa

Onde:

Depois de calculado o TEPi para todos os processos, o Tempo Mé-

dio de Espera (TME) do algoritmo para uma determinada situação é calcu-

lado pela média aritmética, conforme a Equação (2).

(2)

Este parâmetro torna-se um importante valor de referência para

determinar qual o melhor algoritmo em cada uma das situações possíveis.

As Equações (1) e (2) podem ser utilizadas para calcular o tempo médio

de espera em qualquer um dos algoritmos de escalonamento de processos

apresentados neste material.

2.1.2MenorJobPrimeiroNãoPreemptivo

A maior parte dos algoritmos analisados neste documento foram

projetados para sistemas interativos. O algoritmo do menor job, primeiro

foi desenvolvido para aplicações não interativas (em batch), onde o tempo

médio de execução de um processo é conhecido com antecedência (Ta-

nenbaum, 1999). Assim, o processo em estado de pronto que precisar do

menor tempo de CPU para ser finalizados, será selecionado para execução.

A Figura 2.3, adaptada de Silberschatz, et. al (1999), apresenta o momento

da chegada (quando entraram no estado de pronto) e a duração de quatro

processos.

Técnico em Informáticae-Tec Brasil 24

Page 25: Operacao de Com Put Adores e Sistemas Operacionais Completa

Alguém poderia perguntar. Por que o processo P3é executado de-

pois do P1 , sendo que o algoritmo prioriza o menor job (processo) para

ser executado primeiro? A resposta é simples e, para entender o porquê,

temos que nos atentar à coluna do momento da chegada do processo. Por

se tratar de um algoritmo não preemptivo, após assumir a CPU, o processo

será executado até ser concluído, permanecendo na CPU durante todo seu

tempo de duração. Como o P1 entrou no processador no instante 0 (zero),

ele ficará lá até ser concluído. Se observarmos bem, o processo P3 chega à

fila de pronto somente no instante 4. Assim, como ele chegou à fila no ins-

tante 4, era praticamente impossível atendê-lo antes deste momento. Ao

final, as equações (1) e (2) são aplicadas no cálculo do TME que apresenta

como valor 4,75 u.t. (unidades de tempo) para este algoritmo com estes

processos.

2.1.3MenorJobPrimeiroPreemptivo

Este algoritmo é bastante semelhante ao apresentado no capítulo

2.1.2, entretanto, sempre que houver um processo na fila com tempo de

processamento estimado menor que o restante para o processo em exe-

cução ser concluído, haverá a preempção do processo (troca de contexto).

Considerando a mesma situação apresentada no capítulo anterior, o gráfi-

co de Gantt e o TME dos mesmos processos executados com o algoritmo

do SJF Preemptivo são apresentados na Figura 2.4, adaptada de Silbers-

chatz, et. al (1999).

Figura 6: Gráfico de Gantt para a execução de quatro processos com o algoritmo SJF Não Preemptivo

e-Tec BrasilIntrodução ao Sistema Operacional 25

Page 26: Operacao de Com Put Adores e Sistemas Operacionais Completa

Este algoritmo certamente apresentará o menor TME em todas as

situações. Como podemos constatar na Figura 2.4, toda vez que um pro-

cesso entrar no estado de Pronto, seu tamanho será comparado com o

que resta do processo em execução. Caso seja menor, como ocorre com os

processos P2 e P3 ,o processo em execução será preemptado e a CPU será

entregue ao processo de menor tamanho.

Da mesma forma como ocorre em todos os cálculos do TME inde-

pendente do algoritmo aplicado, as Equações (2) e (3) são utilizadas para

determinar o TME apresentado na Figura 2.4.

2.1.4 Round Robin

Um dos algoritmos mais antigos, simples, justos e amplamente uti-

lizados é o escalonamento Round Robin. Cada processo recebe um interva-

lo de tempo, denominado quantum, durante o qual ele pode executar. Se

o processo ainda estiver executando ao final do quantum, o processador é

dado a outro processo. Caso o processo em execução seja bloqueado ou

concluído antes do final do quantum, a troca de CPU para outro processo

é feita assim que um destes dois eventos ocorrer. O escalonamento Round

Robin é de fácil compreensão. Tudo que o escalonador tem a fazer é man-

ter uma lista dos processos no estado de Pronto. Quando o quantum de

Figura 7: Gráfico de Gantt para a execução de quatro processos com o algoritmo SJF Preemptivo

Técnico em Informáticae-Tec Brasil 26

Page 27: Operacao de Com Put Adores e Sistemas Operacionais Completa

um processo acaba, ele é colocado no final da lista. A Figura 2.5, extraída

de Tanenbaum (1999), ilustram este processo.

O algoritmo Round Robin é semelhante ao um FIFO, com a diferen-

ça de ser preemptivo. Nele os processos não executam até o seu final, mas

sim durante um certo tempo (quantum), um por vez. Assim, executando

sucessivamente em intervalos de tempo determinados pelo quantum, em

algum momento o job acaba por terminar sua execução.

Neste algoritmo, um aspecto que merece atenção especial é a du-

ração (tamanho) do quantum. Mudar de um processo para outro requer

um certo tempo para a administração de tarefas burocráticas, como: salvar

e carregar registradores e mapas de memória, atualizar tabelas e listas do

SO, dentre outras. Suponha que esta troca de processos, denominada tro-

ca de contexto, tenha duração de 5 ms. Suponha também que o quantum

está ajustado em 20 ms. Com esses parâmetros, após fazer 20 ms de tra-

balho útil, a CPU terá que gastar 5 ms com troca de contexto. Assim, 20%

do tempo de CPU será gasto com o overhead administrativo (Tanenbaum,

1999).

Para melhorar a eficiência da CPU, poderíamos ajustar o quantum

para 500 ms. Agora o tempo gasto com a troca de contexto é menor do

que 1% (um por cento). Entretanto, imagine se dez usuários apertassem a

tecla <ENTER> exatamente ao mesmo tempo, cada um deles disparando

processo. Dez processos seriam colocados no estado de pronto e ficariam

na lista de processos aptos a executar. Se a CPU estiver ociosa, o primeiro

começará imediatamente. O segundo processo não começará antes de ½

segundo (500 ms) depois, e assim sucessivamente. O azarado do último

processo será executado somente 5 segundos após o usuário ter pressiona-

do <ENTER>, considerando que todos os outros processos utilizaram todo

o seu quantum. Muitos usuários vão achar que o tempo de resposta de 5

segundos para um simples comando é um tempo demasiadamente grande

(Tanenbaum, 1999).

Figura 8: Escalonamento Round Robin. (a) A lista de processos prontos. (b) A lista de processos após o quantum de B haver expirado

e-Tec BrasilIntrodução ao Sistema Operacional 27

Page 28: Operacao de Com Put Adores e Sistemas Operacionais Completa

A partir destas informações, podemos concluir que ajustar um

quantum muito pequeno causam muitas trocas de contexto e diminui a

eficiência da CPU. Por outro lado, ajustá-lo para um valor muito alto, cau-

sa um tempo de resposta inaceitável para pequenas tarefas interativas.

Assim, um valor frequentemente utilizado para quantum está em torno

de 100 ms. Assim como nos gráficos de Gantt mostrados nos algoritmos

anteriores, o tempo necessário para troca de contexto será desconsiderado

no cálculo do TME. A Figura 2.6, adaptada de Silberschatz, et. al (1999),

apresenta o gráfico de Gantt com o escalonamento dos processos apresen-

tados.

A Figura 9 apresenta o gráfico de Gantt com 4 processos de di-

ferentes tamanhos em diferentes instantes de chegada. Como prática de

exercício, faça uma análise dos momentos em que os processos são pre-

emptados e calcule o Tempo Médio de Espera (TME) para a situação aci-

ma.

2.1.5 Maior Prioridade Preemptivo

O algoritmo de escalonamento Round Robin considera que todos

os processos são de igual importância. Entretanto, certas aplicações como

controle de processos industriais, demandam um algoritmo com escalo-

namento de prioridades, onde em determinadas situações de emergência

requerem maior nível de prioridade que outros processos.

Figura 9: Escalonamento Round Robin com quantum de 20 u.t.

Técnico em Informáticae-Tec Brasil 28

Page 29: Operacao de Com Put Adores e Sistemas Operacionais Completa

Conforme apresentado em Tanenbaum (1999), algumas vezes

pode ser conveniente agrupar processos em classes de prioridades e usar

o escalonamento com prioridade entre as classes e o Round Robin dentre

de cada classe. A Figura 2.7, extraída de Tanenbaum (2003), apresenta um

sistema com quatro classes.

Enquanto houver processos prontos na classe de maior prioridade

(Prioridade 4), estes processos serão executados segundo a política de es-

calonamento Round Robin. Quando a fila dos processos de prioridade 4

estiver vazia, os processos da classe 3 serão executados pelo Round Robin.

Se as filas de classes 4 e 3 estiverem vazias, a escolha recai sobre os proces-

sos da classe 2, e assim por diante.

Um problema comum neste tipo de algoritmo, é que, se as

prioridades não estiverem bem sintonizadas, pode ocorrer dos proces-

sos das classes mais baixas nunca serem executados.

Para ilustrar o funcionamento deste algoritmo, a Figura 11,

adaptada de Silberschatz, et. al (1999), apresenta o gráfico de Gantt

para quatro processos com seus níveis de prioridade.

Figura 10: Algoritmo de escalonamento com quatro classes de prioridades

e-Tec BrasilIntrodução ao Sistema Operacional 29

Page 30: Operacao de Com Put Adores e Sistemas Operacionais Completa

Os resultados apresentados por este tipo de algoritmo podem

variar de acordo com a prioridade dos processos, o tamanho e seus

momentos de chegada. Desta forma, em determinadas situações, este

algoritmo pode ter um excelente desempenho e, em outras, um de-

sempenho ruim quando o valor de referência para isso for o TME.

2.2 Considerações finais

O objetivo deste capítulo foi mostrar algumas formas de como

pode ser realizado o controle de qual processo assumirá o controle do

processador em determinadas situações. Inúmeras são as alternativas

de algoritmo e suas possíveis combinações, entretanto, certamente a

que apresentará o menor TME é o escalonamento SJF Preemptivo.

Exercícios

1. Suponha uma situação na qual um processo A, de alta priori-

dade, e um processo B de baixa prioridade interagem de forma a levar

A a um loop eterno no uso da CPU. Tal situação persistiria se utilizás-

semos o escalonamento Round Robin em vez do escalonamento com

prioridade? Comente.

Figura 11: Escalonamento com prioridade e Round Robin por fila

Técnico em Informáticae-Tec Brasil 30

Page 31: Operacao de Com Put Adores e Sistemas Operacionais Completa

2. Pesquise a respeito de Threads. Descreva seu objetivo, funcio-

namento e benefícios.

3. Suponha que você deseja minimizar na média o tempo de es-

pera no seu escalonamento, que política você deveria usar? Qual é a

maior dificuldade em aplicar esta política na prática?

4. Suponha que os seguintes processos chegaram para execução

nos tempos indicados. Cada processo rodará a quantidade de tempo

listada na tabela.

Processo Chegada Tamanho

P1 0 8

P2 1 5

P3 3 1

P4 6 4

Calcule o tempo médio de espera e para os escalonamentos:

a) FCFS;

b) SJF(nãopreemptivo);

c) SJF(preemptivo);

d) RoundRobin(Quantum=2);

e) Prioridade Preemptivo, sendo 2, 3, 1, 5, respectivamente as

prioridadesdeP1aP4;

5. Em um sistema operacional, o escalonador de curto prazo uti-

liza duas filas. A fila “A” contém os processos do pessoal do CPD e

a fila “B” contém os processos dos alunos. O algoritmo entre filas é

fatia de tempo. De cada 13 unidades de tempo de processador, 5 são

fornecidas para os processos da fila “A”, e 8 para os processos da fila

“B”. O tempo de cada fila é dividido entre os processos também por

e-Tec BrasilIntrodução ao Sistema Operacional 31

Page 32: Operacao de Com Put Adores e Sistemas Operacionais Completa

fatias de tempo (Round Robin), com quantum igual a 2. A tabela a

seguir mostra o conteúdo das duas filas no instante zero.

Considere que está iniciando um ciclo de 13 unidades, e agora a fila

“A” vai receber as suas 5 unidades de tempo. Mostre a sequência de

execução dos processos, com os momentos em que é feita a troca de

contexto e calcule o Tempo Médio de Espera.

Fila Processo Tamanho Chegada

A P1 8 0

A P2 7 1

A P3 5 3

B P4 1 3

B P5 5 7

B P6 2 12

B P7 6 13

B P8 3 25

Obs.: Se terminar a fatia de tempo da fila “X” no meio da fatia de

tempo de um dos processos, o processador passa para a outra fila.

Entretanto, esse processo permanece como primeiro da fila “X”, até

que toda sua fatia de tempo seja consumida.

Técnico em Informáticae-Tec Brasil 32

Page 33: Operacao de Com Put Adores e Sistemas Operacionais Completa

A Lei de Parkinson aplicada ao uso e gerência de memória, diz que

o tamanho dos programas utilizados tende a crescer de forma a ocupar

toda a memória disponível para armazená-los. Mesmo atualmente com a

redução de custo e consequente aumento da capacidade da memória prin-

cipal, seu gerenciamento é um dos fatores mais importantes no projeto de

sistemas operacionais.

O módulo do sistema operacional responsável pela gerência da

memória disponível é denominado Gerenciador de Memória. Dentre suas

funções, seu trabalho é controlar quais partes da memória estão em uso e

quais não estão, de forma a alocar memória aos processos quando estes

precisarem. Outra função do gerenciador de memória é ao ser concluído

um processo, liberar a memória que ele estava utilizando, além de tratar

do swapping entre a memória principal e secundária, quando a memória

principal não for grande o bastante para armazenar todos os processos

(Tanenbaum, 1999).

Os sistemas de gerência de memória podem ser divididos em duas

grandes categorias: aqueles que movem os processos entre a memória

principal e os discos realizando operações de swapping, e aqueles que não

movimentam os processos entre tais dispositivos de armazenamento. Os

itens 3.1, 3.2 e 3.3 tratam de uma abordagem mais simples, sem o uso de

swapping. A partir do item 3.4 os sistemas de gerência de memória abor-

dados permitem o uso de swapping de memória. Seguindo a abordagem

apresentada em Tanenbaum (1999), algumas das políticas de gerência de

memória existentes serão apresentadas na sequência.

UNIDADE 3 - GERÊNCIAMENTO

DE MOMENTO

Objetivos da aula

- Compreender como os sistemas operacionais gerenciam a memó-

ria

- Diferenciar e compreender os diferentes tipos de gerenciamento

de memória

e-Tec BrasilIntrodução ao Sistema Operacional 33

Page 34: Operacao de Com Put Adores e Sistemas Operacionais Completa

3.1 Monoprogramação sem swapping ou paginação

A forma mais fácil de alocação de memória a processos é aquele no

qual só existe um processo na memória em cada instante. Neste esquema

o usuário carrega para a memória principal um processo oriundo de um

disco ou de outro meio de armazenamento. Por sua vez, este processo

assume o controle de todos os recursos da máquina e terá disponível toda

a memória do sistema exclusivamente para si. Entretanto, caso a memória

disponível não seja suficiente, o processo terá sua execução rejeitada.

Quando o sistema é organizado dessa maneira, somente um pro-

cesso pode estar em execução por vez. O usuário entra com um comando

no terminal e o sistema operacional carrega o programa requerido do disco

para a memória e o executa. Quando o processo termina, o sistema opera-

cional reassume a CPU e espera por um novo comando para carregar outro

processo na memória já liberada pelo primeiro. Não há nenhum tipo de

controle que permita ao usuário utilizar recursos como multiprogramação

ou multitarefa.

3.2 Multiprogramaçãoeutilizaçãodame-mória

Ainda que a monoprogramação tenha sido utilizada em pequenos

computadores, em sistemas computacionais maiores, com múltiplos usu-

ários ou que necessitem apresentar um desempenho melhor, ela é proi-

bitiva. Além de suportar vários processos simultâneos, outra razão para

multiprogramar um computador (também aplicável em sistemas batch) é

o fato de vários processos despenderem uma parcela substancial de seu

tempo para operações de E/S.

Outro fator comum, é que, para um processo em loop de leitura

um bloco de dados de um arquivo em disco, também é comum a realização

de alguma operação sobre o conteúdo dos blocos lidos. Em sistemas mul-

tiprogramados esta ação é perfeitamente possível e implementável. Para

exemplificar seu grau de importância, se for gasto 40ms para ler um bloco

e o processamento deste bloco demandar apenas 10ms, durante 80% do

tempo total que o processo levar para ser concluído a CPU estará ociosa.

Técnico em Informáticae-Tec Brasil 34

Page 35: Operacao de Com Put Adores e Sistemas Operacionais Completa

Com o uso da multiprogramação é possível incrementar o percen-

tual de utilização da CPU. Colocando a questão de forma bem grosseira, se

tivermos 5 processos carregados na memória e cada um utilizar o proces-

sador apenas 20% de seu tempo (tempo de espera na memória + tempo

de execução), a CPU deverá estar ocupada o tempo todo. Entretanto, este

modelo é muito otimista e irreal, uma vez que assume que nunca dois ou

mais processos estarão esperando por E/S ao mesmo tempo.

Um modelo mais realista procura considerar o uso do processador

de forma probabilística. Suponha que determinado processo gaste uma

fração de seu tempo esperando por E/S. Com n processos na memória

simultaneamente, a probabilidade de todos eles aguardarem por entrada

e saída ao mesmo tempo, caso em que o processador ficará ocioso, é Pn.

Desta forma, um cálculo mais realista do uso aproximado de um processa-

dor pode ser realizado com a Equação (3).

(3)

Onde:

Com base na Equação (3), a Figura 3.1, extraída de Tanenbaum

(2003), apresenta a percentagem de utilização do processador em função

do grau de multiprogramação (quantidade de processos na memória).

Figura 12: Utilização do processador em função do número de processos na memória principal

Com uma rápida análise na figura, é possível concluir que quando

e-Tec BrasilIntrodução ao Sistema Operacional 35

Page 36: Operacao de Com Put Adores e Sistemas Operacionais Completa

os processos consomem 80% de seu tempo aguardando por E/S, no míni-

mo 10 processos devem estar ao mesmo tempo na memória para manter o

grau de ociosidade do processador abaixo de 10%. Como prática de exer-

cício, realize uma análise do gráfico de multiprogramação apresentado.

3.3 Multiprogramação com partições fi-xas

Como você já deve ter percebido, muitas vezes é conveniente man-

ter mais de um processo na memória ao mesmo tempo. Entretanto, para

isso devemos estabelecer uma estratégia de organização da memória. A

forma mais simples consiste em dividir a memória em n partições, possivel-

mente de tamanhos diferentes.

Ao ser inicializado, um processo pode ser colocado em uma fila de

entrada para ocupar a menor partição de tamanho suficiente para arma-

zená-lo. Em razão das partições possuírem tamanho fixo, qualquer espaço

não utilizado dentro de uma partição será perdido. A Figura 3.2, extraída

de Tanenbaum (2003), apresenta as duas maneiras de organizar os proces-

sos dentro desta política de gerenciamento de memória.

Figura 13: (a) Partições fixas de memória com filas de entrada separadas para cada uma. (b) Partições fixas de memória com uma única fila de entrada

A desvantagem de se organizar os processos que chegam em fi-

las separadas, torna-se aparente quando a fila para a maior partição está

Técnico em Informáticae-Tec Brasil 36

Page 37: Operacao de Com Put Adores e Sistemas Operacionais Completa

vazia, entretanto, as filas para as partições menores estão cheias, como

no caso das partições 1 e 3 da Figura 3.2 (a). Uma forma alternativa de

organizar a chegada dos processos, é manter uma fila única como na Fi-

gura 3.2 (b). Toda vez que uma partição é liberada, a mesma é alocada ao

primeiro processo da fila que caiba nela. Uma vez que não é viável gastar

uma partição grande com um processo pequeno, uma estratégia mais efi-

caz é procurar em toda fila de entrada o maior job que caiba na partição

liberada. Observe que, embora a última estratégia utilize melhor as parti-

ções da memória, ela também discrimina os processos menores, quando

normalmente é desejável dar a eles melhor tratamento, e não pior.

3.4 Multiprogramação com partições vari-áveis

Quando falamos em swapping de memória, a prática da multipro-

gramação com partições fixas não chega a ser atrativa devido à perda de

espaço de memória ocasionada pela sobra de espaço ocorrida dentro de

uma partição.

A principal diferença para o algoritmo com partições de tamanho

fixo, é que a quantidade, o tamanho e a localização dos processos, variam

dinamicamente em razão da utilização do sistema. A Figura 3.3, extraída

de Tanenbaum (1999), ilustra seu uso.

Figura 14: A alocação muda conforme os processos são criados e copiados do disco para a memória e vice-versa. As regiões sombreadas não estão alocadas no momen-to

e-Tec BrasilIntrodução ao Sistema Operacional 37

Page 38: Operacao de Com Put Adores e Sistemas Operacionais Completa

Na figura acima, no instante (a) somente o processo A está na me-

mória. Na sequência, os processos B e C são criados ou trazidos para do

disco. No instante (d) o processo A é finalizado ou sofre um swap-out (os

dados saem da memória principal e retornam para o disco). Na sequência,

D vem para a memória e B sai. Por fim, o processo E chega.

Uma das principais questões a serem tratadas neste algoritmo é

como administrar os buracos criados após várias operações de swap-in (os

dados são carregados do disco para a memória principal) e swap-out. Para

tratar este problema um procedimento conhecido como compactação de

memória deverá ser executado, nada mais é do que movimentar todos os

processos para os endereços mais baixos da memória. Apesar de funcional,

esta técnica é bem pouco utilizada pelo fato de requerer muito processa-

mento de CPU para realizar a compactação dos dados.

Outro problema deste método é como gerenciar o crescimento de

um processo. Se um processo for de tamanho fixo, não haverá nenhum

problema com a quantidade de memória alocada a ele. Entretanto, se um

processo aumentar de tamanho e ele tiver outros processos adjacentes a

ele, o próprio processo que está crescendo ou um dos processos adjacentes

a ele deverá ser movido para outro endereço. Em última situação, outro

processo deverá ser removido da memória para liberar o espaço necessá-

rio.

3.5Gerênciadememóriacom listas liga-das

Uma maneira bastante eficiente de gerenciar a alocação de me-

mória é mantendo uma lista ligada dos segmentos livres e ocupados na

memória. Entende-se por segmento um processo ou um espaço vazio (bu-

raco) entre dois processos.

Sempre que os processos e os buracos forem mantidos numa lista

ordenada por endereços, vários algoritmos podem ser utilizados na alo-

cação de memória para um processo que precise ser transferido do disco

para a memória principal. Segundo Tanenbaum (1999), quatro são os algo-

ritmos de alocação de espaço em memória.

Técnico em Informáticae-Tec Brasil 38

Page 39: Operacao de Com Put Adores e Sistemas Operacionais Completa

O algoritmo mais simples First-fit (primeiro buraco), o primeiro

buraco (segmento) livre de tamanho suficiente para carregar o processo

será escolhido para alocá-lo. Caso um segmento de tamanho n aloque um

processo de tamanho m, onde n>m, buraco será quebrado em dois seg-

mentos, sendo que o primeiro será do tamanho do processo e o segundo

será de tamanho n-m, resultando em um novo segmento livre na memória.

Para cada novo processo que precisar ser alocado, o algoritmo iniciará sua

busca a partir do início da lista de segmentos livres.

No algoritmo Best-fit (melhor buraco), o buraco escolhido será o

que resultar na menor sobra de espaço sem utilização. O maior problema

deste algoritmo são os pequenos buracos resultantes de sequentes aloca-

ções de segmentos aos processos, tornando necessário o uso da compac-

tação de memória. Por outro lado, por evitar o uso demasiado dos buracos,

este algoritmo aumenta as chances de um processo grande encontrar um

espaço disponível na memória.

Ao contrário do algoritmo do melhor buraco, o Worst-fit (pior

buraco) busca na memória o segmento que resultará na maior sobra de

espaço sem alocação após a alocação do processo. Apesar de utilizar as

maiores partições, a técnica do pior buraco deixa espaços livres maiores

que permitem a um maior número de processos serem carregados para a

memória (Machado & Maia, 2007).

Um algoritmo semelhante ao do primeiro buraco é o Next-fit (próximo buraco). A diferença neste algoritmo é que ao ser alocado um

segmento a um processo, a busca pelo segmento a ser utilizado pelo pró-

ximo processo será inicializada a partir do segmento resultante desta alo-

cação ou do próximo segmento, caso o processo ocupe todo o segmento

a ele destinado.

3.6 Memória Virtual

Desde o início da informática, na grande maioria dos sistemas com-

putacionais, o tamanho dos programas tem superado a quantidade de

memória disponível para abrigá-los. Outra situação comum é a necessida-

de de manter vários programas carregados na memória, situação em que

normalmente a quantidade de memória existente acaba sendo inferior a

e-Tec BrasilIntrodução ao Sistema Operacional 39

Page 40: Operacao de Com Put Adores e Sistemas Operacionais Completa

requerida pela soma dos programas.

Para sanar este problema, em 1961 Fortheringham propôs um método

denominado memória virtual. Este método foi desenvolvido com o objetivo

de particionar os programas e carregar parte deles em memória de disco

através do processo de swapping. Neste sistema, um programa de 4 MB

pode rodar em uma máquina com 1 MB de memória através do uso da

memória virtual, onde o sistema operacional é responsável por selecionar

a parte programa que será carregada na memória principal e também qual

parte ficará em disco.

3.6.1 Paginação

A maioria dos sistemas que utilizam o recurso da memória virtual,

usam a técnica de paginação para implementá-lo. Todos os sistemas com-

putacionais permitem que um programa faça referências a um determina-

do conjunto de endereços. Estes endereços gerados pelos programas são

chamados endereços virtuais e formam o espaço de endereçamento virtual

(Tanenbaum, 2003).

Qualquer referência feita a estes endereços não irá direto ao bar-

ramento de memória. Antes disso, estas referências realizadas pelo pro-

cessador serão encaminhadas à unidade de gerência de memória (MMU

– Manager Memory Unit), que é responsável por mapear os endereços

virtuais em endereços reais, conforme mostrado na Figura 3.4 extraída de

Tanenbaum (2003).

Figura 15: A localização e a função da MMU

A Figura 15, extraída de Tanenbaum (2003), apresenta um exemplo de

Técnico em Informáticae-Tec Brasil 40

Page 41: Operacao de Com Put Adores e Sistemas Operacionais Completa

como trabalha esse mapeamento. Neste exemplo temos um processador

que gera endereços de 16bits, de 0 à 64K, correspondente ao endereça-

mento virtual do processador. Entretanto, este computador tem apenas

32K de memória física. Embora possamos carregar e executar programas

de até 64K, não podemos mantê-los carregados na memória principal.

Sendo assim, uma cópia completa do programa deve ser mantida em dis-

co, de maneira que pedaços dele possam ser carregados à memória princi-

pal quando necessários.

O espaço de endereçamento virtual é dividido em páginas e suas

unidades correspondentes no espaço de endereçamento físico são deno-

minadas moldura de página. Independente do tamanho das páginas, sua

moldura de página correspondente necessariamente precisa ser de mesmo

tamanho. O exemplo acima, elas são de 4KB, entretanto, em sistemas re-

ais, páginas de 512 bytes à 64 KB têm sido utilizadas (Tanenbaum, 2003).

Ao fazer referência ao endereço virtual 0, a MMU detecta que o

endereço referenciado está na página virtual 0 (de 0 a 4095), que, de acor-

do com o mapeamento, corresponde à moldura de página de número 2.

Desta forma, a MMU transforma o endereço virtual 0 no endereço físico

8192 e, só então, envia à memória através do barramento. Desta forma,

de acordo com a Figura 3.5, a MMU mapeia todos os endereços virtuais

de 0 a 4095 em seus endereços na moldura de página de 8192 a 12287

respectivamente (Tanenbaum, 2003).

Figura 16: A relação entre endereços virtuais e endereços físicos da memória é dada pela tabela de páginas

e-Tec BrasilIntrodução ao Sistema Operacional 41

Page 42: Operacao de Com Put Adores e Sistemas Operacionais Completa

Mas o que aconteceria se o software realizasse uma referência a

um endereço que não está mapeado como, por exemplo, 40967, corres-

pondente ao sétimo byte dentro da página virtual 10? Este evento, deno-

minada falta de página (page fault) gera um desvio da CPU para o sistema

operacional que deve definir qual das molduras de páginas deverá ceder

lugar para a página virtual referenciada. Esta operação nada mais é do que

o processo de swap explicado anteriormente. Após a operação do swap,

o mapeamento das páginas deverá ser atualizado. Mas qual moldura de

página deverá sair da memória para ceder lugar ao conteúdo referenciado

pelo processo? Para resolver esta questão, Tanenbaum (1999) apresenta

alguns algoritmos para troca de página.

3.6.1.1 Algoritmo ótimo de substituição de páginas

Embora classificado como o melhor algoritmo de troca de páginas,

a implementação do algoritmo de substituição de página ótimo não é pos-

sível de ser implementado. A idéia deste algoritmo é simples. Em um dado

momento, antes de uma moldura de página ser substituída, um rótulo

indicando quantas instruções serão executadas até que aquela moldura

seja referenciada novamente será analisado. A moldura de página com o

maior valor, ou seja, dentre as molduras de página carregadas a última a

ser referenciada, indica a moldura a ser substituída.

A grande questão é que não há como saber quando cada página

será referenciada, impossibilitando assim a aplicação prática deste algo-

ritmo. Entretanto, em uma posterior aplicação deste algoritmo, ele pode

ser útil como referência de resultados na comparação do desempenho de

algoritmos utilizados na prática.

3.6.1.2 Trocadepáginanãousadarecen-temente(NUR)

Com o objetivo de permitir que o sistema operacional tenha as in-

formações necessárias para decidir quais páginas estão sendo utilizadas, a

maior parte dos computadores com memória virtual têm dois bits (R e M)

Técnico em Informáticae-Tec Brasil 42

Page 43: Operacao de Com Put Adores e Sistemas Operacionais Completa

associados a cada página. O bit R, que indica referência, assume valor 1

em qualquer operação de leitura ou escrita na página. O bit M, que indica

modificação no conteúdo da página, sinaliza a necessidade de atualização

do conteúdo da página no momento em que a mesma sofrer uma opera-

ção de swap ou simplesmente for retirada da memória principal.

A partir das informações disponibilizadas pelos bits R e M é pos-

sível o desenvolvimento de um algoritmo de troca de páginas simples e

eficiente. Inicialmente, para identificar quais páginas não tem sido utiliza-

das recentemente, o bit R pode ser zerado a cada interrupção de tempo.

Na ocorrência de falta de página, o sistema operacional substitui a página

da menor classe. A definição da classe a qual uma página pertence é feita

com base nos binários indicados pelos bits R e M, conforme apresentado

na Tabela.

Classes de páginas no algoritmo NUR

Classe Bit R Bit M Descrição

0 0 0Não-referenciada, não

modificada

1 0 1Não-referenciada,

modificada

2 1 0Referenciada, não

modificada

3 1 1 Referenciada, modificada

Apesar da situação apresentada na classe 1 não parecer possível,

uma página pode ser colocada nesta classe quando ela for modificada

e, numa interrupção de tempo, o sistema operacional zerar seu bit de

referência. Caso mais de uma página seja classificada na menor classe, o

algoritmo irá substituir uma página randomicamente.

3.6.1.3 Algoritmo FIFO

Na implementação deste algoritmo, o sistema operacional mantém

uma lista com o momento em que cada página foi carregada. Quando

houver a necessidade de troca de página, a página mais antiga da lista, ou

seja, que foi carregada primeiro, será retirada da memória principal.

e-Tec BrasilIntrodução ao Sistema Operacional 43

Page 44: Operacao de Com Put Adores e Sistemas Operacionais Completa

3.6.1.4 Algoritmo segunda chance

Para evitar que uma página muito utilizada seja substituída, como

pode ocorrer no algoritmo FIFO, o algoritmo segunda chance implementa

uma modificação que permite-nos avaliar se a página mais antiga ainda

está sendo utilizada. O princípio é o mesmo do FIFO, entretanto, o algorit-

mo também analisa o bit R de cada página. Se a página mais antiga possuir

o bit de referência igual a 0, ela será removida imediatamente. Entretanto,

se seu bit de referência for igual a 1, indicando que ela ainda tem sido

utilizada e, por isso, não deve ser substituída, ela receberá uma “segun-

da chance”. Ao invés de ceder lugar para outra página, ela terá seu bit R

zerado e o algoritmo irá analisar a página mais antiga na sequência. Este

processo se repetirá até que o algoritmo identifique a página mais antiga

e que tenha o bit de referência igual a 0. Se por ventura todas as páginas

tiverem o bit de referência igual a 1, o comportamento deste algoritmo

será o mesmo do FIFO.

3.6.1.5 Algoritmo da página usada há mais tempo

Com resultados mais próximos do algoritmo de troca de páginas

ótimo, o algoritmo estudo aqui se baseia na observação que as páginas

mais utilizadas nas últimas instruções, provavelmente também serão re-

ferenciadas nas próximas. De forma análoga, páginas que não têm sido

referenciadas nas últimas instruções, provavelmente também não serão re-

ferenciadas nas próximas. Desta forma, este algoritmo sugere que a página

a ser retirada da memória principal seja a que não tem sido utilizada pelo

maior período de tempo.

Apesar de a idéia ser simples, sua execução é bastante onerosa

no que diz respeito ao custo computacional. A grande dificuldade está

na necessidade de atualizar a lista sempre que ocorrer uma referência na

memória, o que envolve um contador que pode ser implementado tanto

em hardware quanto em software. Entretanto, para o objetivo de nossos

estudos, vamos generalizar a proposta deste algoritmo de forma a enten-

dermos que a página a ser substituída será a que tiver com o maior interva-

lo de tempo desde sua última referência até o momento em que a escolha

da página a ser substituída é feita.

Técnico em Informáticae-Tec Brasil 44

Page 45: Operacao de Com Put Adores e Sistemas Operacionais Completa

3.6.2 Segmentação

A memória virtual apresentada até o momento é unidirecional pelo

fato de seu endereçamento ir de 0 até um limite físico imposto pela quan-

tidade de memória. Embora a paginação permita que um grande espaço

de endereçamento seja implementado em uma quantidade limitada de

memória, processos que manipulam tabelas, pilhas e filas, podem gerar

alguns problemas, pois normalmente estas tabelas devem ser alocadas na

memória de forma contígua, o que não é possível com a paginação pelo

fato das páginas possuírem um tamanho fixo.

Nestas aplicações, um espaçamento endereçável bidimensional

pode ser mais adequado. Esta alternativa é suportada através do conceito

de segmentação, onde posições de memória são identificadas pelo par seg-

mento, deslocamento. Cada segmento tem um espaço de endereçamento

independente dos outros, que tem início no endereço 0 do segmento e vai

até o limite daquele segmento específico. O crescimento de um segmento

não afeta os demais e, geralmente, cada segmento possui um tamanho

diferente do outro. A Figura 3.6, extraída de Tanenbaum (2003), mostra

como cada segmento é organizado.

Na segmentação, o sistema operacional deve manter uma tabela

mapeando os segmentos para os endereços da memória. Uma diferença

importante é que segmentos têm dimensões distintas e, portanto, a in-

formação sobre o comprimento de cada segmento deve ser mantida. Se

por um lado este método permite que o uso de tabelas, pilhas e filas seja

melhor administrado, o fato de se trabalhar com partições de tamanhos

variáveis implica que após um tempo de uso a fragmentação poderá ocor-

rer e, para sanar este problema, mecanismos de compactação também

poderão ser aplicados na técnica de segmentação. A Figura 3.7, extraída

de Tanenbaum (2003), ilustra este processo.

e-Tec BrasilIntrodução ao Sistema Operacional 45

Page 46: Operacao de Com Put Adores e Sistemas Operacionais Completa

A fragmentação externa (pertencente aos sistemas segmentados)

apresentada na Figura 3.7, é removida com a compactação da memória.

Vale ressaltar que nos sistemas paginados o tipo de fragmentação que

ocorre é a interna, ou seja, dentro da página. Na fragmentação externa, o

espaço livre é externo ao segmento.

A tradução de endereços segmentados para endereços físicos ocor-

re de maneira similar à tradução de endereços virtuais. Para exemplificar

o processo de tradução de endereços, vamos nos basear na Figura 3.8,

adaptada de Tanenbaum (2003).

Figura 17: Uma memória segmentada permite que cada segmento altere seu tama-nho independente das outras tabelas

Figura 18: (a)–(d). Desenvolvimento de fragmentação externa. (e) Compactação da memória e consequente remoção da fragmentação

Técnico em Informáticae-Tec Brasil 46

Page 47: Operacao de Com Put Adores e Sistemas Operacionais Completa

Suponha que um processo gere o endereço lógico do byte C2, ou

seja, segmento 00 e deslocamento 00001. A tabela de segmentos informa

que o segmento 00 possui base 01000 e limite 0110. O deslocamento de

00001 é válido, pois é menor que o limite 0110. Somando a base 01000

do segmento 00 com o deslocamento 00001, teremos o endereço físico

01001. Esse é o endereço do byte C2 na memória física.

Os sistemas mais atuais utilizam uma mistura das técnicas de seg-

mentação e paginação para gerência de memória virtual. Caso deseje mais

informações a respeito da gerência de memória virtual, o aluno poderá

consultar (Tanenbaum, 2003).

Exercícios

1. Um computador tem espaço suficiente em sua memória para ar-

mazenar quatro programas. Estes programas esperam por E/S durante a

metade de seu tempo de processamento. Nesta situação, que fração do

tempo do processador é desperdiçada?

2. Usando o modelo da Figura 3.1, podemos prever um acréscimo

do throughput como função do grau de multiprogramação do sistema.

Figura 19: Mapeamento de memória segmentada

e-Tec BrasilIntrodução ao Sistema Operacional 47

Page 48: Operacao de Com Put Adores e Sistemas Operacionais Completa

Suponha que um computador tenha 2 MB de memória dos quais o sistema

operacional ocupe 512 KB, ou seja, um quarto da memória total, e que

cada programa também ocupe os mesmos 512 KB. Se todos os programas

esperarem por 60% do tempo por E/S, qual a porcentagem de aumento do

throughput se adicionarmos mais 1 MB de memória. Faça o mesmo cálculo

considerando a opção de adicionarmos 2 MB de memória, fazendo com

que o sistema totalize 4 MB nesta última configuração.

3. Qual a diferença entre endereço físico (real) e endereço virtual?

4. De maneira análoga a discutida na Figura 3.5, uma referência ao

endereço virtual 8192 seria mapeado em qual endereço físico (real)?

5. Explique a diferença entre fragmentação interna e fragmentação

externa. Qual delas ocorre nos sistemas paginados? Qual ocorre em siste-

mas com segmentação pura?

6. Um computador tem quatro molduras de páginas. O momento da

carga, o momento do último acesso e os bits R e M para cada uma das

páginas na memória são mostrados abaixo (os tempos são em intervalos de

interrupções de tempo):

Página Carga Última referência R M

0 230 260 1 0

1 120 272 1 1

2 160 280 1 1

3 126 279 0 0

a. Qual página será substituída pelo algoritmo NUR?

b. Qual página será substituída pelo algoritmo LRU?

c. Qual página será substituída pelo algoritmo FIFO?

d. Qual página será substituída pelo algoritmo da segunda chan-

ce?

Técnico em Informáticae-Tec Brasil 48

Page 49: Operacao de Com Put Adores e Sistemas Operacionais Completa

Justifique sua resposta para cada uma das alternativas acima

7. Considere um sistema de swapping no qual os seguintes bu-

racos estão na memória, na ordem apresentada: 10K, 4K, 20K, 18K,

7K, 9K, 12K e 15K. Se usarmos o esquema do primeiro buraco, quais

espaços de memória serão alocados a segmentos que sucessivamente

requisitarem:

a) 12K,

b) 10K,

c) 9K.

Repita a questão para os algoritmos do melhor buraco, do pior buraco

e do próximo buraco.

e-Tec BrasilIntrodução ao Sistema Operacional 49

Page 50: Operacao de Com Put Adores e Sistemas Operacionais Completa

A parte com que o usuário mais tem contato do SO é o sistema de

arquivos. Programas aplicativos utilizam o sistema de arquivos constante-

mente (através de chamadas de sistema) para criar, ler, gravar e remover

arquivos. Como um acesso a disco demora cerca de vezes mais tempo

que um acesso à memória principal, surge então à necessidade de uma

estrutura de dados e algoritmos que melhore a eficiência dos acessos ao

disco. A usabilidade de um sistema operacional é fortemente determinada

pela interface, estrutura e confiabilidade de seu sistema de arquivos.

Uma das principais tarefas do sistema de arquivos é implementar

em software um recurso não existente em hardware, ou seja, estabelecer

uma maneira lógica de armazenar os dados a partir de recursos físicos

existentes no sistema computacional. Desta forma, segundo Tanenbaum

(2003), para armazenarmos informações por longo prazo, temos três re-

quisitos essenciais: (1) Deve ser possível armazenar uma quantidade muito

grandede informação; (2)A informaçãodeve sobreviver ao términodo

processoqueausa;e(3)Múltiplosprocessostêmdesercapazesdeacessar

a informação concorrente. Para atender a todos estes requisitos, a solução

apresentada é a organização das informações em arquivos.

Quando falamos sobre sistemas de arquivos, podemos dividi-los em

dois grupos de estudo. O primeiro deles tem relação com a interface do

usuário, onde tratamos sobre os arquivos e diretórios. O segundo grupo

está relacionado à implementação dos sistemas de arquivos. Neste material

iremos estudar os conceitos básicos dos dois grupos baseando-se na abor-

dagem apresentada em Tanenbaum (2003).

UNIDADE 4 - SISTEMA

DE ARQUIVOS

Objetivos da aula

- Cumpreender como os sistemas operacionais efetuam a gerência

de arquivos.

- Diferenciam os diferentes tipos de sistemas de arquivos.

Técnico em Informáticae-Tec Brasil 50

Page 51: Operacao de Com Put Adores e Sistemas Operacionais Completa

4.1 Arquivos

Arquivo é um mecanismo de abstração que fornece meios de

armazenar dados e informações no disco para que elas possam ser

lidas posteriormente, sendo que estas operações (leitura e gravação)

devem ocorrer de forma transparente ao usuário. Dentro deste con-

texto, possivelmente a característica mais importante ao usuário é a

forma como os arquivos devem ser gerenciados e nomeados.

Não existe uma só regra para definir como deve ser feita a

nomeação dos arquivos, pois cada sistema operacional possui suas ca-

racterísticas particulares. Entretanto, de uma forma geral, comumente

dividimos o nome dos arquivos em duas partes. Um nome seguido de

um ponto e uma extensão para identificar seu tipo. Via de regra, a

extensão do arquivo não costuma exceder 3 caracteres e seu nome,

dependendo do sistema, pode possuir até 255 caracteres. A Tabela

4.1 apresenta alguns tipos comuns de arquivos.

Extensões Comuns de Arquivos

Extensão Significado

arquivo.bak Cópia de segurança (backup)

arquivo.c Código fonte em C

arquivo.gifFigura no formato da Compuserve (graphical interchange

format)

arquivo.jpg Figura codificada no padrão JPEG

arquivo.mp3 Áudio codificado no formato MPEG

arquivo.mpg Vídeo codificado no formato MPEG

arquivo.exe Arquivo executável

Como mencionado anteriormente, um arquivo normalmente é

identificado através do seu nome e tipo. Além destas características,

os arquivos possuem outros atributos que são mantidos pelo SO. A

lista apresentada abaixo não tem a pretensão de esgotar todas as

possibilidades de atributos, pois esta varia de um SO para outro, en-

tretanto, a relação apresenta os principais atributos existentes:

• Proteção(quemtemacessoaoarquivoedequemaneira);

e-Tec BrasilIntrodução ao Sistema Operacional 51

Page 52: Operacao de Com Put Adores e Sistemas Operacionais Completa

• Tamanho(quantidadedebytesdoarquivo);

• Dataehoradoúltimoacesso;

• Dataehoradaúltimaalteração;

• Identificaçãodousuárioquecriouoarquivo;

• Password(senecessário,senhaparaacessoaoarquivo);

• FlagsdeOcultação,Leitura/Escrita,Sistema,Temporário,entreou-

tras (0 desativada, 1 ativada).

Independente do SO em questão, um arquivo suporta diversas ope-

rações. As principais operações e suas chamadas de sistema são:

• Criaçãodoarquivo(Create);

• Remoçãodoarquivo(Delete);

• Leituradoconteúdo(Read);

• Alteraçãodoconteúdodoarquivo(Write/Append);

• Trocadonomedoarquivo(Rename);

• Alteraçãonalistadeusuáriosquepodemacessaroarquivo(Set

attributes);.

4.2 Diretórios

Para o controle dos arquivos, em geral um SO utiliza diretórios que

em alguns sistemas, como o Linux, também são tratados como arquivos.

Independente de como o diretório é tratado, a forma mais comum

de organizar os arquivos é através da política de diretórios hierárquicos.

Esta estratégia permite que os usuários agrupem seus arquivos de forma

natural, diferente do que ocorreria em uma política de diretório de nível

Técnico em Informáticae-Tec Brasil 52

Page 53: Operacao de Com Put Adores e Sistemas Operacionais Completa

único. A Figura 20, adaptada de Tanenbaum (2003), apresenta estas polí-

ticas.

Existem duas formas de especificar o nome de um arquivo. A pri-

meira delas é através do caminho relativo, que traz consigo o conceito de

diretório de trabalho ou diretório corrente (atual), onde um arquivo pode

ser referenciado simplesmente pelo seu nome. A outra forma é através do

caminho absoluto, onde para referenciar um arquivo é preciso especificar

o caminho até ele partindo do diretório raiz. Um exemplo nos dois casos,

seria o caminho caixapostal.bak para caminho relativo ao arquivo

(desde que o diretório atual seja o do arquivo referenciado) e /usr/ast/

caixapostal.bak o cominho absoluto para o mesmo arquivo, onde ele

é referenciado independente do diretório atual que o usuário estiver.

Figura 20: (a) Sistema de diretório de nível único; (b) Sistema de diretórios hierár-quicos

De forma análoga aos arquivos, as principais operações sobre dire-

tórios são:

• Criarumdiretório(Create);

• Lerdiretório(Open);

• Excluirdiretórios(Delete);

• Renomeardiretório(Rename);

Existem outras chamadas de sistema que podem ser realizadas nos diretó-

rios. Independente do SO, essas são algumas das mais comuns. Ocasional-

mente algumas chamadas podem mudar de um SO para outro.

e-Tec BrasilIntrodução ao Sistema Operacional 53

Page 54: Operacao de Com Put Adores e Sistemas Operacionais Completa

4.3 Implementação do sistema de ar-quivos

Ao implementar uma gerência de espaço em disco, um pro-

jetista pode optar por duas estratégias. A primeira e mais simples é

alocar o conteúdo de um arquivo de forma sequencial. A segunda

estratégia é dividir o arquivo em blocos separados.

Outra questão importante é definir o tamanho de um cluster.

Um cluster de tamanho grande significa que pequenos arquivos irão

gerar um desperdício de espaço. Por outro lado, clusters de tamanho

pequeno podem comprometer a leitura de arquivos maiores pelo fato

de aumentar o tempo de seek dos arquivos. Normalmente os clusters

variam de um sistema para outro. Entretanto, um tamanho usual está

entre 512 bytes e 4 KB. Alguns dos métodos mais comuns para a im-

plementação de arquivos são apresentados na sequência.

4.3.1 Alocação Contígua

A estratégia mais simples para alocação de arquivo certamen-

te é a de blocos contíguos no disco. Para isso, as únicas informações

necessárias para permitir o acesso ao seu conteúdo são: (1) a posição

inicial do arquivo e (2) o tamanho do arquivo.

Dentre os problemas apresentados nesta estratégia, o crescimento de

um arquivo e a fragmentação ocorrida no disco certamente estão en-

tre os principais. No primeiro caso, ao crescer, um arquivo deverá ser

removido do local onde está alocado. Após algumas ocorrências como

esta, o disco ficará fragmentado, situação que também ocorrerá após

a remoção de alguns arquivos por parte do usuário. A Figura 21, ex-

traída de Tanenbaum (2003), apresenta esta ocorrência.

Técnico em Informáticae-Tec Brasil 54

Page 55: Operacao de Com Put Adores e Sistemas Operacionais Completa

Figura 21: (a) Alocação contígua; (b) Fragmentação do disco após a remoção de dois arquivos

Embora pouco aconselhável em sistemas de armazenamento

de arquivos, onde o usuário realiza diversas operações sobre eles, em

CD-ROM esta estratégia é amplamente utilizada e apresenta excelen-

tes resultados. Isso ocorre pelo fato dos arquivos a serem gravados na

mídia serem previamente conhecidos e não sofrerem alterações após

sua gravação.

4.3.2 Alocação por lista encadeada

Nesta estratégia não ocorre fragmentação como na alocação

contínua e a primeira palavra de cada bloco indica o próximo blo-

co do arquivo, como mostrado na Figura 4.3 extraída de Tanenbaum

(2003).

Apesar de evitar a fragmentação, esta estratégia é extrema-

mente lenta, pois para chegar ao último bloco de um arquivo, o siste-

ma operacional terá de fazer leitura de todos os blocos anteriores.

e-Tec BrasilIntrodução ao Sistema Operacional 55

Page 56: Operacao de Com Put Adores e Sistemas Operacionais Completa

4.3.3 Lista encadeada com tabela na memória

A estratégia de lista encadeada com tabela na memória mini-

miza o principal problema da alocação por lista encadeada, carregan-

do para a memória principal a tabela de alocação de arquivos, onde

um acesso aleatório a um determinado conteúdo do arquivo pode ser

feito de forma mais ágil, pelo fato de toda a tabela estar carregada

na memória. A Figura 22, extraída de Tanenbaum (2003), apresenta a

organização dos mesmos arquivos apresentados na Figura 4.3.

A principal desvantagem deste método é a necessidade de

manter toda a FAT (File Allocation Table) carregada na memória. Desta

forma, um HD (Hard Disk) de 20 GB com blocos/clusters de 1 KB, ocu-

paria cerca de 80 MB na memória principal.

4.3.4 I-nodes

Esta estratégia mantém uma tabela de i-nodes (index nodes) que contém os endereços em disco dos blocos do arquivo. A grande

vantagem deste método é que o i-node será carregado na memória,

somente quando o arquivo indexado por ele estiver aberto.

Figura 22: – Arquivos armazenados através de uma lista encadeada de blocos

Técnico em Informáticae-Tec Brasil 56

Page 57: Operacao de Com Put Adores e Sistemas Operacionais Completa

Ao abrir um arquivo, os primeiros blocos do arquivo são mantidos

no próprio i-node. Caso o i-node o conteúdo do arquivo não caiba dentro

do próprio i-node, ele irá apontará os blocos que compõem o arquivo.

A Figura 4.5, extraída de Tanenbaum (2003), apresenta a estrutura base

de um i-node. Como podemos perceber, além de apontar para os blocos

que compõem um arquivo, um i-node também armazena os atributos do

arquivo. Sistemas GNU/Linux usam desta estratégia para organizar seus

arquivos.

4.4 Considerações finais

A forma como os arquivos são organizados pelo SO, certamente

exercegrandeinfluênciaemseudesempenho.Cadaumdosmétodosdis-

cutidos aqui possui seus problemas e vantagens.

Figura 23: – Tabela de alocação de arquivos carregada na memória

e-Tec BrasilIntrodução ao Sistema Operacional 57

Page 58: Operacao de Com Put Adores e Sistemas Operacionais Completa

Independente de como o sistema de arquivos for implementado,

ele deve apresentar uma boa velocidade na leitura e na gravação dos ar-

quivos, além de ser consistente e confiável.

Exercícios

Identifique e descreva o significado de três diferentes tipos de ar-

quivos dos apresentados na Tabela 4.1.

Cite e explique três atributos e três operações possíveis em um ar-

quivo.

Qual a diferença entre caminho relativo e caminho absoluto?

A alocação contígua de espaço em disco leva à fragmentação. Por

quê? Tal fragmentação é interna ou externa? Comente.

Alguns Sistemas Operacionais colocam à disposição de seus usuá-

rios uma chamada rename, para possibilitar a mudança do nome de deter-

minado arquivo. Existe alguma diferença entre usar esta chamada para dar

um novo nome a um arquivo, e simplesmente copiar o arquivo velho em

outro, apagando o original?

Figura 24: – Estrutura básica de um i-node

Técnico em Informáticae-Tec Brasil 58

Page 59: Operacao de Com Put Adores e Sistemas Operacionais Completa

A compactação periódica do espaço em disco é vantajosa? Justifi-

que.

Tem sido sugerido que a primeira parte de cada arquivo Unix/Linux

seja mantida no mesmo bloco de disco que seu i-node. Qual a vantagem

deste esquema?

Quando um arquivo é removido, normalmente seus blocos são co-

locados de volta na lista de blocos livres, não sendo apagados do disco.

Você acha que seria uma boa idéia o sistema operacional apagar cada

bloco antes de liberá-lo? Considere tanto o aspecto da segurança quanto

o da performance e explique os efeitos da adoção desta medida em cada

um deles.

Descreva resumidamente os sistemas de arquivos abaixo. Apresen-

te suas vantagens, desvantagens e limitações.

a. Alocaçãocontígua;

b. Alocaçãoporlistaencadeada;

c. Lista encadeada com tabela na memória

d. I-nodes

Pesquise a respeito dos sistemas de arquivos FAT-16, FAT-32, ext3

e ext4. Monte um trabalho apresentando as principais características de

cada um, ressaltando suas limitações, vantagens e desvantagens práticas.

e-Tec BrasilIntrodução ao Sistema Operacional 59

Page 60: Operacao de Com Put Adores e Sistemas Operacionais Completa

Uma das tarefas mais complexas de um sistema operacional é a

gerência de entrada e saída. Devido à grande diversidade dos dispositivos

de E/S, para atender esta necessidade o sistema operacional implementa

o que chamamos de subsistema de E/S. Seu código representa uma parte

significativa de todo o SO. Desta forma, são várias as atribuições ao sub-

sistema de E/S. Neste material estudaremos os princípios do hardware e

os princípios do software, além de detalharmos algumas características

inerentes aos discos de armazenamento.

De uma forma geral, o subsistema de entrada e saída é responsável

por desempenhar as funções comuns a todos os tipos de dispositivos. As

particularidades específicas de cada dispositivos fica a cargo dos device dri-

vers (drivers dos dispositivos). Assim, o subsistema de E/S tem com objetivo

fornecer uma interface comum a todos os dispositivos (Machado & Maia,

2007).

Embora seja um conceito simples, vale ressaltar a diferença entre

drive e driver. O primeiro refere-se a um hardware de armazenamento

como, por exemplo, um driver de CD-ROM. Por outro lado, driver refere-se

ao software responsável pelo correto funcionamento de um dispositivo de

E/S ou um periférico qualquer. Sem o driver correto, uma placa de vídeo

poderia não fornecer todos os recursos 3D e quantidade que ela dispõe,

limitando assim o uso de seus recursos mais valiosos.

UNIDADE 5 - GERÊNCIA

DE ENTRADA E SAÍDA

Objetivos da aula

- Compreender como os sistemas operacionais gerenciam os dispo-

sitivos de entrada e saída.

Técnico em Informáticae-Tec Brasil 60

Page 61: Operacao de Com Put Adores e Sistemas Operacionais Completa

5.1 Princípios de hardware

Para o sistema operacional não é necessário interpretar o projeto,

a construção e o funcionamento interno de um hardware. Este enfoque é

pertinente aos engenheiros de hardware. O foco de um programador em

relação ao hardware está na interface de comunicação software e hardwa-

re, com atenção especial aos comandos que o hardware aceita, as funções

que realiza e os erros de hardware que podem ser repassados ao software.

Desta forma, esta seção tem como objetivo apresentar uma visão geral do

relacionamento do hardware de E/S com a programação.

5.1.1 Dispositivos de E/S

Segundo Tanenbaum (2003), de uma forma geral, os dispositivos

de E/S podem ser classificados em duas grandes categorias: dispositivos

de blocos e dispositivos de caractere. No primeiro caso, os blocos são de

tamanho fixo e, normalmente, são implementados em tamanhos que va-

riam de 512 bytes a 32768 bytes. Cada bloco possui seu próprio endereço

e, uma característica importante dos blocos é que cada bloco pode ser

acessado independente dos demais. Normalmente estes dispositivos estão

conectados a uma interface paralela. O dispositivo mais comum que faz o

uso de endereçamento por bloco são os discos.

Osdispositivosdecaractereenviamerecebemumfluxodecarac-

teres sem considerar qualquer estrutura de blocos. De uma forma geral,

estes dispositivos não são endereçáveis. Exemplos comuns de dispositivos

de caractere são: os mouses, as impressoras e as interfaces de rede (Tanen-

baum, 1999). De uma forma geral, normalmente a interface relacionado

com este tipo de dispositivo é a sequencial.

Alguns dispositivos como os relógios internos não se classificam

nem como dispositivos de blocos e tão pouco como dispositivos de carac-

tere,pelofatodeenviaremenemreceberemfluxodedados.Oqueestes

dispositivos fazem é simplesmente gerar uma interrupção de tempo em

tempo.

e-Tec BrasilIntrodução ao Sistema Operacional 61

Page 62: Operacao de Com Put Adores e Sistemas Operacionais Completa

5.1.2 Controladores de dispositivos

A grande maioria dos dispositivos dos computadores não é conec-

tadadiretamenteaobarramento;aoinvésdisso,sãoconectadosaoscon-

troladores de dispositivos que, por sua vez, são conectados aos barramen-

tos (Shay, 1996).

Um controlador possui memória e registradores próprios que são

utilizados na execução de instruções enviadas pelo driver do dispositivo

(Machado & Maia, 2007). Estas instruções são responsáveis pelo funciona-

mento correto do dispositivo. Por exemplo: a controladora de uma impres-

sora é responsável por gerenciar todos os movimentos mecânicos envolvi-

dos no processo de impressão, além de definir o quanto de cada tinta tem

que ser utilizado em cada linha da impressão.

Vale ressaltar que um sistema operacional quase sem-

pre se comunica com o controlador do dispositivo e não com o

dispositivo em si. A Figura 5.1 extraída de Tanenbaum (2003),

apresenta a estrutura de comunicação de um computador.

Figura 26: – Modelo de conexão de dispositivos de E/S, controladores, memória e processador

Além de servir como intermediadora na comunicação entre o dis-

positivo e o sistema operacional, uma controladora também é responsável

porconverterumfluxoserialdedadosemumblocodebytes.Porinter-

médio de seus drivers, os registradores de uma controladora recebem ins-

truções oriundas do processador, que serão interpretadas e executadas na

sequência.

Técnico em Informáticae-Tec Brasil 62

Page 63: Operacao de Com Put Adores e Sistemas Operacionais Completa

5.1.3 Acesso Direto à Memória (DMA)

O acesso direto à memória (direct memory access – DMA) permi-

te a transferência de blocos de caracteres. Ele permite que o controlador

acesse a memória por si mesmo. Com a E/S programada, a CPU tinha de

transferir cada um dos caracteres entre o disco e a memória principal, e o

controlador não podia acessar a memória de forma independente (Shay,

1996).

De uma forma simplificada, uma operação de leitura de disco uti-

lizando DMA pode ser descrita pelos seguintes passos. O processador,

através do device driver, inicializa os registradores do controlador DMA

e, a partir deste ponto, a CPU fica livre para realizar outras atividades. O

controlador DMA por sua vez, solicita ao controlador de disco a transfe-

rência do bloco do disco para o buffer interno. Terminada a transferência,

o controlador de disco verifica a existência de erros e, caso não haja erros,

o controlador DMA acessa a memória principal e transfere o conteúdo ar-

mazenado em buffer. Ao término da transferência, o controlador de DMA

gera uma interrupção avisando o processador que o dado já se encontra

na memória (Machado e Maia, 2007).

5.2 Princípios de software

Um dos principais objetivos do software de E/S de um sistema ope-

racional é prover a independência dos dispositivos. Isso pode ser feito atra-

vés da padronização das rotinas de acesso aos mesmos. Como exemplo, a

rotina utilizada para a leitura dos arquivos armazenados em um CD-ROM,

deve ser a mesma para o acesso aos arquivos armazenados em um disco

rígido (Tanenbaum, 2003).

Outra característica importante relacionada aos princípios de software é a

manipulação de erros. Em geral, os erros devem ser tratados o mais pró-

ximo possível do hardware. Se o controlador encontra um erro, ele deve

tentar corrigi-lo. Se não conseguir, o driver do dispositivo deve tentar fazê-

la. (Tanenbaum, 1999).

e-Tec BrasilIntrodução ao Sistema Operacional 63

Page 64: Operacao de Com Put Adores e Sistemas Operacionais Completa

5.2.1 Drivers

Como mencionado anteriormente, um driver é o software respon-

sável pelo pleno funcionamento de um dispositivo de hardware. Segundo

Shay (1996), de uma forma geral, um driver possui duas responsabilida-

des principais. A primeira é preparar-se para as operações de E/S, o que

envolve verificar o estado do dispositivo, alocá-lo e iniciar a transferência

dos dados. A segunda responsabilidade é finalizar a operação de E/S, ou

seja, verificar o resultado da operação (terminada ou abortada) e respon-

der adequadamente.

Após a emissão de um comando ou vários comandos, destinados

ao driver, podem ocorrer duas situações. Em muitos casos, o driver deve

aguardar até que o controlador conclua as operações requisitadas. Se estas

operações forem lentas, o driver deve se autobloquear até que as opera-

ções sejam concluídas e uma interrupção seja gerada para desbloqueá-lo.

Em casos onde as operações são rápidas, o driver não precisa ser bloquea-

do (Tanenbaum, 1999).

Como muitas coisas podem sair erradas durante a execução das

instruções, a resposta aos erros pode ser complexa. Desta forma, geral-

mente os drivers também são responsáveis pelo tratamento dos erros. Por

exemplo, se uma impressora estiver sem papel ou desligada, as operações

de escrita não poderão ser executadas. Assim, o driver é responsável por

alertar sobre o erro e esperará que alguém corrija (Shay, 1996).

5.2.2 Software de E/S independente dos dispositivos

Uma grande parte do software de E/S é independente do dispo-

sitivo em questão. De acordo com Tanenbaum (2003), as funções de E/S

abaixo são tipicamente realizadas pelo software de E/S independente do

dispositivo:

• Interfaceuniformeparaosdriversdedispositivo;

• Fornecimentodeumtamanhodeblocoindependentedodispositi-

vo;

Técnico em Informáticae-Tec Brasil 64

Page 65: Operacao de Com Put Adores e Sistemas Operacionais Completa

• Bufferização;

• Alocaçãoeliberaçãodedispositivosdedicados;

• Manipulaçãodeerros;

A interface uniforme tem como objetivo fazer com que todos os

dispositivos e drivers tenham uma interface padrão de comunicação. Isso

evita que o sistema operacional tenha que ser modificado a cada novo

dispositivo que aparece, tornando a forma de comunicação padrão para

todos os dispositivos reconhecidos por ele. A Figura 5.2 extraída de Tanen-

baum (2003), ilustra a representação de uma interface padrão do driver e

de uma interface não padronizada para o driver.

Discos diferentes podem ter tamanhos de setor diferentes também. O

fornecimento de um tamanho de bloco independente do dispositivo tem

como objetivo esconder este fato fornecendo um tamanho de bloco uni-

forme para a camada superior. Isso pode ser feito tratando vários seto-

res como um único bloco lógico. Desta forma, os níveis mais altos tratam

apenas com dispositivos abstratos, usando o mesmo tamanho lógico dos

blocos, independente do tamanho físico do setor.

Figura 27: – (a) Sem interface padrão do driver; (b) com interface padronizada

A utilização do buffer, ou bufferização, é uma zona de memória

onde os dados são temporariamente armazenados enquanto estão sendo

transferidos entre as diversas camadas da comunicação. Um exemplo de

bufferização é o que ocorre em protocolos de comunicação: o usuário

pode desejar transmitir 128 Kbytes de dados, mas a interface de rede é ca-

paz de enviar sequências de 4 Kbytes. Neste caso, a requisição do usuário

e-Tec BrasilIntrodução ao Sistema Operacional 65

Page 66: Operacao de Com Put Adores e Sistemas Operacionais Completa

é armazenada em buffer e enviada em blocos de 4 Kbytes.

Alguns dispositivos, tais como fitas magnéticas, só podem ser uti-

lizados somente por um processo por vez. Desta forma, cabe ao software

de E/S, independente do dispositivo, examinar as requisições de uso a um

determinado dispositivo e aceitar ou rejeitar os pedidos de alocação do recurso. Ao final de seu uso, o recurso de alocado deverá ser liberado.

A manipulação de erros também é feita nesta camada. Um erro

típico é causado por um bloco do disco que foi danificado e não pode ser

mais lido ou escrito. Após o driver tentar ler o bloco várias vezes, ele desiste

de realizar a operação e informa ao software independente do dispositivo

a razão do erro, para que o mesmo possa ser tratado. Se ocorrer na leitu-

ra de um arquivo pertencente a um usuário, é suficiente informar o erro

para o mesmo. Entretanto, se o erro ocorreu numa área crítica, o sistema

operacional deve apresentar uma mensagem e terminar a execução (Ta-

nenbaum, 1999).

5.3 Discos

Nesta seção serão apresentadas algumas questões de software e de

hardware relativas aos discos magnéticos.

5.3.1 Hardware de disco

Os discos magnéticos são organizados em cilindros, sendo cada um

deles estruturado em trilhas, que por sua vez, são divididas em setores.

Uma característica muito útil nestes dispositivos é a possibilidade

da controladora fazer seeks (busca por dados) em uma ou mais unidades

ao mesmo tempo. Esta capacidade é conhecida como seeks sobrepostos.

Enquanto a controladora e o software aguardam que o seek em uma uni-

dade se complete, a controladora pode iniciar um seek em outra unida-

de. Algumas controladoras conseguem ler ou escrever em uma unidade

enquanto um seek é realizado em outra. A capacidade de realizar um ou

mais seeks ao mesmo tempo, reduz consideravelmente o tempo médio de

Técnico em Informáticae-Tec Brasil 66

Page 67: Operacao de Com Put Adores e Sistemas Operacionais Completa

acesso. (Tanenbaum, 1999)

Um conceito relacionado tanto ao hardware quanto ao software

dos discos é o RAID. Basicamente, RAID (Redundant Arrays of Inexpensive Disk) são técnicas de gerenciamento de discos, que tem como objetivo

otimizar as operações de E/S e implementar redundância e proteção dos

dados.

As técnicas RAID podem ser implementadas diretamente nos con-

troladores de discos ou serem gerenciadas por software, sendo este último

método conhecido como JBOD (Just a Bunch of Disks) (Machado & Maia,

2007). A Figura 5.3, adaptada de Machado & Maia (2007), ilustra a dife-

rença entre as duas formas possíveis de implementação de RAID.

Sistema operacional

Software RAID

Sistema operacional

Controlador RAID

Controlador

Arr

ay d

e di

scos

Arr

ay d

e di

scos

Dentre as técnicas de implementação do RAID/JBOD, duas técnicas

são utilizadas, a RAID 0 e a RAID 1. Há ainda uma terceira técnica, conhe-

cida como RAID 01, que combina o uso das duas anteriores.

O RAID 0, também conhecido como Striping, consiste na imple-

mentação de dois ou mais discos para trabalharem como um. O RAID 0

tem como objetivo distribuir as operações de E/S entre os diversos discos

do array (dispositivo virtual criado para o tratamento de dois ou mais dis-

Figura 28: – Subsistema de discos

e-Tec BrasilIntrodução ao Sistema Operacional 67

Page 68: Operacao de Com Put Adores e Sistemas Operacionais Completa

cos como um só) (Machado & Maia, 2007). O uso do RAID Striping com

dois discos chega a otimizar a velocidade das operações de E/S dos discos

em cerca de 98% (noventa e oito por cento). Com três discos, o ganho de

desempenho chega a 180% (cento e oitenta por cento) (Ferreira, 2005).

O RAID 1, também conhecido como Mirroring, nada mais é do que

replicar todo o conteúdo do disco principal em outro disco. Caso haja uma

falha no disco principal, a redundância implementada pelo RAID 1 garante

que o disco secundário seja utilizado de forma transparente pelo sistema

de arquivos (Machado & Maia, 2007). Ao implementar o RAID 1, todo o

conteúdo gravado no disco principal, automaticamente também será gra-

vado no mirror (disco espelho), de forma a garantir que seu conteúdo seja

fiel ao do disco principal.

Para implementar o RAID 01 surge a necessidade de termos, no mínimo, 4

(quatro) discos, sendo dois para o Striping e dois para o Mirroring.

5.3.2 Software de discos

A seguir serão abordados alguns conceitos relacionados à análise

da performance dos drivers de disco. O tempo para ler ou escrever um blo-

co do disco é determinado por três fatores: o tempo de seek (o tempo que

o braço leva para se mover até o cilindro desejado), a latência rotacional (o

tempo para que o setor procurado se coloque debaixo da cabeça de leitu-

ra), e o tempo de transferência propriamente dito (Tanenbaum, 1999).

Se o driver do disco receber as requisições e for atendê-las execu-

tando com a política FCFS, por exemplo, pouquíssimo poderá ser feito para

melhorar a performance do seek. No entanto, outras estratégias de busca

podem ser implementadas de forma a melhorar o tempo de seek.

Vamos considerar um exemplo extraído de Tanenbaum (2003).

Imagine um disco com 40 cilindros. A primeira requisição a chegar é para

a leitura do cilindro 11. Enquanto se dá o seek para tal cilindro, novos pe-

didos chegam para os cilindros 1, 36, 16, 34, 9 e 12, nessa ordem.

Quando a requisição atual (para leitura do cilindro 11) for con-

cluída, o driver do disco deverá escolher qual requisição será a próxima a

Técnico em Informáticae-Tec Brasil 68

Page 69: Operacao de Com Put Adores e Sistemas Operacionais Completa

ser tratada. Usando o FCFS, a próxima requisição a ser atendida será a da

leitura do cilindro 1, depois o 36, e assim por diante. Observe que este al-

goritmo requer movimentos do braço por 10, 35, 20, 18, 25 e 3 cilindros,

respectivamente, totalizando 111 cilindros percorridos.

Alternativamente o driver poderá atender sempre a requisição do

posicionamento mais curto primeiro (Shortest Seek First - SSF), de forma

a minimizar o tempo do seek. Utilizando o exemplo anterior, os cilindros

a serem atendidos serão 12, 9, 16, 1, 34 e 36, conforme mostra a Figura

5.4 extraída de Tanenbaum (2003). Seguindo a sequência de leitura de-

terminada pelo algoritmo, o braço será deslocado por 1, 3, 7, 15, 33 e

2 cilindros, num total de 61 cilindros, quase a metade apresentada pelo

algoritmo FCFS.

Um problema apresentado por este algoritmo ocorre no caso de

novas requisições irem chegando constantemente. Nesta situação, a ten-

dência do algoritmo é fazer com que o braço fique no meio do disco, aten-

dendo as requisições próximas a ele, fazendo com que as requisições feitas

para as extremidades possam nem ser atendidas. Os objetivos de redução

do tempo médio de resposta e justiça igual para todas as requisições estão

emconflitonestealgoritmo(Tanenbaum,2003).

Uma solução para o problema apresentado é o algoritmo do eleva-

dor. O princípio é o mesmo do SSF, entretanto, o braço procura manter a

mesma direção até que não haja nenhuma requisição pendente nela. Este

algoritmo requer um campo que contenha um indicador para a direção

do “elevador”. Quando este campo apresentar o valor 1 (up) sua direção

deverá ser para cima, e quando apresentar o valor 0 (down) sua direção

deverá ser para baixo (Tanenbaum, 2003). A Figura 5.5, extraída de Tanen-

baum (2003), demonstra sua aplicação no exemplo citado anteriormente.

Figura 29: – Algoritmo de escalonamento de disco “posicionamento mais curto pri-meiro”

e-Tec BrasilIntrodução ao Sistema Operacional 69

Page 70: Operacao de Com Put Adores e Sistemas Operacionais Completa

Na Figura 30 estamos supondo que o sinal de direção está sinalizado

como up. Desta forma, após a leitura do cilindro 11 a ordem dos cilindros

servidos seria 12, 16, 34, 36, 9 e 1, que faz com que o braço percorra 1, 4,

18, 2, 27 e 8 cilindros, perfazendo um total de 60. Neste caso o algoritmo

do elevador é ligeiramente melhor que o SSF, apesar dele constantemente

apresentar um desempenho pior que o deste último (Tanenbaum, 2003).

Exercícios

1. Qual a diferença entre drive e driver?

2. Quais as duas grandes categorias de dispositivos de E/S existentes?

Explique-as e dê dois exemplos de dispositivos para cada uma delas.

3. Quais as principais funções de um controlador de dispositivos?

4. O que é e como funciona o DMA? Quais suas vantagens?

5. Explique detalhadamente a função e as responsabilidades de um

driver.

6. Os pedidos para acesso a um disco chegam a seu driver para os ci-

lindros 8, 17, 43, 32, 40, 6 e 33, nesta ordem. O tempo de seek é de 6 ms

por cilindro. Qual o tempo gasto com posicionamento para atender estas

requisições utilizando as políticas de seek abaixo:

a) FCFS

b) Cilindro mais próximo primeiro

Figura 30: – Algoritmo do elevador para o escalonamento das requisições do disco

Técnico em Informáticae-Tec Brasil 70

Page 71: Operacao de Com Put Adores e Sistemas Operacionais Completa

c) Algoritmo do elevador (braço inicialmente para cima)

Em todos os casos, o braço está inicialmente no cilindro 22.

7. Explique resumidamente RAID 0, RAID 1 e RAID 01.

8. O uso de RAID 01 elimina a necessidade de backups extras periódi-

cos? Por quê?

9. O que é independência de dispositivo?

e-Tec BrasilIntrodução ao Sistema Operacional 71

Page 72: Operacao de Com Put Adores e Sistemas Operacionais Completa

Referências

Ferreira,Silvio;“Hardware–Montagem,ConfiguraçãoeManutençãode

Micros”.EditoraAXCEL,(2005);

Machado,F.B.&Maia,L.P;“Arquiteturadesistemasoperacionais”,4.ed;

LTC(2007);

Shay,W.A;“Sistemasoperacionais”;MakronBooks(1996);

Silberschatz,A;Galvin,P.&Gagne,G;“AppliedOperatingSystemCon-

cepts”1th.ed;Wiley,(1999);

Tanenbaum,A.S;“Sistemasoperacionaismodernos”,2.ed;LTC–Livros

TécnicoseCientíficosEditoraS.A.(1999);

Tanenbaum,A.S;“Sistemasoperacionaismodernos”,2.ed;PersonPren-

tice Hall (2003).

Técnico em Informáticae-Tec Brasil 72