Escolar Documentos
Profissional Documentos
Cultura Documentos
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. ( )