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 tem
a impressão de possuir o
processador e todos os demais
recursos reservados exclusivamente
para 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 afetada
pela execução de um outro processo
• Processos Cooperantes
– interage (troca informações) com outros
processos presentes no sistema
Processos e threads 11
Bloco de Controle de Processo
• É uma estrutura de dados que representa
e contém informações associadas com o
processo
– 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 sobre
os diferentes processos e os diferentes estados em que
cada processo pode estar, o sistema utiliza estruturas de
listas encadeadas.
Lista de
Prontos
Lista de
Espera
: : : : : : : : :...........
.
BCP#
5
BCP#
1
BCP#
3
: : : : : : : : :...........
.
BCP#
2
BCP#
4
BCP#
6
Processos e threads 14
Estados do Processo
• Execução (Running): Um processo está no
estado de execução quando ele está sendo
executado pelo processador.
• Pronto (Ready): O processo encontra-se pronto
para a execução.
• Bloqueado(Wait): Um processo está no estado
bloqueado quando aguarda a ocorrência de
algum evento externo para poder prosseguir.
• Indefinido: Um processo estará neste estado
antes 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 é o
procedimento pelo qual o SO
estabelece a ordem na escolha dos
processos para a execução, dentre os
vários que concorrem pela utilização do
processador
• 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 mais
consome 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ão
prontos para serem executados, o
sistema operacional de decidir qual
deles vai ser executado primeiro.
• A parte do sistema operacional
responsável por essa decisão é
chamado de escalonador, e o
algoritmo usado para tal é chamado
de algoritmo de escalonamento.
Processos e threads 21
Critérios de escalonamento
1. Justiça: fazer com que cada
processo ganhe seu tempo justo de
CPU;
2. Eficiência: manter a CPU ocupada
100% do tempo (se houver
demanda)
3. Tempo de resposta: minimizar o
tempo de resposta para os usuários
interativos;
4. Tempo de Turnaround: minimizar o
tempo que o usuário batch devem
esperar pelo resultado
5. Throughput: maximizar o número
de jobs processados por unidade de
tempo.
Processos e threads 22
Tipos de Escalonamento
• Escalonamento Não-Preemptivo
– O processador, uma vez alocado a um
processo, só será liberado quando o processo
concluir a sua execução ou tiver a sua
execução bloqueada devido à espera pela
execução de uma operação de entrada/saída.
• Escalonamento Preemptivo
– Os algoritmos de escalonamento ditos
preemptivos apresentam como principal
característica o fato da execução de um dado
processo poder ser interrompida mesmo que o
processo não tenha concluído ou tenha sido
bloqueado.
Processos e threads 23
Tipos de Escalonamento
• Escalonamento Não-Preemptivo
– O processador, uma vez alocado a um
processo, só será liberado quando o processo
concluir a sua execução ou tiver a sua
execução bloqueada devido à espera pela
execução de uma operação de entrada/saída.
• Escalonamento Preemptivo
– Os algoritmos de escalonamento ditos
preemptivos apresentam como principal
característica o fato da execução de um dado
processo poder ser interrompida mesmo que o
processo não tenha concluído ou tenha sido
bloqueado.
Processos e threads 24
Colaborações?
Críticas??
Dúvidas???
Sugestões????
Xingamentos?????

