Você está na página 1de 28

Sistemas Operacionais

Prof. Luiz di Marcello maro/2013


1
I ntroduo a Sistemas Operacionais

1.1 - O que um Sistema Operacional?
Objetivo: Apresentar conceitos bsicos sobre hardware e software, fornecendo subsdios para que
os alunos sigam o curso. Partindo de uma configurao genrica de hardware sero apresentadas
as unidades funcionais de um computador, as quais serviro como base para estudo das gerncias
de processos, memria e entrada/sada.

1.1.1 O hardware e o sistema operacional
Para entendimento do conceito de sistema operacional, objeto desta disciplina, vamos tomar como
exemplo uma configurao de hardware (conjunto de componentes eletrnicos interligados,
composto de processador, memria principal, discos magnticos, monitor, impressora, entre outros
dispositivos) de um microcomputador PC, daqueles que, normalmente, temos em nossas casas. Basta
abrir o caderno de informtica de um jornal, ou mesmo de uma revista especializada, e escolher uma
configurao, dentre as tantas existentes com os mais diferentes preos:

Componente Especificao (capacidade, marca, modelo)
Placa-me (mainboard, motherboard)
Processador (CPU), clock e cache
Chipset
Memria Principal
Memria Secundria (armazenamento)
Placa / Monitor de vdeo
Kit Multimdia

Placa de rede
Conexes


Arquitetura do processador
Impressora, scanner
Intel DG31PR
Core2 Duo E7300 2,66 GHz, 3 MB de Cache L2, 1066 MHz FSB
Chipset Intel G31 Express
DDR2-800 MHz (PC2-6400), 4 GB
HD SATA 3G, 500GB, 7200rpm
Intel Graphics Media Accelerator 3100 / LCD 19
DVD+/RW SuperMulti LightScribe, Alta definio integrada a recursos de
som ambiente 5.1, Sintonizador de TV
Interface de rede Ethernet 10/100 BaseT
Frontal: 2 portas USB (2.0), fone de ouvido. Traseira: 2 PS/2, 1 conexo
VGA, 4 portas USB (2.0), 1 porta IEEE 1394, conexo de rede, entrada de
linha, sada de linha, entrada de microfone
CISC*
Impressora multifuncional HP Officejet J4600
* para fins de identificao da plataforma. Alguns fabricantes trabalham com arquiteturas hbridas.

Se numa prxima etapa, de posse de todos esses componentes, um bom tcnico conect-los de
maneira correta, ser que esse microcomputador funciona?
Alguns ajustes no SETUP (programa de
configurao/verificao, gravado em um componente da
placa-me) so necessrios, mas certamente o computador
ligaria e mostraria toda sua configurao de hardware.

A pergunta agora seria um pouco mais especfica: do jeito que
foi feita a montagem e configurao dos componentes, qual
seria a utilidade desse microcomputador? A resposta
simples, NENHUMA. Para que o usurio possa utilizar seus
programas em benefcio de suas atividades profissionais
(editar um texto, montar uma planilha eletrnica, desenvolver
um programa, criar um banco de dados, etc.), ou mesmo lazer
(jogos), necessrio que seja instalado um SOFTWARE
INDISPENSVEL que tem como funo mais abrangente
GERENCIAR todos os recursos (hardware) disponveis no
USURIOS
SISTEMA
OPERACIONAL
HARDWARE
TECLADO
MOUSE
PROCESSADOR
IMPRESSORA
DISCO MAGNTICO
MONITOR
PROGRAMADORES E ANALISTAS
OUTROS USURIOS
PROGRAMAS, SISTEMAS E APLICATIVOS
UCP
DISPOSITIVOS
DE E/S
MEMRIA
PRINCIPAL
Figura 1 - O que um sistema operacional?
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
2
sistema (microcomputador), chamado SISTEMA OPERACIONAL. Basicamente, um sistema
operacional possui partes que tratam da gerncia de cada um dos subsistemas bsicos de hardware
(processador, memria, dispositivos de E/S), que sero vistos mais adiante.

Outras definies e funes para sistema operacional:

um conjunto de programas indispensveis ao funcionamento do computador, cuja funo
servir de interface (ligao, elo) entre o homem e a mquina; fazer a comunicao entre o
usurio, o computador e seus perifricos;

um conjunto de rotinas executadas pelo processador, da mesma forma que os nossos
programas. Controla o funcionamento do computador, como um gerente dos vrios recursos
disponveis no sistema.

Desta forma, o sistema operacional facilita do acesso aos recursos do sistema, transparente para o
usurio, e no caso de muitos usurios, proporciona compartilhamento de recursos de forma
organizada e protegida.

Algumas atividades que envolvem o sistema operacional:

leitura de um disquete (acionar a cabea de leitura e gravao, posicionar trilha e setor, dados
do disco para a memria);

quando um usurio solicita a execuo de um programa, o sistema operacional deve alocar
espao na memria para carregar e acessar o programa.

Quais so as etapas anteriores carga do sistema operacional em um microcomputador?

Quando o microcomputador ligado, realiza o POST (Power On Self Test) que consiste em um conjunto de testes
para determinar se o hardware est funcionando corretamente (verificao da RAM, vdeo e outros dispositivos;
localizao da unidade de disco de inicializao; etc.). Estes testes so realizados a partir do BIOS (Basic Input
Output System), podendo variar conforme cada fabricante.
Se o BIOS for compatvel com a tecnologia Plug and Play, algumas rotinas adicionais sero realizadas para
reconhecimento dos dispositivos. Aps a inicializao dos dispositivos, o computador localiza e l o setor de
inicializao, contendo o arquivo carregador, que ser carregado para a memria principal e passar a controlar a
carga do sistema operacional (boot).


1.1.2 A diviso do hardware de um computador
Como j havia sido comentado, os componentes do hardware de um computador so divididos em
trs grupos/subsistemas bsicos, chamados unidades funcionais:

A. Unidade Central de Processamento (UCP ou processador) o crebro do computador,
responsvel pela execuo de todos os programas armazenados na memria principal. A UCP
formada por vrios componentes, dentre eles:
- UAL ou ULA (Unidade Aritmtica Lgica) que realiza operaes tais como adies e
deslocamento, necessrias execuo das instrues;
- UC (Unidade de Controle) que responsvel pela busca das instrues e determinao de
seus tipos;
- Registradores (PC, IR, MAR, MBR, SP e outros) que consistem em reas de memria para
armazenamento de resultados temporrios e informaes de controle. Dois registradores
importantes so o Program Counter (PC), que guarda o endereo da prxima instruo a ser
executada, e o Instruction Register (IR) que armazena a instruo que est sendo executada;
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
3
- Clock um dispositivo interno ao processador que gera pulsos eltricos sncronos em um
determinado intervalo de tempo (sinal de clock). A quantidade de vezes que este pulso se
repete em um segundo define a freqncia do clock, medida em Hertz. O sinal de clock
utilizado pela unidade de controle para a execuo das instrues;
- Cache uma memria auxiliar de alta velocidade, que tem por finalidade aumentar o
desempenho do sistema.

Cada programa formado por uma seqncia de instrues que ser executada pelo processador
do computador. O prprio sistema operacional conjunto de programas que devem ser
executados pelo processador para controlar o funcionamento do computador. A importncia da
execuo desse conjunto de programas, porm, evidente, pois sem o sistema operacional os
programas de usurio no seriam executados.

Vejamos alguns conceitos relacionados aos processadores de um computador:

1.a) Pipelining processamento pipeline nos passa a idia de linha de montagem, onde uma
tarefa dividida em uma seqncia de subtarefas, executadas em diferentes estgios, dentro da
linha de produo. A UCP executa a instruo em uma srie de pequenos passos, sendo assim:
se cada passo (intervalo de tempo) de n ns, cada instruo demorar 5n ns para ser executada.
Entretanto, uma instruo completa executada por P5 a cada n ns, para um ganho de cinco
vezes a velocidade.

B. Memria Principal (RAM) a parte do computador onde programas (instrues) e dados so
armazenados, sendo composta por unidades de acesso chamadas clulas, sendo que:

- A clula a menor unidade enderevel. A maioria dos fabricantes de computador padroniza
a clula em 8bits de tamanho (byte). Bytes so agrupados em palavras; um computador com
palavra de 16bits tem 2bytes/palavra, enquanto que um computador com palavra de 32bits
tem 4bytes/palavra. O significado de uma palavra que a maioria das instrues opera em
palavras inteiras, por exemplo, somando duas palavras. Ento uma mquina de 16bits ter
registradores de 16bits e instrues que manipulam palavras de 16bits;
- Todas as clulas em uma memria possuem o mesmo nmero de bits;
- Cada clula da memria possui um endereo nico; a quantidade de bits do endereo, que
nada tem haver com a quantidade de bits da clula, est relacionada ao nmero mximo de
clulas endereveis. Por exemplo, com 16bits podemos enderear 65536 combinaes
diferentes, ou seja, uma memria de 64K de capacidade de armazenamento.

Depois do processador, que o componente que executa as instrues dos programas, a memria
principal o componente mais disputado pelos programas, uma vez que os programas devem
estar carregados para serem enxergados e executados pelo processador. Esta memria
classificada como voltil, ou seja, no tem capacidade de preservar o seu contedo sem uma
fonte de alimentao. Por esse motivo devemos sempre gravar (memria secundria) nossos
arquivos quando estes forem alterados.
Unidade de
busca de
instruo
Analisador
de
instruo
Unidade de
clculo de
endereo
Unidade de
busca
de dados
Unidade de
execuo de
instrues
P1 P2 P3 P4 P5
Figura 2 - Diviso em subtarefas (processamento pipeline)
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
4

