apostila 5 processos e threads
TRANSCRIPT
![Page 1: Apostila 5 processos e threads](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/1.jpg)
Processos e threads 1
Arquitetura de Sistemas Operacionais
Gerenciamento de Processos
Introdução
![Page 2: Apostila 5 processos e threads](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/15.jpg)
Processos e threads 15
Troca de Estado do Processo
Bloqueado
Execução
Pronto
Indefinido
![Page 16: Apostila 5 processos e threads](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022052602/559f8ecf1a28ab88728b47cd/html5/thumbnails/24.jpg)
Processos e threads 24
Colaborações?
Críticas??
Dúvidas???
Sugestões????
Xingamentos?????