Você está na página 1de 52

Processos e Threads

Processos

Processo

Conceito base para um sistema multiprogramvel A gerncia de processos uma das principais funes do SO

Os processos so executados concorrentemente, compartilhando o uso do processador, memria principal e dispositivos de E/S, dentre outros recursos.

Em sistemas com mltiplos processadores

Tambm existe a possibilidade de execuo simultnea.

Processo

Pode ser entendido inicialmente como um programa em execuo

S que seu conceito mais abrangente

Pode tambm ser definido como um conjunto necessrio de informaes para que o SO implemente a concorrncia de programas.

Estrutura do Processo

Contexto de Software

Contexto de Hardware

Programa Espao de Endereamento

Contexto de Hardware

Armazena o contedo dos resgistradores gerais da UCP

Alm dos registradores de uso especfico como o program counter (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 que perde a utilizao da UCP, o SO salva as informaes no contexto de hardware do processo.

Sistema Operacional

Processo A

Processo B

executando

Salva registradores do Processo A

Carrega registradores do Processo B

executando

Salva registradores do Processo B

Carrega registradores do Processo A

executando

Contexto de Software

No contexto de software de um processo so especificados limites e caractersticas dos recursos que podem ser alocados pelo processo

Nmero mximo de arquivos abertos simultaneamente Prioridade de execuo Tamanho de buffer para operaes de E/S

Muitas dessas caractersticas so definidas no momento de criao do processo, outras podem ser alteradas durante a sua existncia

Contexto de Software

Arquivo de Usurios (arquivo do SO)


De onde provm a maior parte das informaes do contexto de software Neste arquivo so especificados os limites de recursos que cada processo pode alocar, sendo gerenciado pelo administrador do sistema

Outras informaes do Contexto de Software so geradas dinamicamente ao longo da execuo do processo.

Contexto de Software

Composto por 3 grupos de informaes sobre os processos Identificao


Cada processo recebe uma identificao nica (PID), representado por um nmero. Atravs do PID o SO e outros processos podem fazer referncia a um processo Alguns sistemas alm do PID utilizam nome. Alm do PID, existe o UID que especifica o processo ou usurio que criou o processo
UID utilizado em segurana

Contexto de Software

Quotas

So os limites de cada recursos do sistema que um processo pode alocar Caso a quota seja insuficiente, o processo poder ser executado lentamente, interrompido durante seu processamento ou mesmo no ser executado. Exemplos

Nmero mximo de arquivos abertos simultaneamente Tamanho mximo de memria (principal e secundria) que o processo pode alocar Nmero mximo de operaes de E/S pendentes Tamanho mximo de buffer para operaes de E/S Nmero mximo de processos, subprocessos e threads que podem ser criados

Contexto de Software

Privilgios

Definem as aes que um processo pode fazer em relao a ele mesmo, aos demais processos e ao SO

Espao de Endereamento

rea de memria pertencente ao processo onde instrues e dados do programa so armazenados para execuo. Cada processo possui seu prprio espao de endereamento, que deve ser devidamente protegido do acesso dos demais processos.

PID owner (UID) prioridade de execuo data/ hora de criao tempo de processador quotas privilgios

nome

registradores gerais registrador PC

Contexto de Software

Contexto de Hardware

registrador SP

Programa Espao de Endereamento

registrador de status

endereos de memria principal alocados

Bloco de Controle do Processo

O processo implementado pelo SO atravs de uma estrutura de dados chamada bloco de controle de processo (Process Control Block PCB). ponteiros
Estado do processo Nome do processo Prioridade do processo Registradores Limites de memria Lista de arquivos abertos . . . . . . . .

Bloco de Controle do Processo

A partir do PCB, o SO mantm todas as informaes sobre o contexto de hardware, contexto de software e espao de endereamento de cada processo. OS PCBs de todos os processos ativos residem na memria principal em uma rea exclusiva do SO.

O tamanho dessa rea controlado por um parmetro do SO que especifica o nmero mximo de processos que podem ser suportados simultaneamente pelo sistema.

Estados do Processo

Um processo ativo pode encontrar-se em 3 diferentes estados: Execuo (running)

Quando est sendo processado pela UCP

Pronto (ready)

Quando est apenas aguardando para ser executado

Espera (wait)

Aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento.

Estados do Processo
Lista de processos em estado de pronto PCB# 5
. . . . . . . .

PCB# 1

. . . . . . . .

Lista de processos em estado de espera


. . . . . . . . . . . . . . . . . . . . . . . .

PCB# 9

PCB# 2

PCB# 4

Mudanas de Estado do Processo

Um processo muda de estado durante seu processamento em funo de eventos originados por ele prprio (eventos voluntrios) ou pelo SO (eventos involuntrios) Basicamente Existe 4 mudanas de estado que podem ocorrer a um processo:

Pronto Execuo Execuo Espera Espera Pronto Execuo Pronto

Mudanas de Estado do Processo Estado de Execuo

b a

Estado de Espera

Estado de Pronto

Swap

Um processo em estado de pronto e espera podem no se encontrar na memria principal.

Quando no existe espao suficiente

Parte dos processos levado para a memria secundria (Swap)

Estado de Execuo

Estado de Espera residente no residente

Estado de Pronto

Estado de Espera

Estado de Pronto

Criao e Eliminao de Processos

Alm dos 3 estados apresentados anteriormente, a maioria dos SOs estabelece para os momentos de criao e eliminao de um processo dois estados adicionais Criao (new)

Quando o SO j criou um novo PCB, porm ainda no pode coloc-lo na lista de pronto

Criao e Eliminao de Processos

Terminado (exit)

No tem nenhum programa mais executando em seu contexto, porm o SO mantm suas informaes
Trmino normal da execuo Eliminao por um outro processo Eliminao forada por ausncia de recursos disponveis

Criao e Eliminao de Processos


Estado de Execuo Estado de Trmino

Estado de Espera

Estado de Pronto

Estado de Criao

Processos CPU-bound e I/O-bound

Um processo definido como CPU-bound (ligado CPU) quando passa maior parte do tempo no estado de execuo ou pronto.

Realiza poucas operaes de leitura e gravao, encontrado normalmente em aplicaes cientficas que realizam muitos clculos

Um processo definido com I/O-bound (ligado E/S) quando passa maior parte do tempo em espera, pois realiza elevado nmero de operaes de E/S

E/ S

E/ S

UCP

UCP

tempo (a) CPU-bound (b) I/ O-bound

tempo

Processos Foreground e Background

Processo foreground aquele que permite a comunicao direta do usurio com o processo durante seu processamento Processo Background aquele onde no existe comunicao com o usurio durante seu processamento

(a) Processo Foreground entrada terminal sada terminal

(b) Processo Background entrada sada

arquivo de entrada

arquivo de sada

Processos Independentes, Subprocessos e Threads

Processos Independentes

No tem vnculo com o criador Tem PCB, contexto de software, contexto de hardware e espao de endereamento prprios

Subprocessos

Criados dentro de uma estrutura hierrquica Dependncia entre processo criador e subprocesso Quotas compartilhadas Possuem PCB prprio, assim contexto de hardware, software e espao de endereamento prprios

Processos Independentes, Subprocessos e Threads


Processo A Processo B Processo C

Processo D

Processo E

Processos Independentes, Subprocessos e Threads

Thread

Cada thread possui seu prprio contexto de hardware Compartilha o contexto de software e espao de endereamento com demais threads

Processos Independentes, Subprocessos e Threads

Thread

Contexto de hardware Contexto de software

Contexto de hardware

Contexto de hardware

Thread 1

Thread 2 Espao de endereamento

Thread 3

Sinais

Mecanismo que permite notificar processos de eventos gerados pelo SO ou por outros processos
interrupo
Sistema Operacional

sinal

[ctrl-C] Processo

Sinais

Podem ser utilizados com temporizadores A gerao de sinal ocorre quando o SO, a partir de eventos sncronos ou assncronos, notifica o processo atravs de bits de sinalizao localizados no seu PCB.

O sinal s vai ser processado de fato quando o mesmo for escalonado para execuo

Sinais
Processo Processo

Sinais

Sistema Operacional

Interrupes Excees Hardware

Threads

Ambiente Monothread

Aplicaes concorrentes so implementadas apenas com o uso de mltiplos processos independentes ou subprocessos

Subprocessos

Processos Independentes

Ambiente Monothread

Thread

Thread

Thread

Ambientes Multithreads

Os programas no esto associados a processos, mas sim a threads

O processo tem pelo menos um thread de execuo, mas pode compartilhar com inmeros outras threads

Ambientes Multithreads

Contexto de hardware Contexto de software

Contexto de hardware

Contexto de hardware

Thread 1

Thread 2 Espao de endereamento

Thread 3

Ambientes Multithreads

Threads so pedaos do cdigo do programa chamador que podem ser executados de forma concorrente.

Enquanto uma thread faz algo, outra faz outra coisa.

Threads compartilham o processador da mesma forma que processos e passam pelas mesmas mudanas de estado (esxecuo, espera e pronto)

Processo Espao de endereamento

...
Variveis Programa Principal Call Sub_1 Call Sub_2

PC SP

Sub_1

PC SP

Sub_2

PC SP

Ret

...

Contexto de Hardware

Ret

Thread_3

Contexto de Hardware

Fim

Thread_2

Contexto de Hardware

Thread_1

Processo servidor

Solicitaes

Thread

Thread

Thread

Processo cliente

Processo cliente

Processo cliente

Ambientes Multithreads

Threads so implementados internamente atravs de uma estrutura de dados denominada bloco de controle de thread (Thread Control Block TCB)

Armazena o contexto de hardware, estado de execuo, prioridade e outras informaes da thread.

Monothread X Multithread

A diferena est no uso do espao de endereamento Em ambientes multithreads o compartilhamento de dados mais simples e rpido.

Arquitetura e Implementao

Threads em Modo Usurio

So implementados pela aplicao e no pelo SO


Thread 1 Thread 2 Thread 0 Thread 3 Thread 4

Modo usurio

Biblioteca Kernel Modo kernel

Arquitetura e Implementao

Threads em Modo Kernel

So implementados diretamente pelo ncleo do SO

Thread 1

Thread 2

Thread 0

Thread 3

Thread 4

Modo usurio

Kernel

Modo kernel

Arquitetura e Implementao

Threads em Modo Hbrido

Combina as vantagens das outras 2

TMU 0

TMU 1

TMU 2

TMU 3

TMU 4

TMU 5

Modo usurio

Biblioteca

TMK 0

TMK 1

TMK 2

TMK 3 Modo kernel

Kernel

Arquitetura e Implementao

Scheduler Activations

Thread 0

Thread 1

Thread 2

Thread 3

Thread 4

Modo usurio

Biblioteca

Kernel

Modo kernel

Exerccios
1. 2.

3. 4. 5.

Quais partes compe um processo? O que contexto de hardware de um processo e como a implementao da troca de contexto? O que espao de endereamento de um processo? Defina os 5 estados possveis de um processo. Qual a diferena entre processos foreground e background?

Exerccios
1. 2.

D exemplos de aplicaes I/O-bound e CPU-bound. Quais a vantagens e desvantagens entre o compartilhamento de espao de endereamento entre threads de um mesmo processo?