You are on page 1of 219

Sistemas Operacionais

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

Sistema Operacional um conjunto de rotinas executado pelo


processador, da mesma forma que nossos programas.

SO um programa que permite s pessoas usar o Hardware do


computador (CPU, Memria e Armazenamento Secundrio).

Os usurios no do instrues diretamente ao computador. Em vez


disso, eles do instrues ao Sistema Operacional. O SO instru o
Hardware a executar as tarefas desejadas.

Kernel o nico programa que executa sempre, todo o resto so


programas aplicativos.

Sistemas Operacionais
Caractersticas de Sistema Operacional

O Sistema Operacional responsvel por alocar recursos de


hardware e escalonar tarefas. Ele tambm deve prover uma
interface para o usurio - ele fornece ao usurio uma maneira de
acesso aos recursos do computador.

Um Sistema Operacional pode ser definido como um gerenciador


dos recursos que compem o computador (processador, memria,
I/O, arquivos, etc). Os problemas centrais que o Sistema
Operacional deve resolver so o compartilhamento ordenado, a
proteo dos recursos a serem usados pelas aplicaes do usurio
e o interfaceamento entre este e a mquina.

Sistemas Operacionais
Funes que o SO deve desempenhar

Permitir que os programas armazenem e obtenham informao;


Isolar os programas dos detalhes especficos de hardware;
Controlar o fluxo de dados entre os componentes de um computador;
Permitir que os programas sejam executados sem a interferncia de
outros programas;
Permitir que os programas independentes cooperem periodicamente e
compartilhem informaes;
Responder aos erros ou a solicitaes dos usurios;
Impor um escalonamento entre programas que solicitam recursos;
Facilitar o acesso aos recursos do sistema.

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

multiusurio. Um sistema operacional multiusurio permite que


diversos usurios utilizem simultaneamente os recursos do
computador. O sistema operacional deve se certificar de que as
solicitaes de vrios usurios estejam balanceadas. Cada um
dos programas utilizados deve dispor de recursos suficientes e
separados, de forma que o problema de um usurio no afete
toda a comunidade de usurios. Unix, VMS e sistemas
operacionais mainframe como o MVS so exemplos de sistemas
operacionais multiusurio. So tambm multitarefa. Multitarefa
podem ser: Preemptivo ou Cooperativo.

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)

Na tcnica de MULTITAREFA COOPERATIVO, cada processo


controla a CPU at decidir libert-la.
Em sistema Multitarefa cooperativos, um encadeamento executado
at que voluntariamente abandone o processador.
O programa determina quando o encadeamento pra a execuo.
No Windows 95, programas de 16 bits baseados no Windows so
Multitarefa de modo cooperativo.

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

Permitem que os programas dos usurios sejam divididos em


subprogramas, para execuo simultnea em mais de um processador
Sistemas Assimtricos
Sistemas Simtricos
Multiprocessamento

Sistemas Operacionais
Sistemas fracamente acoplados

Permitem que as mquinas e os usurios de um sistema distribudo


sejam completamente independentes (ex: rede de PCs que compartilham
recursos, como uma impressora, via uma rede local - LAN)

24

Sistemas Operacionais de Rede

Sistemas Operacionais Distribudos

Sistemas Operacionais

Sistema Operacional como Gerenciador de


Recursos

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

Diagrama de interao de um micro-kernel

34

Exemplo de SO : Minix, Hurd e QNX

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

Exemplo de SO: Linux, Unix, MS-DOS, Windows 95,


Windows 98 e Windows ME.

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

Diagrama de interao de um kernel hbrido


Exemplo de So: Microsoft Windows NT, XP, 2000,

38

Vista.

Sistemas Operacionais

Concorrncia

39

Sistemas Operacionais
Concorrncia

A possibilidade de o processador executar instrues em


paralelo com operaes de E/S permitem que diversas tarefas
sejam

executadas

concorrentemente.

conceito

de

concorrncia o principio bsico para o projeto e a


implementao dos sistemas multiprogramveis.

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

Genericamente as interrupes podem ser de 2 tipos:


Interrupo de Software (System call ou TRAP)
Interrupo de Hardware (IRQ)

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,

especificamente, do kernel do sistema operacional.

52

ou

mais

Sistemas Operacionais
System Call ou TRAP

a interface entre os programas dos usurios e o Sistema Operacional

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

decrementa automaticamente o contedo de um registrador, com uma freqncia


constante, e interrompe a CPU quando o valor do registrador atinge zero.

54

Sistemas Operacionais
Interrupo de Hardware

Uma IRQ (abreviao para Interrupt Request) a forma pela


qual componentes de hardware requisitam tempo computacional
da CPU. Uma IRQ a sinalizao de um pedido de interrupo
de hardware.

55

Sistemas Operacionais
Interrupo de Hardware

Os computadores modernos compatveis com o IBM PC possuem


16 designaes de IRQ (0-15), cada uma delas representando
uma pea fsica (ou virtual) de hardware. Por exemplo, a IRQ0
reservada para o temporizador do sistema, enquanto a IRQ1
reservada para o teclado. Quanto menor for o nmero da IRQ,
mais crtica sua funo.

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

