Você está na página 1de 21

Sistemas Operacionais

Introdução a Gerência de Processos

Francisco José da Silva e Silva

Laboratório de Sistemas Distribuı́dos (LSD)


Departamento de Informática / UFMA
http://www.lsd.ufma.br

19 de agosto de 2010

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 1 / 21


Agenda

1 Introdução ao Gerenciamento de Processos

2 Escalonamento de Processos

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 2 / 21


Introdução ao Gerenciamento de Processos

Introdução ao Gerenciamento de
Processos

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 3 / 21


Introdução ao Gerenciamento de Processos

Gerente de Processos

Módulo do SO responsável pela supervisão e execução dos programas,


alocando-lhes os recursos necessários através do administrador
conveniente, e controlando a utilização da UCP pelos diversos
processos.

Tarefas incluem:
Algoritmos e estruturas de dados para implementar processos e
abstrações de recursos;
Escalonamento de processos;
Sincronização de processos;
Estratégia para tratamento de bloqueios perpétuos (deadlocks);
Parte dos mecanismos de proteção e segurança.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 4 / 21


Introdução ao Gerenciamento de Processos

Processos

Processo é um programa em execução;

Um processo possui:
1 Seção de texto (código);
2 Contador de instruções;
3 Pilha;
4 Seção de dados.

Processo 6= Programa: um programa pode ser repetidamente


executado gerando vários processos.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 5 / 21


Introdução ao Gerenciamento de Processos

Descritor de Processo

Também chamado de bloco de controle de processo (PCB - Process


Control Block);

É a estrutura de dados utilizada monitorar e controlar a execução do


processo;

A maioria dos sistemas cria um identificador de processo que direta


ou indiretamente referencia o descritor do processo.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 6 / 21


Introdução ao Gerenciamento de Processos

Process Cotrol Block

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 7 / 21


Introdução ao Gerenciamento de Processos

Espaço de Endereçamento
Conjunto de localizações utilizado pelo processo para referenciar
posições de memória primária, serviços do SO e recursos;
Boa parte do espaço de endereçamento corresponde a localizações de
memória primária.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 8 / 21


Introdução ao Gerenciamento de Processos

Estados dos Processos

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 9 / 21


Introdução ao Gerenciamento de Processos

Threads

Até agora temos visto um processo como um programa que possui


apenas uma linha de controle, só realizando uma única tarefa por vez;
Sistemas operacionais modernos permitem que um único processo
possua várias linhas de controle (threads);
Isto permite, por exemplo, a um editor de textos realizar uma
verificação ortográfica ao mesmo tempo que o usuário digita
caracteres.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 10 / 21


Introdução ao Gerenciamento de Processos

Threads

Process 1 Process 1 Process 1 Process

User
space

Thread Thread

Kernel
space Kernel Kernel

(a) (b)

Figura: (a) Três processos, cada um com um thread (b) Um processo com três
threads

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 11 / 21


Introdução ao Gerenciamento de Processos

Threads: Itens Compartilhados

2222222222222222222222222222222222222222222222222222222222222222222222222222
1 Per process items 1 Per thread items 1
1 Address space 1 Program counter 1
1 1 1
1 Global variables 1 Registers 1
1 Open files 1 Stack 1
1 Child processes 1 State 1
1 Pending alarms 1 1
1 Signals and signal handlers 1 1
Accounting information 1
112222222222222222222222222222222222222222222222222222222222222222222222222222
1
11

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 12 / 21


Introdução ao Gerenciamento de Processos

Um Processador de Texto com Três Threads

Four score and seven nation, or any nation lives that this nation who struggled here here to the unfinished they gave the last full
years ago, our fathers so conceived and so might live. It is have consecrated it, far work which they who measure of devotion,
brought forth upon this dedicated, can long altogether fitting and above our poor power fought here have thus that we here highly
continent a new nation: endure. We are met on proper that we should to add or detract. The far so nobly advanced. resolve that these dead
conceived in liberty, a great battlefield of do this. world will little note, It is rather for us to be shall not have died in
and dedicated to the that war. But, in a larger sense, nor long remember, here dedicated to the vain that this nation,
proposition that all We have come to we cannot dedicate, we what we say here, but great task remaining under God, shall have
men are created equal. dedicate a portion of cannot consecrate we it can never forget before us, that from a new birth of freedom
Now we are engaged that field as a final cannot hallow this what they did here. these honored dead we and that government of
in a great civil war resting place for those ground. The brave It is for us the living, take increased devotion the people by the
testing whether that who here gave their men, living and dead, rather, to be dedicated to that cause for which people, for the people

Kernel
Keyboard Disk

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 13 / 21


Introdução ao Gerenciamento de Processos

Um Servidor Web Multithread

Web server process

Dispatcher thread

Worker thread
User
space

Web page cache

Kernel
Kernel space

Network
connection

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 14 / 21


Escalonamento de Processos

Escalonamento de Processos

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 15 / 21


Escalonamento de Processos

Filas de escalonamento

Quando um processo entra no sistema, ele é colocado em uma fila de


jobs. Esta fila contêm todos os processos do sistema;
Os processos que residem na memória principal e que estão prontos
para serem executados são mantidos em uma fila de processos
prontos;
Esta fila é normalmente armazenada como uma lista ligada;
Outras filas no sistema: quando um processo ganha a UCP, ele
executa por algum tempo e eventualmente termina, é intorrompida,
espera pela ocorrência de algum evento ou solicita uma operação de
E/S.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 16 / 21


Escalonamento de Processos

Escalonadores

Long-term scheduler: Em sistemas do tipo batch, normalmente


existem mais processos submetidos do que podem ser executados pelo
sistema. Estes processos são mantidos em um dispositivo de
armazenamento de massa para serem executados posteriormente. O
long-term scheduler seleciona dentre estes processos quais podem ser
carregados para memória e inseridos na fila de prontos para executar.
Ele controla o grau de multiprogramação do sistema. Em sistemas de
tempo compartilhado como o UNIX, não existe mais um long-term
scheduler e todos os processos são colocados na memória principal.

Short-term scheduler: Seleciona qual processo da fila de prontos


para executar receberá a UCP.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 17 / 21


Escalonamento de Processos

Ciclos de UCP e E/S de um Processo

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 18 / 21


Escalonamento de Processos

Escalonamento preemptivo e não preemptivo

Decisões sobre escalonamento da UCP podem ser tomadas nos


seguintes momentos:
1 quando um processo sai do estado “executando” para “esperando”;
2 quando um processo sai do estado “executando” para “pronto”;
3 quando um processo sai do estado “esperando” para “pronto”;
4 quando um processo é finalizado.

Se um sistema realiza escalonamento somente nas situações 1 e 4,


dizemos que ele é não preemptivo ou cooperativo;

Caso ele também realize escalonamento nas outras situações, o


sistema é dito preemptivo.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 19 / 21


Escalonamento de Processos

Preempção

Definição: interrupção forçada de um processo para que outro


processo possa usar o processador;
Usada em sistemas multiprogramados para garantir que todos os
processos possam progredir uniformemente;
Implementada através de um relógio de tempo que interrompe o
processador em intervalos de tempo regulares a fim de que o
escalonador de tarefas possa fazer uma realocação de prioridades e,
possivelmente, escalonar outro processo.
Este intervalo é a unidade básica de alocação de tempo do
processador e é denominado quantum;
A preempção, no entanto, possui um custo: a troca de contexto gera
um overhead.

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 20 / 21


Escalonamento de Processos

Troca de Contexto

Francisco Silva (UFMA/LSD) Sistemas Operacionais 19 de agosto de 2010 21 / 21

Você também pode gostar