24
Processos e threads 1 Arquitetura de Sistemas Operacionais Gerenciamento de Processos Introdução

Apostila 5 processos e threads

Embed Size (px)

Citation preview

Page 1: Apostila 5   processos e threads

Processos e threads 1

Arquitetura de Sistemas Operacionais

Gerenciamento de Processos

Introdução

Page 2: Apostila 5   processos e threads

Processos e threads 2

Sumário

• Introdução

• Tipos de Processos

• Classificação de processos

• Bloco de controle de processo

• Controle sobre os processos

• Estados do processo

• Troca de estado do processo

• Escalonamento

• Tipos de escalonamento

Page 3: Apostila 5   processos e threads

Processos e threads 3

O processador é projetado apenas para executar

instruções, não sendo capaz de distinguir qual

programa se encontra em execução.

UCP

Unidade

De

Controle

Analisador de

instruções

Registradores

Unidade Lógica

E Aritmética

Memória Principal

Entrada Saída

instrução

Executa a

instrução

Modelo de Arquitetura da Máquina de von Neumann

Introdução

Page 4: Apostila 5   processos e threads

Processos e threads 4

Usuário

• Neste tipo de sistema cada usuário éassociado a um processo e, ele tema impressão de possuir oprocessador e todos os demaisrecursos reservados exclusivamentepara seu uso quando estáexecutando um programa.

Page 5: Apostila 5   processos e threads

Processos e threads 5

O que é um Processo?

• Elemento ativo do sistema

• Um programa em execução o qual é constituído por uma seqüência de instruções, um conjunto de dados e um registro descritor.

Page 6: Apostila 5   processos e threads

Processos e threads 6

Processo

Um processo é definido como o ambiente onde o

programa é executado.

Este ambiente, além das informações sobre a

execução, possui também o quanto de recursos do

sistema cada programa pode utilizar.

Recursos :

• Espaço de endereçamento

• Tempo do processador

• Área em disco

Na maioria das vezes processo é definido como “um programa em execução”

Page 7: Apostila 5   processos e threads

Processos e threads 7

Programa

É uma seqüência de instruções.

É algo passivo dentro do sistema.

Ele não altera o seu próprio estado.

Processo

É um elemento ativo.

O processo altera seu estado, à medida que

executa um programa.

É o processo que faz chamadas de sistema,

ao executar os programas.

Page 8: Apostila 5   processos e threads

Processos e threads 8

nome

PIDOwner (UID)

Prioridade de

execução

Data/hora de

criação

Tempo de

processador

quotas

privilégios

Registradores

gerais

Registrador

PC

Registrador

SP

Registrador

de status

Endereços de memória principal alocados

Espaço de

Endereçamento

Programa

Page 9: Apostila 5   processos e threads

Processos e threads 9

Tipos de Processos

• Processos de usuário

– executam as tarefas programadas pelo usuário

• Processos de sistema

– executam funções de gerenciamento de recursos e gerenciamento de processos do usuário.

Page 10: Apostila 5   processos e threads

Processos e threads 10

Classificação de Processos

• Processos Independentes

– sua execução não afete e não seja afetadapela execução de um outro processo

• Processos Cooperantes

– interage (troca informações) com outrosprocessos presentes no sistema

Page 11: Apostila 5   processos e threads

Processos e threads 11

Bloco de Controle de Processo

• É uma estrutura de dados que representae contém informações associadas com oprocesso– 1. Nome do processo.– 2.Estado do processador (contador de

programa, conteúdo dos registradores,máscaras de interrupções etc.).

– 3. Estado do processo.– 4. Prioridade relativa para a aquisição de

recursos.– 5. Endereço da memória virtual.– 6. Informação sobre recursos.– 7. Contadores (tempo de cpu, quantidade de

memória, volume de I/O etc.).

Page 12: Apostila 5   processos e threads

Processos e threads 12

Nome do Processo

Estado do Processo

Ponteiros

Lista de Arquivos abertos

Limites da memória

Registradores

Page 13: Apostila 5   processos e threads

Processos e threads 13

Controle sobre os Processos

• Para que o sistema operacional mantenha o controle sobreos diferentes processos e os diferentes estados em quecada processo pode estar, o sistema utiliza estruturas delistas encadeadas.

Lista de

Prontos

Lista de

Espera

: : : : : : : : :...........

.

BCP#

5

BCP#

1BCP#

