Buscar

SO_06 Processos.pdf

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Operacionais
Prof. Fernando Eryck
2012.2
Redes de Computadores
SUMÁRIO
� Processos
Processo
�A gerência de processos é uma das principais funções de um 
sistema operacional possibilitando aos programas:
�Alocar recursos
�Compartilhar dados
�Trocar informações
�Sincronizar suas execuções
�Os processos são executados concorrentemente, 
compartilhando:
�Memória principal, processador, dispositivos de E/S, etc.
�Sistemas multiprocessados permitem a execução simultânea de 
processos nos diferentes processadores
Processo
� O processador é projetado para executar instruções a partir de 
um ciclo de busca e execução
�Funcionamento:
� Processador busca a instrução a ser executada na memória principal� Processador busca a instrução a ser executada na memória principal
� Armazena-a no registrador de instruções
� Decodifica os bits
� Realiza a execução
�O processador executa instruções sem distinguir qual programa está sendo 
processado (transparência)
�É responsabilidade do SO implementar a concorrência entre programas 
gerenciando a alternância da execução de instruções na CPU de maneira 
controlada e segura
Conceitos de Processo
� Um processo pode ser entendido inicialmente como um programa 
em execução
� Na concorrência entre processos é necessário guardar todas informações 
do programa interrompido
� Processo é o conjunto necessário de informações para que o SO � Processo é o conjunto necessário de informações para que o SO 
implemente a concorrência de programas.
� A troca de um processo por outro no processador é denominada 
mudança de contexto
� Processo pode ser definido como o ambiente onde um programa é 
executado 
� Ambiente = informações sobre a execução, quantidade de recursos do 
sistema alocado, espaço de endereço de memória, tempo do 
processador e área em disco
Estrutura do Processo
� Um processo é formado por três partes, que juntos mantêm 
todas as informações necessárias à execução de um programa.
�Contexto de hardware
�Contexto de software�Contexto de software
�Espaço de endereçamento
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
Contexto de Hardware
�O contexto de hardware de um 
processo armazena o conteúdo dos 
registradores gerais da CPU, além dos 
registradores de uso específico 
(Program Counter, Stack Pointer,etc). 
�Os processos se alternam na 
Sistema Operacional
Salva registradores do
Processo A
executando
Processo A Processo B
�Os processos se alternam na 
utilização da CPU
� Interrompendo processo
� Salvando o conteúdo dos 
registradores
� Carrega novos valores do novo 
processo
�SO gerencia a mudança de contexto
Carrega registradores do
Processo B
Carrega registradores do
Processo A
executando
executando
Salva registradores do
Processo B
Program Counter = contêm o endereço da próxima instrução
Stack Pointer = pilha para realizar chamadas e retornos de prodecimentos que indica o programa em execução
Contexto de Software
�No contexto de software de um processo são especificados 
limites e características dos recursos que podem ser alocados 
pelo processo
� Número máximo de arquivos abertos simultaneamente
� Prioridade de execução� Prioridade de execução
� Tamanho de Buffer para operações de E/S
�O contexto de software define basicamente três grupos de 
informações sobre o processo:
� Identificação
� Quotas
� Privilégios
Contexto de Software
�Identificação
� Cada processo criado pelo sistema recebe uma identificação única 
(PID – process identification) representada por um número
�O processo possui também identificação do usuário ou processo 
que o criou.que o criou.
�Quotas
� São limites de cada recurso do sistema que um processo pode alocar
� Caso a quota seja insuficiente, o processo poderá ser 
�Executado lentamente
�Interrompido
� não executado
Contexto de Software
�Quotas (cont.)
� Exemplos de quotas presentes na maioria dos sistemas operacionais:
�Número máximo de arquivos abertos simultaneamente
�Tamanho máximo de memória principal e secundária alocada�Tamanho máximo de memória principal e secundária alocada
�Número máximo de operações de E/S pendentes
�Tamanho máximo do Buffer para operações de E/S
�Número máximo de processos, subprocessos e threads que 
podem ser criados
Contexto de Software
�Privilégios
� Definem as ações que um processo pode fazer em relação a ele 
mesmo, aos demais processos e ao sistema operacional
Espaço de Endereçamento
�É a área de memória pertencente ao processo onde 
instruções e dados do programa são armazenados para 
execução.
� Cada processo possui seu owner (UID)
PID
nome
registradores
gerais
próprio espaço de endereça-
mento, que deve ser prote-
gido do acesso dos demais
processos.
Programa
Contexto de
Software
prioridade de
execução registrador PC
data/ hora
de criação
tempo de
processador
registrador SP
quotas
privilégios
endereços de memória
principal alocados
registrador
de status
Contexto de
Hardware
Espaço de
Endereçamento
Bloco de Controle de Processo
�O processo é implementado pelo sistema operacional através de uma 
estrutura de dados chamadas bloco de controle do processo (Process Control 
Block - PCB)
� A partir do PCB, o sistema operacional mantém todas as informações 
sobre o contexto de hardware, contexto de software e espaço de 
endereçamento de cada processo.endereçamento de cada processo.
� Os PCBs de todos processos ativos residem 
na memória principal em uma área exclusiva
do SO
� O número máximo de processos ativos 
na memória é limitado pelo SO
.
.
.
.
.
.
.
.
ponteiros
Estado do processo
Registradores
Nome do processo
Prioridade do processo
Limites de memória
Lista de arquivos abertos
Estados do Processo
�Um processo pode encontrar-e em três diferentes estados:
� Execução (running)
� Estado de execução quando está sendo processado pela CPU
� Sistemas com uma CPU executam um processo por vez
Pronto (ready) � Pronto (ready) 
�Estado de pronto quando aguarda apenas para ser executado
�O SO determina quais processos em estado de pronto deve fazer uso 
da CPU 
� Os processos são ordenados pela sua importância, onde os 
prioritários serão selecionados primeiramente
� Espera (Wait)
�Estado de espera 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#9
PCB#1
PCB#2 PCB#4
Lista de
processos
em estado
de espera
Mudanças de Estados do Processo
�Um processo muda de estado durante seu processamento em função de 
eventos voluntários ou involuntários
� Pronto → Execução
� Execução → Espera Estado de Execução
� Espera → Pronto
� Execução → Pronto
Estado de Espera Estado de Pronto
a
c
db
Mudanças de Estados do Processo
� Pronto → Execução
� Após criação de um processo, o sistema o coloca em uma lista de 
processos no estado de pronto, aguardando a oportunidade de ser 
executado.
� A ordem dependerá dos critérios estabelecidos pelo SO� A ordem dependerá dos critérios estabelecidos pelo SO
Estado de Execução
Estado de Espera Estado de Pronto
a
c
db
Mudanças de Estados do Processo
� Execução → Espera
� A mudança ocorre por eventos gerados pelo próprio processo ou por 
eventos externos. 
�Ex.: Operação de E/S (gravação do documento word)
Aguardode recursos computacionais (memória, etc.)
Estado de Execução
Estado de Espera Estado de Pronto
a
c
db
Mudanças de Estados do Processo
� Espera → Pronto
� A mudança ocorre quando uma operação solicitada é atendida ou o 
recurso esperado é concedido. 
� Não existe a mudança do estado de espera para o estado de execução 
diretamente.diretamente.
Estado de Execução
Estado de Espera Estado de Pronto
a
c
db
Mudanças de Estados do Processo
� Execução → Pronto
� A mudança ocorre devido a eventos externos gerados pelo SO.
�Ex.: Término da fatia de tempo que o processo possui para sua 
execução. O processo volta para fila de pronto.
�Um processo em estado de pronto ou espera
pode não se encontrar na memória principal
quando esta não tiver espaço suficiente para
todos processos. Parte do contexto é levado
para Mem. Secundária. (Swapping)
Estado de Execução
Estado de Espera Estado de Pronto
a
c
db
Criação e Eliminação de Processos
� A criação de um processo ocorre a partir do momento em que o SO 
adiciona um novo PCB (Bloco de Controle do Processo) à sua estrutura e 
aloca um espaço de endereçamento na memória em uso.
� Criação 
� Estado de criação ocorre quando o SO já criou um novo PCB, porém � Estado de criação ocorre quando o SO já criou um novo PCB, porém 
ainda não pode colocá-lo na lista de processos do estado de pronto.
Estado de Execução Estado de Término
Estado de Espera Estado de Pronto Estado de Criação
Criação e Eliminação de Processos
� Terminado
� O estado de terminado não poderá ter mais nenhum programa 
executado no seu contexto, porém o SO ainda mantém suas 
informações de controle presentes na memória.
� Razões para término de processo� Razões para término de processo
� Término normal de execução
� Eliminação por um outro processo
� Eliminação forçada por ausência de 
recursos disponíveis
Estado de Execução Estado de Término
Estado de Espera Estado de Pronto Estado de Criação
Processos CPU-bound e I/O-bound
� Classificação dada de acordo com a utilização do processador e dos 
dispositivos de E/S são chamadas de CPU-bound e I/O bound.
� CPU-bound (ligado à CPU)
� Quando um processo passa a maior parte do tempo no estado de 
execução ou pronto. Realiza poucas operações de leitura e execução ou pronto. Realiza poucas operações de leitura e 
gravação.
�Ex.: Aplicações Científicas, alguns jogos 3D, aplicações que 
demandam alta performance de computação
� I/O-bound (ligado à E/S)
� Quando um processo passa a maior parte do tempo no estado de 
espera, realizando um elevado número de operações de E/S.
�Ex.: Aplicações Comerciais (Editores de Textos, etc.), Msn, 
Multimídia, etc. 
Processos CPU-bound e I/O-bound
E/S E/S
(a) CPU-bound
tempo tempo
UCP UCP
(b) I/O-bound
Processos Foreground e Background
�Foreground (primeiro plano)
� processo que permite a comunicação direta do usuário com o 
processo durante o seu processamento. 
� Canal de entrada/saída estão associados a um terminal (teclado, 
mouse e monitor) permitindo a interação com o usuáriomouse e monitor) permitindo a interação com o usuário
Processos Foreground e Background
�Background (segundo plano)
� É aquele onde não existe a comunicação com o usuário durante seu 
processamento. Os canais de E/S não estão associados a nenhum 
dispositivo de E/S interativo
� A associação (ligação) de um canal de saída de um processo ao canal 
de entrada de outro processo é denominada de pipe.
Formas de criação de Processos
�Logon Interativo
� Usuário por meio de um terminal, fornece ao sistema um username e 
password. 
� Ao se autenticar, um processo foreground é criado permitindo ao 
usuário interagir com o SO.usuário interagir com o SO.
� O processo também pode ser eliminado interativamente quando o 
usuário realiza o procedimento de saída do sistema, logout ou logoff.
� Via linguagem de comando
� Um usuário pode, a partir do seu processo, criar novos processos por 
intermédio de comandos.
Formas de criaç ão de Processos
�Via rotina do Sistema Operacional
� Um processo pode ser criado a partir de qualquer programa 
executável com o uso de rotinas do sistema operacional.
�Ex.: Programa AVG ao falhar pode executar um novo programa 
(outro anti-vírus por exemplo)(outro anti-vírus por exemplo)
Processos Independentes, Subprocessos 
e Threads
�São maneiras diferentes de implementar a concorrência entre processos 
proporcionando: 
� Tempo de espera menor na concorrência
�Melhor desempenho
� Processos independentes
� Simples implementar a concorrência
� Não existe vínculo do processo criado com o seu criador
� Uma vez criado, um PCB próprio é alocado para o processo
�Contexto de Hardware
�Contexto de Software
�Espaços de Endereçamento
Processos Independentes, Subprocessos 
e Threads
�Subprocessos 
� Processos criados dentro de uma estrutura hierárquica
� Processo criador é denominado processo-pai, enquanto o novo 
processo é chamado de subprocesso ou processo-filho
� Subprocessos podem criar novos subprocessos
� Detalhes importantes:
� Existe uma dependência entre o processo-pai e o processo-filho
�Caso o processo-pai deixe de existir, os subprocessos serão 
automaticamente eliminados
�Subprocessos possuem seu próprio PCB, da mesma forma que os 
processos independentes
� Subprocessos podem compartilhar cotas com o processo-pai
Processos Independentes, Subprocessos 
e Threads
Processo A
Estrutura de processos e subprocessos
Processo CProcesso B
Processo EProcesso D
Processos Independentes, Subprocessos 
e Threads
�Problemas no uso de processos e subprocessos
� Demanda consumo de diversos recursos do sistema (CPU, Memória)
�Sempre que um novo processo é criado, novos recursos devem ser 
alocados (contexto de hardware, software e espaço de endereçamento)
�Sempre que um processo é eliminado exige-se tempo de CPU também�Sempre que um processo é eliminado exige-se tempo de CPU também
� Comunicação entre processos é pouco eficiente
� Cada processo possui seu próprio espaço de endereçamento
Processos Independentes, Subprocessos 
e Threads
�Threads
� Criado para reduzir 
�Tempo na criação do processo
�Tempo na eliminação do processo e troca de contexto
� Recursos do sistema operacional� Recursos do sistema operacional
� Em um ambiente multithread, um único processo pode suportar 
múltiplos threads
� Threads compartilham o processador da mesma maneira que um 
processo
�Enquanto um thread espera uma operação de E/S, outra pode ser 
executada na CPU
� Cada Thread possui seu próprio contexto de hardware, porém compartilha o 
mesmo contexto de software e espaço de endereçamento com os demais 
threads do processo
Processos Independentes, Subprocessos 
e Threads
Contexto
de hardware
Contexto
de hardware
Contexto
de hardware
Espaço de
endereçamento
C
o
n
t
e
x
t
o
 
d
e
s
o
f
t
w
a
r
e
Thread 3Thread 2Thread 1
Sinais
�É um mecanismo que permite notificar processos de eventos gerados 
pelo sistema operacional ou por outros processos
[ctrl-C]
interrupção sinal
Sistema Operacional
� A maior parte dos eventos associados a sinais são gerados pelo SO ou 
pelo Hardware
� Ocorrência de exceções, interrupções geradas por terminais, 
limites de quotas excedidos e alarmes de tempo
[ctrl-C]
Processo
Hardware
Sistema Operacional
Interrupções
Exceções
Sinais
Processo Processo

Continue navegando