Logo Passei Direto
Buscar

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Sistemas Operacionais 
Processos 
 
 
Prof. Rogério Colpani 
E-mail: rocolpani@gmail.com 
1 
Roteiro 
2 Sistemas Operacionais 
1. Introdução. 
2. Definição de processo. 
3. Estrutura do processo. 
4. Bloco de controle do processo. 
5. Estados de processo: ciclo de vida de um processo. 
6. Gerenciamento de processo. 
7. Processo CPU-bound e I/O-bound. 
8. Hierarquia de processos. 
9. Chaveamento de contexto. 
10.Interrupções. 
Introdução 
3 Sistemas Operacionais 
 Muitos sistemas na natureza têm a capacidade de 
realizar várias ações ao mesmo tempo. 
 
Exemplo 
 
O corpo humano realiza uma grande variedade de operações em 
paralelo - ou, como diremos, concorrentemente. 
 
• Respiração, circulação do sangue, digestão, pensar, andar. 
 
 Os computadores também executam operações 
concorrentemente. 
 
Exemplo 
 
• Compilar um programa, enviar um arquivo a uma impressora, exibir uma 
página web e ouvir música. 
Definição de processo 
4 Sistemas Operacionais 
 Um processo é um programa em execução 
 
 Um processo é um conjunto de informações para que o 
SO implemente a concorrência de programas. 
 
 Para que a concorrência entre os programas ocorra 
sem problemas, é necessário que todas as informações do 
programa interrompido sejam guardadas para que, quando 
este voltar a ser executado, não lhe falte nenhuma 
informação necessária à continuação do processamento. 
Estrutura do processo 
5 Sistemas Operacionais 
Estrutura do processo 
6 Sistemas Operacionais 
 Contexto de hardware 
 conteúdo dos registradores gerais. 
 Conteúdo dos registradores específicos, como PC, ponteiro de 
pilha e registrador de status. 
 
 O contexto de hardware é fundamental para a implementação dos 
sistemas multiprogramáveis, onde os processos se alternam na 
utilização da CPU. 
 
 O SO gerencia a mudança de contexto, base para a implementação 
da concorrência, que consiste em salvar o conteúdo dos 
registradores do processo que está deixando a CPU e carregá-lo com 
os valores referentes ao do novo processo que será executado. 
Estrutura do processo 
7 Sistemas Operacionais 
Estrutura do processo 
8 Sistemas Operacionais 
 Contexto de software 
 São especificados limites e características dos recursos que 
podem ser alocados pelo processo, exemplo: 
 Número máximo de arquivos abertos simultaneamente. 
 Prioridade de execução. 
 Tamanho do buffer para operações de E/S. 
 Tamanho máximo de memória principal e secundária que o 
processo pode alocar. 
 PID – identificador de processo. 
 
 Algumas destas características são determinadas no momento da 
criação do processo, enquanto outras podem ser alteradas durante 
sua execução. 
Estrutura do processo 
9 Sistemas Operacionais 
 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 próprio espaço de endereçamento, 
que deve ser devidamente protegido do acesso dos demais 
processos. 
 
Estrutura do processo 
10 Sistemas Operacionais 
Bloco de controle do processo 
11 Sistemas Operacionais 
O processo é implementado pelo SO através de uma estrutura de dados 
chamada bloco de controle do processo (Process Control Block - PCB). 
 
A partir do PCB, o SO mantém todas as informações sobre o contexto 
de hardware, contexto de software e espaço de endereçamento de 
cada processo. 
 
 
Estados de processos: ciclo de vida de um processo 
12 Sistemas Operacionais 
 Em um sistema multiprogramável, um processo não deve 
alocar exclusivamente a CPU, de forma que exista um 
compartilhamento no uso do processador. Os processos passam por 
diferentes estados ao longo do seu processamento, em função de 
eventos gerados pelo SO ou pelo próprio processo. 
Estados de processos: ciclo de vida de um processo 
13 Sistemas Operacionais 
 Diz-se que um processo está executando (ou seja, no estado de 
execução) se estiver executando em um processador. 
 
 Diz-se que um processo está pronto (ou seja, estado “de 
pronto”) quando poderia executar em um processador se 
houvesse algum disponível. 
 
 Diz-se que um processo está bloqueado (ou seja, estado 
bloqueado) se estiver esperando que algum evento aconteça 
antes de poder prosseguir. 
• Exemplo: evento de conclusão de E/S. 
Gerenciamento de processo 
14 Sistemas Operacionais 
 Estados de processos e estados de transição 