Apostila 5 processos e threads

  • 1.
    Processos e threads1 Arquitetura de Sistemas Operacionais Gerenciamento de Processos Introdução
  • 2.
    Processos e threads2 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
  • 3.
    Processos e threads3 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
  • 4.
    Processos e threads4 Usuário • Neste tipo de sistema cada usuário é associado a um processo e, ele tem a impressão de possuir o processador e todos os demais recursos reservados exclusivamente para seu uso quando está executando um programa.
  • 5.
    Processos e threads5 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.
  • 6.
    Processos e threads6 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”
  • 7.
    Processos e threads7 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.
  • 8.
    Processos e threads8 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
  • 9.
    Processos e threads9 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.
  • 10.
    Processos e threads10 Classificação de Processos • Processos Independentes – sua execução não afete e não seja afetada pela execução de um outro processo • Processos Cooperantes – interage (troca informações) com outros processos presentes no sistema
  • 11.
    Processos e threads11 Bloco de Controle de Processo • É uma estrutura de dados que representa e contém informações associadas com o processo – 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.).
  • 12.
    Processos e threads12 Nome do Processo Estado do Processo Ponteiros Lista de Arquivos abertos Limites da memória Registradores
  • 13.
    Processos e threads13 Controle sobre os Processos • Para que o sistema operacional mantenha o controle sobre os diferentes processos e os diferentes estados em que cada processo pode estar, o sistema utiliza estruturas de listas encadeadas. Lista de Prontos Lista de Espera : : : : : : : : :........... . BCP# 5 BCP# 1 BCP# 3 : : : : : : : : :........... . BCP# 2 BCP# 4 BCP# 6
  • 14.
    Processos e threads14 Estados do Processo • Execução (Running): Um processo está no estado de execução quando ele está sendo executado pelo processador. • Pronto (Ready): O processo encontra-se pronto para a execução. • Bloqueado(Wait): Um processo está no estado bloqueado quando aguarda a ocorrência de algum evento externo para poder prosseguir. • Indefinido: Um processo estará neste estado antes de ser criado ou depois de ser destruído.
  • 15.
    Processos e threads15 Troca de Estado do Processo Bloqueado Execução Pronto Indefinido
  • 16.
    Processos e threads16 Escalonamento • Escalonamento, ou scheduling é o procedimento pelo qual o SO estabelece a ordem na escolha dos processos para a execução, dentre os vários que concorrem pela utilização do processador • Existem 3 tipos de escalonadores: – Escalonador de longo prazo – Escalonador de curto prazo – Escalonador de médio prazo
  • 17.
    Processos e threads17 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 mais consome tempo de CPU
  • 18.
    Processos e threads18 Tipos de Escalonador Fila de Prontos Fila de Espera HD FimCurto-prazoLongo-prazo CPU I/O
  • 19.
    Processos e threads19 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
  • 20.
    Processos e threads20 Escalonamento de processos • Quando um ou mais processos estão prontos para serem executados, o sistema operacional de decidir qual deles vai ser executado primeiro. • A parte do sistema operacional responsável por essa decisão é chamado de escalonador, e o algoritmo usado para tal é chamado de algoritmo de escalonamento.
  • 21.
    Processos e threads21 Critérios de escalonamento 1. Justiça: fazer com que cada processo ganhe seu tempo justo de CPU; 2. Eficiência: manter a CPU ocupada 100% do tempo (se houver demanda) 3. Tempo de resposta: minimizar o tempo de resposta para os usuários interativos; 4. Tempo de Turnaround: minimizar o tempo que o usuário batch devem esperar pelo resultado 5. Throughput: maximizar o número de jobs processados por unidade de tempo.
  • 22.
    Processos e threads22 Tipos de Escalonamento • Escalonamento Não-Preemptivo – O processador, uma vez alocado a um processo, só será liberado quando o processo concluir a sua execução ou tiver a sua execução bloqueada devido à espera pela execução de uma operação de entrada/saída. • Escalonamento Preemptivo – Os algoritmos de escalonamento ditos preemptivos apresentam como principal característica o fato da execução de um dado processo poder ser interrompida mesmo que o processo não tenha concluído ou tenha sido bloqueado.
  • 23.
    Processos e threads23 Tipos de Escalonamento • Escalonamento Não-Preemptivo – O processador, uma vez alocado a um processo, só será liberado quando o processo concluir a sua execução ou tiver a sua execução bloqueada devido à espera pela execução de uma operação de entrada/saída. • Escalonamento Preemptivo – Os algoritmos de escalonamento ditos preemptivos apresentam como principal característica o fato da execução de um dado processo poder ser interrompida mesmo que o processo não tenha concluído ou tenha sido bloqueado.
  • 24.
    Processos e threads24 Colaborações? Críticas?? Dúvidas??? Sugestões???? Xingamentos?????