O tempo de acesso aos dados contidos na memria principal pode ser agilizado quando coloca-se
no computador uma memria auxiliar, chamada memria cache. As memrias cache so
memrias volteis de alta velocidade, atualmente localizadas no s no processador e na placa-
me, como tambm em diversos controladores e dispositivos. O tempo de acesso a um dado nela
contido muito menor que se estivesse na memria principal. Toda vez que o processador faz
referncia a um dado armazenado na memria principal, ele olha antes na memria cache. Se o
processador encontrar o dado na cache, no h necessidade do acesso memria principal; do
contrrio, o acesso obrigatrio. Neste ltimo caso, o processador, a partir do dado referenciado,
transfere um bloco de dados para o cache. O tempo de transferncia entre as memrias
pequeno, se comparado com o aumento do desempenho obtido com a utilizao desse tipo de
memria.

C. Dispositivos de Entrada/Sada So os componentes que permitem a comunicao entre o
computador e o mundo externo. Podem ser divididos em duas categorias:
os que servem apenas de interface homem/mquina - atravs deles, o processador e a
memria principal podem comunicar-se com os usurios (teclado, monitor, impressoras,
scanner, caneta tica, mouse). O desenvolvimento de interfaces cada vez mais amigveis
permite que as pessoas sem conhecimento especfico sobre informtica possam fazer uso de
computadores;
aqueles destinados ao armazenamento de programas e dados (discos e fitas magnticas),
chamados de memrias secundrias. Seu custo relativamente baixo, porm o tempo de
acesso maior quanto comparado ao tempo de acesso memria principal ou mesmo
memria cache.

No podemos esquecer que a UCP, a memria principal e os dispositivos de E/S encontra-se
interligados fisicamente atravs de linhas de comunicao denominadas barramentos. Um
barramento (bus) pode ser visto como um conjunto de fios paralelos, onde trafegam informaes.
Existem diversos tipos de barramentos, destinados a transmisso de informaes especficas, a
saber: barramento de dados, barramento de endereos e barramento de controle.

1.2 - Evoluo Histrica dos Sistemas Operacionais

Faremos um breve resumo da histria dos sistemas operacionais com objetivo ilustrativo, apenas
para termos uma idia da ordem cronolgica de fatos importantes. A evoluo do software dos
computadores, especialmente os sistemas operacionais, est relacionada ao desenvolvimento de
equipamentos cada vez mais velozes, menores no tamanho e com custo cada vez menor, e
necessidade de aproveitamento e controle desses recursos.

Primeira fase (1945-1955)
Computadores baseados em vlvulas (ENIAC, criado para fins militares de clculos balsticos,
com 18 mil vlvulas, 30 toneladas, consumo de cerca de 140.000 watts; EDVAC, utilizado por
universidades e tambm orgos militares; UNIVAC I, criado para auxiliar no censo americano de
1950, aplicao comercial);
Ausncia de sistema operacional: programao feita por painis, atravs de fios, sem uso de
linguagens de programao.

Segunda fase (1956-1965)
Criao do transistor (maior velocidade e confiabilidade no processamento, menor dissipao de
energia) e das memrias magnticas (acesso mais rpido aos dados, maior capacidade de
armazenamento e diminuio do tamanho dos computadores);
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
5
Surgimento das primeiras linguagens de programao (Assembly e Fortran) os programas
deixam de ser feitos diretamente no hardware;
Seqenciamento da execuo dos programas, sem interveno do operador, conhecido como
processamento batch (em lote);
Importantes avanos com a linha de computadores 7094 da IBM.

Terceira fase (1966-1980)
Diminuio do tamanho e dos custos de aquisio do hardware com a criao dos circuitos
integrados (CIs) e, posteriormente, dos microprocessadores lanamento da srie 360 de
computadores da IBM e da linha PDP-8 da DEC;
Evoluo dos processadores de E/S, possibilitando a utilizao da tcnica de compartilhamento
da memria e do processador denominada multiprogramao;
Substituio das fitas por discos magnticos, possibilitando a alterao na ordem de submisso
dos programas em lote (spooling);
Surgimento em 1969 do sistema operacional UNIX.

Quarta fase (1981-1990)
Miniaturizao e barateamento dos computadores atravs da integrao cada vez maior dos
componentes;
Surgimento dos microcomputadores pessoais (PCs) e do sistema operacional DOS (Disk
Operating System);
Sistemas multiusurio e multitarefa, permitindo a execuo de diversas tarefas de forma
concorrente;
Equipamentos com mltiplos processadores, processadores vetoriais e diversas tcnicas de
paralelismo em diferente nveis (multiprocessamento);
As redes de computadores se difundiram por todo mundo software de redes intimamente
relacionados ao sistema operacional e surgimento dos sistemas operacionais de rede.

Quinta fase (1991-????)
Grandes avanos de hardware (microeletrnica), software e telecomunicaes processadores e
memrias cada vez menores e mais baratos;
Processamento distribudo em sistemas operacionais;
Novas interfaces homem/mquina linguagens naturais, sons e imagens;
Sistemas multimdia, bancos de dados distribudos e inteligncia artificial.

1.3 - Conceitos Fundamentais de Sistemas Operacionais

1.3.1 Conceitos de software (utilitrios das linguagens e do sistema)
O hardware sozinho no tem utilidade, tornando-se necessria a existncia de um conjunto de
programas relacionado mais diretamente com os servios do sistema operacional, possibilitando
inclusive a criao de aplicativos pelos usurios desenvolvedores de sistemas (programadores).
Denominaremos de utilitrios esse conjunto de programas que apiam esse desenvolvimento.
Conheceremos alguns desses utilitrios e denominaes dadas a partes de software dos sistemas
operacionais.

Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
6
Tradutor
O surgimento das primeiras linguagens de montagem, e das linguagens de alto nvel, diminuiu a
necessidade de conhecimento de hardware por parte do programador, quando os programas eram
desenvolvidos em linguagem de mquina. A utilizao dessas linguagens facilitou a construo de
sistemas em muitos aspectos.
Porm, os programas escritos nessas linguagens (cdigo fonte) no esto prontos para serem
diretamente executados pelo processador, que s consegue executar instrues escritas em linguagem
de mquina. Essa converso, de linguagem de montagem ou alto nvel para linguagem de mquina,
iniciada pelo software denominado tradutor, onde toda representao simblica traduzida para
cdigo de mquina.
O cdigo gerado pelo tradutor denominado cdigo objeto, que, apesar de estar em cdigo de
mquina, ainda no executvel. O tradutor, dependendo da linguagem de programao utilizada
que esteja sendo transformada, pode ser chamado de montador (linguagens de montagem -
Assembly) ou compilador (linguagens de alto nvel Pascal, Fortran, Cobol).

O que Assembly?

Assembly (traduz-se como linguagem de montagem) uma
linguagem de smbolos alfabticos, que foi a primeira
evoluo para tornar os programas mais representativos da
inteno do programador e, portanto, mais inteligvel. O
quadro ao lado mostra diferentes modos de escrever um
programa, equivalente a um comando em PASCAL.
O montador Assembler desenvolvido para entender as
instrues de um processador especfico (Pentium, por
exemplo) e converte-las em cdigo binrio (instrues de
mquina) daquele processador. Sendo assim, no se pode
utilizar o montador para programas escritos na linguagem
Assembly de outro processador (Power PC, por exemplo).

Interpretador
Imagine um tradutor que no gere cdigo objeto e que a partir de um programa em cdigo fonte,
escrito em linguagem de alto nvel, traduza cada instruo e a execute em seguida. Esse software
denominado interpretador e sua maior desvantagem, como podemos perceber, o tempo gasto na
traduo das instrues de um programa toda vez que este for executado, j que no existe a gerao
de cdigo executvel. Algumas linguagens tipicamente interpretadas: Basic, APL e dBase.

Linker
Tambm chamado de linkage editor (editor de ligao) ou linkeditor, o utilitrio responsvel por
gerar a partir de um ou mais mdulos objeto, um nico programa executvel. Suas funes bsicas
so resolver todas as referncias simblicas existentes entre os mdulos e reservar memria para a
execuo do programa.
Montador
Compilador
TRADUTOR
MDULO
OBJETO
CDIGO
FONTE
PROGRAMA
EXECUTVEL
(LINGUAGEM DE MQUINA)
LINKER
INTERPRETADOR
CDIGO
FONTE
TRADUZ E EXECUTA
EM TEMPO REAL
Figura 3 - Tradutor, Linker e interpretador
X:=A+B-C;
(a) Comando em Pascal
000100100011 123
001100100100 324
010000100101 425
001000100110 226
(b) Programa em linguagem de mquina (c) Programa em hexadecimal
equivalente ao comando em (a) equivalente ao programa em (b)
PROG SOMA
LDA A
ADD B
SUB C
STR X
(d) Programa em Assembly equivalente ao comando em (a)
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
7
As referncias simblicas so resolvidas pelo linker atravs de pesquisa em bibliotecas do sistema ou
do prprio usurio, que so arquivos que contm diversos mdulos objeto e/ou definies de
smbolos.
J a operao de reserva de memria para execuo do programa conhecida como relocao. Em
sistemas operacionais mais antigos, a relocao era realizada uma nica vez, quando todos os
endereos simblicos eram traduzidos para endereos fsicos fixos e o programa executvel gerado
somente podia ser carregado em uma determinada regio da memria (cdigo absoluto). Porm, em
sistemas multiprogramveis esse tipo de relocao era invivel. A soluo permitir que o programa
seja carregado em regies diferentes toda vez que for trazido para a memria principal (cdigo
relocvel), sendo este tipo de relocao realizado por outro utilitrio denominado loader.