3

: : : : : : : : :...........

.

BCP#

2

BCP#

4BCP#

6

Page 14: Apostila 5   processos e threads

Processos e threads 14

Estados do Processo

• Execução (Running): Um processo está noestado de execução quando ele está sendoexecutado pelo processador.

• Pronto (Ready): O processo encontra-se prontopara a execução.

• Bloqueado(Wait): Um processo está no estadobloqueado quando aguarda a ocorrência dealgum evento externo para poder prosseguir.

• Indefinido: Um processo estará neste estadoantes de ser criado ou depois de ser destruído.

Page 15: Apostila 5   processos e threads

Processos e threads 15

Troca de Estado do Processo

Bloqueado

Execução

Pronto

Indefinido

Page 16: Apostila 5   processos e threads

Processos e threads 16

Escalonamento

• Escalonamento, ou scheduling é oprocedimento pelo qual o SOestabelece a ordem na escolha dosprocessos para a execução, dentre osvários que concorrem pela utilização doprocessador

• Existem 3 tipos de escalonadores:– Escalonador de longo prazo

– Escalonador de curto prazo

– Escalonador de médio prazo

Page 17: Apostila 5   processos e threads

Processos e threads 17

Tipos de Escalonador

• Escalonador de Longo Prazo– Seleciona os processos do disco para o

processamento na memória– Controla o grau de multiprogramação– Possui uma execução menos freqüente

• Escalonador de Curto Prazo– Seleciona os processos da memória (fila dos

prontos) para a CPU– Possui uma execução mais freqüente– Deverá ser bastante rápido para não correr o

risco de se tornar o processo que maisconsome tempo de CPU

Page 18: Apostila 5   processos e threads

Processos e threads 18

Tipos de Escalonador

Fila de Prontos

Fila de Espera

HD

FimCurto-prazoLongo-prazo

CPU

I/O

Page 19: Apostila 5   processos e threads

Processos e threads 19

Tipos de Escalonador

• Escalonador de médio-prazo

Fila de Prontos

Fila de Prontos

HD

Fim

Swap outSwap in

CPU

I/O

Processos parcialmente

executados

disco

Page 20: Apostila 5   processos e threads

Processos e threads 20

Escalonamento de processos

• Quando um ou mais processos estãoprontos para serem executados, osistema operacional de decidir qualdeles vai ser executado primeiro.

• A parte do sistema operacionalresponsável por essa decisão échamado de escalonador, e oalgoritmo usado para tal é chamadode algoritmo de escalonamento.

Page 21: Apostila 5   processos e threads

Processos e threads 21

Critérios de escalonamento

1. Justiça: fazer com que cadaprocesso ganhe seu tempo justo deCPU;

2. Eficiência: manter a CPU ocupada100% do tempo (se houverdemanda)

3. Tempo de resposta: minimizar otempo de resposta para os usuáriosinterativos;

4. Tempo de Turnaround: minimizar otempo que o usuário batch devemesperar pelo resultado

5. Throughput: maximizar o númerode jobs processados por unidade detempo.

Page 22: Apostila 5   processos e threads

Processos e threads 22

Tipos de Escalonamento

• Escalonamento Não-Preemptivo– O processador, uma vez alocado a um

processo, só será liberado quando o processoconcluir a sua execução ou tiver a suaexecução bloqueada devido à espera pelaexecução de uma operação de entrada/saída.

• Escalonamento Preemptivo– Os algoritmos de escalonamento ditos

preemptivos apresentam como principalcaracterística o fato da execução de um dadoprocesso poder ser interrompida mesmo que oprocesso não tenha concluído ou tenha sidobloqueado.

Page 23: Apostila 5   processos e threads

Processos e threads 23

Tipos de Escalonamento

• Escalonamento Não-Preemptivo– O processador, uma vez alocado a um

processo, só será liberado quando o processoconcluir a sua execução ou tiver a suaexecução bloqueada devido à espera pelaexecução de uma operação de entrada/saída.

• Escalonamento Preemptivo– Os algoritmos de escalonamento ditos

preemptivos apresentam como principalcaracterística o fato da execução de um dadoprocesso poder ser interrompida mesmo que oprocesso não tenha concluído ou tenha sidobloqueado.

Page 24: Apostila 5   processos e threads

Processos e threads 24

Colaborações?

Críticas??

Dúvidas???

Sugestões????

Xingamentos?????