Вы находитесь на странице: 1из 88

Sistemas Operacionais

Processos e Threads
Thiago Leite
<thiago.leite@udf.edu.br>
Processos e Threads

Processo

Programa em execuo

Todo processo um programa?

Mais: o programa apenas parte do


estado.

Menos: programas podem gerar vrios


processos.
Processos e Threads

Abstrao de processo

permite execuo de mltiplas tarefas


(multiprogramao)

prevenir que um processo interra em


outro
Processos e Threads

Cada processo possui um espao de


endereamento

recursos de auxlio ao processo

O processo e seu respectivo espao de


endereamento chamam-se imagem do
ncleo
Processos e Threads

Espao de endereamento

Programa executvel

Dados do programa

Registradores

Arquivos abertos

Alarmes pendentes

Listas de processos relacionados


Processos e Threads

Segmentos de um processo Unix

Pilha

conjunto de instrues de uma sub-rotina

Heap

extenso da memria

BSS (Block Memory Starting with Symbol)

variveis no inicializadas

Data

variveis inicializadas

Texto

instrues do programa
Processo Unix
Processos e Threads

Multiprogramao

vrios processos em memria

vrios uxos de execuo

processos desconhecem o momento que


sero executados

apenas um contador de programa real


Multiprogramao
Processos e Threads

Sistema operacional lida com a Tabela de


Processos

estruturas de cada processo em


execuo
Processos e Threads

rvore de Processos

Pode criar um ou mais processos lhos

Processos lhos tambm podem criar


processos lhos
rvore de Processos
Processos e Threads

Hierarquias de
processos

Em Unix todos os
processos compe
uma rvore com a
raz o INIT

Em Windows todos
os processos so
iguais
Processos e Threads

Chamadas de sistema de gesto de


processos

criao e trmino de processos

requisitar mais memria ou esperar o


trmino de outro processo
Processos e Threads

Momentos em que os processos


geralmente so criados

Incio do sistema

Execuo de uma chamada de sistema de


criao

Requisio do usurio

Incio de tarefa em lote (batch)


Processos e Threads

Processos podem ser criados em

Foreground

Background
Processos e Threads

Processos em Foreground

processos sujeitos a interao do usurio

usualmente processos do terminal de


comandos ou GUI
Processos e Threads

Processos em
Background

daemons em Unix

Disk And
Execution
MONitor

servios em
Windows
Processos e Threads

Fluxo de dados para


processos em Unix

entrada padro

sada normal

sada com erro


Processo entrada
sada padro
sada de erro
Processos e Threads

Trmino de processo

Sada normal (voluntrio)

Sada por erro (voluntrio)

Erro fatal (involuntrio)

Cancelamento por outro processo


(involuntrio)
Processos e Threads

Comunicao entre processos

processo envia sada para entrada de


outro processo

dois processos solicitando o mesmo


recurso

um processo depende de outro para


realizar uma tarefa
Pipe Unix
Sada de um processo e entrada de outro
Processos e Threads

Processos em Unix

PID (Process IDentier)

identicao de um processo

nmero utilizado para manipular os


processos e enviar sinais (alarmes)
Processos e Threads

Processos em Unix

Possui um UID (User IDentier)


associado

Vrios UIDs podem pertencer a um


GID (Group IDentication)

Sistemas baseados em Unix possuem


um UID especial com super-poderes.
Processos e Threads

Outros elementos de processos em Unix

Ambiente de execuo (Ex: PATH)

Diretrio de trabalho

Instrues do programa

Registradores e Pilha de instrues

Heap (alocao de memria dinmica)

Descritores de arquivos

Aes de sinais

Bibliotecas compartilhadas

Sistema de comunicao entre processos (las de mensagens, pipes ou


memria compartilhada)
Informaes sobre Processos
Processos e Threads

A Tabela de Processos em sistemas Unix-


like usualmente representada por /proc

Em Linux procfs um sistema de


arquivos virtual com a Tabela de
Processos
Tabela de Processos em /proc
Processos e Threads

Signicado de alguns elementos de /proc

cmdline - comando e opes associados ao processo

cwd - diretrio de trabalho do processo.

environ - variveis de ambiente criadas pelo processo

exe - executvel do processo

fd - descritores de arquivos utilizados

maps - regies de memria ocupadas pelo processo


Ciclo de vida de um processo
Processos e Threads

Estados principais de um processo

Em execuo (realmente usando a CPU)

Pronto (executvel; esperando seu


momento)

Bloqueado (esperando recursos)


1) Processo bloqueado por operao de E/S
2) Escalonador troca de processo
3) Escalonador inicia esse processo
4) Operao de E/S torna-se disponvel
Bloqueado
Execuo
Pronto
1 2
3
4
Processos e Threads

O momento das interrupes depende do


tipo de sistema a adotar