Loader
Tambm chamado de carregador, o utilitrio que carrega/leva o programa para a memria principal
para que este seja ento executado. Como pudemos constatar anteriormente, o procedimento de
carga varia com o cdigo gerado pelo linker, que em funo disso classificado como sendo do tipo
absoluto ou relocvel.

Depurador
Todos sabemos que os programadores podem cometer erros de lgica no desenvolvimento de
programas. O depurador (debugger) permite ao usurio controlar toda a execuo de um programa a
fim de depur-lo/torn-lo puro/detectar erros, atravs de alguns recursos:
Acompanhamento da execuo instruo por instruo;
Monitoramento e alterao do contedo das variveis (watchpoint);
Implementao de pontos de parada no decorrer da execuo do programa (breakpoint).

Linguagem de controle ou de comando
a forma mais direta de um usurio se comunicar com o sistema operacional, possibilitando ao
usurio acesso a rotinas especficas do sistema. Os comandos quando digitados pelo usurio so
interpretados por um programa denominado interpretador de comandos ou shell, que verifica a
sintaxe do comando, envia mensagens de erro e faz chamadas na rotinas do sistema.
A evoluo de tais linguagens origina as interfaces grficas e no futuro, com a introduo das
linguagens naturais, os sistemas passaro a reconhecer comandos falados e escritos, como fazemos
habitualmente em nosso dia-a-dia.

Linguagem de mquina
a linguagem de programao que o processador realmente consegue
entender. Cada processador possui um conjunto nico de instrues de
mquina definido pelo fabricante, que especifica detalhes, como
registradores, modos de endereamento e tipos de dados. O programa
nessa linguagem totalmente codificado em formato binrio.

Aps a exposio de todos esses conceitos, conclumos que um sistema
computacional no to e somente hardware e software, cada qual
representado por uma nica camada. Desde os primeiros
computadores, nos quais a programao era realizada em painis,
atravs de fios, exigindo grande conhecimento do hardware, at o
surgimento do sistema operacional, tornando a interao entre usurio
e computador mais simples e confivel, o programador afasta-se cada
vez mais da complexidade do hardware. Podemos ento, considerar o computador como um conjunto
hierrquico de nveis ou camadas. Com a evoluo das arquiteturas de computadores e das
Aplicativos
Utilitrios
Sistema Operacional
Linguagem de Mquina
Microprogramao
Hardware (lgica digital)
H
A
R
D
W
A
R
E
L
I
N
G
U
A
G
E
N
S

D
E
P
R
O
G
R
A
M
A

O

E

O
S
I
S
T
E
M
A

O
P
E
R
A
C
I
O
N
A
L
Figura 4 - Mquina de nveis
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
8
linguagens de programao, atualmente a maioria dos computadores possui a estrutura mostrada na
figura ao lado.

1.3.2 Classificao de sistemas operacionais

Os sistemas operacionais podem ser classificados sob trs pontos de vista diferentes:

1.3.2a Quanto ao nmero de usurios
Do ponto de vista do nmero de usurios que utilizam o sistema, podemos ter um sistema
operacional:
monousurio apenas um e s um usurio trabalha de cada vez. Ex.: DOS, Window95 e
Windows NT.
multiusurio permite o uso da mquina por vrios usurios ao mesmo tempo, ou seja, cada
usurio pode executar um ou mais programas simultaneamente. Ex.: Unix e o OpenVMS.

considerado freqentemente que o NT 4.0 SERVER um sistema operacional "multiusurio", mas isto muito
enganoso. Um servidor NT validar um usurio autorizado, mas uma vez o usurio logado na rede do NT, ele/ela pode
acessar arquivos e impressoras. O usurio do NT no pode rodar qualquer aplicao no servidor NT (para tirar o proveito
do poder superior de processo que o hardware do servidor tem). Um usurio NT somente pode rodar aplicaes especiais
que foram escritas em dois pedaos, i.e. aplicaes de cliente/servidor. J a verso 2000 SERVER multiusurio.
Quando um usurio loga-se em um servidor UNIX, ele/ela podem rodar qualquer aplicao (contanto que o usurio esteja
autorizado para isto), levando a carga de processo assim para fora de sua estao de trabalho. Isto tambm inclui
aplicaes grficas e o padro em todos os sistemas operacionais UNIX. Por esse motivo, dizemos que o NT no
inerentemente um sistema multiusurio.

1.3.2b Quanto utilizao dos recursos
Dependendo da forma como os programas so executados, de forma seqencial ou concorrente, os
sistemas operacionais podem ser classificados como:

Sistema monoprogramado ou monotarefa - processador, memria principal e dispositivos de E/S
(perifricos) ficam dedicados a um nico usurio/programa. Os programas so executados
instruo-a-instruo, at que seu processamento seja concludo, ou seja, todos os recursos da
SISTEMAS
OPERACIONAIS
DE REDE
SISTEMAS
DISTRIBUDOS
SIMTRICOS
ASSIMTRICOS
SISTEMAS
OPERACIONAIS
MONOPROGRAMVEIS/
MONOTAREFA
MULTIPROGRAMVEIS/
MULTITAREFA
SISTEMAS COM
MLTIPLOS PROCESSADORES
BATCH
TIME-SHARING
REAL-TIME
FORTEMENTE
ACOPLADOS
FRACAMENTE
ACOPLADOS
Tipos de processamento:
Comunicao entre UCPs
e compartilhamento de memria
principal e dispositivos de E/S:
Figura 5 - Classificao dos sistemas operacionais
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
9
mquina so alocados para um nico programa at a concluso de sua execuo. Por exemplo,
enquanto o programa aguarda a digitao de um dado, o processador fica ocioso sem realizar
qualquer tarefa; a memria subtilizada caso o programa no a preencha totalmente e os
perifricos, como discos e impressoras, nem sempre so utilizados de forma integral. O sistema
operacional s tem capacidade de controlar e gerenciar um programa de cada vez.
So de simples implementao, se comparados a outros sistemas, no havendo muita preocupao
com problemas de proteo, pois s existe um usurio/programa utilizando-o.
Exemplos:
- Esto tipicamente relacionados ao surgimento dos mainframes e a introduo dos
computadores pessoais e estaes de trabalho;
- O sistema DOS pode ser considerado um sistema monoprogramado com algumas
caractersticas especiais; os programas TSR (Terminate and Stay Resident) tm a
capacidade guardar o contexto do que estava sendo executado, desviando o fluxo original
de execuo, ou seja, pode haver um nmero arbitrrio de processos na memria, mas
somente um deles pode estar ativo; apesar de suportar a existncia simultnea de vrios
processos, ele no um sistema multiprogramado.

Sistema multiprogramado ou multitarefa - Os recursos da mquina so alocados de modo
dinmico entre o nmero de programas ativos de acordo com o nvel de prioridade ou o estgio de
execuo de cada um dos programas. O sistema operacional gerencia o acesso concorrente aos
seus diversos recursos, de forma ordenada e protegida, pelos diversos programas. Dessa forma
possvel aumentar a produtividade e reduzir os custos de utilizao do sistema, aproveitando
melhor o hardware. Por exemplo, enquanto um programa espera por uma operao de leitura ou
gravao em disco, outros programas podem estar sendo processados no mesmo intervalo de
tempo.
So mais complexos e eficientes do que os sistemas monoprogramados, j que vrios programas
utilizam os mesmos recursos. Podem ser classificados pela forma com que suas aplicaes so
gerenciadas/interao com os usurios, sendo que um sistema operacional pode suportar um ou
mais desses tipos de processamento:

a) BATCH (LOTE) - Os programas quando executados so armazenados em disco ou fita,
onde esperam para serem atendidos. Normalmente, os programas (chamados de jobs ou
tarefas) que so executados nesses sistemas no exigem interao com os usurios (por
exemplo, compilaes e linkedies);

b) TIME-SHARING (TEMPO-COMPARTILHADO) - O sistema operacional aloca uma fatia
de tempo (time-slice) do processador para cada usurio. Caso o programa do usurio no
esteja concludo nesse intervalo de tempo, ele substitudo por um de outro usurio, e fica
esperando por uma nova fatia de tempo. Permitem a interao dos usurios com o sistema;

c) REAL-TIME (TEMPO-REAL) - Semelhante ao time-sharing, sendo a maior diferena o
tempo de resposta exigido na execuo. Enquanto em sistemas de tempo compartilhado o
tempo de resposta pode variar sem comprometer as aplicaes em execuo, nos sistemas
de tempo real os tempos de resposta devem estar dentro de limites rgidos. No existe a
idia de fatia de tempo, um programa executa o tempo que for necessrio, ou at que
aparea outro prioritrio em funo de sua importncia. Essa importncia ou prioridade de
execuo controlada pela prpria aplicao e no pelo sistema operacional, como
acontece no sistema de tempo-compartilhado. Esse tipo de sistema est normalmente
presente em controle de processos, como no monitoramento de refinarias de petrleo,
controle de trfego areo, usinas termoeltricas e nucleares, ou em qualquer aplicao onde
a segurana fator fundamental.

Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
10
Ex.: Windows 95/98, NT, 2000 e XP, OS/2, UNIX e LINUX, entre outros.

1.3.2c Quanto ao nmero de processadores
Do ponto de vista do nmero de processadores, podemos ter:

Sistema monoprocessado - Caracteriza-se por possuir um nico processador, sendo este
controlado pelo sistema operacional instalado. Ex.: microcomputador PC com Windows XP
Home Edition. J a verso Professional Edition possui suporte interno a sistemas de
multiprocessadores e se enquadraria na definio abaixo;

