Processos - Anilton Silva Fernandes

Propaganda
Sistemas Operativos
Processos
3º ano - ESI e IGE (2011/2012)
Engenheiro Anilton Silva Fernandes
([email protected])
Processos
●
A gerência de um ambiente multiprogramável é
função exclusiva do sistema operativo que
deve controlar a execução dos diversos
programas e o uso concorrente do processador
●
Para isso, um programa ao ser executado deve
estar sempre associado a um processo
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos
●
Assim ...
●
●
●
O conceito de processo é a base para a
implementação de um sistema
multiprogramável
O processador é projetado para executar
instruções a partir do ciclo de busca e
execução
Na visão da camada de hardware, o
processador executa instruções sem distinguir
qual programa encontra-se em
processamento.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos
●
É de responsabilidade do sistema
operacional implementar a concorrência
entre programas gerenciando a alternância
da execução de instruções na CPU de
maneira controlada e segura
●
Neste sentido, o conceito de processo tornase essencial para que os sistemas
multiprogramáveis implementem a
concorrência de diversos programas e
atendam a múltiplos utilizadores
simultaneamente
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos
●
Um processo pode ser entendido
inicialmente como um programa em
execução, só que seu conceito é mais
abrangente
●
Pode-se definir mais precisamente um
processo como sendo o conjunto necessário
de informações para que o sistema operativo
implemente a concorrência de programas
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos
●
O processo também pode ser definido
como sendo o ambiente onde um
programa é executado
●
Este ambiente, além das informações sobre a
execução, possui também a quantidade de
recursos do sistema que cada programa pode
utilizar
–
O resultado da execução de um mesmo programa
pode variar dependendo do processo em que é
executado, ou seja, em função dos recursos que
são disponibilizados para o programa
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Estrutura de um Processo
●
Um processo é formado por 3 partes
Estrutura de um Processo
Contexto de
Software
Contexto de
Hardware
Programa
Espaço de
Endereçamento
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Hardware
●
O contexto de hardware de um processo
armazena o conteúdo dos registradores
gerais da CPU, além dos registradores de
uso específico, como o PC, SP (stack
pointer) e o registrador de status
●
Quando um processo está em execução, o
seu contexto de hardware está armazenado
nos registradores do processador
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Hardware
●
No momento em que o processo perde a
utilização da CPU, o sistema salva as
informações no contexto de hardware do
processo
●
O contexto de hardware é fundamental para a
implementação dos sistemas
multiprogramáveis, onde os processos se
alternam na utilização da CPU, podendo ser
interrompidos e posteriormente restaurados
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Hardware
●
O sistema operacional gerencia a troca de
contexto, base para a implementação da
concorrência, que consiste em salvar o
conteúdo dos registradores do processo
que está deixando a CPU e carregá-lo com
os valores referentes ao do novo processo
que será executado
●
Esta operação se resume em substituir o
contexto de hardware de um processo pelo
outro
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Hardware
Sistema Operativo
Processo A
Processo B
Salva o conteúdo dos
registradores do Processo A
Carrega o conteúdo dos
registradores do Processo B
Salva o conteúdo dos
registradores do Processo B
Carrega o conteúdo dos
registradores do Processo A
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
No contexto de software de um processo
são especificados limites e características
dos recursos que podem ser alocados pelo
processo
●
Muitas destas características são
determinadas no momento da criação do
processo, enquanto outras podem ser
alteradas durante sua existência
–
A maior parte das informações do contexto de
software do processo provém de um arquivo do
sistema operacional, conhecido como arquivo de
usuários
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
Neste arquivo são especificados os limites
dos recursos que cada processo pode
alocar, sendo gerenciado pelo
administrador do sistema.
●
O contexto de software é composto por três
grupos de informações sobre o processo:
identificação, quotas e privilégios.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
Identificação.
●
●
Cada processo criado pelo sistema recebe um
identificação única (PID – Process
Identification) representada por um número.
Através do PID, o sistema operacional e
outros processos podem fazer referência a
qualquer processo existente, consultando o
seu contexto ou alterando uma de suas
características.
–
Alguns sistemas, além do PID, identificam o
processo através de um nome
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
Identificação.
●
●
Cada processo criado pelo sistema recebe um
identificação única (PID – Process
Identification) representada por um número.
Através do PID, o sistema operacional e
outros processos podem fazer referência a
qualquer processo existente, consultando o
seu contexto ou alterando uma de suas
características.
–
Alguns sistemas, além do PID, identificam o
processo através de um nome
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
Identificação.
●
●
O processo também possui a identificação do
usuário ou o processo que o criou (owner).
Cada usuário possui uma identificação única
no sistema (UID – User Identification),
atribuída ao processo no momento de sua
criação.
–
A UID permite implementar um modelo de
segurança, onde apenas os objetos que possuem
a mesma UID do usuário podem ser acessados.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
Quotas.
●
●
As quotas são os limites de cada recurso do
sistema que um processo pode alocar.
Caso uma quota seja insuficiente, o processo
poderá ser executado lentamente,
interrompido durante seu processamento ou
mesmo não ser executado.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
Quotas.
●
exemplos de quotas presentes na maioria dos
sistemas operacionais são:
–
Número máximo de arquivos abertos simultaneamente;
–
Tamanho máximo de memória principal e secundária que o
processo pode alocar;
–
Número máximo de operações de E/S pendentes;
–
Tamanho máximo do buffer para operações de E/S;
–
Número máximo de processos, subprocessos e threads que
podem criar;
–
Espaço de disco disponível
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
Privilégios.
●
Os privilégios ou direitos definem as ações
que um processo pode fazer em relação a ele
mesmo, aos demais processos e ao sistema
operacional.
–
Privilégios que afetam o próprio processo permitem
que suas características possam ser alteradas,
como prioridade de execução, limites alocados na
memória principal e secundária, etc.
●
Já os privilégios que afetam os demais processos
permitem, além da alteração de suas próprias
características, alterar as de outros processos.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
Privilégios.
●
Privilégios que afetam o sistema são os mais
amplos e poderosos, pois estão relacionados
à operação e à gerência do ambiente, como a
desativação do sistema, alteração de regras
de segurança, criação de outros processos
privilegiados, modificação de parâmetros de
configuração do sistema, entre outros.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
●
Privilégios.
●
A maioria dos SOs disponibiliza uma conta de
acesso com todos estes privilégios
disponíveis, com o propósito de o
administrador gerenciar o sistema operacional.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Espaço de Endereçamento
●
O espaço de endereçamento é a área de
memória pertencente ao processo onde
instruções e dados do programa são
armazenados para execução.
●
●
Cada processo possui seu próprio espaço de
endereçamento, que deve ser devidamente
protegido do acesso dos demais processos.
Analisemos a figura ...
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos – Contexto de Software
nome
registradores gerais
PID
dono (UID)
registrador PC
prioridade de execução
data/hora de criação
Contexto de
Software
Contexto de
Hardware
registrador SP
tempo de processador
privilégios
Programa
registrador de status
Espaço de
Endereçamento
Endereços de memória
principal alocados
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
PCB - Blocos de Controle Processo
●
Estrutura pela qual o processo é
implementado no sistema operativo
●
●
A partir do PCB, o sistema operacional
mantém todas as informações sobre o
contexto de hardware, contexto de software e
espaço de endereçamento de cada processo
Os PCBs de todos os processos ativos
residem na memória principal em uma área
exclusiva do sistema operacional
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
PCB - Blocos de Controle Processo
●
O tamanho desta área, geralmente é limitado por
um parâmetro do sistema operacional que
permite especificar o número máximo de
processos que podem ser suportados
simultaneamente pelo sistema.
●
Toda a gerência dos processos é realizada por
intermédio de chamadas a rotinas do sistema
operacional que realizam operações como criação,
alteração de características, visualização, eliminação,
sincronização, suspensão de processos, dentre outras
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
PCB - Blocos de Controle Processo
PCB
Ponteiros
Estado do processo
Nome do processo
Prioridade do processo
Registradores
Limites de memória
Lista de arquivos abertos
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Estado dos Processos
●
Em um sistema multiprogramável, um
processo não deve alocar exclusivamente
a CPU, de forma que exista um
compartilhamento no uso do processador.
●
Os processos passam por diferentes estados
ao longo do seu processamento, em função
de eventos gerados pelo sistema operacional
ou pelo próprio processo.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Estado dos Processos
●
●
●
Um processo ativo pode encontrar-se em
três diferentes estados (depende do SO): Execução (running).
Um processo é dito no estado de execução
quando está sendo processado pela CPU.
Em sistema com apenas uma CPU,
somente um processo pode estar sendo
executado em um dado instante de tempo.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Estado dos Processos
●
●
Os processos se alternam na utilização do
processador seguindo uma política
estabelecida pelo sistema operacional.
Em sistemas com múltiplos processadores
existe a possibilidade de mais de um
processo ser executado ao mesmo tempo.
Também é possível um mesmo processo
ser executado simultaneamente em mais
de uma CPU.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Estado dos Processos
●
●
Pronto (ready) - Um processo está no
estado de pronto quando aguarda apenas
para ser executado.
O sistema operacional é responsável por
determinar a ordem e os critérios pelos
quais os processos em estado de pronto
devem fazer uso do processador. Este
mecanismo é conhecido como
escalonamento.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Estado dos Processos
●
●
Em geral existem vários processos no
sistema no estado de pronto organizados
em listas encadeadas.
Os processos devem estar ordenados pela
sua importância, permitindo que processos
mais prioritários sejam selecionados
primeiramente para execução.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Estado dos Processos
●
●
●
O sistema organiza os vários processos no
estado de espera também em listas
encadeadas.
Em geral, os processos são separados em
listas de espera associadas a cada tipo de
evento.
Nesse caso, quando um evento acontece,
todos os processos da lista associada ao
evento são transferidos para o estado de
pronto.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Estado dos Processos
●
●
Espera (wait) - Um processo no estado de
espera aguarda por algum evento externo
ou por algum recurso para prosseguir seu
processamento.
Como exemplo, podemos citar o término
de uma operação de E/S ou espera de
uma determinada data e/ou hora para
continuar sua execução.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
●
Um processo muda de estado durante seu
processamento em função de eventos
originados por ele próprio (eventos
voluntários) ou pelo SO (eventos
involuntários). Abaixo temos as possíveis
transições que um processo pode sofrer.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Execução
Término
Espera
Pronto
Criação
Residente na MP
Não Residente na MP
Espera
Sistemas Operativos [2011/12]
Pronto
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Pronto Residente na MP
Criação
Execução
Término
Pronto Residente na MP
Execução
Execução
Pronto Residente na MP
Execução
Espera Residente na MP
Espera Residente na MP
Pronto Residente na MP
Espera Residente na MP
Espera não Residente na MP
Espera não Residente na MP
Pronto não Residente na MP
Pronto não Residente na MP
Pronto Residente na MP
Pronto Residente na MP
Sistemas Operativos [2011/12]
Pronto não Residente na MP
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Criação
●
●
Pronto Residente na MP
A criação de um processo ocorre a partir
do momento em que o sistema operacional
adiciona um novo PCB à sua estrutura e
aloca um espaço de endereçamento na
memória para uso.
A partir da criação do PCB, o sistema
operacional já reconhece a existência do
processo, podendo gerenciá-lo e associar
programas ao seu contexto para serem
executados.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Execução
●
Término
Na eliminação de um processo, o processo
é encaminhado ao estado de Término e
em seguida todos os seus recursos são
desalocados e o PCB eliminado pelo
Sistema Operacional.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Pronto Residente na MP
●
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 por uma
oportunidade para ser executado.
●
Cada Sistema Operacional tem seus próprios
critérios e algoritmos para a escolha da ordem
em que os processos serão executados
(política de escalonamento)
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Execução
●
Pronto Residente na MP
Um processo em execução passa para o
estado de pronto por eventos gerados pelo
sistema, como término da fatia de tempo
que o processo possui para sua execução.
●
Nesse caso, o processo volta para a fila de
pronto onde aguarda por uma nova
oportunidade para continuar seu
processamento.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Espera Residente na MP
●
Pronto Residente na MP
Um processo no estado de espera passa
para o estado de pronto quando a
operação solicitada é atendida ou o
recurso esperado é concedido.
●
Um processo no estado de espera sempre
terá de passar pelo estado de pronto antes de
poder ser novamente selecionado para
execução.
–
Não existe a mudança do estado de espera para o
estado de execução diretamente.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Espera Residente na MP
●
Espera não Residente na MP
Quando não existe espaço suficiente na
memória principal para carregar um novo
processo ou para aumentar a memória de
um determinado processo, o SO envia
algum processo do estado de espera para
o disco em um mecanismo denominado
Swap out.
●
preferência aos processos no estado de
espera porque normalmente o tempo de
permanência neste estado é longo.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Espera não Residente na MP
●
Pronto não Residente na MP
Esta transição é a mesma apresentada
para a situação de residente na memória
principal.
●
A única diferença é que como o processo está
originariamente fora da memória principal, ele
mudará de estado, indo para pronto, mas
permanecendo fora da memória principal.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Diagrama de Transição de Estados
Pronto não Residente na MP
●
Pronto Residente na MP
Quando o sistema percebe que já está
chegando a vez deste processo ser
executado, ele realiza a transferência do
disco para a MP no procedimento
chamado de Swap in.
●
Se não houver memória principal disponível
para receber o processo, um outro será
retirado para liberar memória e então será
feita a transferência.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos Independentes, Subprocessos e
Threads
●
●
Processos independentes, subprocessos e
threads são maneiras diferentes de implementar
a concorrência dentro de uma aplicação.
Nesse caso, busca-se subdividir o código em
partes para trabalharem de forma cooperativa.
●
Exemplo: Considere uma base de dados com
produtos de uma grande loja, onde vendedores
frequentemente fazem consultas.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos Independentes, Subprocessos e
Threads
●
●
Neste caso, a concorrência na aplicação proporciona um
tempo de espera menor entre as consultas, melhorando o
desempenho da aplicação e beneficiando os utilizadores.
O uso de processos independentes é a maneira mais
simples de implementar a concorrência em sistema
multiprogramáveis.
●
●
Neste caso, não existe vínculo do processo criado com o
seu criador.
A criação de um processo independente exige a alocação
de um PCB , possuindo contextos de hardware, contextos
de software e espaço de endereçamento próprios.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos Independentes, Subprocessos e
Threads
• A seguir temos um exemplo de processos independentes
Processo D
Processo A
Processo E
Processos
Independentes
Processo C
Processo B
Subprocessos
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos Independentes, Subprocessos e
Threads
●
●
●
●
Caso um processo pai deixe de existir, os
subprocessos subordinados são automaticamente
eliminados.
De modo semelhante aos processos independentes,
subprocessos possuem seu próprio PCB.
Além da dependência hierárquica entre processos e
subprocessos, uma outra característica neste tipo de
implementação é que subprocessos podem
compartilhar quotas com o processo pai.
Neste caso, quando um subprocesso é criado o
processo-pai cede parte de suas quotas ao processofilho.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos Independentes, Subprocessos e
Threads
●
●
●
●
Subprocessos são processos criados dentro de uma
estrutura hierárquica.
Nesse modo o processo criador é denominado
processo-pai, enquanto o novo processo é chamado
de subprocesso ou processo-filho.
O subprocesso, por sua vez, pode criar outras
estruturas de subprocessos.
Uma característica desta implementação é a
dependência existente entre o processo criador e o
subprocesso.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos Independentes, Subprocessos e
Threads
• A seguir temos um exemplo de subprocessos.
Processo A
Processo C
Processo B
Processo E
Processo D
SubProcessos
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos Independentes, Subprocessos e
Threads
●
●
●
●
O uso de processos independentes e subprocessos no
desenvolvimento de aplicações concorrentes demanda
consumo de diversos recursos do sistema.
Sempre que um novo processo é criado, o sistema deve
alocar recursos (contexto de hardware, contexto de
software e espaço de endereçamento), consumindo
tempo de CPU neste trabalho.
No momento do término dos processos, o sistema
operacional também dispensa tempo para desalocar
recursos previamente alocados.
Outro problema é a comunicação e sincronização entre
processos consideradas pouco eficientes, visto que cada
processo possui seu próprio espaço de endereçamento.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Processos Independentes, Subprocessos e
Threads
●
●
●
O uso de processos independentes e subprocessos
no desenvolvimento de aplicações concorrentes
demanda consumo de diversos recursos do sistema.
Sempre que um novo processo é criado, o sistema
deve alocar recursos (contexto de hardware,
contexto de software e espaço de endereçamento),
consumindo tempo de CPU neste trabalho.
No momento do término dos processos, o sistema
operacional também dispensa tempo para desalocar
recursos previamente alocados.
Sistemas Operativos [2011/12]
-
Eng.º Anilton Silva Fernandes <[email protected]>
Download