Execução 
Bloqueado Pronto 
Bloqueado 
Temporizador 
esgotado 
Despacho 
Despertar 
Adormecido Acordado 
COMPETEM por tempo de 
processador 
NÃO competem por tempo 
de processador 
Gerenciamento de processo 
15 Sistemas Operacionais 
• Quando um programa é executado, processos são criados e inseridos na 
lista de prontos. 
• Um processo vai passando para o topo da lista à medida que outros 
concluem sua vez de usar o processador. 
• Quando o processo chega ao topo da lista e há um processador 
disponível, aquele processo é designado a um processador e diz-se 
que ele fez uma transição de estado, passando do estado de pronto 
para o estado de execução. 
Execução 
Pronto 
Despacho 
Processo A 
Processo B 
Processo C 
Processo D 
... 
Processo D topo 
Lista de prontos 
CPU SE CPU = livre ENTÃO 
Executa Processo D 
16 Sistemas Operacionais 
• Para evitar que qualquer um dos processos monopolize o sistema, acidental 
ou maliciosamente, o SO estabelece um relógio de interrupção de 
hardware (temporizador de intervalo) que permite que o processo 
execute durante um intervalo de tempo específico. 
 
• Se o processo não devolver o processador voluntariamente antes que o 
intervalo de tempo expire, o relógio de interrupção gera uma 
interrupção, fazendo que o SO obtenha o controle do processador. 
Então o SO muda o estado do processo, que estava anteriormente em 
execução, para pronto e despacha o primeiro processo da lista de 
prontos. 
 
Execução 
Pronto Temporizador 
esgotado 
Gerenciamento de processo 
17 Sistemas Operacionais 
• Se um processo em execução iniciar uma operação de E/S antes que 
seu tempo expire e, consequentemente, tiver de esperar que a 
operação E/S seja concluída antes de poder usar o processador 
novamente, o processo em execução entregará voluntariamente o 
processador. Nesse caso, diz-se que o processo bloqueou a si 
mesmo, deixando em suspenso a conclusão da operação de E/S. 
Execução 
Bloqueado 
Bloqueado 
Gerenciamento de processo 
18 Sistemas Operacionais 
• Ocorre quando uma operação de E/S (ou algum outro evento 
pelo qual o processo esteja esperando) é concluído. 
Bloqueado Pronto 
Despertar 
Gerenciamento de processo 
19 Sistemas Operacionais 
 Criação de processos 
 
• Momento da execução do programa. 
 
• Chamada de sistemas 
• Exemplo: fork. 
 
• O SO normalmente executa diversas operações quando cria um processo. 
 
• Primeiro, deve ser capaz de identificar cada processo; portanto, designa ao processo um 
número de identificação de processo (PID). 
 
• Em seguida, o SO cria um bloco de controle de processo (PCB) ou descritor de 
processo, que mantém as informações que o SO necessita para gerenciar o processo. 
 PCB incluem informações como: 
• PID. 
• Estado do processo. 
• Contador de programa. 
• Prioridade de escalonamento. 
• Credenciais (dados que determinam os recursos que esse processo pode acessar). 
• Um ponteiro para o processo-pai. 
• Ponteiros para os processos-filho (se existir). 
• Ponteiros para localizar os dados e instruções do processo na
memória. 
• Ponteiros para recursos alocados (tais como arquivos). 
Gerenciamento de processo 
20 Sistemas Operacionais 
• O PCB também armazena o conteúdo de registradores, denominado 
contexto de execução, do processador no qual o processo estava 
executando da última vez, quando fez a transição de saída do estado de 
execução. 
• Isso possibilita o SO a restaurar o contexto de execução de um 
processo quando esse voltar ao estado de execução. 
 
• Quando um processo transita de um estado para outro, o SO tem de 
atualizar informações no PCB do processo. 
 
