Professional Documents
Culture Documents
Fernando Morse
www.morse.oi.com.br
morse@oi.com.br
Sistemas Operacionais
EDITAL PETROBRS 2009
Noes Gerais:
2. Sistemas operacionais: Conceitos Bsicos Estrutura do SO
Gerncia do Processador Gerncia de Memria Sistemas
de Arquivos Entrada e Sada Conceitos de SO Distribudos
Sistemas Operacionais
Introduo
Caractersticas
Sistemas Operacionais
Definio:
O Sistema Operacional (SO) um programa que controla e
coordena todas as operaes de um sistema de computao. ,
muitas vezes, tambm chamado de Supervisor, Monitor,
Executivo ou Controlador.
um programa que atua como intermedirio entre o usurio e o
hardware de um computador com o propsito de fornecer um
ambiente para a execuo de programas.
Sistemas Operacionais
USURIOS
SISTEMA
OPERACIOANAL
HARDWARE
Sistemas Operacionais
Caractersticas de Sistema Operacional
Sistemas Operacionais
Caractersticas de Sistema Operacional
Sistemas Operacionais
Funes que o SO deve desempenhar
Sistemas Operacionais
Busca do Setor de Boot
Quando o computador ligado, um pequeno programa
gravado no primeiro ou nos dois primeiros setores do
disco
(BOOT)
carregado
para
memria
automaticamente. Sua funo ser unicamente ler o
sistema operacional para RAM.
Sistemas Operacionais
BOOT
Em computao, boot o termo em ingls para o processo de iniciao
do computador que carrega o sistema operacional quando a mquina
ligada.
Muitos computadores podem executar apenas cdigos existentes na
memria de trabalho (ROM ou RAM); os sistemas operacionais
modernos so normalmente armazenados em disco rgido, CD-ROM ou
outros dispositivos de armazenamento. Logo que o computador ligado,
ele no tem um sistema operacional na memria. O computador
hardware no pode fazer as aes do sistema operacional, como
carregar um programa do disco; assim um aparente insolvel paradoxo
criado: para carregar o sistema operacional na memria, precisamos de
um sistema operacional j carregado.
10
Sistemas Operacionais
Sistema de iniciao ou Boot loader
A soluo para o paradoxo est na utilizao de um pequeno e
especial programa, chamado sistema de iniciao, boot loader ou
bootstrap. Este programa no tem a completa funcionalidade de
um sistema operacional, mas especialmente construdo para
que seja capaz de carregar um outro programa para permitir a
iniciao do sistema operacional. Freqentemente, boot loaders
de mltiplos estgios so usados, neste caso vrios pequenos
programas se complementam em seqncia, at que o ltimo
deles carrega o sistema operacional.
11
Sistemas Operacionais
Modo Real
Os programas podem acessar diretamente posies de memria,
executar operaes de E/S de baixo nvel ou acessar diretamente
o hardware de perifricos.
Os programas executados em MODO REAL podem ter o
completo controle do computador.
O processsamento em MODO REAL inaceitvel em ambiente
multiprogramao pois permite que os programas se afetem
mutuamente.
12
Sistemas Operacionais
Modo Protegido
Os programas no podem acessar diretamente posies de
memria, executar operaes de E/S de baixo nvel ou acessar
diretamente o hardware de perifricos.
O SO mantm um estrito controle de cada aplicao, protegendo
cada programa de outros programas.
O processsamento em MODO PROTEGIDO aceitvel em ambiente
multiprogramao
13
Sistemas Operacionais
Tipos de sistemas operacionais
Existem 4 tipos bsicos de sistemas operacionais. Eles so divididos em
grupos relacionados com o tipo de computador que controlam e o tipo de
aplicativos que suportam. Estas so as categorias mais abrangentes:
sistema operacional de tempo real (RTOS - Real-time operating
system). utilizado para controlar mquinas, instrumentos cientficos e
sistemas industriais. Geralmente um RTOS no tem uma interface para o
usurio muito simples e no destinado para o usurio final, desde que o
sistema entregue como uma "caixa preta". A funo do RTOS
gerenciar os recursos do computador para que uma operao especfica
seja sempre executada durante um mesmo perodo de tempo. Numa
mquina complexa, se uma parte se move mais rapidamente s porque
existem recursos de sistema disponveis, isto pode ser to catastrfico
quanto se uma parte no conseguisse se mover porque o sistema est
ocupado.
14
Sistemas Operacionais
Tipos de sistemas operacionais
monousurio, monotarefa. O sistema operacional foi criado
para que um nico usurio possa fazer uma coisa por vez. O
Palm OS dos computadores Palm um bom exemplo de um
moderno sistema operacional monousurio e monotarefa.
monousurio, multitarefa. Este tipo de sistema operacional o
mais utilizado em computadores de mesa e laptops. As
plataformas Microsoft Windows e Apple MacOS so exemplos de
sistemas operacionais que permitem que um nico usurio utilize
diversos programas ao mesmo tempo. Por exemplo,
perfeitamente possvel para um usurio de Windows escrever
uma nota em um processador de texto ao mesmo tempo em que
faz download de um arquivo da Internet e imprime um e-mail.
15
Sistemas Operacionais
Tipos de sistemas operacionais
16
Sistemas Operacionais
MULTITAREFA PREEMPTIVO (Unix e Win 95 (osr2), 98, XP, VISTA)
Em um sistema Multitarefa preemptivo, cada encadeamento executado
durante um tempo determinado ou at que outro encadeamento de
prioridade maior esteja pronto para ser executado.
Como o agendamento controlado pelo sistema operacional sem a
cooperao do aplicativo, torna-se mais difcil para um programa ou
encadeamento monopolizar o processador.
Para impedir que encadeamentos de processos diferentes tenham acesso a
um recursos que no podem ser compartilhados (como uma porta serial), o
programa pode definir semforos (sinalizadores especiais utilizados pelo
programa) para bloquear este recurso at que ele termine de ser utilizado.
No Windows 95-OSR2, programas do MS-DOS e de 32 bits baseados no
Windows so Multitarefa Preemptiva.
17
Sistemas Operacionais
MULTITAREFA COOPERATIVO (Windows 95 e 3.11)
18
Sistemas Operacionais
SO Distribuido / Paralelo
19
Sistemas Operacionais
Sistema Operacional Distribudo
Um sistema operacional distribudo deve se apresentar aos
usurios como um sistema operacional centralizado, mas
que, na realidade, tem suas funes executadas por um
conjunto de mquinas independentes;
Sistemas fracamente acoplados, pois cada processador
tem a sua memria local.
Excelente para compartilhamento de recursos
Incrementa a velocidade de computao realiza
compartilhamento de carga.
20
Sistemas Operacionais
Sistema Operacional Paralelo
Sistemas multiprocessados com uma ou mais CPU em comunicao
prxima.
Sistema fortemente
memria e um clock.
Maior throughput
21
acoplados,
processadores
compartilham
Sistemas Operacionais
Multiprocessamento Simtrico (SMP- Symmetric multiprocessing)
Cada processador executa uma cpia idntica do SO
Muitos processos podem executar ao mesmo tempo, sem deteriorao do
desempenho
Grandes parte dos sistemas operacionais modernos suportam SMP
Multiprocessamento Assimtrico
A cada processador atribuda uma tarefa especfica ;
Princpio de funcionamento que um processador,denominado mestre,
aloca trabalho para o outro processador, denominado escravo.
22
Sistemas Operacionais
Sistemas fortemente acoplados
23
Sistemas Operacionais
Sistemas fracamente acoplados
24
Sistemas Operacionais
25
Sistemas Operacionais
SISTEMA OPERACIONAL COMO GERENCIADOR DE RECURSOS
Normalmente os SOs so encarados como gerenciadores de recursos,
responsveis principalmente pela atualizao permanente do estado de
cada recurso, definio da poltica de alocao de recursos (quem
recebe, quanto e o que) e a liberao dos mesmos.
Os SOs podem ser divididos em quatro gerncias:
26
gerncia de memria
gerncia de processador
gerncia de perifricos
gerncia de informaes.
Sistemas Operacionais
Gerncia de Memria
A Gerncia de Memria tem como funo primordial manter
atualizado o estado de memria, isto , controlar as partes de
memrias que esto sendo utilizadas, identificar quem as est
usando e supervisionar as reas disponveis.
Alm disso, determina a alocao de mais memria (quando e
quanto), garante a integridade das reas de programa, impedindo
que outro processo acesse posies de memrias reservadas
para um determinado programa, e libera com facilidade as reas
de memrias quando um processo no mais delas precisa.
27
Sistemas Operacionais
Gerncia de Processador
A Gerncia de Processador, atravs de seus vrios mdulos,
responsvel pelo controle de todos os processos em andamento
num computador.
Veremos mais adiante os vrios estgios que passa um processo.
28
Sistemas Operacionais
Gerncia de Perifricos
A Gerncia de Perifricos mantm o controle dos perifricos,
canais e unidades de controle, decidindo sobre sua alocao e
iniciando operaes de entrada/sada, bem como garantindo a
segurana, isto , impedindo a utilizao indevida de um recurso
previamente alocado.
Gerncia de Informaes
A Gerncia de Informaes responsvel pelo controle do uso de
arquivos, ou seja, abre e fecha arquivos e decide se o processo
pode ou no acessar as informaes.
29
Sistemas Operacionais
Kernel
30
Sistemas Operacionais
Kernel
Kernel de um sistema operacional entendido como o ncleo.
Ele representa a camada mais baixa de interface com o
Hardware, sendo responsvel por gerenciar os recursos do
Sistema Operacional como um todo. no kernel que esto
definidas funes para operao com perifricos (mouse, disco,
impressora, interface serial/interface paralela), gerenciamento de
memria, entre outros. Resumidamente, o kernel um conjunto
de programas que fornece para os programas de usurio
(aplicativos) uma interface para utilizar os recursos do sistema.
31
Sistemas Operacionais
Kernel
Quanto sua arquitetura, o kernel pode ser monoltico - em um
nico bloco, com todas as funcionalidades carregadas na
memria - ou modular (micro-kernel) - com os mdulos
especficos para cada tarefa carregados opcionalmente,
dinamicamente e hbrido.
hbrido
32
Sistemas Operacionais
Micro-Kernel
Micro-Kernel um termo usado para caracterizar o sistema
cujas funcionalidades do sistema saram do kernel e foram
para servidores, que se comunicam com um ncleo mnimo,
usando o mnimo possvel o espao do sistema (nesse
local o programa tem acesso a todas as instrues e a todo
hardware) e deixando o mnimo de recursos rodando no
espao do usurio (no espao do usurio, o software sofre
algumas restries, no podendo acessar alguns hardwares,
nem tem acesso a todas as instrues).
33
Sistemas Operacionais
Micro-Kernel
34
Sistemas Operacionais
Kernel monoltico
O paradigma do Kernel Monoltico justamente o oposto do
Micro-Kernel. A principal caracterstica do kernel monoltico
permitir que funes como rede, vdeo e acesso a outros
perifricos sejam possveis atravs do kernel-space. Isso
possvel atravs do uso de mdulos. O que significa que um
mdulo, apesar de no estar no mesmo cdigo do kernel,
executado no espao de memria do kernel. Sendo assim,
apesar de modular, o kernel monoltico continua sendo nico
e centralizado.
35
Sistemas Operacionais
Kernel monoltico
36
Sistemas Operacionais
Kernel Hbrido ou em Camadas
Kernel hbrido define um kernel baseado em micro-kernel no qual
mdulos externos a ele podem executar operaes em modo kernel
(protegido), a fim de evitar trocas de contexto e melhorar o
desempenho geral do sistema.
37
Sistemas Operacionais
Kernel Hbrido
ou em Camadas
38
Vista.
Sistemas Operacionais
Concorrncia
39
Sistemas Operacionais
Concorrncia
executadas
concorrentemente.
conceito
de
40
Sistemas Operacionais
Concorrncia
A utilizao concorrente da UCP deve ser implementada de
maneira que, quando um programa perde o uso do processador
e depois retorna para continuar sua execuo, seu estado deve
ser idntico ao do momento em que foi interrompido. O
programa dever continuar sua execuo exatamente na
instruo seguinte quela em que havia parado, aparentando ao
usurio que nada aconteceu.
41
Sistemas Operacionais
Interrupo e Exceo
42
Sistemas Operacionais
Interrupo e exceo
Durante a execuo de um programa, alguns eventos
inesperados podem ocorrer, ocasionando um desvio forado no
seu fluxo de execuo. Estes tipos de eventos so conhecidos
por interrupo ou exceo e podem ser conseqncia da
sinalizao de algum dispositivo de hardware externo ao
processador ou da execuo de instrues do prprio programa.
A diferena entre interrupo e exceo dada pelo tipo evento
ocorrido.
43
Sistemas Operacionais
Interrupo
o mecanismo que o sistema operacional sincroniza a
execuo de todas as sua rotinas e dos programas dos usurios,
alm de controlar dispositivos.
sempre gerada por algum evento externo ao programa
e, neste caso, independe da instruo que est sendo
executada. Um exemplo de interrupo ocorre quando um
dispositivo avisa ao processador que alguma operao de E/S
est completa. Neste caso, o processador deve interromper o
programa para tratar o trmino da operao.
44
Sistemas Operacionais
Interrupo
Ao final da execuo de cada instruo, a unidade de
controle verifica a ocorrncia de algum tipo de interrupo. Neste
caso, o programa em execuo interrompido e o controle
desviado para uma rotina responsvel por tratar o evento
ocorrido, denominada rotina de tratamento de interrupo. Para
que o programa possa posteriormente voltar a ser executado,
necessrio que, no momento da interrupo, um conjunto de
informaes sobre a sua execuo seja preservado. Essas
informaes consistem no contedo registradores, que devero
ser restaurados para a continuao do programa.
45
Sistemas Operacionais
Interrupo
As interrupes so decorrentes de eventos assncronos, ou
seja, no relacionados instruo do programa corrente. Como
por exemplo dispositivo de E/S informar ao processador que
est pronto para receber ou transmitir dados.
46
Sistemas Operacionais
Exceo
Uma exceo semelhante a uma interrupo, sendo a principal
diferena o motivo pela qual o evento gerado. A execuo resultado
direto da execuo de uma instruo do prprio programa,
programa como a
diviso de um nmero por zero ou a ocorrncia de overflow em uma
operao aritmtica.
A diferena fundamental entre exceo e interrupo que a primeira
gerada por um evento sncrono,
sncrono enquanto a segunda gerada por
eventos assncronos.
assncronos Um evento sncrono quando resultado direto da
execuo do programa corrente.
47
Sistemas Operacionais
Interrupo e Exceo
Interveno do Sistema Operacional na execuo de um programa
devido a ocorrncia de um evento
Causas da interrupo:
Resultado da execuo de instrues de um programa (Exceo)
Gerado pelo sistema operacional (Interrupo)
Gerado por algum dispositivo de hardware (Interrupo)
O fluxo da execuo do programa desviado para uma rotina
especial de tratamento
48
Sistemas Operacionais
49
Interrupo e Exceo
Sistemas Operacionais
Interrupo
50
Sistemas Operacionais
INTERRUPO DE SOFTWARE - System Call ou TRAP
A interrupo de software um sinal de interrupo gerado por uma
instruo especial (portanto por software) denominada chamada do
sistema (system call) ou chamada do supervisor (supervisor call).
Alguns autores tambm chamam as interrupes geradas por software
de TRAP (armadilha). Um TRAP desencadeia as mesmas aes
desencadeadas por uma interrupo de hardware, isto , o programa
em execuo suspenso, informaes so salvas e uma rotina
especfica do SO executada.
51
Sistemas Operacionais
System Call ou TRAP
Resumindo: Em computao, uma chamada de sistema
(system call) o mecanismo usado pelo programa para
requisitar
um
servio
do
sistema
operacional,
52
ou
mais
Sistemas Operacionais
System Call ou TRAP
53
Sistemas Operacionais
Interrupo de Hardware
Uma interrupo de hardware um sinal originado em algum dispositivo fsico, que
faz com que a UCP suspenda a execuo do programa que vinha executando
(guardando informaes para continuar a execuo desse programa, mais tarde) e
passe a executar uma rotina especfica que trate da interrupo ocorrida.
Interrupes de hardware so geradas pelos diversos perifricos (discos, teclados,
impressoras etc.) ou pelo relgio. O relgio (timer)
um dispositivo que
54
Sistemas Operacionais
Interrupo de Hardware
55
Sistemas Operacionais
Interrupo de Hardware
56
Sistemas Operacionais
Tratamento de Interrupes de Dispositivos de E/S
O dispositivo de E/S interromper a CPU assim que terminar de atender
uma I/O request
Quando um pedido de E/S iniciado o SO varre a tabela de status dos
dispositivos (device status table) para saber o status do dispositivo
(ocupado, livre, no disponvel).
No caso de ocupado o SO adiciona o pedido na lista de pedidos
pendentes - processo Bloqueado
Bloqueado
57
Sistemas Operacionais
Tratamento de Interrupes de Dispositivos de E/S
Quando um dispositivo acaba sua tarefa interrompe a CPU, avisando o
trmino do tratamento de E/S.
O SO identifica qual dispositivo fez a interrupo, consulta a lista de
pedidos pendentes e trata o prximo pedido (Bloqueado -> Espera)
Espera
O processo que estava em Espera aguardando o trmino da E/S
colocado na lista de processos prontos. (Espera -> Pronto)
Pronto
58
Sistemas Operacionais
Proteo do Sistema
Objetivo: garantir a integridade dos dados pertencentes a cada usurio.
Vrios programas ocupam a memria simultaneamente e cada usurio
possui uma rea onde dados e cdigos so armazenados => o SO deve
preservar as informaes contra acessos indevidos (confiabilidade)
Proteo aos recursos compartilhados do sistema: memria, dispositivos
de E/S e CPU
Quando o programa tenta acessar uma posio de memria fora de sua
rea enderevel (erro de violao de acesso) o programa encerrado.
59
Sistemas Operacionais
Proteo do Sistema
No estado usurio somente so executadas instrues no privilegiadas
(no afetam diretamente outros programas)
Caso um programa tente executar uma instruo privilegiada, sem estar no
modo supervisor, uma interrupo gerada e o programa encerrado.
O estado de execuo de um processo determinado por um conjunto de
bits, localizado em um registrador especial da CPU (PSW - Process Status
Word) - indica se uma instruo pode ou no ser executada.
60
Sistemas Operacionais
Proteo do Sistema
Diviso da rea de memria do SO:
Espao de Endereamento do Sistema (EES) : parte de endereos
mais baixa, reservada para o prprio SO
Espao de Endereamento do Usurio (EEU) : parte de endereos
mais altos, reservada para os programas dos usurios.
61
Sistemas Operacionais
Proteo do Sistema
Programas dos usurios s podem ter acesso ao EES (rea reservada do
SO) via systems call, que invocado sempre que um processo precisa
ter acesso a algum servio disponvel.
62
Sistemas Operacionais
EEU
Usurio
System call
63
EES
Acesso
Privilegiado
Sistemas Operacionais
System Call
64
Sistemas Operacionais
Entrada e Sada
65
Sistemas Operacionais
Gerenciamento de Entrada e Sada
Uma das principais funes de um sistema operacional controlar
todos os dispositivos de E/S.
Ele deve enviar comandos
interrupes e tratar erros.
para
os
dispositivos,
capturar
66
Sistemas Operacionais
Gerenciamento de Entrada e Sada
Nos primeiros sistemas computacionais, a comunicao entre o
processador e os perifricos era controlada por um conjunto de
instrues especiais, denominadas instrues de entrada/sada,
executadas pelo prprio processador. O surgimento do controlador
de interface permitiu ao processador agir de maneira independente
dos dispositivos de E/S. Com esse novo elemento, o processador
no mais se comunicava diretamente com os perifricos, mas sim
atravs do controlador. Isso simplificou as instrues de E/S, por no
mais ser necessrio especificar detalhes de operao dos
perifricos, tarefa esta realizada pelo controlador.
67
Sistemas Operacionais
ChipSet
68
Sistemas Operacionais
CHIPSET
Chipset o nome dado ao conjunto de chips (set significa
conjunto, da o seu nome) usado na placa-me.
Nos primeiros PCs, a placa-me usava circuitos integrados
discretos. Com isso, vrios chips eram necessrios para criar
todos os circuitos necessrios para fazer um computador
funcionar.
69
Sistemas Operacionais
Dispositivos de E/S
Os dispositivos de E/S podem ser divididos em duas
categorias:
Dispositivos de Blocos; e
Dispositivos de Caractere.
70
Sistemas Operacionais
Dispositivo de Bloco
Um dispositivo de bloco, armazena as informaes em blocos
de tamanho fixo, cada um com seu prprio endereo. A
propriedade essencial de um dispositivo de bloco que
possvel ler ou gravar cada bloco independente de todos os
outros. Os Discos so os dispositivos de blocos mais comuns.
enderevel e possui operaes de busca (Exemplo: Busca
de um dado no disco rgido).
71
Sistemas Operacionais
Dispositivo de Caractere
o dispositivo que entrega ou aceita um fluxo de caracteres
sem considerar qualquer estrutura de bloco. Ele no
enderevel e tampouco tem qualquer operao de busca.
Exemplos: Impressoras, interfaces de rede, mouse.
72
Sistemas Operacionais
No dispositivo Bloco ou Caractere
Os relgios no so endereveis por bloco, tampouco
aceitam fluxo de caracteres.
Tudo que fazem gerar interrupes em intervalos bem
definidos.
73
Sistemas Operacionais
Controle das Operaes de Entrada e Sada:
E/S controlada por programa;
E/S controlada por Pooling; e
E/S Controlada por Interrupo;
74
Sistemas Operacionais
E/S controlada por programa
Neste tipo de operao, o processador sincronizava-se com o
perifrico para o incio da transferncia de dados e, aps iniciada a
transferncia, o sistema ficava permanentemente testando o estado
do perifrico para saber quando a operao chegaria ao seu final.
Este controle, chamado e E/S controlada por programa, mantinha o
processador ocupado at o trmino da operao de E/S (busy wait).
Como o processador executa uma instruo muito mais rapidamente
que a realizao de uma operao de E/S pelo controlador, havia um
enorme desperdcio de tempo da UCP.
75
Sistemas Operacionais
E/S controlada por Pooling
A evoluo do modelo anterior foi permitir que, aps o incio da
transferncia dos dados, o processador permanecesse livre para
realizar outras tarefas. Assim, em determinados intervalos de tempo, o
sistema operacional deveria testar cada dispositivo para saber do
trmino da operao de E/S (polling). Esse tipo de operao introduziu
certo grau de paralelismo, visto que um programa poderia ser
processado, enquanto outro esperava pelo trmino de uma operao
de E/S. Isso permitiu o surgimento dos primeiros sistemas
multiprogramveis, onde vrios programas poderiam ser executados
concorrentemente, j que o tempo de uma operao de E/S
relativamente grande.
76
Sistemas Operacionais
E/S Controlada por Interrupo
Com a implementao do mecanismo de interrupo, as
operaes de E/S puderam ser realizadas de uma forma mais
eficiente. Em vez de o sistema periodicamente verificar o
estado de uma operao pendente, o prprio controlador
interrompia o processador para avisar do trmino da operao.
Com esse mecanismo, denominado E/S controlada por
interrupo,
interrupo o processador, aps a execuo de um comando
de leitura ou gravao, permanece livre para o processamento
de outras tarefas.
77
Sistemas Operacionais
E/S Controlada por Interrupo
A operao de E/S controlada por interrupo muito mais eficiente
que a controlada por programa, j que elimina a necessidade de o
processador esperar pelo trmino da operao, alm de permitir que
vrias operaes de E/S sejam executadas simultaneamente.
Apesar disso, a transferncia de grande volume de dados exige
muitas intervenes do processador, reduzindo sua eficincia. A
soluo para esse problema foi a implementao de uma tcnica de
transferncia de dados denominada DMA (Direct Memory Access).
78
Sistemas Operacionais
Controladora
Uma placa controladora uma parte do hardware de
computadores que comanda outras partes da mquina.
Normalmente conectada na placa-me atravs de slots
apropriados de acordo com o barramento relativo placa.
79
Sistemas Operacionais
Device driver
Device driver (Controlador de Dispositivo) uma camada de
software que implementa um conjunto de funes que realiza a
comunicao com o dispositivo.
Device driver o comando de um dispositivo ou programa. a
forma a partir da qual uma unidade perifrica cria uma interface
com o sistema operacional para se conectar com o dispositivo do
hardware.
80
Sistemas Operacionais
DMA
81
Sistemas Operacionais
DMA
Est tcnica permite que um bloco de dados seja transferido entre a
memria principal e dispositivos de E/S; sem a interveno do
processador, exceto no incio e o final da transferncia.
Quando o sistema deseja ler ou gravar um bloco de dados, o
processador informa ao controlador sua localizao, o dispositivo de
E/S, a posio inicial da memria de onde os dados sero lidos ou
gravados e o tamanho do bloco.
82
Sistemas Operacionais
DMA
Com estas informaes, o controlador realiza a transferncia entre o
perifrico e a memria principal, e o processador interrompido
somente no incio e no final da operao. A rea de memria
utilizada pelo controlador na tcnica de DMA chamada de buffer de
entrada/sada.
No momento em que uma transferncia de dados atravs da tcnica
de DMA realizada, o controlador deve assumir, momentaneamente,
o controle do barramento.
83
Sistemas Operacionais
84
Sistemas Operacionais
Canal de Entrada e Sada
A extenso do conceito de DMA possibilitou o surgimento do canal de
entrada/sada.
O canal um processador com capacidade de executar programas de
E/S, permitindo o controle total sobre operaes de E/S. As instrues
de E/S so armazenadas na memria principal pelo processador, porm
o canal responsvel pela sua execuo.
Assim, o processador realiza uma operao de E/S, instruindo o canal
para executar um programa localizado na memria (programa de canal).
85
Sistemas Operacionais
Canal de Entrada e Sada
Este programa especifica os dispositivos para transferncia, buffers
e aes a serem tomadas em caso de erros.
O canal de E/S realiza a transferncia e, ao final, gera uma
interrupo, avisando do trmino da operao. Um canal de E/S
pode controlar mltiplos dispositivos atravs de diversos
controladores.
Cada dispositivo, ou conjunto de dispositivos, manipulado por um
nico controlador. O canal atua como um elo de ligao entre o
processador e o controlador.
86
Sistemas Operacionais
87
Sistemas Operacionais
Canal de Entrada e Sada
A evoluo do canal permitiu que este possusse sua prpria
memria, eliminando a necessidade de os programas de E/S
serem carregados para a memria principal. Com essa nova
arquitetura, varias funes de E/S puderam ser controladas
com mnima interveno da UCP. Esse estgio do canal
tambm denominado processador de entrada/sada.
88
Sistemas Operacionais
Buffering
89
Sistemas Operacionais
Buffering
A tcnica de buffering consiste na utilizao de uma rea na
memria principal, denominada buffer, para a transferncia de dados
entre os dispositivos de E/S e a memria. Essa tcnica permite que
uma operao de leitura o dado seja transferido primeiramente para
o buffer, liberando imediatamente o dispositivo de entrada para
realizar uma nova leitura.
O objetivo principal desta tcnica minimizar o problema da
disparidade da velocidade de processamento existente entre a UCP
e os dispositivos de E/S, mantendo-os ocupados na maior parte do
tempo.
90
Sistemas Operacionais
Buffering
91
Sistemas Operacionais
Spooling
92
Sistemas Operacionais
Spooling
A tcnica de spooling (simultaneous peripheral operation online), semelhante tcnica de buffering, utiliza uma rea em
disco como se fosse um grande buffer. Neste caso, dados
podem ser lidos ou gravados em disco, enquanto programas
so executados concorrentemente.
Atualmente essa tcnica est presente na maioria dos
sistemas operacionais, sendo utilizada no gerenciamento de
impresso.
93
Sistemas Operacionais
Spooling
No momento em que um comando de impresso
executado, as informaes que sero impressas so
gravadas antes em um arquivo em disco, conhecido
como arquivo de spool, liberando imediatamente o
programa para outras atividades. Posteriormente, o
sistema operacional encarrega-se de direcionar o
contedo do arquivo de spool para a impressora.
94
Sistemas Operacionais
Spooling
95
Sistemas Operacionais
Reentrncia
96
Sistemas Operacionais
Reentrncia
a capacidade de um cdigo executvel (cdigo reentrante)
ser compartilhado por diversos usurios, exigindo que apenas
uma cpia do programa esteja na memria.
A reentrncia permite que cada usurio possa estar em um
ponto diferente do cdigo reentrante, manipulando dados
prprios, exclusivos de cada usurio.
97
Sistemas Operacionais
Reentrncia
98
Sistemas Operacionais
Pipeline
99
Sistemas Operacionais
Pipeline
uma tcnica que permite ao processador executar mltiplas
instrues paralelamente em estgios diferentes.
Pipeline uma tcnica de hardware que permite que a CPU realize
a busca de uma ou mais instrues alm da prxima a ser
executada. Estas instrues so colocadas em uma fila de memria
(dentro da CPU) onde aguardam o momento de serem executadas.
A tcnica de pipeline utilizada para acelerar a velocidade de
operao da CPU, uma vez que a prxima instruo a ser executada
est normalmente armazenada dentro da CPU e no precisa ser
buscada da memria, normalmente muito mais lenta que a CPU.
100
Sistemas Operacionais
Chamadas de Sistemas
101
Sistemas Operacionais
Chamadas de Sistemas
a interface entre o Sistema operacional e seus programas
aplicativos.
Em computao, uma chamada de sistema (system call) o
mecanismo usado pelo programa para requisitar um servio
do sistema operacional, ou mais especificamente, do kernel do
sistema operacional.
102
Sistemas Operacionais
Chamadas de Sistemas
Podem ser:
Gerenciamento de Processos;
Gerenciamento de Sinalizao;
Gerenciamento de Arquivos;
Gerenciamento de Diretrios e Sistemas de Arquivos; e
Gerenciamento de Tempo.
103
Sistemas Operacionais
Gerenciamento de Processo
Trata os estados que o processo passa, deste a sua criao
(running, ready, wait, blocked).
Subprocesso e Thread.
Ser coberto no tpico PROCESSO, adiante......
104
Sistemas Operacionais
105
Sistemas Operacionais
Gerenciamento de Sinalizao
Em alguns casos necessrio intervir na execuo de um processo,
seja por motivos planejados ou por instrues ilegais passadas ao
sistema (falhas).
Por exemplo se um usurio instrui um editor de texto a imprimir o
contedo deste arquivo, e ento verifica que no quer mais imprimir,
dever haver uma maneira de interromper o editor e eliminar o
processo, neste caso utilizado a chamada kill.
106
Sistemas Operacionais
107
Sistemas Operacionais
Gerenciamento de Arquivo
Muitas chamadas de sistemas esto relacionadas com o sistema de
arquivos e os seus mtodos de acesso, como por exemplo,
solicitaes de: criao, leitura e excluso de arquivos.
A criao de um arquivo pode ser definida como uma chamada
creat(abc,751), assim um novo arquivo denominado abc seria
gerado com permisses 7 ler, gravar e executar para o
proprietrio; 5 ler e executar para o grupo e 1 apenas executar
para os outros. (RWX).
108
Sistemas Operacionais
109
Sistemas Operacionais
Gerenciamento de Diretrios e Sistemas de Arquivos
So as chamadas que se relacionam com diretrios ou com o
sistema de arquivos, como um todo, em vez de um arquivo
especfico.
Em se tratando de gerenciamento de diretrios, as duas chamadas
mais importantes seriam: mkdir e rmdir,
rmdir que permitem a criao e
remoo de diretrios.
Outra chamada importante neste grupo so aquelas que tratam
montar
montar um dispositivo para permitir o acesso aos seus diretrios e
arquivos, como exemplo o comando mount
mount para disponibilizar e
umount
umount para interromper o seu uso.
110
Sistemas Operacionais
111
Sistemas Operacionais
Gerenciamento de Tempo
Basicamente trata-se de chamadas de sistema que envolvem o
tempo de relgio convencional. Entre as possibilidades esto,
exemplo:
Time: que retorna a hora do sistema;
Stime: Relgio possa ser configurado pelo Superusurio;
Utime: Permite que o arquivo tenha definido os atributos de data
e hora de criao e modificao; e
TimeS: Retorne o tempo de utilizao da CPU.
112
Sistemas Operacionais
113
Sistemas Operacionais
Processo
114
Sistemas Operacionais
Processo
Em Sistemas Operacionais, processo um mdulo executvel
nico, que roda concorrentemente com outros mdulos
executveis. Por exemplo, em um ambiente multi-tarefa (como o
Unix) que suporta processos, um processador de texto, um
navegador e um sistema de banco de dados so processos
separados que podem rodar concomitantemente. Processos so
mdulos separados e carregveis, ao contrrio de threads, que
no podem ser carregadas. Mltiplas threads de execuo podem
ocorrer dentro de um mesmo processo. Alm das threads, o
processo tambm inclui certos recursos, como arquivos e
alocaes dinmicas de memria.
115
Sistemas Operacionais
nom e
P ID
o w n e r (U I D )
r e g i s tr a d o r e s
g e r a is
p r io r id a d e d e
e xe cu o
d a ta / h o r a
d e cr ia o
r e g i s tr a d o r P C
C o n te x to d e
S o f tw a r e
C o n te x to d e
H a rd w a re
r e g i s tr a d o r S P
te m p o d e
p ro ce ssa d o r
q u o ta s
Pro g ra m a
p r iv il g io s
E sp a o d e
E n d e r e a m e n to
116
e n d e re o s d e m e m ria
p rin c ip a l a lo ca d o s
r e g i s tr a d o r
d e s ta tu s
Sistemas Operacionais
Processo
117
Sistemas Operacionais
Contexto de Hardware
Armazena o contedo dos registradores gerais da UCP, alm dos
registradores de uso especifico, como program couter (PC), stack pointer
(SP) e registrador de status. Quando um processo est em execuo, o
seu contexto de hardware est armazenado nos registradores do
processador. No momento em que o processo perde a utilizao da UCP,
o sistema salva as informaes no contexto de hardware do processo.
A troca de um processo por outro no processador, comandada pelo
sistema operacional, denominada mudana de contexto. A mudana de
contexto consiste em salvar o contedo dos registradores do processo
que est deixando a UCP e carrega-lo com os valores referentes ao do
novo processo que ser executado. Essa operao resume-se em
substituir o contedo de hardware de um processo pelo de outro.
118
Sistemas Operacionais
Contexto de Hardware
119
Sistemas Operacionais
Contexto de Software
No contexto de software so especificadas caractersticas e
limites dos recursos que podem ser alocados pelo processo,
como
o
nmero
mximo
de
arquivos
abertos
simultaneamente, prioridade de execuo e tamanho do
buffer para operaes de E/S. A maior parte das informaes
do contexto de software do processo so provenientes de
um arquivo do sistema operacional, conhecido como arquivo
de contas. O contexto de software composto por trs
grupos de informaes sobre o processo: Identificao,
quotas e privilgios.
120
Sistemas Operacionais
Contexto de Software
Identificao : cada processo criado pelo sistema recebe
uma identificao nica (PID process identification)
representada por um nmero. O processo tambm possui a
identificao do usurio ou processo que o criou (owner).
Cada usurio possui uma identificao nica no sistema
(UID user identification), atribuda ao processo no momento
de sua criao. A UID permite implementar um modelo de
segurana, onde apenas os objetos (processos, arquivos,
reas de memria) que possuem a mesma UID do usurio
(processo) podem ser acessados.
121
Sistemas Operacionais
Contexto de Software
Quotas:
Quotas So os limites de cada recurso do sistema que um
processo pode alocar. Caso uma cota seja insuficiente, o
processo poder ser executado lentamente, interrompido
durante seu processamento ou mesmo no ser executado.
Privilgios:
Privilgios ou direitos definem as aes que um processo
pode fazer em relao a ele mesmo, aos demais processos e
ao sistema operacional.
122
Sistemas Operacionais
Espao de Endereamento
123
Sistemas Operacionais
Bloco de Controle do Processo
O processo implementado pelo sistema operacional atravs
de uma estrutura de dados chamado bloco de controle do
processo (Process Control Block PCB). A partir do PCB, o
sistema operacional mantm todas as informaes sobre o
contexto de hardware, contexto de software e espao de
endereamento de cada processo.
124
Sistemas Operacionais
PCB
125
Sistemas Operacionais
Os PCBs de todos os processos residem na memria
principal em uma rea exclusiva do sistema operacional. O
tamanho desta rea geralmente limitado por um parmetro
do sistema operacional que permite especificar o nmero
mximo de processos que podem ser suportados
simultaneamente pelo sistema.
Toda a gerncia dos processos realizada atravs de system
calls, que realizam operaes como criao, alterao de
caractersticas, visualizao, eliminao, sincronizao,
suspenso de processos.
126
Sistemas Operacionais
Processo
Um processo, em um sistema multiprogramvel, no executado todo o
tempo pelo processador. Durante sua existncia, passa por uma srie de
estados. Basicamente existem trs:
Execuo (running): quando est sendo processado pela UCP.
Pronto (ready): quando apenas aguarda uma oportunidade para
executar, ou seja, espera que o SO aloque a UCP para sua
execuo. O SO responsvel por determinar a ordem pela qual os
processos em estado de pronto devem ganhar a UCP. Normalmente
existem vrios processos no estado de pronto.
127
Sistemas Operacionais
Processo
Espera (wait): quando aguarda algum evento externo ou por
algum recurso para poder prosseguir seu processamento. Ex.: o
trmino de uma operao de E/S ou a espera de uma
determinada data para poder continuar sua execuo.
Quando o processo espera por um recurso do sistema que no
se encontra disponvel, dito que o processo est no estado de
bloqueado (blocked) em vez de espera (wait).
128
Sistemas Operacionais
Processo
129
Sistemas Operacionais
Processo
130
Sistemas Operacionais
Processo
131
executado.
Sistemas Operacionais
Basicamente, existem 4 mudanas de estado que podem ocorrer a um
132
Sistemas Operacionais
133
Sistemas Operacionais
Processo
Perifricos
Fim Normal
Execuo
Despacho
Servio
Interrupo
Time-Slice
Pronto
Criao
134
Recurso Atendido
Espera
Fim Anormal
ou BLOQUEADO
Sistemas Operacionais
Processo
Quando um processo passa a maior parte do temp no estado de
execuo, a este chamamos de CPU BOUND. Este tipo de processo
muito comum em aplicaes matemticas, cientficas e grficas por
efetuarem muitos clculos.
Quando o processo passa a maior parte do tempo em estado de espera e
realizando muitas operaes de I/O, a este chamamos de I/O BOUND.
o processo mais comum em aplicaes comerciais.
135
Sistemas Operacionais
Subprocesso e Thread
136
Sistemas Operacionais
SUBPROCESSO
Um processo pode criar outros processos de forma hierrquica.
Quando um processo (processo pai) cria outro processo, chamamos de
subprocesso ou processo filho.
O subprocesso pde criar outros subprocessos.
Como conseqncia dessa estrutura, caso um processo deixe de existir, os
subprocessos subordinados so eliminados.
137
Sistemas Operacionais
SUBPROCESSO
A utilizao de subprocessos permite dividir uma aplicao em partes que
podem trabalhar de forma concorrente.
Com o uso de subprocessos, cada solicitao implicaria a criao de um novo
processo para atend-la, aumentando o throughput da aplicao e,
conseqentemente, melhorando seu desempenho.
O uso de subprocessos no desenvolvimento de aplicaes concorrentes
demanda consumo de diversos recursos do sistema.
Sempre que um novo processo criado (no Unix isto feito pela system call
fork), o SO deve alocar recursos (contexto de HW, contexto de SW e espao
de endereamento) para cada processo alm de consumir tempo de UCP neste
trabalho.
138
Sistemas Operacionais
THREAD
Thread, ou linha de execuo em portugus, uma forma de um
processo dividir a si mesmo em duas ou mais tarefas que podem ser
executadas simultaneamente. O suporte thread fornecido pelo
prprio sistema operacional (SO).
Uma linha de execuo permite que o usurio de programa, por
exemplo, utilize uma funcionalidade do ambiente enquanto outras
linhas de execuo realizam outros clculos e operaes.
139
Sistemas Operacionais
THREAD
Em hardwares equipados com uma nica CPU, cada linha de
execuo(Thread) processada de forma aparentemente simultnea,
pois a mudana entre uma linha e outra feita de forma to rpida
que para o usurio isso est acontecendo paralelamente.
Em hardwares com multiplos CPUs ou milti-cores as linhas de
execuo(Threads) podem ser realizadas realmente de forma
simultnea;
Os sistemas que suportam apenas uma nica linha de execuo so
chamados de monothread e aqueles sistemas que suportam mltiplas
linhas de execuo so chamados de multithread.
140
Sistemas Operacionais
THREAD
Threads compartilham o processador da mesma maneira que
processos.
Cada linha de execuo tem o mesmo contexto de software e
compartilha o mesmo espao de memria (endereado a um mesmo
processo pai), porm o contexto de hardware diferente. Sendo
assim o overhead causado pelo escalonamento de linha de execuo
muito menor do que o escalonamento de processos, entretanto, no
h acesso protegido a memria nativamente (sua implementao fica
a cargo do programador) devido ao compartilhamento do espao de
memria.
141
Sistemas Operacionais
THREAD
Basicamente uma linha de execuo pode assumir os seguintes
estados:
Criao Neste estado, o processo pai est criando a thread que levada a
fila de prontos;
Execuo Neste estado a linha de execuo est usando a CPU;
Pronto Neste estado a linha de execuo avisa a CPU que pode entrar no
estado de execuo e entra na fila de prontos;
Bloqueado Neste estado, por algum motivo, a CPU bloqueia a linha de
execuo, geralmente enquanto aguarda algum dispositivo de I/O;
Trmino Neste estado so desativados os contextos de hardware e a pilha
deslocada
142
Sistemas Operacionais
Multiprogramao
143
Sistemas Operacionais
Multiprogramao
Num sistema multiprogramado, mesmo que s exista um
processador possvel vrios processos estarem activos
simultaneamente
Contudo, em cada instante temporal, apenas um deles pode utilizar
o processador
A esta iluso de vrios processos correrem aparentemente em
paralelo, d-se o nome de pseudo-paralelismo
144
Sistemas Operacionais
Multiprogramao
Depois de uma comutao do processador, o prximo processo a
utiliz-lo escolhido pelo sequenciador de processos do SO
(Escalonador).
Concorrncia
145
Sistemas Operacionais
Multiprogramao
Cooperao
146
Sistemas Operacionais
Comunicao Interprocesso
147
Sistemas Operacionais
Comunicao Interprocessos
148
Sistemas Operacionais
Comunicao Interprocessos
Deveremos verificar 3 questes envolvidas neste processo de
comunicao (Regras para programao concorrente):
149
Sistemas Operacionais
Condies de Corrida
Situao onde dois ou mais processos esto acessando dados
compartilhados e o resultado do processamento depende de quem
roda quando.
Quando um processo quer imprimir um arquivo, ele insere o nome
deste arquivo em um diretrio de spooler. O servidor de impresso
verifica periodicamente se h qualquer arquivo a ser impresso e, se
houver ele os imprime e, ento remove seus nomes do diretrio de
spooler.
150
Sistemas Operacionais
Condies de Corrida
Imagine que nosso diretrio de spooler esteja vazio, com nmeros
de entradas seqenciais 0,1,2..., cada uma capaz de armazenar um
arquivo a ser impresso, imagine tambm que existem 2 variveis
OUT que aponta para o prximo arquivo a ser impresso e IN que
aponta para a prxima entrada livre no diretrio de spooler.
Em nosso exemplo OUT = IN = 0 (zero), ou seja, no, existem
arquivos no spooler.
151
Sistemas Operacionais
Condies de Corrida
Mais ou menos simultaneamente os processos A e B, decidem
que querem colocar um arquivo na fila de impresso (spooler).
O processo A l a varivel IN e armazena o valor 0 (zero), em
uma varivel local de controle (next_free_slot), s que
acontece uma interrupo de relgio, e a CPU decide que o
processo A executou por tempo suficiente (Time Slice) e ento
alterna para o processo B .
152
Sistemas Operacionais
Condies de Corrida
153
Sistemas Operacionais
Condies de Corrida
O processo B tambm l a varivel IN e tambm recebe 0
(zero) e escreve o nome do seu arquivo na posio 0 (zero) do
spooler.
154
Sistemas Operacionais
Condies de Corrida
155
Sistemas Operacionais
Condies de Corrida
Por fim o processo executa novamente, iniciando do lugar que
parou, ela examina a sua varivel de controle (next_free_slot) e
encontra o valor 0 (zero), ento escreve o nome do arquivo na
posio zero do spooler, sobrescrevendo o nome do arquivo que o
processo B acabou de colocar ali.
Ele ento calcula next_free_slot+1 e armazena em IN (1).
O processo B numca realizar qualquer sada, aps esta situao.
Para evitar as condies de corrida, precisamos implementar
algoritmos de excluso mtua de execuo e, para tanto, definimos
as regies crticas do processo.
156
Sistemas Operacionais
Condies de Corrida
157
Sistemas Operacionais
Sees Criticas ou Regies Crticas
Como evitamos a condio de corrida ?
A chave para prevenir problemas aqui e em muitas outras situaes
envolvendo memria compartilhada, arquivos compartilhados e tudo
mais compartilhado encontrar alguma maneira de proibir que mais
de um processo leia e grave os dados compartilhados ao mesmo
tempo.
Dito em outras palavras precisamos de uma excluso mtua
uma maneira de certificarmo-nos de que se um processo esta
utilizando um arquivo ou uma varivel compartilhada, ou outros
processos sero impedidos de fazer a mesma coisa.
158
Sistemas Operacionais
Sees Criticas
A dificuldade do exemplo anterior ocorria porque o processo B
comeava utilizando uma das variveis compartilhadas antes
de o processo A ter acabado de ter trabalhado com ela.
A parte do programa cujo processamento, por manipular
dados compartilhados, pode levar ocorrncia de condies
de corrida chamada REGIO CRTICA.
159
Sistemas Operacionais
Sees Criticas
Objetivo:
nunca
permitir
que
dois
processos
entrem
simultaneamente em suas regies crticas correspondentes (i.e.
referentes mesma varivel compartilhada).
Condies para uma boa soluo ao problema:
1) Dois ou mais processos no podem estar simultaneamente dentro
de suas regies crticas correspondentes.
2) Nenhum processo rodando fora de sua regio crtica pode
bloquear a execuo de outro processo.
160
Sistemas Operacionais
Sees Criticas
Condies para uma boa soluo ao problema:
3) Nenhum processo pode ser obrigado a esperar indefinidamente
para entrar em sua regio crtica.
4) Nenhuma considerao pode ser feita a respeito da velocidade
relativa dos processos, ou a respeito do nmero de processadores
do sistema.
161
Sistemas Operacionais
Escalonamento ou
Agendamento
162
Sistemas Operacionais
Agendamento de Processo ou Escalonamento
Para implementar o compartilhamento da CPU entre diversos processos,
um sistema operacional multiprogramvel deve possuir um critrio para
determinar, entre os diversos processos no estado pronto, qual o prximo
processo a executar.
Esse procedimento de seleo realizado por um importante
componente do sistema operacional denominado escalonador, e, por isso,
recebe o nome de Escalonamento de Processos ou Agendamento de
Processos
163
Sistemas Operacionais
Tipos de escalonamento:
No-preemptivo: processo que est executando no pode ser interrompido.
Presente nos primeiros sistemas multiprogramveis, onde predominava o
processamento em batch. As polticas que implementam escalonamento nopreemptivo no so aplicveis sistemas de tempo compartilhado, pois em
processos interativos necessrio um tempo de resposta ao usurio razovel.
Preemptivo: o processador pode ser retirado do processo que est executando.
Permite ateno imediata aos processos mais prioritrios (tempo real), melhores
tempos de resposta (tempo compartilhado), compartilhamento uniforme do
processador.
164
Sistemas Operacionais
Escalonamento
165
Sistemas Operacionais
Escalonamento
166
Sistemas Operacionais
Escalonamento
167
Sistemas Operacionais
Escalonamento
168
Sistemas Operacionais
Escalonamentos No Preemptivos
Nos primeiros Sistemas Operacionais Multiprogramveis, onde predominava
tipicamente o processo batch, o escalonamento implementado era do tipo No
Preemptivo .
Neste tipo de escalonamento, quando um processo ganha o direito de utilizar
a CPU nenhum outro processo pode lhe tirar este recurso.
Podem ser:
Escalonamento Circular Simples FCFS ou FIFO
Escalonamento Shortest Job First - SJF
Escalonamento Cooperativo
169
Sistemas Operacionais
170
Sistemas Operacionais
171
Sistemas Operacionais
Escalonamento Circular Simples FCFS ou FIFO
H uma fila nica de processos prontos
O primeiro processo da fila (first-in) o primeiro a ser selecionado para
execuo (first-out)
O processo selecionado pode usar a CPU indefinidamente
Novos jobs so encaminhados para o fim da fila
Quando um processo bloqueia, o prximo da fila selecionado
Processos que passaram do estado bloqueado para pronto so colocados no
fim da fila
Fcil de implementar
A falta de preempo pode trazer desvantagens
172
Sistemas Operacionais
173
Sistemas Operacionais
174
Sistemas Operacionais
175
Sistemas Operacionais
176
Sistemas Operacionais
Escalonamento Shortest Job First - SJF
Neste escalonamento cada processo tem associado o seu tempo de
execuo. Desta forma quando a CPU est livre o processo em estado de
pronto que tiver menor tempo de execuo ser selecionado para execuo.
O escalonamento SJF favorece os processos que executam processos
menores, alm de reduzir o tempo mdio de espera (na fila de processos
prontos) em relao ao escalonamento FIFO.
A dificuldade determinar, exatamente, quanto tempo de CPU cada processo
necessita para terminar seu processamento.
177
Sistemas Operacionais
178
Sistemas Operacionais
179
Sistemas Operacionais
180
Sistemas Operacionais
181
Sistemas Operacionais
Escalonamento Cooperativo
Neste escalonamento alguma poltica no-preemptiva deve ser adotada. A
partir do momento que um processo est em execuo, este voluntariamente
libera o processador, retornando para a fila de pronto.
Este tipo de escalonamento permite a implementao de sistemas
multiprogramveis com uma melhor distribuio do uso do processador entre
os processos.
Sua principal caracterstica est no fato de a liberao do processador ser
uma tarefa realizada exclusivamente pelo processo em execuo, que de
maneira cooperativa libera a CPU para um outro processo.
182
Sistemas Operacionais
Escalonamento Cooperativo
No escalonamento cooperativo, no existe nenhuma interveno do SO na
execuo do processo. Isto pode ocasionar srios problemas na medida em
que um programa pode no liberar o processador ou um programa mal escrito
pode entrar em looping, monopolizando dessa forma o processados.
Um exemplo deste tipo de escalonamento pode ser encontrado nos sistemas
Windows 3.1 e 3.11, sendo conhecido como Multitarefa Cooperativa . Nestes
sistemas as aplicaes verificam uma fila de mensagens periodicamente para
determinar se existem outras aplicaes que desejam usar a UCP. Caso uma
aplicao no verifique a fila de mensagens as outras tarefas no tero chance
de ser executadas at o trmino do programa.
183
Sistemas Operacionais
Escalonamentos Preemptivos
Um algoritmo de escalonamento dito preemptivo quando o sistema
pode interromper um processo em execuo, para que outro utilize o
processador.
O escalonamento preemptivo permite que o sistema d ateno
imediata a processos mais prioritrios, como no caso de sistemas de
tempo real, alm de proporcionar melhores tempos de resposta em
sistemas de tempo compartilhado.
Outro benefcio deste tipo de escalonamento o compartilhamento do
processador de uma maneira mais uniforme entre os processos.
184
Sistemas Operacionais
Escalonamentos Preemptivos
185
Sistemas Operacionais
Escalonamentos Preemptivos
Podem ser:
Round-Robin
Prioridades
Filas Mltiplas
Mltiplos Processadores
186
Sistemas Operacionais
Escalonamento Circular - Round Robin
Um dos algoritmos mais simples, mais antigo e mais amplamente
utilizado. A cada processo atribuido um intervalo de tempo, chamado
de quantum durante o qual lhe permitido executar.
Caso o processo ainda esteja executando ao final do quantum, feita
a troca do mesmo por outro processo que esteja pronto para a fase de
execuo.
Se o processo bloqueou ou terminou antes de o quantum ter acabado,
a troca por outro processo realizada no exato momento do bloqueio
ou do trmino da operao do processo.
187
Sistemas Operacionais
TIME-SLICING ou QUANTUM
Para evitar que um processo monopolize o sistema, a tcnica de TIMESLICING ou QUANTUM divide o tempo de processamento de cada um
em fatias (slice). Quantum o tempo limite de uso da CPU pelo
processo.
188
Sistemas Operacionais
Escalonamento Circular - Round Robin
A nica coisa que pode dar um pouco de trabalho na implementao
do Round Robin a determinao do tamanho do quantum.
Um quantum de tamanho muito pequeno, causa sucessivas troca de
contexto, baixando a eficincia do processador.
Um quantum de tamanho muito grande pode levar a um tempo de
resposta no aceitvel para usurios interativos.
189
Sistemas Operacionais
Escalonamento Circular - Round Robin
O algoritmo semelhante ao FIFO, porm, quando um processo passa para o
estado de execuo, existe um tempo limite para a sua utilizao de forma
contnua. Quando este tempo (time-slice ou quantum) expira sem que antes a
CPU seja liberada pelo processo, este volta ao estado de pronto (preempo
por tempo), dando a vez a outro processo.
A fila de processos tratada como uma fila circular.
Processos
prontos
190
Fim de
time-slice
UCP
E/S
Fim
Processamento
Sistemas Operacionais
Escalonamento por Prioridades
O escalonamento Round Robin assume de forma implcita que todos
os processos so igualmente importantes.
A necessidade de se considerar fatores externos para a escolha do
prximo processo que vai ganha o processador denominada
escalonamento por prioridade.
Cada processo associado uma prioridade, e o processo pronto com
maior prioridade ser aquele que vai rodar primeiro.
191
Sistemas Operacionais
Escalonamento por Prioridades
A prioridade uma caracterstica do contexto de SW do processo,
podendo ser esttica ou dinmica .
A prioridade dita esttica quando no modificada durante a
existncia do processo.
Na prioridade dinmica a prioridade do processo pode ser ajustada de
acordo com o tipo de processamento realizado pelo processo e/ou pela
carga do sistema.
192
Sistemas Operacionais
Escalonamento por Prioridades
Toda vez que um processo for para a fila de processos prontos com prioridade
superior ao processo em execuo, o SO dever interromper o processo
corrente, coloc-lo como pronto e escalonar o processo de maior prioridade
para execuo ( preempo por prioridade )
Assim como na preempo por tempo a preempo por prioridade
implementada mediante um clock, que interrompe o processador em
determinados intervalos de tempo, para que a rotina de Escalonamento
reavalie as prioridades e, possivelmente, escalone outro processo.
Para evitar que processos com alta prioridade monopolizem o processador
(evitando o starvation), o escalonador dever decrementar a prioridade do
processo que esta monopolizando a CPU, a cada interrupo de tempo.
193
Sistemas Operacionais
Escalonamento por Prioridades
Os processos podero ser agrupados em classes de prioridade e usar
o escalonamento de prioridades entre as classes e o Round Robin
dentro de cada classe. Conforme figura abaixo:
194
Sistemas Operacionais
Escalonamento por Prioridades
Algoritmo: enquanto houver processos com prioridade 4: round-robin na
classe (processos em outras classes no so escolhidos). Se prioridade 4
vazia, round-robin na prioridade 3 e assim por diante. Cada vez que o processo
recebe o tempo para executar, a sua prioridade decrementada. Quando todos
os processos se encontrarem no mesmo nvel, as prioridades iniciais so
restauradas.
195
Sistemas Operacionais
Escalonamento por Filas Mltiplas
Processos no permanecem numa mesma classe de prioridade at o
fim de sua execuo
Quando seu quantum expira, ele vai para uma fila de prioridade mais
baixa/quantum mais alto
Filas de prioridades diferentes tm quantum diferentes
Diminuio de prioridade X aumento de quantum
Reduzir a quantidade de trocas de contexto para processos grandes
196
Sistemas Operacionais
Escalonamento Filas Mltiplas
197
Sistemas Operacionais
Escalonamento Garantido
Cada processo tem direito a 1/n tempo da CPU, sendo n o nmero de
processos.
Para isso a CPU deve saber quanto tempo cada processo j usou.
Dividindo o tempo que j usou pelo tempo que deveria ter para
completar a operao (Tempo prometido), obtm-se uma razo entre
ambos, onde:
Se essa razo for menor do que 1, ento o processo ter
direito a mais tempo de CPU;
198
Sistemas Operacionais
Escalonamento em 2 nveis
Caso no haja memria disponvel para todos os processos,
alguns destes devero ser mantidos em disco.
Esta situao tem grande impacto sobre o escalonamento, uma
vez que o tempo gasto na troca de contexto envolvendo o disco
algumas ordens de magnitude maior do que quando ambos os
processos esto na memria principal.
199
Sistemas Operacionais
Escalonamento em 2 nveis
Uma forma mais prtica de tratar com o swap de processos
usando um escalonador de 2 nveis.
Um subconjunto de processos prontos carregado na memria
principal, e outro subconjunto mantido em disco.
Um escalonador, denominado escalonador de nvel mais baixo,
se restringe a escolher processos somente da memria,
utilizando qualquer uma das polticas de escalonamento.
escalonamento
200
Sistemas Operacionais
Escalonamento em 2 nveis
Um outro escalonador de nvel mais alto invocado para remover
processos que esto na memria h bastante tempo, e trazer para a
memria aqueles processos que esto em disco h muito tempo.
Quando esta troca for feita, o escalonador de nvel mais baixo se
restringe, novamente, a escolher processos que esto na memria
para serem executados.
201
Sistemas Operacionais
Escalonamento em 2 nveis
O escalonador de alto nvel pode usar um dos seguintes critrios de
escolha de processos:
Qual o tempo decorrido desde que o processo foi trazido para a
memria e levado de volta para o disco;
Quando tempo de CPU o processo teve;
Qual o tamanho do processo;
Qual a prioridade do processo.
Poderemos utilizar o Round Robin, prioridade, ou qualquer outro
mtodo de escalonamento, para programar o escalonador de alto nvel.
202
Sistemas Operacionais
Escalonamento de Sistemas de Tempo Real
Nestes sistemas o fator tempo crtico.
Diferentemente dos sistemas de tempo compartilhado, onde um
pequeno tempo de resposta desejado porm no obrigatrio, todo
processamento em tempo real deve ser realizado dentro de limites
rgidos de tempo ou, caso contrrio, todo sistema pode ficar
comprometido.
203
Sistemas Operacionais
DeadLock
204
Sistemas Operacionais
Deadlock
Deadlock (blocagem, impasse), no contexto do sistemas operacionais
(SO), caracteriza uma situao em que ocorre um impasse e dois ou
mais processos ficam impedidos de continuar suas execues, ou seja,
ficam bloqueados.
O deadlock ocorre com um conjunto de processos e recursos nopreemptveis, onde um ou mais processos desse conjunto est
aguardando a liberao de um recurso por um outro processo que, por
sua vez, aguarda a liberao de outro recurso alocado ou dependente
do primeiro processo.
205
Sistemas Operacionais
Deadlock
A definio textual de deadlock normalmente, por ser muito abstrata,
mais difcil de se compreender do que a representao por grafos, que
ser resumida mais adiante. No entanto, algumas observaes so
pertinentes:
O deadlock pode ocorrer mesmo que haja somente um processo no
SO, considerando que este processo utilize mltiplos threads e que tais
threads requisitem os recursos alocados a outros threads no mesmo
processo;
206
Sistemas Operacionais
Deadlock
O deadlock independe da quantidade de recursos disponveis no
sistema;
Normalmente o deadlock ocorre com recursos como dispositivos,
arquivos, etc. Apesar da CPU ser considerada como recurso para o
SO, em geral um recurso facilmente preemptvel, pois existem os
escalonadores para compartilhar o processador entre os diversos
processos, quando trata-se de um ambiente multitarefa.
207
Sistemas Operacionais
Deadlock - Condies necessrias para a ocorrncia de deadlock
comum dizer que o deadlock ocorre naturalmente em alguns
sistemas. No entanto, necessrio ressaltar que tais sistemas
precisam obedecer a algumas condies para que uma situao de
deadlock se manifeste.
Essas condies esto listadas abaixo, onde as trs primeiras
caracterizam um modelo de sistema, e a ltima o deadlock
propriamente dito:
208
Sistemas Operacionais
Deadlock - Condies necessrias para a ocorrncia de deadlock
1 Condio de excluso mtua: Cada recurso ou est alocado a
exatamente um processo ou est disponvel;
2 - Condio de posse-e-espera: Processos que estejam de posse de
recursos obtidos anteriormente podem solicitar novos recursos;
209
Sistemas Operacionais
Deadlock - Condies necessrias para a ocorrncia de deadlock
210
Sistemas Operacionais
Deadlock - Representao de deadlock em grafos
O deadlock tambm pode ser representado na forma de grafos
dirigidos, onde o processo representado por um crculo e o recurso,
por um quadrado. Quando um processo solicita um recurso, uma seta
dirigida do crculo ao quadrado. Quando um recurso alocado a um
processo, uma seta dirigida do quadrado ao crculo.
Na figura seguinte, podem-se ver dois processos diferentes (A e B),
cada um com um recurso diferente alocado (R1 e R2). Nesse exemplo
clssico de deadlock, facilmente visvel a condio de espera
circular em que os processos se encontram, onde cada um solicita o
recurso que est alocado ao outro processo.
211
Sistemas Operacionais
Deadlock
212
Sistemas Operacionais
Deadlock - Tratamento de deadlock
As situaes de deadlock podem ser tratadas ou no em um sistema, e
cabe aos desenvolvedores avaliar o custo/benefcio que essas
implementaes podem trazer.
Normalmente, as estratgias usadas para detectar e tratar as situaes
de deadlocks geram grande sobrecarga, podendo at causar um dano
maior que a prpria ocorrncia do deadlock, sendo, s vezes, melhor
ignorar a situao.
213
Sistemas Operacionais
Deadlock - Tratamento de deadlock
Existem trs estratgias para tratamento de deadlocks:
1) Ignorar a situao;
2) Detectar o deadlock e recuperar o sistema; e
3) Evitar o deadlock;
214
Sistemas Operacionais
Deadlock
Exemplo 1
215
216
217
218
219