Вы находитесь на странице: 1из 31

Projeto de Sistemas Distribudos

Processos
Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com http://sites.google.com/site/marceloiury/

SI Projeto de Sistemas Distribudos

SI Projeto de Sistemas Distribudos

SI Projeto de Sistemas Distribudos

Processos
Processo engloba duas caractersticas:
Representao - a um processo alocado um espao de endereos virtual para representar a prpria imagem (imagem do processo) Execuo - processo um fluxo de execuo ao longo de um ou mais programas intercalvel com outros processos

SI Projeto de Sistemas Distribudos

Conceito de Processos
Um sistema operacional executa uma variedade de programas:
Sistemas Batch jobs, Sistemas TimeShared - programas de usurios e tarefas.

Um processo possui:
Registradores, Pilhas e Filas, Seo de dados, Seo de instrues.
5

SI Projeto de Sistemas Distribudos

Estados do Processo
Um processo pode assumir vrios estados durante o seu ciclo de vida:
novo: o processo est sendo criado. executando: instrues esto sendo executadas. bloqueado: o processo est aguardando algum evento ou resposta de uma operao de I/O. pronto: o processo est aguardando para ser processado pela CPU. encerrado: o processo finalizou suas execues.
6

SI Projeto de Sistemas Distribudos

Diagrama de Estados do Processo

SI Projeto de Sistemas Distribudos

Diagrama de Estados do Processo

Pergunta que no quer calar: em um PC comum, temos vrios processos e alguns poucos processadores e recursos de entrada e sada. Como fazemos para esses processos coexistirem? 8

SI Projeto de Sistemas Distribudos

Diagrama de Estados do Processo

Pergunta que no quer calar: em um PC comum, temos vrios processos e alguns poucos processadores e recursos de entrada e sada. Como fazemos para esses processos coexistirem? 9

SI Projeto de Sistemas Distribudos

Como que escalonamos processos?

10

SI Projeto de Sistemas Distribudos

Filas de Escalonamento de Processos


Fila de Jobs - conjunto de todos os processos do sistema. Fila de Prontos - conjunto de todos os processos residentes na memria principal, prontos e esperando para serem executados. Fila de Dispositivos - conjunto de processos aguardando por um dispositivo de I/O. Processos migram entre as vrias filas.
11

SI Projeto de Sistemas Distribudos

Escalonador
Parte do sistema operacional que
escolhe quem deve utilizar a CPU
Executando (CPU) Escalonador
processo processo

Bloqueado
processo

Pronto
processo processo

12

SI Projeto de Sistemas Distribudos

Escalonador
Tem que escolher o processo certo Tem que se preocupar em fazer uso eficiente da CPU
Alternar processos muito caro!
Modo usurio modo supervisor Estado atual do processo e seus registradores devem ser salvos O mapa de memria deve ser salvo Um novo processo deve ser escolhido O novo processo precisa ser iniciado Recarregar memria cache

Pode comprometer uma grande quantidade de tempo da CPU

13

SI Projeto de Sistemas Distribudos

Objetivos Gerais do Escalonador


Justia
Processos semelhantes servios semelhantes Categorias diferentes podem ser tratados diferentemente

Cumprimento das polticas do sistema Equilbrio


Manter ocupadas todas as partes do sistema Misturar processos CPU-bound e I/O-bound na memria
14

SI Projeto de Sistemas Distribudos

Tipos de Algoritmos de Escalonamento


Algoritmo de escalonamento no-preemptivo
No toma decises quando ocorrem interrupes de relgio Processos no so compulsoriamente suspensos

Algoritmo de escalonamento preemptivo


Toma decises quando ocorrem interrupes de relgio Processos tem fatias de tempo (quantum) de uso da CPU Quando esse tempo expira, escolhe um outro processo para executar Proporciona melhores tempos de resposta em sistemas de tempo compartilhado

15

SI Projeto de Sistemas Distribudos

Escalonadores no-preemptivos
FIFO
H uma fila nica de processos prontos Novos jobs so encaminhados para o fim da fila Quando um processo bloqueia, o prximo da fila selecionado Processos que passaram do estado bloqueado para pronto so colocados no fim da fila

Job mais curto primeiro


Pressupe conhecimento prvio dos tempos de execuo de todos os processos Privilegia processos de tamanho menor Reduz o tempo mdio de espera dos processos
16

SI Projeto de Sistemas Distribudos

Escalonadores preemptivos
Alternncia circular (Round-Robin)
H uma lista circular de processos prontos Cada processo tem um quantum no qual ele permitido executar Se o quantum no for suficiente para o processo terminar, ele vai para o fim da fila e aguarda a prxima rodada Qual o tamanho do quantum?
Qual o problema de usar um quantum pequeno? Processo Qual o problema de usar um quantum grande?
Corrente Prximo Processo Processo Corrente