Tambm deve oferecer uma interface entre os dispositivos e o


restante do sistema que seja simples e fcil de usar.
Na medida do possvel, a interface deve ser a mesma para todos os
dispositivos. (Tanenbaum)
Tanenbaum

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

Canal de Entrada e Sada

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

Um processo basicamente um programa em execuo,


sendo constitudo do cdigo executvel, dos dados
referentes ao cdigo, alm de outras informaes
necessrias execuo do programa (Contexto de SW e
HW e Espao de Endereamento).

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

a rea do processo responsvel em armazenar todas as


instrues e dados do processo em execuo. Cada
processo possui sua rea de endereamento, devidamente
protegido do acesso dos demais processos.

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

A diferena bsica entre o estado de bloqueado e o de espera


que um processo bloqueado espera ser autorizado a utilizar um
recurso, enquanto o processo em estado de espera aguarda pela
concluso de uma operao em um recurso que j foi garantido.

Um processo em estado de pronto ou de espera pode no se


encontrar, momentaneamente, na memria principal, ou seja,
armazenado na memria secundria. Uma tcnica denominada
Swapping pode retirar processos da mamria principal quando
no existe espao suficiente para todos os processos.

Sistemas Operacionais
Processo

O SO gerencia os processos atravs de listas, so estas: listas de


processos em estado de pronto e listas de processos no estado
de espera.

Um processo muda de estado diversas vezes, durante seu


processamento, em funo de eventos originados por ele prprio
(eventos voluntrios) ou pelo sistema operacional (eventos
involuntrios)

130

Sistemas Operacionais
Processo

Eventos originados pelo prprio processo: operao de E/S (SVC) ou


qualquer chamada a uma rotina do sistema, requisitando algum tipo de
servio

Eventos que se originem do SO tm a inteno de permitir maior


