processos - ime.usp.bradao/processocorrigido01.pdf · –É formado por três partes (contexto de...
TRANSCRIPT
![Page 1: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/1.jpg)
1
Processos
Adão de Melo Neto
![Page 2: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/2.jpg)
2
Processos Introdução
– Para se poder controlar o uso concorrente (ao
mesmo tempo) do processador, da memória e dos
dispositivos de E/S, um programa deve sempre
estar sempre associado a um processo.
Programa Processo
TODO PROGRAMA AO SER CRIADO JÁ VEM ASSOCIADO A UM PROCESSO
![Page 3: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/3.jpg)
3
Executar programas
armazenados na memória
Armazena programas a
serem executados pelo
processador
RI (registrador de instrução)
Armazena a instrução da Memória
que está sendo executada
PC (contador de instrução)
Armazena o endereço da a próxima
instrução da Memória a ser executada
Relembrando .......
![Page 4: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/4.jpg)
4
PC (Program counter) =
0000H
RI(register instruction) =
Instrução 02H
MEMÓRIA PRINCIPAL
SALTAR PARA O ENDEREÇO 0100H
RI (registrador de instrução)
Armazena a instrução que está sendo
executada
PC (contador de instrução)
Armazena o endereço da a próxima
instrução a ser executada
Os registradores mantem informações sobre o programa em execução por
isso Suas informações precisam ser guardadas na mudança de contexto
Relembrando .......
![Page 5: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/5.jpg)
5
Processo e Concorrência Processo
• Conjunto de informações necessárias para que o sistema
operacional implemente a concorrência entre programas pelo uso
dos recursos do sistema (processador, memória e dispositivos de
E/S)
Concorrência • Três programas associados aos respectivos processos.
Exemplo de registradores:
Registrador de Instruções (RI)
Registrador Program Counter (PC)
![Page 6: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/6.jpg)
6
Processo e Concorrência
Registrador de Instruções (RI)
Registrador Program Counter (PC)
MEMÓRIA
PRINCIPAL
PROCESSO
X
PROCESSO
Y
PROCESSO
Z
Contexto de hardware
Contexto de software
Espaço de endereçamento
(programa)
Os registradores mantém informações sobre o
programa em execução por isso suas
informações precisam ser guardadas na mudança
de contexto
![Page 7: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/7.jpg)
7
O SO decide interromper temporariamente a execução do
programa 1 e salva o conteúdo dos registradores armazenando-os no processo X.
O programa 2 é iniciado e executado ao longo do intervalo t2
O SO decide interromper temporariamente a execução do programa 2 e
salva o conteúdo dos registradores armazenando-os no processo Y
Mudança de contexto: troca de um processo por outro no
processador gerenciado pelo SO
![Page 8: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/8.jpg)
8
Processo – É formado por três partes (contexto de hardware, de software e espaço de
endereçamento) que juntas mantêm informações necessárias a execução de um
programa em um sistema em que exista concorrência (multiprogramação).
![Page 9: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/9.jpg)
9
Processo Armazena o conteúdo
os registradores gerais, além dos de uso específico,
como o program counter (PC) e
o instrutor register (RI)
São especificados os
limites e características dos recursos
que podem ser alocados pelo processo
É a área de memória pertencente
ao processo onde instruções e dados do programa
são armazenados para execução
MEMÓRIA
PRINCIPAL
PROCESSO
X
PROCESSO
Y
PROCESSO
Z
Contexto de hardware
Contexto de software
Espaço de endereçamento
(programas)
![Page 10: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/10.jpg)
10
Contexto de
Hardware O contexto de hardware armazena o conteúdo
os registradores gerais, além dos de uso específico,
como o program counter (PC) e
o instrutor register (RI)
![Page 11: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/11.jpg)
11
Contexto de
Hardware
A mudança de contexto, base
para a implementação da
concorrência consiste em
salvar o conteúdo dos
registradores do processo
que está deixando a CPU
e carregá-los com os valores
do novo processo que será
executado.
![Page 12: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/12.jpg)
12
Contexto de
Software No contexto de software são especificados os limites
e características dos recursos que podem ser alocados pelo processo
Identificação -PID (process identification)
-UID (user identification)
Quotas: são os limites dos recursos do sistema
que o processo pode alocar.
Privilégios: são as ações que um processo
pode fazer em relação a ele mesmo, aos demais
processos e ao sistema operacional
- Afetam o próprio processo
- Afetam outros processos.
![Page 13: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/13.jpg)
13
Contexto de
Software
Identificação do usuário ou processo que o criou
Prioridade de execução, limites alocados nas
memórias principal e secundária
1) Nr Máx de arquivos abertos
2) Nr Máx de Mem Pcpal e Mem Sec que o processo
pode alocar
3) Nr Máx de operações de E/S pendentes
4) Tamanho máximo do buffer para operações E/S
5) Número máximo de (sub)processo que pode-se criar
![Page 14: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/14.jpg)
14
Listagem de alguns processos
(estação com sistema linux)
IDT PROCESSO Tempo de utilização do processador IDT USUÁRIO
![Page 15: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/15.jpg)
Listagem de alguns processos
(prática)
15
PARA ACESSAR A INTERFACE DE COMANDOS
DIGITE
CTRL+ ALT + T
![Page 16: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/16.jpg)
Listagem de alguns processos
(prática)
IDT PROCESSO Tempo de utilização do processador IDT USUÁRIO
![Page 17: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/17.jpg)
17
É a área de memória pertencente
ao processo onde instruções e dados do programa
são armazenados para execução
Espaço de Endereçamento
MEMÓRIA
PRINCIPAL
PROCESSO
X
PROCESSO
Y
PROCESSO
Z
Contexto de hardware
Contexto de software
Espaço de endereçamento
(programas)
![Page 18: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/18.jpg)
LISTA
É uma estrutura de armazenamento de dados
Os processos são organizados em listas
18
Relembrando .......
![Page 19: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/19.jpg)
19
Estados de um processo Estado de Execução
Quando está sendo executado pela CPU
Quando apenas aguarda
oportunidade para ser
executado
Estado de Espera
(bloqueado)
Quando aguarda
algum evento externo ou algum
recurso para prosseguir seu
processamento
Após criação
do processo o mesmo
vai para lista de
processos em estado de
pronto
EXEMPLO
Aguardando o término de operação de E/S
Aguardando data/hora para continuar operação
![Page 20: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/20.jpg)
20
Mudança de Estados de um Processo (A) PRONTO EXECUÇÃO
( escalonamento: depende da
política de escalonamento do
Sistema Operacional)
(B) EXECUÇÃO ESPERA
(gerada por eventos do processo
como
operações de E/S)
(gerada por eventos externos:
Sistema operacional suspende
por um período de tempo a
execução do processo)
(D) EXECUÇÃO PRONTO
(preempção: exemplo
término da fatia de tempo que
processo possui para sua
execução)
(C) ESPERA PRONTO
(operação solicitada é atendida ou recurso esperado é concedido
![Page 21: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/21.jpg)
21
Exercício sobre
Mudança de Estados de um Processo
Escalonamento
![Page 22: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/22.jpg)
• Vamos supor que temos a seguinte situação:
– Processos na fila estado de pronto:
• J-> I-> H->G->F->E->D->C
– Processo B em execução
– Processos na fila do estado de espera:
• A
• Pergunta: Como ficarão as filas e o processo em execução
de acordo com determinados eventos.
![Page 23: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/23.jpg)
Escalonamento
![Page 24: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/24.jpg)
![Page 25: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/25.jpg)
25
Processos CPU-bound (ligado à UCP)
Quando passa a maior parte do
tempo no estado de execução,
utilizando o processador, ou em
estado de pronto.
Aplicações científicas que realizam
muitos cálculos
Quando passa a maior parte do
tempo no estado de espera, pois
realiza um elevado número de
operações de entrada e saída.
Aplicações comerciais que se
baseiam em leitura, processamento
e gravação
Processos I/O-bound (ligado à E/S)
![Page 26: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/26.jpg)
26
Processo Foreground Permite a comunicação direta do usuário com o processo durante o
processamento (processamento iterativo)
Processo Background Não existe a comunicação com o usuário durante o processamento
![Page 27: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/27.jpg)
Forma de Criação de um processo
Logon Interativo
Linguagem de comandos
Usando rotinas do Sistema Operacional
27
![Page 28: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/28.jpg)
28
Formas de Criação de Processo
(logon Interativo )
O usuário fornece ao sistema um nome (username) e uma senha
(password) e o sistema faz a autenticação
Quando se faz o logon, um processo é criado
![Page 29: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/29.jpg)
29
Formas de Criação de Processo
(Via Linguagem de Comandos)
Um processo é criado para atender ao comando de
eliminação do diretório
![Page 30: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/30.jpg)
30
Formas de Criação de Processo
(Usando rotina do Sistema Operacional)
Rotina de criação de um subrocesso
filho
![Page 31: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/31.jpg)
Processo
Subprocesso
Threads
31
![Page 32: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/32.jpg)
PROCESSO
Forma de implementar a concorrência entre
programas pelo uso dos recursos do sistema.
Cada programa ao ser criado já está associado a
um processo
Programa Processo
![Page 33: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/33.jpg)
33
SUBPROCESSOS
Dependência existencial entre processo pai e processo filho
Cada um possui seu próprio contexto de hardware, contexto
de software e espaço de endereçamento
Processo Pai
Processo Filho
![Page 34: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/34.jpg)
34
Como criar um subprocesso
Criar um subprocesso filho
•A rotina fork() cria um novo processo, que executará o
mesmo código do programa
•Retorna
- o PID do processo criado para o pai
- 0 para o filho
•O processo filho imprime de 0 a 49
•O processo pai de 51 a 99
![Page 35: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/35.jpg)
compilação
execução
Como criar um subprocesso
![Page 36: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/36.jpg)
execução
Como criar um subprocesso
![Page 37: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/37.jpg)
37
Compartilham o mesmo contexto de software e espaço de
endereçamento, mas possuem contexto de hardware distintos
UM PROCESSO PODE ARMAZENAR VÁRIAS THREADS
THREADS (objetivos)
•Reduzir o tempo gasto na criação/eliminação de processos
•Reduzir o tempo gasto na troca de contexto em processos
•Economizar recursos do sistema como um todo
armazenar o conteúdo
os registradores
THREADS
![Page 38: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/38.jpg)
UM PROCESSO PODE ARMAZENAR VÁRIAS THREADS
MEMÓRIA
PRINCIPAL
PROCESSO
Contexto de software
Espaço de endereçamento
(programas)
Contexto de hardware t3
Contexto de hardware t2
Contexto de hardware
thread 1
THREADS
![Page 39: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/39.jpg)
39
Programação Multithreads
•O programa como um todo é está
associado a um processo e dentro deste
processo são criadas 10 threads.
•Rotina de criação das threads. São criadas
10 threads que executam cada uma a rotina
espera.
![Page 40: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/40.jpg)
40
Programação Multithreads
compilação Opção de compilação
![Page 41: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/41.jpg)
41
Programação Multithreads
execução
![Page 42: Processos - ime.usp.bradao/PROCESSOCORRIGIDO01.pdf · –É formado por três partes (contexto de hardware, de software e espaço de endereçamento) que juntas mantêm informações](https://reader035.vdocuments.net/reader035/viewer/2022081611/5f0479b37e708231d40e2791/html5/thumbnails/42.jpg)
42
QUAL DIFERENÇA DE UMA THREAD PARA
UM PROCESSO ? Para se fazer a mesma coisa uma thread é mais eficiente pois: reduz o tempo
gasto na criação/eliminação de processos, Reduz o tempo gasto na troca de
contexto em processos e economizar recursos do sistema como um todo.
Criei 1 programa (que naturalmente já esta associado a um processo – o
processo pai) para imprimir de 51 a 99 e ele criou um processo filho (usando o
comando fork()) que imprimiu de 1 a 49.
Poderia ter feito isso com um programa (que naturalmente já esta associado a
um processo) e duas (2) threads
PROCESSO PAI
PROCESSO
FILHO
Contexto de hardware
Contexto de software
Espaço de endereçamento
(programas)
Contexto de hardware
Contexto de software
Espaço de endereçamento
(programas)
PROCESSO
Contexto de software
Espaço de endereçamento
(programas)
Contexto de hardware t2
Contexto de hardware t1