D (a)

D (b)

B
17

SI Projeto de Sistemas Distribudos

Escalonadores preemptivos
Escalonamento por prioridades
Cada processo tem uma prioridade O processo pronto com prioridade mais alta escolhido para utilizar a CPU O que fazer para que o processo com prioridade mais alta no monopolize a CPU?
Reduo de prioridade Quantum mximo

18

SI Projeto de Sistemas Distribudos

Escalonamento por Prioridades


Tambm comum agrupar processos em classes de prioridades
Escalonamento por prioridade entre as classes Round-robin dentro de cada classe Round Robin Classes Prioridade mais alta

Prioridade 4 Prioridade 3 Prioridade 2 Prioridade 1

Prioridade mais baixa


19

SI Projeto de Sistemas Distribudos

Mudana de Contexto

20

SI Projeto de Sistemas Distribudos

Mudana de Contexto
Quando a CPU altera para um outro processo, o sistema deve armazenar o estado do processo antigo e carregar o estado armazenado do novo processo. O tempo gasto para a mudana de contexto no til aos processos (overhead). Este tempo gasto dependente das caractersticas do hardware.

21

SI Projeto de Sistemas Distribudos

O que podemos fazer para melhorar isso?

22

SI Projeto de Sistemas Distribudos

O Modelo de Thread
Diferena entre thread e processo
Processos so usados para agrupar recursos Threads so entidades escalonadas para a execuo sobre a CPU

Threads permitem que mltiplas execues ocorram no mesmo ambiente do processo de forma independente

23

SI Projeto de Sistemas Distribudos

O Modelo de Thread
Mltiplas threads executando em paralelo semelhante a mltiplos processos executando em um computador Threads compartilham um mesmo espao de endereamento Processos compartilham um espao fsico de memria, discos e impressoras e recursos semelhantes Exemplo: fazer um bolo
24

SI Projeto de Sistemas Distribudos

O Modelo de Thread
Threads tambm so chamados de processos leves (lightweight process)
Pois possuem somente algumas propriedades dos processos

Multithread
Sistemas com a possibilidade de execuo de vrios threads para um mesmo processo Neste ambiente, um processo definido como a unidade de proteo e a unidade de alocao de recursos
25

SI Projeto de Sistemas Distribudos

Processos e Threads

um processo uma thread

um processo mltiplas threads

mltiplos processos uma thread por processo

mltiplos processos mltiplas threads po process

26

SI Projeto de Sistemas Distribudos

Caractersticas das Threads


mais rpido criar uma thread que um processo mais rpido terminar uma thread que um processo mais rpido chavear entre threads de um mesmo processo Threads podem se comunicar sem invocar o ncleo j que compartilham memria e arquivos
no caso de comunicao entre processos, a interveno do ncleo necessria para proteo e sincronizao

Suspender um processo implica em suspender todas as threads deste processo j que compartilham o mesmo espao de endereamento O trmino de um processo implica no trmino de todas as threads desse processo
27

SI Projeto de Sistemas Distribudos

Threads em Sistemas Distribudos


Proporcionam um meio conveniente para permitir chamadas bloqueadoras de sistema sem bloquear o processo inteiro no qual o thread est executando; Imagine um processo monothread: O que aconteceria com o processo quando a interrupo da placa de rede feita para envio/recebimento de dados?

28

SI Projeto de Sistemas Distribudos

Clientes Multithread
Usados para ocultar latncias de comunicao, separando threads de envio/recebimento de dados com threads de processamento da interface.
Torna possvel recebimento de vrios arquivos de uma pgina WEB ao mesmo tempo; Torna possvel acesso a vrios servidores (redundantes), que serviro os dados independentemente, gerando maior velocidade.

29

SI Projeto de Sistemas Distribudos

Servidores Multithread
Alm de simplificar o cdigo do servidor, explora paralelismo para obter alto desempenho, mesmo em sistemas monoprocessadores;
Um thread despachante cria a diviso de vrios threads com tarefas distintas, como ler disco, receber dados de socket, enviar dados para socket, atender N usurios simultaneamente; O thread despachante atribui a requisio a um thread operrio ocioso (bloqueado).

Servidores Monothread no poderiam atender a um segundo usurio enquanto l disco!

30

SI Projeto de Sistemas Distribudos

Virtualizao e seu papel em S.D.s


a capacidade de uma nica CPU em fingir que h mais delas, assim como essa extenso a outros recursos.
Estende ou substitui uma interface existente para imitar o comportamento de outro sistema

31

Вам также может понравиться