Preemptivo (processos podem ser


interrompidos sem consentimento)

No-preemptivo (processos que decidem


o momento de parar)
Processos e Threads

Sistema preemptivo

Escalonador (invisvel ao processo)

Interrupes

Inicializao

Bloqueio
Processos e Threads

Escalonador

Utiliza a Tabela de Processos

Manipulador de processos (process


handler)

Salvar registradores

Alterar ponteiro da pilha

Rotinas em linguagem Assembly


Processos e Threads

Escalonamento
1. Hardware guarda contador de programa atual
2. Hardware carrega o novo contador de programa
3. Rotinas Assembly salvam os registradores
4. Rotinas Assembly carregam novos registradores
5. Servio de interrupo em C carrega os buffers
6. Escalonador decide quem ser o prximo a executar
7. Procedimentos em C retornam comando s rotinas Assembly
8. Rotina Assembly inicia o processo atual
Processos e Threads

Principais mtodos de escalonamento

FIFO (First-In-First-Out) ou FCFS (First-Come-First-Served)

primeiro a chegar em pronto o primeiro a ser executado

SJF (Shortest Jog First), SPN (Shortest Process Next) e SRT (Shortest
Remaning Time)

menor tarefa ser executada primeiro

Por prioridade

processos so associados a prioridades. Processos com prioridades


iguais obedecem ao FIFO.

Round-Robin ou circular

revezamento com preempo


9.2 / SCHEDULING ALGORITHMS 415
First-come-first
served (FCFS)
0 5 10 15 20
0 5 10 15 20
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
Round-robin
(RR), q 1
Round-robin
(RR), q 4
Shortest process
next (SPN)
Shortest remaining
time (SRT)
Highest response
ratio next (HRRN)
Feedback
q 1
Feedback
q 2
i
Figure 9.5 A Comparison of Scheduling Policies
The normalized turnaround time for process Y is way out of line compared to the
other processes: the total time that it is in the system is 100 times the required process-
ing time. This will happen whenever a short process arrives just after a long process.
On the other hand, even in this extreme example, long processes do not fare poorly.
Process Z has a turnaround time that is almost double that of Y, but its normalized
residence time is under 2.0.
M09_STAL6329_06_SE_C09.QXD 2/21/08 9:32 PM Page 415
Exemplo de Escalonamento
FIFO ou FCFS
Processo
Tempo de
chegada
Tempo de
Processament
o
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2
Algoritmo de tarefa mais curta (SJF)
9.2 / SCHEDULING ALGORITHMS 415
First-come-first
served (FCFS)
0 5 10 15 20
0 5 10 15 20
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
Round-robin
(RR), q 1
Round-robin
(RR), q 4
Shortest process
next (SPN)
Shortest remaining
time (SRT)
Highest response
ratio next (HRRN)
Feedback
q 1
Feedback
q 2
i
Figure 9.5 A Comparison of Scheduling Policies
The normalized turnaround time for process Y is way out of line compared to the
other processes: the total time that it is in the system is 100 times the required process-
ing time. This will happen whenever a short process arrives just after a long process.
On the other hand, even in this extreme example, long processes do not fare poorly.
Process Z has a turnaround time that is almost double that of Y, but its normalized
residence time is under 2.0.
M09_STAL6329_06_SE_C09.QXD 2/21/08 9:32 PM Page 415
Exemplo de Escalonamento por
SJF, SPN e SRT
Processo
Tempo de
chegada
Tempo de
Processament
o
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2
Algoritmo por Prioridade
Exemplo de Escalonamento por
Prioridade
Processo B possui maior prioridade de execuo

P = Pronto
E = Execuo
W = Espera
Simulador SOSim
Algoritmo Prioridade e FIFO
Algoritmo Round-Robin ou Circular
9.2 / SCHEDULING ALGORITHMS 415
First-come-first
served (FCFS)
0 5 10 15 20
0 5 10 15 20
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
Round-robin
(RR), q 1
Round-robin
(RR), q 4
Shortest process
next (SPN)
Shortest remaining
time (SRT)
Highest response
ratio next (HRRN)
Feedback
q 1
Feedback
q 2
i
Figure 9.5 A Comparison of Scheduling Policies
The normalized turnaround time for process Y is way out of line compared to the
other processes: the total time that it is in the system is 100 times the required process-
ing time. This will happen whenever a short process arrives just after a long process.
On the other hand, even in this extreme example, long processes do not fare poorly.
Process Z has a turnaround time that is almost double that of Y, but its normalized
residence time is under 2.0.
M09_STAL6329_06_SE_C09.QXD 2/21/08 9:32 PM Page 415
Exemplo de Escalonamento Round-Robin
com diferentes tempos de transio
Processo
Tempo de
chegada
Tempo de
Processament
o
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2
Processos e Threads