Sistema multiprocessado - Caracteriza-se por possuir mais de um processador, sendo que estes
podem compartilhar o mesmo sistema operacional, ou cada um pode possuir o seu prprio
sistema. Mltiplos processadores permitem que vrios programas sejam executados ao mesmo
tempo, ou que um programa seja dividido em subprogramas/threads, para execuo simultnea
por mais de um processador. Sistemas com mltiplos processadores possibilitam aumentar a
capacidade computacional com menor custo (escalabilidade), alm de permitirem a
reconfigurao e o balanceamento do sistema. A reconfigurao a capacidade de um sistema
poder continuar o processamento, mesmo se um dos processadores falhar ou parar de funcionar,
embora com menor capacidade de computao. O balanceamento possibilita distribuir a carga de
processamento entre os diversos sistemas da configurao, melhorando o desempenho como um
todo.
O multiprocessamento mantm todos os conceitos de multiprogramao, s que aplicados a vrios
processadores. Com o multiprocessamento, novos problemas de concorrncia foram surgindo,
pois vrios processadores podem estar acessando as mesmas reas de memria, alm da
dificuldade de interligao eficiente dos processadores, memria e perifricos. Para o
desenvolvimento de sistemas operacionais com mltiplos processadores importante que se
conhea a forma de comunicao entre esses processadores e o grau de compartilhamento da
memria principal e dos dispositivos de E/S. Em funo desses fatores, podemos classificar os
sistemas em:

fortemente acoplados dois ou mais processadores (multiprocessadores) compartilhando uma
nica memria e controlados por apenas um nico sistema operacional. Podem ser divididos
conforme a simetria existente entre os processadores, ou seja, se todos os processadores
podem executar ou no as mesmas funes:
- nos sistemas assimtricos ou mestre/escravo somente um processador (mestre) pode
executar servios do sistema operacional, como realizar operaes de E/S. Sempre que um
processador do tipo escravo precisar realizar uma operao de E/S, ter que requisitar o
servio ao processador mestre ;
- nos sistemas simtricos (SMP Simmetric MultiProcessing) todos os processadores
realizam as mesmas funes, ficando a cargo de um nico processador algumas poucas
funes, como, por exemplo, a inicializao (boot). Ex.: microcomputador PC com vrios
processadores com sistema operacional Windows 2000 SERVER, que implementa SMP;

fracamente acoplados caracterizam-se por possuir dois ou mais processadores
(multicomputadores), conectados atravs de linhas de comunicao, onde cada um desses
sistemas funciona de forma independente, possuindo seu(s) prprio(s) processador(es),
memria principal e dispositivos de E/S. Em uma rede multicomputadores, onde existem dois
um mais sistemas independentes, tambm chamados de ns, hosts ou estaes, podemos
classificar os sistemas como sendo:
- Sistemas operacionais de redes cada n possui seu prprio SO, alm de hardware e
software que possibilitam ao sistema ter acesso o outros ns da rede. Cada n totalmente
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
11
independente um do outro, podendo inclusive possuir sistemas operacionais diferentes. Os
sistemas operacionais de redes permitem cpia de arquivos, impresso e at gerncia
remotas, alm de servios de correio eletrnico, emulao de terminais. A idia prover o
compartilhamento de recursos e troca de informaes;
- Sistemas operacionais distribudos cada n tambm possui seu prprio sistema
operacional, memria principal, processador e dispositivos de E/S. Porm, existe um
relacionamento mais forte entre esses ns, que, geralmente, possuem o mesmo SO. Para
o usurio e suas aplicaes, o conjunto de computadores visto como um nico sistema,
como se no existisse uma rede de computadores. A grande vantagem a possibilidade do
balanceamento de carga, ou seja, quando um programa admitido para execuo, o
sistema escolha o n que est com menor carga de processamento e este vai execut-lo.
Tambm permitido o compartilhamento de recursos independentemente do computador
em que a aplicao estiver sendo executado. Esse tipo de sistema distribudo muitas
vezes chamado de cluster.

1.3.3 I mplementao multitarefa

Operaes de E/S
A transferncia de dados entre o mundo externo e a memria possibilitada atravs do uso de
dispositivos perifricos de Entrada/Sada. Estes dispositivos so conectados ao conjunto memria e
processador por portas de E/S de dados, atravs das quais ocorre a transferncia, bem como controle
e monitorao do estado dos dispositivos.

E/S controlada por programa
O controle das operaes de E/S era feito pela UCP. Os programas continham instrues de E/S que
orientavam essas operaes e o programador necessitava conhecer detalhes especficos de cada
perifrico. Um novo hardware, denominado controlador (ou interface), surgiu e a UCP no se
comunica mais de forma direta com os dispositivos de E/S. Todo acesso aos dispositivos era ento
feito atravs do controlador, o que simplificava as instrues de E/S, por no ser mais necessrio
especificar detalhes de operao dos dispositivos, tarefa esta realizada pelo controlador.

Como verificar o trmino da operao? Com base nesse novo hardware, existiam duas formas de
controle das operaes de E/S pela UCP:

Busy wait - a UCP sincroniza com o dispositivo de E/S o incio da transferncia de dados e, aps
iniciada esta transferncia, o sistema ficava PERMANENTEMENTE testando o estado do
dispositivo para saber se a operao tinha chegado ao final. Desta forma a UCP mantinha-se ocupada
at o trmino da operao de E/S, caracterizando um procedimento de "espera ocupada" (busy wait),
desperdiando-se tempo precioso para execuo de outros programas;

Polling - aps o incio da transferncia de dados, a UCP ficava livre para se ocupar de outras
tarefas, sendo o sistema operacional responsvel por realizar um teste PERIODICAMENTE para
saber do trmino ou no da operao de E/S em cada dispositivo (polling). Esse paralelismo de
operaes permitiu o surgimento dos primeiros sistemas operacionais multiprogramveis. O principal
problema associado a esse mecanismo consistia no fato de que difcil a determinao do correto
intervalo de tempo. Caso o tempo fosse superior ao que seria adequado, passaria a ocorrer um atraso
no servio das operaes de E/S associadas ao dispositivo; j se o tempo fosse inferior ao que seria
adequado, ser perdido tempo de processamento ao ser executada a leitura repetitiva do estado do
dispositivo.

Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
12
E/S controlada por interrupo
Com a implementao do mecanismo de
interrupo no hardware dos computadores, as
operaes de E/S puderam ser realizadas de
uma forma mais eficiente. Ao invs do
sistema operacional testar periodicamente o
estado dos dispositivos, o prprio dispositivo,
atravs do controlador de interrupes,
interrompia a UCP. A UCP executa a instruo de E/S (incio da operao de E/S) e, como a resposta
por parte do dispositivo no seria imediata, o fluxo de execuo de instrues era desviado para um
outro programa.

Com esse controle, denominado de E/S controlada por interrupo, a UCP fica livre para o
processamento de outras tarefas at que fosse interrompida. Existem duas classes de interrupo:

Interrupo interna ou de programa (exceo) - so geradas em decorrncia de falhas ocorridas
durante a execuo de um programa (eventos sncronos), sendo previsveis, pois dependem da
execuo do programa. Como exemplos podemos citar a ocorrncia de uma operao de diviso por
zero, ou de uma situao de overflow (transbordamento);
Interrupo externa - so causadas por um sinal externo UCP, normalmente resultante dos
dispositivos ou do prprio sistema operacional (eventos assncronos). Ocorrem independentemente
da execuo do programa corrente, podendo ser classificadas como mascarveis (podem ter sua
aceitao desabilitada pelo processador) ou no mascarveis (deve ser sempre atendida/tratada).

Com base nas figuras duas figuras acima, o funcionamento das interrupes pode ser resumido da
seguinte forma:

No decorrer da execuo das instrues de um programa (PROG_1), solicitada uma operao de
E/S, por exemplo, um determinado trecho deve ser copiado, do disco para memria principal, para
que o fluxo de execuo deste programa continue;
Como a velocidade de acesso aos dispositivos de E/S maior que a velocidade de processamento
das instrues por parte do processador, o processador desvia o fluxo de execuo de instrues para
um outro programa, sendo que ao final da execuo de cada instruo, teste se h alguma interrupo
pendente;
O pedido de interrupo normalmente gerado, no caso de interrupo externa, atravs da
ativao de um sinal conectado ao processador (1). Ao ocorrer o pedido de interrupo, o
ULA UC
REGISTRADORES
PC
MAR
MBR
SP
UCP
CONTROLA
DOR DE INTER
RUPES
1
2
IRQ1 - TECLADO
IRQ3 - FAX/MODEM
IRQ7 - IMPRESSORA
IRQ14 - DISCO RGIDO
Figura 6 - Hardware controlador de interrupes
01101010
10100010
_ _ _
_ _ _
01010100
PROG_1
01101010
10100010
_ _ _
_ _ _
01010100
PROG_2
MEMRIA PRINCIPAL (RAM)
SALVAR
CONTEXTO
IDENTIFICA
TIPO
OBTM
ENDEREO
RECUPERA
CONTEXTO
IRQ ENDEREO
1 00A5
3 00B2
7 00CE
VETOR DE
INTERRUPES
ROTINAS DE
TRATAMENTO
01101010
01010100
01000010
01111101
01000010
01111101
00A5
00B2
00CE
REA DE MEMRIA DO SISTEMA OPERACIONAL
PROG_1 SOLICITA
UMA OPERAO
DE ENTRADA/SADA
PROG_2 INTER
ROMPIDO E O SO
VAI TRATAR A INTER
RUPO
3
4
?
Figura 7 - Mecanismo de interrupo
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
13
processador interromper a execuo do programa, salvar o valor atual dos seus registradores
(contexto) (3), identificar a origem do pedido de interrupo e em seguida, executar a rotina
associada ao tratamento (interrupt handler) da situao que levou ocorrncia do pedido de
interrupo (4);
Essas rotinas de tratamento so parte do SO e encontram-se carregadas na memria principal. O
endereo de cada rotina obtido em uma tabela, chamada vetor de interrupes (interrupt vector
table).