compartilhamento dos recursos do sistema (Ex.: se um programa est em
looping, o sistema deve intervir para que o processador no fique
dedicado eternamente ao processo onde o programa est sendo

131

executado.

Sistemas Operacionais
Basicamente, existem 4 mudanas de estado que podem ocorrer a um

processo (Diagrama de Transio de Estado):

132

. Pronto - Execuo: quando um processo criado, o sistema o


coloca em uma lista de processos no estado de pronto, onde aguarda
uma oportunidade para ser executado. Cada SO tem seus prprios
critrios e algoritmos para a escolha da ordem em que os processos
sero executados (escalonamento ou schedulling)

. Execuo - Espera: um processo em execuo passa para o


estado de espera por eventos gerados pelo prprio processo, como
por exemplo, uma operao de E/S. Nesse caso o processo ficar
nesse estado esperando pela concluso do evento solicitado.

Sistemas Operacionais

133

. Espera - Pronto: um processo em espera passa para pronto


quando a operao solicitada atendida ou o recurso esperado
concedido. Um processo em espera sempre ter de passar pelo
estado de pronto antes de poder ser novamente selecionado para
execuo. No existe a mudana do estado de espera para o estado
de execuo diretamente.

. Execuo - Pronto : um processo em execuo passa para o


estado de pronto por eventos gerados pelo sistema, como por
exemplo, o fim da fatia de tempo que o processo possui para sua
execuo. Nesse caso, o processo volta para a fila de processos
prontos, onde aguarda uma nova oportunidade para continuar seu
processamento.

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

Os vrios processos competem entre si pela


ateno do processador.

Sistemas Operacionais
Multiprogramao
Cooperao

146

Processos podem trabalhar em conjunto para a


realizao de tarefas mais complexas.
Esta cooperao exige ao SO a existncia de
mecanismos de sincronizao e comunicao entre
processos

Sistemas Operacionais

Comunicao Interprocesso

147

Sistemas Operacionais
Comunicao Interprocessos

A comunicao entre processos, em ingls Inter-Process


Communication (IPC), o grupo de mecanismos que permite
aos processos transferirem informao entre si.

148

Sistemas Operacionais
Comunicao Interprocessos
Deveremos verificar 3 questes envolvidas neste processo de
comunicao (Regras para programao concorrente):

149

1 Como um processo pode passar informaes para outro


processo;
2 Dever ser certificado que dois ou mais processos no interfiram
um com outro quando envolvidos em atividades crticas;
3 O seqenciamento adequado quando esto presentes
dependncias: Se o processo A produz dados e o processo B os
imprime, B tem de esperar ate que A tenha produzido alguns dados
antes de comear a imprimir.

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

A principal funo do escalonamento decidir qual dos processos


prontos para execuo deve ser alocado CPU.

Cada SO necessita de um algoritmo de escalonamento adequado a seu


tipo de processamento. Os principais critrios que o escalonamento tenta
otimizar:

165

Utilizao da CPU: deseja-se que a CPU fique a maior parte do


tempo ocupada, sendo dividida de forma imparcial entre os
processos. Uma faixa de utilizao de 90% indica um sistema
bastante ocupado, prximo de sua capacidade ideal.

Sistemas Operacionais
Escalonamento

166

Throughput: representa o nmero de processos (tarefas)


executados em um determinado intervalo de tempo. Quanto maior o
Throughout , maior o nmero de tarefas executadas em funo do
tempo.

Tempo de turnaround: o tempo que um processo leva desde sua


admisso at o seu trmino, levando-se em considerao o tempo de
espera para alocao de memria, espera na fila de processos
prontos, processamento na CPU e operaes de E/S.

Sistemas Operacionais
Escalonamento

167

Tempo de resposta: em sistemas interativos, este tempo o tempo


decorrido do momento da submisso do pedido at a primeira
resposta produzida. O tempo de resposta no o tempo utilizado no
processamento total de uma tarefa, e sim o tempo decorrido at que
uma resposta seja apresentada.

De uma maneira geral, qualquer algoritmo de escalonamento busca


otimizar a utilizao da CPU e o Throughput , enquanto tenta diminuir
os tempos de turnaround e de resposta .

Sistemas Operacionais
Escalonamento

168

O algoritmo de execuo no o nico responsvel pelo tempo de


execuo de um processo. Outros fatores, como o tempo de
processamento (tempo de CPU) e de espera em operaes de E/S
devem ser considerados no tempo total da execuo (tempo de parede
ou elapsed time ou wall clock time).

O escalonamento somente afeta o tempo de espera de processos na fila


de pronto.

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

A troca de um processo por outro na CPU (troca de contexto),


causada pela preempo, gera um overhead ao sistema.
Para isto no se tornar crtico, o sistema deve estabelecer
corretamente os critrios de preempo.

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.

Um processo do usurio, uma vez interrompido por trmino do seu


quantum, volta fila de pronto para executar e permite o escalonamento
de outro 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

Se essa razo for maior do que 1, ento o processo ter


menos tempo de CPU do que os outros processos.

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

Esta soluo faz com que o escalonador de baixo nvel se preocupe


em escalar os processos que esto na memria enquanto que o de
alto nvel em trazer e levar processos entre a memria e o disco
(swap).

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

processos que estejam de posse de recursos obtidos anteriormente


podem solicitar novos recursos. Caso estes recursos j estejam
alocados a outros processos, o processo solicitante deve aguardar
pela liberao do mesmo;

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

3 - Condio de no-preempo: recursos j alocados a processos


no podem ser tomados a fora. Eles precisam ser liberados
explicitamente pelo processo que detm a sua posse;
4 - Condio de espera circular: deve existir uma cadeia circular de
dois ou mais processos, cada um dos quais esperando por um recurso
que est com o prximo membro da cadeia.

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

Ou seja, o Processo 1 reserva para si o Recurso 1, por sua vez o Processo


2 e o Processo 3 reservam respectivamente para si o Recurso 2 e o
Recurso 3. Por exemplo se um dos outros processos necessitar de um dos
recursos anteriormente reservados por outros processos, como acontece
no diagrama da figura anterior entramos numa situao de Deadlock.

215

Sistemas Operacionais - DeadLock


Os recursos so de 2 tipos :
Preemptveis e;
No-preemptveis.
Um recurso preemptvel aquele que pode ser tomado do processo
que estiver usando o recurso, sem nenhum prejuzo para o processo.
A memria um exemplo de recurso preemptvel.

216

Sistemas Operacionais - DeadLock


RECURSO PREEMPTVEL:
Considere um sistema com 512 Kb de memria disponvel para usurios, uma
impressora e 2 processos de 512 Kb (P1 e P2) cada. Estes processos
desejam imprimir alguma coisa.
O processo P1 carregado na memria e requisita e obtm acesso a
impressora, este ento inicia o processamento de impresso (clculos,lay-out
etc), porm antes de terminar P1 excede o seu tempo (time slice) e retirado
da memria (sai de EXECUTANDO e vai para PRONTO).
O processo P2 comea ento o seu processamento e tenta obviamente sem
sucesso, garantir para si o uso da impressora.

217

Sistemas Operacionais - DeadLock


RECURSO PREEMPTVEL:
Potencialmente temos configurado uma situao de DEADLOCK, pois
P1 tem a impressora e P2 tem a memria, e nenhum dos dois pode
prosseguir sem o recurso que esta com o outro.
Felizmente possvel tomar a memria de P2 (vai para BLOCKED),
copiando P1 (swapp) do disco para a memria agora P1 pode
executar, realizar a impresso e liberar a impressora, que quando
liberada ser entregue a P2 (sai de BLOCKED e vai para PRONTO),
para que este termine o seu processamento.
Neste caso no vai ocorrer DEADLOCK.

218

Sistemas Operacionais - DeadLock


RECURSO NO-PREEMPTVEL:
Em contrapartida um recurso no-preemptvel aquele que no pode
ser tomado de seu proprietrio atual sem causar problemas no
processamento corrente.
Por exemplo se um processo iniciou a impresso de resultados, a
impressora no poder ser tomada dele e entregue a outro processo,
sem que haja um prejuzo considervel no processo.
Para recurso no-preemptvel ocorrer DEADLOCK.

219