• SO mantém ponteiros para cada PCB do processo em uma tabela de 
processo. 
 
• Quando o processo é encerrado, o SO libera a memória e outros recursos 
do processo, retira o processo da tabela de processos e disponibiliza sua 
memória e outros recursos para outros processos. 
Gerenciamento de processo 
21 Sistemas Operacionais 
Tabela de processo e blocos de controle de processo 
Gerenciamento de processo 
Tabela de processo 
PID PCB 
1 . 
2 . 
... ... 
N . 
Bloco de controle de 
processo 
Contador de programa 
Registradores 
Estado 
Prioridade 
Espaço de endereço 
Pai 
Filhos 
Arquivos abertos 
... 
Outras sinalizações 
Bloco de controle de 
processo 
Contador de programa 
Registradores 
Estado 
Prioridade 
Espaço de endereço 
Pai 
Filhos 
Arquivos abertos 
... 
Outras sinalizações 
22 Sistemas Operacionais 
 Término de processos 
 
• Condições de término de processos: 
1. Saída normal. 
2. Saída por erro. 
3. Erro fatal. 
4. Cancelamento por um outro processo. 
 
Gerenciamento de processo 
23 Sistemas Operacionais 
1. Saída normal: os processos terminam porque fizeram seu trabalho. 
• Exemplo: quando acaba de compilar o programa atribuído a ele, o 
compilador executa uma chamada de sistema para dizer ao SO que ele 
terminou. 
• Exemplo: ícones de menu em processadores de texto ou browsers no qual 
o usuário pode clicar para dizer ao processo que remova quaisquer 
arquivos temporários que ele tenha aberto e, então, termine. 
 
2. Saída por erro: o processo descobre um erro fatal 
• Exemplo: se um usuário digita um comando para compilar o programa 
com “nome x” e esse arquivo não existe, o compilador simplesmente 
termina a execução. 
 
3. Erro fatal: erro causado pelo processo, muitas vezes por um erro de 
programa. 
• Exemplo: divisão por zero. 
• Exemplo: referência a memória inexistente. 
 
4. Cancelamento por outro processo: um processo executa uma chamada de 
sistema dizendo ao SO para cancelar algum outro processo. 
• Exemplo: comando kill. 
Gerenciamento de processo 
24 Sistemas Operacionais 
• Quando um processo é terminado, este é removido do sistema. 
 
• A memória e outros recursos do processo são devolvidos ao 
sistema e ele é “expulso” das listas ou tabelas de quaisquer 
sistemas, e seu bloco de controle de processo é apagado, ou seja, 
o espaço de memória do PCB é disponibilizado para outros 
processos no sistema. 
 
 
Gerenciamento de processo 
25 Sistemas Operacionais 
 Processo CPU-bound 
 Maior parte do tempo no estado de execução, utilizando o 
processador, ou pronto. 
 Realiza poucas operações de leitura e gravação. 
 
 Exemplo: aplicações científicas que efetuam muitos cálculos. 
 
 Processo I/O-bound 
 Maior parte do tempo no estado de espera. 
 Realiza um elevado número de operações de E/S. 
 
 Exemplo: aplicações comerciais, que se baseiam em leitura, 
processamento e gravação. 
Processos CPU-bound e I/O-bound 
26 Sistemas Operacionais 
Processos CPU-bound e I/O-bound 
27 Sistemas Operacionais 
• Um processo pode gerar um novo processo. Se o fizer, o processo criador é 
denominado processo-pai, e o processo criado é denominado processo-filho. 
• Processo-filho é criado por um processo-pai. 
• Em alguns SOs cada processo gerado é destruído automaticamente quando 
seu pai é destruído. 
• Em outros SOs os processos gerados prosseguem independentemente de 
seus pais, e a destruição desses não tem nenhum efeito sobre seus filhos. 
 
Hierarquia de processos 
A 
B C D 
E F G 
H 
Exemplo 
 
1. Processo A é pai dos processos B, C e D. 
Então os processos B, C e D são filhos de A. 
2. Processo G é pai de H. 
3. Processo E é filho de B. 
28 Sistemas Operacionais 
• O SO realiza um chaveamento de contexto para interromper um 
processo em execução e começar a executar um processo 
previamente pronto. 
 