Exemplo em um microcomputador XT: o processador
principal (8086, ou 8088) possui um pino de interrupo; a
este pino de interrupo est ligado um circuito integrado
(8259) que o controlador de interrupes; cada dispositivo
de E/S est ligado a uma linha IRQ (Interrupt ReQuest) desse
integrado; existem 8 linhas IRQ, numeradas de 0 a 7; a IRQ 0
possui a mais alta prioridade; interrupes podem ser inibidas
tanto no 8086 como no 8259.

Acesso Direto Memria (Direct Memory Access DMA)
Essa tcnica usada em transferncias de grupos de dados em casos nos quais a UCP no pode ser
sobrecarregada. Em uma transferncia de DMA, seqncias de dados presentes em uma rea de
memria so enviadas diretamente para um dispositivo de E/S, sem interveno direta da CPU.
Quem faz o trabalho de transferncia o circuito controlador de DMA (antes um chip 8237A, agora
embutido no chipset da placa-me). A UCP indica ao controlador de DMA, qual o nmero de bytes
a serem transferidos e qual o endereo inicial de memria para transferncia. Ao trmino da
transferncia, o controlador de DMA avisa ao dispositivo, que por sua vez interrompe a CPU para
indicar que o trecho j foi transferido. Transferncias de DMA tambm so usadas em dispositivos
SCSI.

Tcnica de Buffering
A tcnica de buffering consiste na utilizao de uma rea de memria (voltil) para transferncia de
dados entre os perifricos e a UCP, denominada buffer. Com isso, a UCP pode manipular os dados
antes de transferi-los para o dispositivo perifrico de E/S, reduzindo a perda de eficincia decorrente
da disparidade existente entre o tempo de processamento e o tempo gasto para realizao de uma
operao de E/S. Abaixo, alguns exemplos do emprego desta tcnica:

Editores de texto empregam buffer para manter as alteraes que devem ser gravadas; ento
quando o usurio salva o arquivo, o editor atualiza o arquivo em disco com o contedo do buffer. Isto
muito mais eficiente do que acessar o arquivo em disco cada vez que o usurio realizar uma
alterao. O nico cuidado que deve ser tomado que, se tratando de uma rea de memria voltil,
todos os dados sero perdidos caso haja alguma falha no computador durante a edio do texto;
Alguns sistemas operacionais costumam utilizar uma rea para buffer de disco onde armazenam
temporariamente os dados lidos do disco.

Tcnica de Spooling
O SPOOL (Simultaneous Peripheral Operations On- Line) consiste na utilizao de um meio
magntico de armazenamento (disco, fita) como um grande buffer. Alguns exemplos:

A aplicao mais comum do conceito de spool em impressoras. Os documentos so preparados
para impresso e armazenados em uma rea no disco. Posteriormente, enquanto a impressora l e
imprime esses trabalhos pendentes, outras operaes podem ser realizadas pelo processador;
Processamento batch de tarefas em um sistema.
IRQ Dispositivo
0
1
2
3
4
5
6
7
Clock
Teclado
Porta assncrona 1
Porta assncrona 2
Controlador de disco fixo
Controlador de disco flexvel
Controlador de impressora
Vdeo
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
14

Reentrncia
definida como a capacidade de um cdigo de programa, chamado cdigo reentrante, poder der
compartilhado por diversos usurios, ou mesmo outros processos, exigindo apenas uma cpia do
programa na memria. O cdigo reentrante no pode ser modificado enquanto estiver em execuo.
Cada usurio ou processo que esteja utilizando esse cdigo pode estar executando um ponto diferente
e manipulando sua prpria rea de dados.

Exerccios de reviso para a prova
1. Explique como funciona o mecanismo de interrupo, passando pelos conceitos de contexto do programa, rotina de
tratamento, vetor de interrupes.
2. Para que serve o controlador de pedidos de interrupo no hardware dos computadores?
3. Em sistemas mais primitivos, no que diz respeito s operaes de Entrada/ Sada, a comunicao entre a UCP e os
perifricos era controlada por um conjunto de instrues especiais. Explique como funcionava.
4. Como funciona a tcnica de DMA desenvolvida para liberar a UCP em caso de transferncia de dados?
5. Explique as tcnicas de buffering e spooling.
6. De que forma houve melhoria do spooling com o surgimento de dispositivos de acesso direto (discos magnticos)?
7. Com o mecanismo de espera ocupada era possvel o sistema operacional suportar multitarefa? Justifique
8. Qual o tempo ideal para implementao do mecanismo de pooling? Comente.
9. Explique a que uma interrupo? Que tipos de eventos no sistema podem ocasion-la?
10. O que significa uma interrupo para o programa que encontra-se executando na UCP?
11. Apresentado o seguinte problema: ocorre uma interrupo interna (exceo) na execuo de um programa,
considerada uma entrada de dados feita pelo usurio. Caso o programa seja executado novamente, com a mesma entrada
de dados, haver exceo na mesma instruo? Justifique.
12. Ao final do tratamento de uma interrupo, o programa ser executado pelo processador necessariamente o que
acabou de ser interrompido para que houvesse a tratamento dessa interrupo? Justifique.
13. Estabelea a correspondncia (obs.: cada opo pode corresponder a um, nenhum ou mais de um parnteses):

A) Buffer
B) Busy Wait
C) Interrupo (externa)
D) Exceo (interna)
E) Polling
F) Spooling
G) Tcnica de DMA
H) Controlador de interrupes

( ) Para que o perifrico possa falar com a UCP, ele
obtm a ateno atravs de um sinal eletrnico
( ) Em determinados intervalos de tempo, o sistema
operacional deveria realizar um teste para saber do
trmino ou no das operaes de E/S em cada
dispositivo
( ) Consiste em um processador com capacidade de
executar programas de E/S. As instrues de E/S so
armazenadas na memria principal pela UCP e
executadas por este processador
( ) Pode ser gerada pelo sistema operacional ou por
algum dispositivo de hardware
( ) Uma rea de memria voltil utilizada para
transferncia de dados de forma a minimizar a
disparidade na velocidade de processamento entre UCP
e os dispositivos de E/S
( ) Hardware responsvel por avaliar as interrupes
geradas e suas prioridades de atendimento
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
15
( ) responsvel pela execuo de todos os programas
do sistema, os quais necessariamente devem estar
armazenados na memria principal
( ) Um cdigo de programa pode ser compartilhado
por diversos usurios ou processos, cada um
manipulando dados prprios
( ) originada por eventos sncronos, resultado direto
da execuo de um programa. So previsveis e caso o
programa seja executado novamente, com a mesma
entrada de dados, ocorre sempre na mesma instruo

Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
16
Processos e Estrutura de Sistemas Operacionais
Parte I Processos

Conceito de Processo

Num ambiente monotarefa vimos que a CPU executa um programa seqencialmente, utilizando os
recursos de hardware e software na ordem em que so solicitados e aguardando o trmino da
execuo de um para comear o outro. Quando estudamos os sistemas batch, vimos que a CPU
executava um job tambm seqencialmente, solicitando os recursos na ordem em que eram pedidos.
J no ambiente multitarefa, entendemos que o que est executando no processador muda
constantemente. Isso ocorre para dar a impresso a cada usurio (no caso multiusurio) ou a cada
tarefa do mesmo usurio (monousurio) que a mquina est a disposio de somente aquele
usurio/tarefa. Ns vimos que esses pedaos de programas ou tarefas que ora estavam sendo
executados pela CPU, ora estavam fazendo um acesso de E/S, ora estavam aguardando para
execuo na CPU, etc. na verdade ficavam disputando os recursos (CPU, E/S, memria) entre si.
Isso nos leva ao conceito de um processo esses pedaos de programas ou tarefas que esto
fazendo acesso concorrente aos recursos do sistema.

O estado atual do programa na CPU tem que ser salvo para que o programa possa retornar e
continuar sua execuo como se no tivesse sido interrompido. Isso inclui no s os registradores
(como j estudamos no mecanismo de interrupo) como tambm outros detalhes como, por
exemplo, quais eram os arquivos que estavam abertos. Podemos dizer que este estado completo do
que estava em execuo define um ambiente de execuo o PROCESSO. Ou seja, processo
o ambiente onde se executa um programa, a estrutura responsvel pela manuteno de todas as
informaes necessrias a execuo de um programa.


Materializao do Processo

Para poder definir o ambiente completo de execuo e assim
materializar o conceito de processo, o sistema operacional mantm
uma estrutura de dados que contm os todos os detalhes necessrios
para esta definio. Esta estrutura chama-se PCB (Process Control
Block = BLOCO DE CONTROLE DO PROCESSO). Alguns sistemas
do o nome de BLOCO DE CONTROLE DA TAREFA (task control
block).

O contedo exato do PCB varia com o sistema operacional, mas
basicamente contm dados como: ponteiro (uma forma de indicar
algum outro processo), endereo de memria, nome do processo,
tamanho, usurio que criou o processo, registradores (PC, SP, etc.),
grupo de usurios que podem acessar o processo, prioridade, pilha,
classe de escalonamento, lista de arquivos abertos, quando o processo
foi iniciado, estado do processo, tempo acumulado de execuo, etc.

atravs de vrias chamadas de sistema (como ser visto a seguir)
que o sistema operacional gerencia os processos. Todos esses elementos que definem o ambiente de
execuo, o processo, podem ser classificados em trs grandes grupos: contexto de hardware,
contexto de software e espao de endereamento.

