1) O documento discute os conceitos de bootstrap, processos e gerenciamento de processos em sistemas operacionais.
2) Bootstrap carrega o kernel do SO na memória e inicia o processo "init". Processos são programas em execução que utilizam recursos como CPU e memória.
3) Há três estados de processo - pronto, execução e espera - e quatro tipos de mudança entre esses estados. O sistema operacional é responsável por criar, excluir e escalonar processos.
1. 04/04/2011
Bootstrap
Programa inicial ou de partida, que inicializa todos os
aspectos do sistema, desde registradores de CPU a
controladoras de dispositivos, passando pelo conteúdo da
memória.
Etapas do carregamento :
• Localizar e carregar na memória o kernel do SO
• Inicia a execução do primeiro processo “init”
• Monitorar ocorrência de evento (interrupção de
Hardware ou Software) , caso ocorra o hardware envia
um sinal para CPU, geralmente por meio do barramento
do sistema.
Bootstrap
Sistemas modernos são baseados em interrupções, se nao
houver processos para executar, nenhum dispositivo I/O ao
qual fornecer serviço e nenhum usuário a ser atendido, um
SO ficará parado, esperando que algo aconteça.
Os eventos são quase sempre sinalizados pela ocorrência de
uma interrupção ou um trap.
Trap, ou exceção, é uma interrupção gerada por software
causada por um erro (por exemplo, a divisão por zero, ou
acesso inválido à memória)
Para cada tipo de interrupção , segmentos de código no SO
determinam que ação deve ser realizada.
Gerência de processos
O que é um processo ?
• Pode ser considerado um programa em execução
Programa de usuário de tempo compartilhado,
como um compilador
Enviar saída para impressora
Processador de textos executado por um usuário
individual em um PC
Obs: Por enquanto podemos considerar que um processo é
um job ou programa de tempo compartilhado, mais tarde
veremos que o conceito é mais geral, onde será possivel
fornecer chamadas ao sistema que permitem aos processos
criar subprocessos para a execução concorrente.
1
2. 04/04/2011
Gerência de processos
Um processo precisa de determinados recursos, para realizar
suas tarefas, tais como :
• Tempo de CPU
• Memória
• Arquivos e dispositivos de I/O
Que são dados ao processo quando ele é criado ou alocados a
ele durante sua execução.
Vale a pena lembrar que um programa por si só não é um
processo; um programa é uma entidade passiva, como o
conteúdo de um arquivo armazenado em disco, enquanto um
processo é uma entidade ativa, com um contador do
programa especificando a próxima instrução a ser executada.
Gerência de processos
• A execução de um processo deve ser sequencial, onde a
CPU executa uma instrução do processo após a outra até o
processo terminar
• No máximo uma instrução do processo é executada em
nome do processo, ou seja, embora 2 processos possam ser
associados com o mesmo programa, ele são considerados
duas sequencias de execução separadas.
• É comum ter programas que utilize muitos processos para
sua execução.
• Vários processos podem executar concorrentemente,
multiplexando a CPU entre entre eles.
Gerência de processos
O sistema operacional é responsável pelas seguintes
atividades em relação à gerência de processos :
Criar e excluir processos de usuários e sistemas
Suspender e retomar processos
Fornecer mecanismos para sincronização de
processos
Fornecer mecanismos para comunicação de
processos
Fornecer mecanismos para tratamento de deadlocks
(impasses)
2
3. 04/04/2011
Gerência de processos
• Um processo é formado por três partes:
Contexto de hardware
Contexto de software
Espaço de endereçamento
Gerência de processos
Contexto de Hardware
Armazena o conteúdo dos registradores gerais da
CPU e de uso específico, como o program counter (PC),
o stack pointer (SP) e o registrador de status (PSW).
Quando um processo está em execução , o os
registradores da CPU são utilizados
Quando o processo perde a utilização da CPU, o
sistema salva o contexto de hardware no processo.
A troca de um processo por outro na CPU é chamada
de mudança de contexto.
Gerência de processos
Contexto de Software
São especificadas as características e limites dos
recursos que podem ser alocados pelo processo, como
prioridade para execução, privilégios, tamanho do buffer
para operações de E/S etc.;
O contexto de software é formado por três grupos de
informações:
• Identificação
• Quotas
• Privilégios
3
4. 04/04/2011
Gerência de processos
Contexto de Software
Identificação
• PID (Program Id)
• UID (Owner) (identificação do usuário que os criou)
Quotas
• São os limites de cada recurso do sistema que um
processo pode alocar:
Número máximo de arquivos abertos
simultaneamente;
Tamanho máximo de memória principal e
secundária
Número máximo de operações de E/S pendentes
Gerência de processos
Contexto de Software
Privilégios
• Definem as ações que um processo pode fazer em
relação a ele mesmo, aos demais processos e ao SO
Privilégios que afetam o próprio processo permitem
que suas características possam ser modificadas.
Prioridade de execução
Limites alocados na memória principal e
secundária
O usuário que possuem todos os privilégios são
chamados de Administrador (Windows) e root (Linux)
Gerência de processos
Espaço de endereçamento
É a área do processo onde as instruções e dados do
programa são armazenados para sua execução
Cada processo possui o seu espaço; nenhum outro processo
poderá ocupá-lo.
4
5. 04/04/2011
Gerência de processos
Estado do processo
Nos sistemas operacionais multitarefa, um processo não
poderá ocupar exclusivamente uma CPU.
Para que o compartilhamento da CPU seja efetivado, um
processo passa por vários estados ao longo de seu
completo processamento
A mudança de estados é gerada por eventos do sistema
operacional ou do próprio processo.
Gerência de processos
Um processo ativo pode se encontrar em 3 estados :
Pronto
Execução
Espera
Gerência de processos
Estado de pronto (ready)
Está no estado de pronto quando aguarda para ser
executado
Os processos no estado de pronto ficam em uma lista
encadeada
O escalonamento dos processos determina a ordem e
os critérios pelos quais os processos neste estado deverá
fazer uso do processador.
5
6. 04/04/2011
Gerência de processos
Estado de execução (running)
Está no estado de execução quando está sendo
processado pela CPU
Os processos se alternam na utilização da CPU
seguindo uma política de escalonamento estabelecida pelo
Sistema Operacional
Gerência de processos
Estado de espera (waiting)
Aguarda por algum evento externo ou por algum recurso
para prosseguir o processamento.
Também são organizados em lista encadeada
Todos os processos em estado de espera são colocados
novamente em fila de pronto
Espera de uma data e hora para executar uma ação
ou espera de entrada pelo usuário.
Gerência de processos
Mudança de Estado do processo
Um processo muda de estado durante seu processamento
em função de :
• Eventos voluntários originados pelo próprio processo
• Eventos involuntários originados pelo SO
São 4 as mudanças de estado :
• de pronto para execução
• de execução para espera
• de espera para pronto
• de execução para pronto
6
7. 04/04/2011
Gerência de processos
De pronto para execução
1. SO cria o processo
2. Sistema coloca processo em estado de pronto e fica
aguardando uma oportunidade para ser executado.
3. Processo é executado
Gerência de processos
De execução para pronto
1. Processo se encontra em execução;
2. Tempo para execução do processo termina;
3. Processo retorna à fila de pronto
Gerência de processos
De execução para espera
1. Processo está sendo executado;
2. SO suspende a execução do processo colocando-o
em fila de espera por um determinado tempo;
7
8. 04/04/2011
Gerência de processos
De espera para pronto
1. Processo está em espera (waiting);
2. Um determinado recurso ou operação é solicitada
pelo processo, que é atendido.
3. Processo entra para a fila de pronto
Gerência de processos
Swapping
• Processos em estado de pronto ou espera podem ser
alocados em memória secundária caso não haja espaço
suficiente na memória principal;
• Esta técnica chamamos de Swapping
• Swapp out quando o processo ou programa é levado para
a memória secundária.
• Swapp in quando o mesmo retorna para a memória
principal
8