Mtodos compostos de escalonamento

Fila Mltipla (Multilevel Queue)

divide a la de prontos em vrias las separadas, com


base em alguma propriedade do processo. Cada la
possui seu prprio algoritmo de escalonamento

Fila Mltipla com Realimentao (Multilevel Feedback


Queue)

identica dinamicamente o comportamento de cada


processo, ajustando assim suas prioridades de
execuo e mecanismos de escalonamento.
Algoritmo Fila Mltipla
Escalonador com Fila Mltipla
Processos e Threads

Tipos de processos

CPU Bound

Uso intensivo da CPU

Poucas operaes de Entrada/Sada

Pode monopolizar a CPU dependendo do tipo de


algoritmo de escalonamento utilizado

I/O Bound

Orientado a Entrada/Sada

Devolve deliberadamente o uso da CPU


Cenrios de uso da CPU
Processos e Threads

Threads

Miniprocessos

Mltiplas atividades simultneas

Compartilhamento do espao de
endereamento

Criar threads cem vezes mais rpido


Processos e Threads

Exemplo do uso de Threads

Editor WYSIWYG (What You See Is


What You Get)

Edio e resultado simultneo

O Microsoft Word e BrOfce.org so


exemplos de editores WYSIWYG
Editor de texto com trs Threads
Servidor Web Multithread
Processos e Threads

Condies de corrida

processos que compartilham dados

ex: spool de impresso

dois processos acessam a mesma regio e


ocasionalmente entrem em conito

ex: dois processos acham o mesmo


espao livre e gravam no local
Dois processos incluindo arquivos a serem
impressos no spool ao mesmo tempo
Processos e Threads

Excluso mtua

apenas um processo poder acessar


determinado recurso por vez

o cdigo de um processo que faz uso de


recurso compartilhado chama-se regio
crtica
Processos e Threads

Condies para acesso a dados


compartilhados

dois processos nunca podem estar


simultaneamente em suas regies crticas

nenhum processo fora de sua regio crtica


poder bloquear outro processo

nenhum processo dever esperar


eternamente por sua regio crtica
Excluso mtua usando regies
crticas
Processos e Threads

Espera ociosa

espera para que um processo deixe sua


regio crtica e possa realizar o mesmo

expectativa de espera por um tempo


razovel
Processos e Threads

Semforos

proposto por Edsger


Dijkstra em 1965

utilizada em sistemas
multiprogramados

varivel protegida
para controle de
recursos
compartilhados
Processos e Threads

Operaes sobre semforos so atmicas

inicializao

operao wait

operao signal
Processos e Threads

Inicializao de semforo

recebe valor inteiro indicando quantos


processos podero ter acesso simultneo
a um recursos compartilhado
Processos e Threads

Operao wait em semforos

decrementa o valor do semforo

se esse possuir valor 0, esse colocado


em estado de espera ociosa
Processos e Threads

Operao signal em semforos

se houver um processo em espera ociosa,


esse acordado

se no houver processo em espera


ociosa, o valor do semforo
incrementado
Processos e Threads

Os processos fazem uso


de uma estrutura FIFO
para uso do Semforo
Processos e Threads

Mutex

tipo mais simples de semforo

semforo binrio, onde o recurso est


disponvel ou no
Chave de Acesso ao Recurso
Compartilhado com Mutex
Reviso

Processo

Concorrncia

Multiprogramao

Espao de
endereamento

Tabela de processos

Imagem do ncleo

rvore de processos

Subprocessos

Chamadas de sistema
(system calls)

Criao de processos

Foreground

Background

PID

Processos em Unix

UID

GID

ps

kill

Trmino de processo

Shell Unix

Hierarquias de processos

Comunicao entre
processos

Estados de um processo

Diagrama de estados de
processo

Estados de um processo
em Unix

Escalonador

Manipulador de
processos

Algoritmos de
Escalonamento

Otimizao do uso da
CPU

Threads

Condies de corrida

Regio crtica

Semforos

Excluso mtua