Ponteiros
Estado do processo
Nome
Prioridade
Registradores
Limites de memria
Arquivos abertos
_ _ _
Figura 8 - Bloco de
Controle de Processo (PCB)
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
17

O tempo gasto com a troca de contexto vai variar com as especificaes do hardware. Basicamente:
tamanho da memria, nmero de registradores que devem ser copiados, existncia ou no de
instrues especiais (exemplo: uma instruo simples para carregar ou salvar registradores; os
processadores RISC possuem essas instrues load e store), tamanho do disco (para swapping),
velocidade da CPU.

A troca de contexto pode produzir um gargalo (bottleneck) fazendo decair em muito a performance.
Atualmente h uma soluo para esse problema: a utilizao de threads. O uso de threads passa pela
programao, o que no simples, e pelo suporte por parte do prprio sistema operacional, que deve
suportar sua criao e controle. A idia principal diminuir o tempo gasto na criao/eliminao de
um PCB para cada subprocesso criado. Sendo assim, subprocessos se diferenciam de threads pelo
espao de endereamento independente que possuem. Threads compartilham o mesmo espao de
endereamento de um processo, passando pelos mesmos estados de um processo.

Contexto de Hardware

o contexto que copiado para o hardware (CPU) para que a execuo possa ocorrer. Basicamente
os registradores : PC (program counter, que contm o endereo da prxima instruo a ser
executada) , SP (stack pointer, o ponteiro de pilha, que o registrador que contm o endereo de
memria do topo da pilha), a pilha toda (para que a CPU, ao completar uma funo ou subrotina,
saiba para que endereo ir retornar), registrador de estado (PSW).

Contexto de Software

So as caractersticas que vo influir na execuo. O contexto de software define basicamente 3
grupos de informaes : identificao, cotas e privilgios.

Identificao Cada processo ao ser criado recebe uma identificao, que um nmero e,
normalmente, tambm um nome. Chamamos esse nmero de PID (Process I Dentification =
identificao do processo). O processo pode receber tambm, de acordo com o S.O., um
nmero relacionado identificao do usurio que o criou UID (User I Dentification =
identificao do usurio) e uma identificao do grupo de usurios aos quais permitido o
acesso a arquivos, processos, etc.: GID (Group identification = identificao do grupo).
Esses dois ltimos esto ligados ao modelo de segurana implementado por alguns S.O. para
permitir acessos ou no. Por exemplo, um usurio no pode normalmente deletar os processos
de outros. O super-usurio pode deletar todos os processos do sistema.

Um processo pode criar um ou mais processos (estes so chamados de processos-filho = child
process). O processo filho tem um PPID (Parent Process I Dentification = identificao do
processo-pai), para que o filho possa retornar ao pai. O PPID de um processo-filho o UID
do processo-pai.

Cotas Limites de cada recurso que pode ser utilizado pelo processo. Esses limites so
determinados para o processo no momento de sua criao. Alguns sistemas incluem tambm,
dinamicamente, porcentagem do recurso j utilizado ou que ainda pode ser utilizado.
Basicamente so: nmero mximo de arquivos abertos simultaneamente, tamanho mximo de
memria que o processo pode alocar, nmero mximo de operaes de E/S pendentes, tamanho
mximo de buffers para o acesso de E/S, nmero mximo de subprocessos que podem ser
criados.

Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
18
Privilgios Definem o que um processo pode ou no fazer em relao ao sistema e aos
outros processos. J vimos ( acima ) os privilgios associados segurana. Existem outros
privilgios associados operao e gerncia do sistema.

Espao de Endereamento

a rea da memria onde reside o processo. Quando um programa colocado na memria principal,
para que a sua execuo seja possvel, temos que as instrues esto arrumadas em ordem de
execuo em endereos adjacentes. Logo aps ao bloco de instrues temos a seo de dados que
sero utilizados pelo programa. Da mesma forma um processo reside na memria principal com o
seu cdigo, em endereos adjacentes, seguido de um bloco de dados.

Estados do processo

A poltica implementada, normalmente, a de vrias listas de acordo com o que o processo precisa
fazer. Os nomes aqui citados e a quantidade de estados que um processo pode ter vo diferir de um
SO para outro. Ao ser criado o processo vai para a lista de PRONTO (READY), que indica pronto
para comear a execuo. Assim que houver oportunidade o SO vai selecion-lo (escalonamento)
para ocupar a CPU. Normalmente usa-se a poltica de listas encadeadas, ou seja, ao colocar na lista o
SO j leva em conta as prioridades. Em cada lista o ponteiro de um processo aponta (indica) o
prximo processo da lista.

Quando estiver executando, esse processo pode: terminar, fazer uma requisio de I/O, ser
interrompido, ter sua fatia de tempo terminada, criar um novo processo. Enquanto est executando,
ou seja, ocupando a UCP, o processo est no estado EXECUO (RUNNI NG).

Quando faz uma requisio de I/O o processo pode ter que esperar pela liberao de algum
dispositivo de I/O. Cada dispositivo tem a sua lista. Nesse caso o processo fica no estado de
ESPERA (WAI T). Se o recurso do sistema desejado no est disponvel ainda, podemos ter uma
diferenciao do estado de ESPERA, chamado de estado BLOQUEADO. Um processo pode estar
no estado de ESPERA quando ele cria um processo-filho e tem que esperar pelo trmino do
processo-filho para continuar a sua execuo. Pode tambm ocorrer que um processo no precise
esperar pelo trmino do processo-filho para voltar sua execuo, nesse caso os processos pai e filho
executam concorrentemente.

O trmino de um processo envolve uma chamada de sistema, que faz com que o SO retire o
processo da lista e desaloque o seu PCB. Se h processos-filho ainda no terminados, o SO aborta
esses processos-filho.

Mudanas de estado

Pelo que vimos acima, diversos eventos causam uma mudana de estado em um processo.
Chamamos de eventos voluntrios aqueles gerados pelo prprio processo e de eventos
involuntrios aqueles gerados pelo sistema operacional.

Existem basicamente quatro mudanas de estado do processo, conforme ser visto abaixo.

Tipos de processo

Os processos podem ser classificados de acordo com o tipo de processamento que realizam, a saber:

Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
19
CPU-bound (ligado CPU) passa a maior parte do tempo no estado de execuo, ou seja,
utilizando o processador. Esse tipo de processo realiza poucas operaes de E/S.
I/O-bound (ligado E/S) passa a maior parte do tempo no estado de espera, pois realiza um
elevado nmero de operaes de E/S.

3.1) O que ocorre quando um programa deixa a CPU, de forma que ele possa retornar no mesmo
ponto e nas mesmas condies que saiu ?
3.2) Voc acha que a freqente troca de contexto (troca de processos) na CPU introduz algum
overhead ?
3.3) Sobre troca (mudana) de contexto, reponda:
a) Em que consiste? b) Que programa est em execuo durante a troca de contexto?
3.4) Qual a diferena entre subproceso e thread (criao/eliminao, gerenciamento)?
3.5) Como o sistema operacional escolhe entre os vrios processos do sistema, qual ir executar,
em um determinado momento ?
3.6) Numa mquina com um processador, quantos processos podem estar no estado EXECUO
simultaneamente? E num ambiente com mltiplos processadores?
3.7) Quantos processos podem estar no estado PRONTO ? E no estado ESPERA ?
3.8) Em que estado deve estar um processo para entrar na CPU ? Por que motivo?
3.9) Os processos em estado de PRONTO e ESPERA necessariamente precisam estar ocupando
espao na memria principal? Que tcnica ou recurso utilizado para solucionar esse tipo de
ocorrncia?
3.10) Complete o diagrama abaixo com os estados bsicos de um processo (desconsidere incio e
trmino) e indicao das mudanas de estado possveis (completando as setas e numere-as). Em
seguida, responda:
a) O que acontece ao processo em cada um dos estados?
b) O que ocasiona cada tipo de mudana?
c) Quais mudanas so ocasionadas por eventos voluntrios? E por eventos involuntrios?


Parte I I Estrutura

Estruturas dos Sistemas Operacionais
Objetivo: Apresentar as diferentes arquiteturas de sistemas operacionais, bem como os mecanismos
de proteo ao sistema.

Podemos criar um sistema to grande e complexo como um sistema operacional somente dividindo-o
em pequenas partes. Cada uma dessas partes deve ser uma poro bem delineada do sistema, com
entradas, sadas e funes, cuidadosamente definidas. Logicamente, nem todos os sistemas tm a
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
20
mesma estrutura, ou seja, no apresentam a mesma forma de ligao entre as partes. Contudo, os
sistemas operacionais modernos geralmente possuem as seguintes partes:

Gerenciamento de processos - criar e eliminar, suspender e retomar, sincronismo e
comunicao entre processos;
Gerenciamento da memria principal manter o controle das partes da memria que esto
sendo usadas e por quem, decidir que processos sero carregados para memria quando
houver espao disponvel, alocar e liberar espao de memria quando necessrio;
Gerenciamento de memria secundria o SO responsvel pelas atividades de alocao de
espao livre, scheduling de disco;
Gerenciamento de Entrada/Sada manter os device drivers para comunicao com os
diferentes dispositivos;
Gerenciamento de arquivos criar e eliminar arquivos e diretrios, manter mapeamento dos
arquivos em disco;
Proteo do sistema se um sistema multiusurio e permite mltiplos processos
concorrentes, estes processos devem ser protegidos de outras atividades;
Networking em um sistema distribudo (fracamente acoplado) cada processador tem sua
prpria memria e seus processadores que se comunicam atravs do SO. A comunicao
entre eles deve considerar roteamento e estratgias de conexo;
Interpretador de comandos um dos mais importantes programas do SO o interpretador de
comandos, que serve de interface entre o usurio e o SO. Alguns sistemas incluem este
programa no prprio ncleo (kernel). J outros sistemas, como o DOS e o UNIX, tratam o
interpretador de comandos como um programa especial que executado quando uma sesso
iniciada.

