processos e threads
TRANSCRIPT
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). ponteirosEstado 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 ProcessoLista 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
d
c
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 ProcessosEstado 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 ThreadsProcesso 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 processosinterrupoSistema 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
SinaisProcesso 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 SOThread 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
Exerccios1. 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?
Exerccios1. 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?