Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
Processo
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
Contexto de Hardware
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
executando
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
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
Contexto de Software
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
Contexto de Software
Contexto de Hardware
registrador SP
registrador de status
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 . . . . . . . .
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
Pronto (ready)
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
. . . . . . . .
PCB# 9
PCB# 2
PCB# 4
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:
b a
Estado de Espera
Estado de Pronto
Swap
Estado de Execuo
Estado de Pronto
Estado de Espera
Estado de Pronto
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
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
Estado de Espera
Estado de Pronto
Estado de Criao
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
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
arquivo de entrada
arquivo de sada
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
Processo D
Processo E
Thread
Cada thread possui seu prprio contexto de hardware Compartilha o contexto de software e espao de endereamento com demais threads
Thread
Contexto de hardware
Contexto de hardware
Thread 1
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
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
O processo tem pelo menos um thread de execuo, mas pode compartilhar com inmeros outras threads
Ambientes Multithreads
Contexto de hardware
Contexto de hardware
Thread 1
Thread 3
Ambientes Multithreads
Threads so pedaos do cdigo do programa chamador que podem ser executados de forma concorrente.
Threads compartilham o processador da mesma forma que processos e passam pelas mesmas mudanas de estado (esxecuo, espera e pronto)
...
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)
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
Modo usurio
Arquitetura e Implementao
Thread 1
Thread 2
Thread 0
Thread 3
Thread 4
Modo usurio
Kernel
Modo kernel
Arquitetura e Implementao
TMU 0
TMU 1
TMU 2
TMU 3
TMU 4
TMU 5
Modo usurio
Biblioteca
TMK 0
TMK 1
TMK 2
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?