Confere Ncia 04 - Processos e Thead
Confere Ncia 04 - Processos e Thead
Confere Ncia 04 - Processos e Thead
Conferência 04
Processos e Thead
2 of 44
Introdução
2 of 44
Introdução
2 of 44
Processos
3 of 44
O conceito de processo é a base para a implementação de um sistema
multi - programado;
4 of 44
O conceito de processo é a base para a implementação de um sistema
multi - programado;
O processador é projectado apenas para executar instruções, não
sendo capaz de distinguir qual programa se encontra em execução;
4 of 44
O conceito de processo é a base para a implementação de um sistema
multi - programado;
O processador é projectado apenas para executar instruções, não
sendo capaz de distinguir qual programa se encontra em execução;
A execução de um programa deve estar sempre associado a um
processo;
4 of 44
O conceito de processo é a base para a implementação de um sistema
multi - programado;
O processador é projectado apenas para executar instruções, não
sendo capaz de distinguir qual programa se encontra em execução;
A execução de um programa deve estar sempre associado a um
processo;
A gestão dos processos é uma das principais funções de um sistema
operativo. Através de processos, um programa pode alocar recursos,
compartilhar dados, trocar informações e sincronizar sua execução.
4 of 44
O que é Processos ?
5 of 44
“Fluxo de actividade autónomo que executa um conjunto de acções
que são determinadas por um programa”;
6 of 44
“Fluxo de actividade autónomo que executa um conjunto de acções
que são determinadas por um programa”;
Um processo pode ser entendido inicialmente como um programa
em execução;
6 of 44
“Fluxo de actividade autónomo que executa um conjunto de acções
que são determinadas por um programa”;
Um processo pode ser entendido inicialmente como um programa
em execução;
Um processo também pode ser definido como o ambiente onde um
programa é executado;
6 of 44
“Fluxo de actividade autónomo que executa um conjunto de acções
que são determinadas por um programa”;
Um processo pode ser entendido inicialmente como um programa
em execução;
Um processo também pode ser definido como o ambiente onde um
programa é executado;
Este ambiente, além das informações sobre a execução, possui também
recursos do sistema, como o espaço de endereçamento, tempo de
processador e área em disco.
6 of 44
Estrutura do Processo
7 of 44
Estrutura do Processo
7 of 44
Estrutura do Processo
7 of 44
Estrutura do Processo
8 of 44
Contexto de Hardware
9 of 44
Contexto de Hardware
9 of 44
Contexto de Hardware
9 of 44
A troca de um processo por outro na CPU, realizada pelo sistema
operativo, é denominada mudança de contexto;
10 of 44
A troca de um processo por outro na CPU, realizada pelo sistema
operativo, é denominada mudança de contexto;
A mudança de contexto consiste em salvar o conteúdo dos regista-
dores da CPU e carregá-los com os valores referentes ao do processo
que esteja ganhando a utilização do processador;
10 of 44
A troca de um processo por outro na CPU, realizada pelo sistema
operativo, é denominada mudança de contexto;
A mudança de contexto consiste em salvar o conteúdo dos regista-
dores da CPU e carregá-los com os valores referentes ao do processo
que esteja ganhando a utilização do processador;
Essa operação resume-se, então, em substituir o contexto de hard-
ware de um processo pelo outro.
10 of 44
Mudança de contexto
11 of 44
Contexto de Software
12 of 44
Contexto de Software
12 of 44
Contexto de Software
12 of 44
Contexto de Software
12 of 44
Identificação – Cada processo criado pelo sistema recebe uma iden-
tificação única (PID), representada por um número;
13 of 44
Identificação – Cada processo criado pelo sistema recebe uma iden-
tificação única (PID), representada por um número;
Quotas – As quotas são os limites de cada recurso do sistema que
um processo pode alocar.
13 of 44
Identificação – Cada processo criado pelo sistema recebe uma iden-
tificação única (PID), representada por um número;
Quotas – As quotas são os limites de cada recurso do sistema que
um processo pode alocar.
Alguns exemplos de quotas são:
Número máximo de arquivos abertos simultaneamente;
Número máximo de processos e subprocessos que podem ser criados;
13 of 44
Identificação – Cada processo criado pelo sistema recebe uma iden-
tificação única (PID), representada por um número;
Quotas – As quotas são os limites de cada recurso do sistema que
um processo pode alocar.
Alguns exemplos de quotas são:
Número máximo de arquivos abertos simultaneamente;
Número máximo de processos e subprocessos que podem ser criados;
Privilégios – Definem o que o processo pode ou não fazer em
relação ao sistema e aos outros processos:
Existem privilégios associados à segurança;
Existem outros privilégios associados à operação e à gerência do
sistema.
13 of 44
A maioria dos SO possui uma conta de acesso com todos estes
privilégios disponı́veis, com o propósito de o administradores gestão
do SO;
14 of 44
A maioria dos SO possui uma conta de acesso com todos estes
privilégios disponı́veis, com o propósito de o administradores gestão
do SO;
No Unix existe a conta root, no Windows a conta administrator e
no OpenVMS a conta system.
14 of 44
Espaço de endereçamento
15 of 44
Espaço de endereçamento
15 of 44
Bloco de controle de processo
16 of 44
Bloco de controle de processo
16 of 44
Bloco de controle de processo
17 of 44
Bloco de controle de processo
18 of 44
Estados do Processo
18 of 44
Estados do Processo
18 of 44
Estados do Processo
18 of 44
Estados do Processo
18 of 44
Mudanças de Estado do Processo
19 of 44
Mudanças de Estado do Processo
19 of 44
quatro mudanças de estado
Pronto – Execução: após a criação de um processo, o sistema o
coloca em uma lista de processos no estado de pronto, onde aguarda
uma oportunidade para ser executado.
20 of 44
quatro mudanças de estado
Pronto – Execução: após a criação de um processo, o sistema o
coloca em uma lista de processos no estado de pronto, onde aguarda
uma oportunidade para ser executado.
Execução – Espera: um processo em execução passa para o estado
de espera por eventos gerados pelo próprio processo, como uma
operação de E/S, ou por eventos externos (SO suspende por um
perı́odo de tempo a execução do processo).
20 of 44
quatro mudanças de estado
Pronto – Execução: após a criação de um processo, o sistema o
coloca em uma lista de processos no estado de pronto, onde aguarda
uma oportunidade para ser executado.
Execução – Espera: um processo em execução passa para o estado
de espera por eventos gerados pelo próprio processo, como uma
operação de E/S, ou por eventos externos (SO suspende por um
perı́odo de tempo a execução do processo).
Espera – Pronto: um processo no estado de espera passa para o
estado pronto quando a operação solicitada é atendida ou o recurso
esperado é concedido, sempre terá que passar pelo estado de pronto
antes de poder ser novamente seleccionado para execução.
20 of 44
quatro mudanças de estado
Pronto – Execução: após a criação de um processo, o sistema o
coloca em uma lista de processos no estado de pronto, onde aguarda
uma oportunidade para ser executado.
Execução – Espera: um processo em execução passa para o estado
de espera por eventos gerados pelo próprio processo, como uma
operação de E/S, ou por eventos externos (SO suspende por um
perı́odo de tempo a execução do processo).
Espera – Pronto: um processo no estado de espera passa para o
estado pronto quando a operação solicitada é atendida ou o recurso
esperado é concedido, sempre terá que passar pelo estado de pronto
antes de poder ser novamente seleccionado para execução.
Execução – Pronto: Um processo em execução passa para o estado
de pronto por eventos gerados pelo sistema, como o término da fatia
de tempo que o processador possui para sua execução.
20 of 44
Mudanças de estados do processo
21 of 44
Criação e Eliminação de Processos
22 of 44
Criação e Eliminação de Processos
22 of 44
Criação e Eliminação de Processos
22 of 44
Criação e Eliminação de Processos
23 of 44
Criação e Eliminação de Processos
23 of 44
Criação e Eliminação de Processos
23 of 44
Sinais
24 of 44
Sinais
24 of 44
Sinais
24 of 44
Threads
25 of 44
Ate o final da decada de 1970, os SO suportavam apenas processos
com um unico thread, ou seja, um processo com apenas um unico
programa fazendo parte do seu contexto;
26 of 44
Ate o final da decada de 1970, os SO suportavam apenas processos
com um unico thread, ou seja, um processo com apenas um unico
programa fazendo parte do seu contexto;
Em 1979, durante o desenvolvimento do Toth, foi introduzido o
conceito de processos lightweight (peso leve), onde o espaço de
endereçamento de um processo era compartilhado por vários pro-
gramas;
26 of 44
Ate o final da decada de 1970, os SO suportavam apenas processos
com um unico thread, ou seja, um processo com apenas um unico
programa fazendo parte do seu contexto;
Em 1979, durante o desenvolvimento do Toth, foi introduzido o
conceito de processos lightweight (peso leve), onde o espaço de
endereçamento de um processo era compartilhado por vários pro-
gramas;
Apesar do conceito revolucionario, a ideia nao foi utilizada comer-
cialmente, e somente em meados de 1980 ficou clara a separação
entre o conceito de processo e thread;
26 of 44
Ate o final da decada de 1970, os SO suportavam apenas processos
com um unico thread, ou seja, um processo com apenas um unico
programa fazendo parte do seu contexto;
Em 1979, durante o desenvolvimento do Toth, foi introduzido o
conceito de processos lightweight (peso leve), onde o espaço de
endereçamento de um processo era compartilhado por vários pro-
gramas;
Apesar do conceito revolucionario, a ideia nao foi utilizada comer-
cialmente, e somente em meados de 1980 ficou clara a separação
entre o conceito de processo e thread;
A partir do conceito de múltiplos threads e possı́vel projetar e im-
plementar aplicações concorrentes de forma eficiente, pois um pro-
cesso pode ter partes diferentes do seu codigo sendo execu-
tadas em paralelo.
26 of 44
Processos: programa em execução que contém um único fluxo de
execução.
27 of 44
Processos: programa em execução que contém um único fluxo de
execução.
Threads: programa em execução com múltiplos fluxos de execução.
27 of 44
Processos: programa em execução que contém um único fluxo de
execução.
Threads: programa em execução com múltiplos fluxos de execução.
Thread ou linha de execução é uma das maneiras utilizadas por um
processo para dividir a si mesmo em duas ou mais tarefas que podem
ser executadas simultaneamente.
27 of 44
Processos Independentes, Sub-processos e Threads
Processos independentes, subprocessos e threads são maneiras difer-
entes de implementar a concorrência dentro de uma aplicação.
28 of 44
Processos Independentes, Sub-processos e Threads
Processos independentes, subprocessos e threads são maneiras difer-
entes de implementar a concorrência dentro de uma aplicação.
Neste caso, busca-se subdividir o codigo em partes para trabalharem
de forma cooperativa.
28 of 44
Processos Independentes, Sub-processos e Threads
Processos independentes, subprocessos e threads são maneiras difer-
entes de implementar a concorrência dentro de uma aplicação.
Neste caso, busca-se subdividir o codigo em partes para trabalharem
de forma cooperativa.
O uso de processos independentes e a forma mais simples de imple-
mentar a concorrência em sistemas multiprográmaveis;
28 of 44
Processos Independentes, Sub-processos e Threads
Processos independentes, subprocessos e threads são maneiras difer-
entes de implementar a concorrência dentro de uma aplicação.
Neste caso, busca-se subdividir o codigo em partes para trabalharem
de forma cooperativa.
O uso de processos independentes e a forma mais simples de imple-
mentar a concorrência em sistemas multiprográmaveis;
Subprocessos sao processos criados dentro de uma estrutura hierárquica;
28 of 44
Processos Independentes, Sub-processos e Threads
Processos independentes, subprocessos e threads são maneiras difer-
entes de implementar a concorrência dentro de uma aplicação.
Neste caso, busca-se subdividir o codigo em partes para trabalharem
de forma cooperativa.
O uso de processos independentes e a forma mais simples de imple-
mentar a concorrência em sistemas multiprográmaveis;
Subprocessos sao processos criados dentro de uma estrutura hierárquica;
Neste modelo, o processo criador e chamado de processo pai en-
quanto o novo processo e chamado de processo filho.
28 of 44
Processos Independentes, Sub-processos e Threads
Processos independentes, subprocessos e threads são maneiras difer-
entes de implementar a concorrência dentro de uma aplicação.
Neste caso, busca-se subdividir o codigo em partes para trabalharem
de forma cooperativa.
O uso de processos independentes e a forma mais simples de imple-
mentar a concorrência em sistemas multiprográmaveis;
Subprocessos sao processos criados dentro de uma estrutura hierárquica;
Neste modelo, o processo criador e chamado de processo pai en-
quanto o novo processo e chamado de processo filho.
O conceito de thread foi introduzido na tentativa de reduzir o tempo
gasto na criação, eliminação e troca de contexto de processos nas
aplicações concorrentes, bem como economizar recursos do sistema
como um todo.
28 of 44
Ambiente Monothread
29 of 44
Ambiente Monothread
29 of 44
Ambiente Monothread
29 of 44
Monothread
30 of 44
Monothread
30 of 44
Monothread
30 of 44
Monothread
30 of 44
!
31 of 44
Ambiente Multithread
32 of 44
Ambiente Multithread
32 of 44
!
33 of 44
De forma simplificada, um thread pode ser definido como uma sub-
rotina de um programa que pode ser executada de forma assı́ncrona,
ou seja, executada paralelamente ao programa chamador;
34 of 44
De forma simplificada, um thread pode ser definido como uma sub-
rotina de um programa que pode ser executada de forma assı́ncrona,
ou seja, executada paralelamente ao programa chamador;
O programador deve especificar os threads, associando-os as sub-
rotinas assı́ncronas;
34 of 44
De forma simplificada, um thread pode ser definido como uma sub-
rotina de um programa que pode ser executada de forma assı́ncrona,
ou seja, executada paralelamente ao programa chamador;
O programador deve especificar os threads, associando-os as sub-
rotinas assı́ncronas;
Desta forma, um ambiente multithread, possibilita a execução con-
corrente de sub-rotinas dentro de um mesmo processo.
34 of 44
Arquitetura e Implementação
35 of 44
Arquitetura e Implementação
35 of 44
Arquitetura e Implementação
35 of 44
Threads em modo utilizador
36 of 44
Threads em modo utilizador
36 of 44
Threads em modo utilizador
36 of 44
Threads em modo kernel
37 of 44
Threads em modo kernel
37 of 44
Threads em modo kernel
37 of 44
!
38 of 44
Threads em Modo Hı́brido
A arquitetura de threads em modo hı́brido combina as vantagens da
implementação dos outros dois modo (utilizador e kernel);
39 of 44
Threads em Modo Hı́brido
A arquitetura de threads em modo hı́brido combina as vantagens da
implementação dos outros dois modo (utilizador e kernel);
Um processo pode ter vários TMK e, por sua vez, um TMK pode
ter vários TMU.
39 of 44
Threads em Modo Hı́brido
A arquitetura de threads em modo hı́brido combina as vantagens da
implementação dos outros dois modo (utilizador e kernel);
Um processo pode ter vários TMK e, por sua vez, um TMK pode
ter vários TMU.
O núcleo do sistema reconhece os TMK e pode escaloná-los individ-
ualmente;
39 of 44
Threads em Modo Hı́brido
A arquitetura de threads em modo hı́brido combina as vantagens da
implementação dos outros dois modo (utilizador e kernel);
Um processo pode ter vários TMK e, por sua vez, um TMK pode
ter vários TMU.
O núcleo do sistema reconhece os TMK e pode escaloná-los individ-
ualmente;
Um TMU pode ser executado em um TMK, em um determinado
momento, e no instante seguinte pode ser executado em outro.
39 of 44
Threads em Modo Hı́brido
A arquitetura de threads em modo hı́brido combina as vantagens da
implementação dos outros dois modo (utilizador e kernel);
Um processo pode ter vários TMK e, por sua vez, um TMK pode
ter vários TMU.
O núcleo do sistema reconhece os TMK e pode escaloná-los individ-
ualmente;
Um TMU pode ser executado em um TMK, em um determinado
momento, e no instante seguinte pode ser executado em outro.
O programador desenvolve a aplicação em termos de TMU e especi-
fica quantos TMK estão associados ao processo;
39 of 44
Threads em Modo Hı́brido
A arquitetura de threads em modo hı́brido combina as vantagens da
implementação dos outros dois modo (utilizador e kernel);
Um processo pode ter vários TMK e, por sua vez, um TMK pode
ter vários TMU.
O núcleo do sistema reconhece os TMK e pode escaloná-los individ-
ualmente;
Um TMU pode ser executado em um TMK, em um determinado
momento, e no instante seguinte pode ser executado em outro.
O programador desenvolve a aplicação em termos de TMU e especi-
fica quantos TMK estão associados ao processo;
Os TMU são mapeados em TMK enquanto o processo está sendo
executado. O programador pode utilizer apenas TMK, TMU ou uma
combinação de ambos.
39 of 44
!
40 of 44
Scheduler activations
41 of 44
Modelos de Programação
42 of 44
Modelos de Programação
42 of 44
Modelos de Programação
42 of 44
Modelos de Programação
43 of 44
Modelos de Programação
43 of 44
Modelos de Programação
43 of 44
Duvidas ???