I .2.1 System Calls (Chamadas ao sistema)

As chamadas ao sistema (system calls) fornecem a interface entre os processos e o sistema
operacional. Elas esto geralmente disponveis como instrues da linguagem Assembly, e so
normalmente encontrados nos manuais usados por programadores de linguagens Assembly. Alguns
sistemas permitem que as system calls sejam criadas diretamente a partir de um programa em
linguagem de alto nvel (linguagem C, Pascal, FORTRAN).

Elas podem ser agrupadas, na maioria dos sistemas, em cinco categorias principais:

controle de processos (end, abort, load, execute, create, terminate, wait event, signal event, set attributes);
manipulao de arquivos (create, delete, open, close, read, write, set attributes)
manipulao de dispositivos (request, release, read, write, logically attach or detach);
manuteno de informao (get and set time or date, get and set process or file);
comunicao (create and delete communication connection, send and receive messages).

A partir do momento que as chamadas ao sistema servem de interface entre os processos e o SO,
essas so o mecanismo de proteo ao ncleo do SO e tambm de acesso aos seus servios, como se
fossem as portas de entrada para os processos. Cada servio possui uma chamada associada e cada
sistema operacional tem seu prprio conjunto de chamadas. Sendo assim, uma aplicao
Figura 9 - Chamadas ao sistema operacional
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
21
desenvolvida utilizando servios de um determinado SO no pode ser executada diretamente em
outro. No Windows elas se chamam API (Application Program Interface).

I .2.2 Modos de acesso

Para que seja garantida a integridade do sistema os dispositivos (recursos de hardware) devem ser
acessados pelo SO por instrues exclusivas. As instrues que compe o conjunto de funes de
uma arquitetura de hardware so divididas em dois tipos:

Privilegiadas estas, se executadas, podem comprometer a estabilidade do sistema;
No-privilegiadas podem ser executadas e no oferecem risco ao sistema.

Sendo assim, para execuo de instrues privilegiadas, o processador implementa atravs de um
registrador especial, o mecanismo de modos de acesso:

modo usurio permite a execuo de um subconjunto do total de instrues disponveis, ou
seja, as instrues no-privilegiadas;
modo kernel ou supervisor todo conjunto de instrues pode ser executado.

O SO executa em modo kernel, protegendo o hardware do usurio, enquanto os outros programas
(editores, compiladores) executam em modo usurio. E quem determina o acesso, controla e alterna o
modo? As system calls e, caso o programa tente executar uma instruo privilegiada, sem o
processador estar em modo kernel, uma exceo gerada e o programa encerrado.

I .2.3 Estruturas

A seguir, sero apresentadas algumas maneiras como o cdigo
do sistema organizado e o relacionamento entre seus diversos
componentes, ou em outras palavras, sua estrutura interna.

Estrutura simples

O MS-DOS, originalmente escrito para fornecer o mximo de
funcionalidade no menor espao, era limitado pelo hardware no
qual era executado. Como o INTEL 8088 da poca no tinha
registrador de modo de acesso, os desenvolvedores do MS-DOS
no tinham escolha, deixando o hardware bsico desprotegido. O
sistema era popular, no se apresentava dividido em mdulos e
seus nveis de funcionalidade no eram separados.
Programas errados ou maliciosos podiam comprometer seu
funcionamento. Por exemplo, programas aplicativos podiam
acessar as rotinas bsicas de E/S para escrever diretamente
no monitor ou nas unidades de disco, o que deixava o
sistema vulnervel.

Estrutura em camadas

A modularizao de um sistema operacional pode ser feita
de diferentes formas; a mais utilizada a aproximao em
camadas, que consiste em dividir o sistema operacional em
Figura 10 - Estrutura do MS-DOS
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
22
um nmero de camadas (nveis), hierarquicamente dispostas, cada nvel construdo sobre o nvel
imediatamente abaixo. O nvel mais baixo o hardware e o mais alto a interface com o usurio.
Mdulos de uma camada oferecem funes aos mdulos de camadas superiores; cada camada
implementada usando somente aquelas operaes fornecidas pelas camadas de mais baixo nvel,
sendo que a camada no necessita saber como estas operaes so implementadas; ela necessita
saber o que estas operaes fazem.
No caso do sistema UNIX tradicional, disposto em camadas, tudo que est abaixo da interface de
chamadas ao sistema e acima do hardware fsico o
kernel.


Estrutura Microkernel

Devido ao crescimento do kernel dos sistemas, este torna-se mais difcil de controlar. A estrutura
microkernel retira todos os componentes no-essenciais do kernel e os implementa como programas
de sistema e de nvel de usurio, resultando num kernel menor. O kernel do SO passa a ser
responsvel pela comunicao entre
processos e pela implementao de
operaes que seriam difceis de serem
executadas a partir dos processos
servidores. A maioria dos servios que
seriam prestados pelo SO, executado em
modo supervisor, passariam a ser prestados
por um conjunto de processos servidores
que seriam executados em modo usurio,
sendo apenas o kernel ainda executado em
modo supervisor. No caso do Windows NT,
da Microsoft, cada subsistema do ambiente
e o NT Executive so implementados como
sendo vrios processos. Cada processo
espera por uma solicitao de um cliente
para um de seus servios (por exemplo,
servios de memria, servios de criao de
processos, ou servios de escalonamento do
processador). Um cliente, que pode ser uma
aplicao do usurio ou outro mdulo do
sistema operacional, solicita um servio por
envio de uma mensagem. A mensagem
direcionada atravs do NT Executive para o servidor apropriado. O servidor realiza a operao
solicitada e retorna os resultados por meio de uma outra mensagem, que direcionada atravs do NT
Executive de volta ao cliente.
No caso do Windows NT, da Microsoft, cada subsistema do ambiente e o NT Executive so
implementados como sendo vrios processos. Cada processo espera por uma solicitao de
um cliente para um de seus servios (por exemplo, servios de memria, servios de criao
de processos, ou servios de escalonamento do processador). Um cliente, que pode ser uma
aplicao do usurio ou outro mdulo do sistema operacional, solicita um servio por envio
de uma mensagem. A mensagem direcionada atravs do NT Executive para o servidor
apropriado. O servidor realiza a operao solicitada e retorna os resultados por meio de uma
outra mensagem, que direcionada atravs do NT Executive de volta ao cliente. [STAL98]
Figura 11 - Estrutura do UNIX
Figura 12 - Estrutura do NT
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
23
Gerncia do Processador

Conceito de Escalonamento

Com a possibilidade da UCP ser compartilhada entre diversos processos (multiprogramao), o SO
possui critrios para determinar qual a ordem na escolha dos processos para que estes passem do
estado de PRONTO para EXECUO.

O procedimento de seleo funo do SO, sendo conhecido como escalonamento (scheduling). A
parte do cdigo do SO responsvel pelo escalonamento o escalonador (scheduler). O SO deve
tratar todos os processos igualmente, evitando starvation.


Como j foi mostrado anteriormente, um bom sistema operacional multitarefa deve levar em conta os
critrios abaixo. Lembre-se que alguns podem ser mais importantes que outros, dependendo da
atividade que o sistema operacional desempenhar com suas aplicaes:

- Utilizao da CPU : o processador principal deve estar ocupado a maior parte do tempo
possvel, a no ser que no haja o que executar mesmo;

- Throughput : o nmero de processos executados por unidade de tempo; desejvel que a
quantidade de processos atendidos pelo sistema em um determinado intervalo de tempo
seja a maior possvel;

- Tempo de turnaround : tempo decorrido desde a admisso do processo no sistema at o seu
trmino. Ento, inclui tempo na fila de espera + tempo na fila de pronto + tempo de
execuo;

- Tempo de Resposta : Em sistemas interativos, o tempo decorrido entre o instante da
submisso de um pedido (teclar um ENTER aps um comando, por exemplo) e a
apresentao da primeira resposta.

Algoritmos de escalonamento buscam otimizar a utilizao da UCP e o throughput, enquanto tentam
diminuir os tempos de turnaround e de resposta. No entanto, o escalonamento somente afeta o tempo
de resposta de processos na fila de pronto.
EXECUO
(UCP)
ESPERA
(E/S)
PRONTO
ESCALONADOR
Processo
Processo Processo
Processo
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
24
Tipos de Escalonamento




Alguns PROBLEMAS encontrados em escalonamentos no preemptivos:

FIFO previso de incio da execuo do processo; processos CPU-bound de menor
importncia prejudicam processos I/O-bound mais prioritrios;

SJF determinar quanto tempo de UCP cada processo necessita para terminar seu
processamento;

COOPERATIVO no existe nenhuma interveno do SO na execuo do processo, o que
pode ocasionar problemas caso o processo no libere o processador.