Mutex
Correios
(CESPE) Com relao s caractersticas e
funes bsicas de um sistema operacional, julgue
os itens seguintes.
Em um ambiente com mltiplos threads
(multithread), no necessrio haver vrios
processos para se implementarem aplicaes
concorrentes.
a) Certo
b) Errado
FUB
(CESPE) As threads auxiliam o sistema
operacional no paralelismo de atividade
quando h simultaneamente mltiplas
atividades em diversas aplicaes.
a) Certo
b) Errado
TSE
(CONSULPLAN) De modo geral, as distribuies
Linux permitem o uso de comandos no prompt.
Nesse sentido, para navegar entre os diretrios e
para listar arquivos e diretrios em uma pasta
atual, um programador de sistemas que est
operando um notebook na empresa dispe,
respectivamente, dos seguintes comandos
a) rd e dir
b) cd e ls
EBC
(CESPE) A criao de processos em um
sistema operacional pode ocorrer, entre
outras formas, a partir de um evento como o
incio de uma tarefa em lote (batch).
a) Certo
b) Errado
Correios
(CESPE) Durante o perodo em que est
funcionando, o kernel do Windows XP
permanece na memria, e sua execuo
nunca preemptada.
a) Certo
b) Errado
Banco da Amaznia
(CESPE) Estados de um processo incluem
possibilidades como inicial, processando e
nalizado.
a) Certo
b) Errado
ENADE
Com relao s diferentes tecnologias de armazenamento de dados, julgue os itens a seguir.
I) Quando a tenso de alimentao de uma memria ROM desligada, os dados dessa memria so
apagados. Por isso, esse tipo de memria denominado voltil.
II) O tempo de acesso memria RAM maior que o tempo de acesso a um registrador da unidade
central de processamento (UCP).
III)O tempo de acesso memria cache da UCP menor que o tempo de acesso a um disco
magntico.
IV)O tempo de acesso memria cache da UCP maior que o tempo de acesso memria RAM.
Os seguintes itens so corretos:
a) I e II
b) I e III
c) II e III
d) II e IV
e) III e IV
PRODAM - AM
(Funcab) Qual o signicado do conceito Multithread num sistema operacional?
a) Condio em que processos cam bloqueados esperando por algum evento
que nunca vai acontecer.
b) Guardar dados para posterior utilizao, evitando a repetio de acesso a
dispositivos lentos.
c) Capacidade de processar algum job assim que este chega ao sistema atravs
da sobreposio de operaes muito lentas com processamento.
d) Utilizao de pores de memria para guardar dados que vm de
dispositivos com baixa velocidade para agilizar o processamento de algum
dado.
e) uma forma de um processo dividir a si mesmo em duas ou mais tarefas que
podem ser executadas simultaneamente.
TJ-DF
(CESPE) Um mutex um tipo de semforo
simplicado, mas til para a excluso mtua
entre processos leves.
a) Certo
b) Errado
CETESB
(VUNESP) A operao signal ou V utilizada em um dado semforo:
a) ativa todos os processos associados ao recurso.
b) atribui a ele a quantidade de recursos disponveis para utilizao
pelos processos.
c) envia uma mensagem a todos os processos que disputam o
recurso.
d) faz com que um processo, que eventualmente esteja na la de
espera do recurso controlado por esse semforo, possa
novamente ter condies de ser executado.
e) sinaliza que nenhum processo est utilizando o recurso.
Laboratrio

Comandos Bash Shell

ls - listar o contedo de um diretrio ou


informaes sobre um arquivo
! #$

cd - navegar entre diretrios


! %& &'()*+('+
Laboratrio

Comandos Bash Shell

cat - exibe e concatena arquivos


! %,* ,(-.'/+0 ,(-.'/+1

grep - ltra uma entrada por uma string


! 2()3 4'#*(+ ,(-.'/+
Laboratrio

Comandos Bash Shell

echo - imprime uma mensagem


! )%5+ 67#, 8.9&+:

rm - remove arquivos do sistema


! (; ,(-.'/+
Laboratrio

Comandos Bash Shell

sudo - solicitar execuo em modo


Super Usurio
! $.&+ %+;,9&+

su - autenticar-se como Super Usurio


! $.
Laboratrio

Uso do pipe ( ! ) em Bash Shell


! %,* ,(-.'/+0 ,(-.'/+1 < 2()3
4'#*(+
Laboratrio

Comandos Bash Shell

; - nalizao de um comando
%+;,9&+0 = %+;,9&+1

\ - continuao de um mesmo comando


em vrias linhas
%+;,9&+ >
%+9*'9.,?@+%+;,9&+=
Laboratrio

Redirecionamento de entradas e sadas em Bash Shell

< - entrada padro


%+;,9&+ A ,(-.'/+B%+;B,(2.;)9*+$

> ou >> - sada padro


%+;,9&+ C ,(-.'/+B$,'&,

2> ou 2>> - sada de erro


%+;,9&+ 1CC ,(-.'/+B)((+B,3)9&'%)

2>&1 - sada padro e de erros


%+;,9&+ 1CD0 ,(-.'/+B$,'&,$
Laboratrio

Comandos em Bash Shell

& - execuo de um comando em segundo plano (background)


%+;,9&+ D

jobs - apresenta comandos em background


E0FG H.99'92 %+;,9&+ D

fg - traz processo novamente para o foreground


42 0

bg - leva um processo para background


I2 0
Laboratrio

Comandos em Bash Shell

ps - obtm informaes sobre os


processos do sistema
3$ ,.J

kill - envia um sinal para um determinado


PID
K'## LM 0NNN

Вам также может понравиться