Upload
paulo-fonseca
View
586
Download
4
Tags:
Embed Size (px)
Citation preview
Processos e threads 1
Arquitetura de Sistemas Operacionais
Gerenciamento de Processos
Introdução
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
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
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.
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.
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”
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.
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
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.
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
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.).
Processos e threads 12
Nome do Processo
Estado do Processo
Ponteiros
Lista de Arquivos abertos
Limites da memória
Registradores
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
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.
Processos e threads 15
Troca de Estado do Processo
Bloqueado
Execução
Pronto
Indefinido
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
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
Processos e threads 18
Tipos de Escalonador
Fila de Prontos
Fila de Espera
HD
FimCurto-prazoLongo-prazo
CPU
I/O
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
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.
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.
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.
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.
Processos e threads 24
Colaborações?
Críticas??
Dúvidas???
Sugestões????
Xingamentos?????