ESCALONAMENTO
NO-PREEMPTIVO
Processo nunca retirado da CPU
=> s sai por evento gerado pelo
prprio processo, ou seja, por
evento voluntrio, como:
o processo acabou
o processo fez requisio ao S.O.
o processo executou um coman
do de espera (WAIT)
ESCALONAMENTO
PREEMPTIVO
Alm de sair da CPU por
eventos voluntrios, o processo
tambm pode ser retirado pelo
sistema operacional (evento
involuntrio)
Exemplo: Para um sistema de tempo
compartilhado o tempo de resposta deve ser
o mais importante De forma geral o tempo de
utilizao da CPU e throughput
devem ser mximos; o tempo de
turnaround e o tempo de resposta
devem ser mnimos.
Vrios fatores influenciam os tempos
acima: o sistema operacional, velocidade
do processador, velocidade dos dispositivos
de I/O, tamanho da memria principal, etc.
FIFO(First-In-First-Out)
Processos PRONTOS
todos em UMA fila .
escolhido o PRIMEIRO
da fila
COOPERATIVO : Processos PRONTOS todos em uma
fila. De tempos em tempos o processo que est em execuo
verifica uma fila de mensagens e se houver algum processo
solicitando a UCP, ento o que est em execuo executa
um comando tipo WAIT e vai para o final da fila de
PRONTO,
liberando a UCP.
POR PRIORIDADES
POR MLTIPLAS
FILAS COM
REALIMENTAO
POR MLTIPLAS FILAS
SJF (Shortest-Job-First)
Processos PRONTOS
todos em UMA fila.
escolhido o processo que
precisar de MENOS
tempo de execuo.
CIRCULAR
DE SISTEMAS DE TEMPO REAL
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
25
Escalonamento Circular ou Round Robin

Implementao: UMA fila de PRONTO. Os processos entram na fila na ordem de chegada e sai
primeiro o que chegou primeiro (FIFO). definida uma fatia de tempo (time-slice).

Um processo em execuo pode deixar a CPU pelos seguintes motivos :
- acabou nesse caso deixa de estar ativo no sistema
- fez requisio ao SO nesse caso fica em estado de ESPERA
- acabou a fatia de tempo nesse caso fica em estado de PRONTO, entrando no
final da fila de processos PRONTOs

Quando termina a fatia de tempo, sem que o processo tenha terminado ou feito uma requisio ao
SO, o SO quem retira o processo de execuo. Chamamos este evento (que involuntrio) de
preempo por tempo.


Escalonamento por Prioridades

Implementao: UMA fila de PRONTO. Cada processo tem, associada a ele, uma prioridade de
execuo. Tal prioridade pode ser dada ao processo pelo usurio ou pelo SO; pode ser esttica
(quando sempre a mesma ao longo da vida do processo) ou pode ser dinmica (quando o SO a
modifica durante a vida do processo, de acordo com o tipo de processamento e/ou carga do sistema).

Um clock interrompe o processador em determinados intervalos de tempo, para que seja executada a
rotina de escalonamento . Esta rotina arruma os processos na fila de acordo com suas prioridades.
Se na fila de PRONTO estiver um processo com prioridade maior do que a prioridade do processo
que estava em execuo, este que estava em execuo passa a ficar em estado de PRONTO e o outro
de maior prioridade escalonado para execuo. Chama-se preempo por prioridade o evento em
que o SO retira um processo que estava em execuo para dar lugar a outro processo de maior
prioridade. Note que este evento involuntrio, ou seja, no depende do processo que est sendo
preemptado.



Exemplo de prioridade dinmica: para compensar o tempo
que os processos ficam em estado de ESPERA, o S.O faz
um acrscimo prioridade dos processos sempre que saem
do estado de ESPERA.
Lista de processos
no estado de
ESPERA
Trmino do
processamento
UCP
Lista de processos no
estado de PRONTO
C B A
Preempo POR TEMPO
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
26
Escalonamento por Mltiplas Filas

Implementao: VRIAS FILAS DE PRONTO, sendo que a cada uma est associada uma
prioridade. Cada processo associado a UMA e SOMENTE UMA fila e nela PERMANECE durante
toda a sua vida no sistema.
O sistema S PODE ESCALONAR PROCESSOS DE UMA DAS FILAS QUANDO TODAS AS
OUTRAS DE MAIOR PRIORIDADE ESTIVEREM VAZIAS.

Exemplo
Seja um sistema com trs filas:


Escalonamento por Mltiplas Filas com realimentao

Implementao: VRIAS FILAS DE PRONTO, sendo que a cada uma est associada uma
prioridade. O sistema S PODE ESCALONAR PROCESSOS DE UMA DAS FILAS QUANDO
TODAS AS OUTRAS DE MAIOR PRIORIDADE ESTIVEREM VAZIAS.
O SO PODE MUDAR um processo DE FILA de acordo com as caractersticas do processo e/ou
carga do sistema. Chama-se este esquema de mecanismo adaptativo.

Quando o processo criado, entra no final da fila de MAIOR prioridade. Quando um processo em
execuo deixa a CPU seja por preempo por prioridade ou por uma requisio ao SO, ele
reescalonado dentro da MESMA fila. Quando deixa a CPU por preempo por tempo, o processo
redirecionado para uma fila de MENOR prioridade. Quanto maior for a prioridade de uma fila
menor ser a fatia de tempo associada a esta fila.


Escalonamento de Sistemas de Tempo Real

um escalonamento UNICAMENTE por prioridade ESTTICA.


Escalonamento com Mltiplos Processadores

- Sistemas Fortemente Acoplados (Memria Compartilhada): UMA nica fila de PRONTO
para todos os processadores. Todos os processos esto presentes nesta fila e so escalonados no
primeiro processador disponvel. Naturalmente, cada processo s pode ser escalonado para um
processador.
Fila de processos do sistema
(Escalonamento em prioridades)
Fila de processos interativos
(Escalonamento circular)
Fila de processos batch
(Escalonamento circular)
Maior prioridade
Menor prioridade
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
27

- Sistemas Fracamente Acoplados (Memria Distribuda): cada processador tem o seu
prprio escalonamento, visto que cada processador tem sua memria prpria, seu sistema
operacional prprio e consequentemente seu algoritmo de escalonamento prprio.


Exerccios
4.1 Qual a parte do sistema operacional responsvel pela escolha de processos no estado de pronto
que passaro para o estado de execuo?
4.2 O que escalonamento?
4.3 Justifique: um algoritmo de escalonamento busca otimizar a utilizao da UCP e o throughput,
enquanto tenta diminuir os tempo de turnaround e de resposta?
4.4 O que starvation? O escalonamento de processos pode levar um processo a sofrer starvation?
Explique?
4.5 Cite fatores que possam influenciar no tempo total de execuo de processos.
4.6 O que preempo? Diferencie escalonamento preemptivo de no-preemptivo.
4.7 Como funciona o escalonamento FIFO? (Lembre-se de uma fila de banco)
4.8 Sejam os processos abaixo:

Identificao do
processo
CPU (u.t.) Caracterstica do processo
A 52 faz requisio de I/O a cada 15u.t.
B 11 faz requisio de I/O a cada 3u.t.
C 3 faz requisio de I/O a cada 2u.t.
onde por CPU (u.t.) estamos representando quantas unidades de tempo so necessrias para a execuo dos processos em CPU

Suponhamos que sejam necessrias 8 u.t. (oito unidades de tempo) para que se realize qualquer uma
das requisies de I/O e que nenhum processo fique em momento algum bloqueado. Vamos
desconsiderar o overhead de criao/deleo de processos e de troca de contexto. O tempo gasto no
escalonamento de processos por parte do S.O. de 1 u.t. (uma unidade de tempo). Considere que os
processos A, B e C entraram no sistema nessa ordem (A, B e depois C), mas a diferena entre tais
instantes tal que pode ser desconsiderada. Considere tambm que os processos foram criados no
instante inicial de funcionamento do sistema (0 u.t.). Faa o papel do sistema operacional e complete
os quadros abaixo:

1
a
situao) Para um algoritmo de escalonamento no-preemptivo FIFO

Instante de tempo (u.t.) Fila de Pronto Executando na UCP Fila de Espera





Tempo que a CPU ficou inativa = ______ % do tempo total
Sistemas Operacionais

Prof. Luiz di Marcello maro/2013
28
2
a
situao) Para um algoritmo de escalonamento preemptivo ROUND ROBIN com quantum de
10u.t.

Instante de tempo (u.t.) Fila de Pronto Executando na UCP Fila de Espera





Tempo que a CPU ficou inativa = ______ % do tempo total

Baseado nos resultados dos quadros acima, preencha: (1,0p)

Tempo de turnaround
com
multiprogramao
Tempo de turnaround
sem multiprogramao
(monotarefa)
Avaliao
( MELHOROU OU PIOROU)

Processo A
I)

II) I)
%
II)
%

Processo B
I) II) I)
%
II)
%

Processo A + B
I) II) I)
%
II)
%

4.9 Considerando na fila de PRONTO de um sistema operacional que implementa um algoritmo de
escalonamento de processos de forma preemptiva circular, sem prioridades e de quantum fixo, as
seguintes situaes:

1
a
situao) Muitos processos CPU-Bound e poucos processos I/O-Bound
2
a
situao) Somente processos I/O-Bound
3
a
situao) Muitos processos I/O-Bound e poucos processos CPU-Bound

Classifique cada sentena como Verdadeira (V) ou Falsa (F), justificando-as quando falsas:

I. Na 2
a
situao, mesmo que o nico dispositivo de E/S seja rpido, a concorrncia
utilizao grande o que ocasiona menor utilizao de tempo da UCP. ( )
II. Pode-se afirmar que o escalonamento de processos por parte do sistema operacional o
nico responsvel pelo tempo de turnaround dos processos, afetando at o tempo que os
processo ficam na fila de espera. ( )
III. Na 3
a
situao a minoria de processos CPU-Bound sofreria starvation. ( )
IV. Com exceo da 2
a
situao, os processos CPU-Bound certamente iro monopolizar o
processador, mesmo que o tempo mximo de utilizao do processador seja igual ao
quantum. ( )
V. Na 1
a
situao, quanto menor o tempo perdido na troca de contexto pior , pois os
processos I/O-Bound solicitam operaes de E/S a todo instante, independente do
aproveitamento do processador por parte dos processos CPU-Bound. ( )

Você também pode gostar