• Para realizar um chaveamento de contexto, o núcleo deve 
primeiramente salvar o contexto de execução do processo em 
execução no PCB desse processo e, então, carregar o contexto de 
execução anterior do processo pronto a partir do PCB desse último. 
 
• Durante o chaveamento de contexto um processador não pode 
realizar nenhuma computação “útil”, ou seja, não executa 
instruções em nome de nenhum determinado processo, o que reduz 
o rendimento. 
 
• Deve minimizar o tempo de chaveamento de contexto. 
 
Chaveamento de contexto 
29 Sistemas Operacionais 
Chaveamento de contexto 
Memória principal 
PCB do processo P1 
PCB do processo P2 
Processador 
P1 
Processador 
P1 
Processador 
P2 
P1 executa no 
processador 
Após uma interrupção o 
núcleo decide despachar 
um novo processo e 
inicia um chaveamento 
de contexto 
P2 executa no 
processador 
O núcleo armazena o 
contexto de execução do 
processo P1 em seu PCB 
na memória 
O núcleo carrega o 
contexto de execução do 
processo P2 do seu PCB 
na memória 
30 Sistemas Operacionais 
• Interrupções habilitam o software a responder a sinais de hardware. 
 
• Interrupções é um meio de baixo custo de conseguir a atenção do 
processador. 
 
• Tratador de instruções é um conjunto de instruções a ser executado 
em resposta a cada tipo de interrupção. 
 
• Interrupções 
• Síncronas: processador gera uma interrupção como resultado da 
execução das instruções de um processo. 
• Exemplo: processo tenta realizar uma ação ilegal, como dividir 
por zero ou se referir a uma localização de memória protegida. 
 
• Assíncronas: causado por algum evento não relacionado com a 
instrução corrente do processo. 
• Exemplo: o teclado gera uma interrupção quando um usuário 
pressiona uma tecla; o mouse gera uma interrupção ao ser 
movimentado ou quando um de seus botões é pressionado. 
Interrupções 
31 Sistemas Operacionais 
Exemplo 
Como o SO e o hardware interagem em resposta a interrupções de relógio. 
 
1. A cada intervalo do temporizador, o relógio de interrupção gera uma interrupção que permite ao 
sistema operacional executar para realizar operações de gerenciamento de sistema como 
escalonamento de processo. O processor está executando o processo P1 (1), quando o relógio emite 
uma interrupção (2). 
 
2. Ao receber a interrupção, o processador acessa a entrada do vetor de interrupção que corresponde 
à interrupção do temporizador (3). 
 
3. Então o processador salva o contexto de execução do processo na memória (4) para que o contexto 
de execução do processo P1 não seja perdido quando o tratador de interrupção executar. 
 
4. Depois o processador executa o tratador de interrupção, que determina como responder à 
interrupção (5). 
 
5. Desse modo, o tratador de interrupção pode restaurar o estado do processo que estava executando 
anteriormente (P1) ou chamar o escalonador de processador do SO para determinar o “próximo” 
processo a executar. 
 
6. Nesse caso o tratador chama o escalonador de processo, que decide que o processo P2, o processo 
de maior prioridade em
espera, deve obter o processador (6). Então o contexto do P2 é carregado 
do seu PCB para a memória principal e o contexto de execução do P1 é salvo no seu PCB na 
memória principal. 
 
 
Interrupções 
32 Sistemas Operacionais 
Interrupções 
Relógio 
de 
interrupção 
Processo P1 
Controle do processador 
(1) 
Interrupção 
(2) 
(3) 
Contexto de execução salvo em 
localização temporária da memória 
(4) 
(5) 
Tratador de 
interrupções 
Processo P2 (6) 
33 Sistemas Operacionais 
Sistemas Operacionais 
 
DEITEL, H.M.; DEITEL, P.J.; CHOFFNES, D.R. 3.ed. São Paulo: Pearson 
Pretince Hall, 2005. 
 
Capítulo 2 
 
 
 
Sistemas Operacionais Modernos 
 
TANENBAUM, A. S. Prentice Hall (Pearson), 2007. 
 
Capítulo 2 
 
Referências

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?