Buscar

Sistemas operacionais Aula3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CCT0011 – Sistemas Operacionais 
Aula 03 – Processos 
Sistemas Operacionais 
Revisão de Conceitos 
 
Sistema operacional é software. 
 
Um sistema operacional deve fornecer interface com o usuário e administrar recursos de 
hardware e software. 
 
Sistemas multitarefa permitem a concorrência entre tarefas: tarefas disputam recursos. 
 
Os mecanismos de interrupção são fundamentais para a existência de sistemas 
multitarefa. 
 
Sistemas Operacionais 
Conceito de Processos 
 
 Processo é a instância de um programa em execução. É a unidade de carga e 
alocação de uma tarefa. Um programa é carregado para a memória onde aloca uma 
determinada área para código e dados. 
 
 Cada processo é único em um sistema. 
 O processo é criado quando o programa é carregado para a memória para ser 
executado. 
 Um programa é carregado para a memória onde aloca uma determinada área 
para código e dados. 
 
Sistemas Operacionais 
Conceito de Processos 
Em geral os processos podem ser classificados em três classes: 
 
Interativos: são processos que necessitam de algum tipo de interação com o usuário. 
 Ex.: editor de texto, planilhas eletrônicas, jogos, etc. 
 
Batch: são processos que realizam o processamento de dados de entrada produzindo um 
conjunto de dados de saída sem que haja a intervenção do usuário. 
 Ex.: backups, compiladores, programas de cálculo numérico, etc. 
 
Daemons: são processos carregados pelo sistema operacional durante sua inicialização e 
permanece em execução até que o sistema seja finalizado. Processos Daemons ficam em 
espera em segundo plano até que seja requerido algum serviço. 
 Ex.: gerenciamento de log do sistema, serviços de e-mail, etc. 
 
Sistemas Operacionais 
Process Control Block 
Bloco de Controle do Processo (PCB). 
 
 O sistema operacional ao iniciar um processo, cria 
um bloco chamado Bloco de Controle de Processos 
(PCBs), também chamado de bloco de controle de 
tarefa. 
 O bloco de controle de processo contém diversas 
informações que auxiliam o seu gerenciamento pelo 
sistema operacional. 
Sistemas Operacionais 
Process Control Block 
Dentre as informações presentes no PCB estão: 
 Número de Identificador de Processo (PID): número pelo 
qual o processo é identificado pelo sistema operacional. 
 
 Estado do processo: estado atual do processo (pronto, etc.). 
 
 Contador de programa: indica qual instrução do processo 
deverá ser executada. 
 
 Informações de escalonamento: indica qual a prioridade do 
processo na escala de prioridade de execução. 
 
Sistemas Operacionais 
Process Control Block 
 Credenciais: indica quais as permissões o processo possui. 
 
Informações de gerência de memória: incluem dados 
tabelas de páginas e valor dos registradores de base e limite. 
 
Informações de status de I/O: incluem lista de dispositivos 
de I/O alocados para este processo, lista de arquivos 
abertos, etc. 
 
Informações de contabilização: incluem a quantidade de 
CPU , limites de tempo, número de jobs ou processos, etc. 
Sistemas Operacionais 
Process Table 
 A tabela de processos fornece uma lista dos processos ativos no sistema. 
 
Sistemas Operacionais 
Contexto do Processo 
 O estado representa a situação atual do processo, ou seja, os valores de suas 
variáveis, as instruções que está executando, os recursos em uso. 
 Conforme a execução do processo avança, o seu estado 
se altera. O estado de um processo em um determinado 
instante é conhecido como contexto. 
 
O processo é formado por três partes: 
 Contexto de Hardware 
 Contexto de Software 
 Espaço de Endereçamento 
Sistemas Operacionais 
Contexto de Hardware 
Características de execução. 
 Armazena o conteúdo dos registradores de usos gerais e os específicos, tais 
como o Program Conter (PC), o Stack Pointer (SP) e o Registrador de Status 
(PSW), responsáveis pelo controle de execução do programa. 
 
 O armazenamento dos registradores no contexto de hardware 
permite que um processo volte exatamente no estado de execução que 
estava quando foi interrompido. 
 
 
Sistemas Operacionais 
Contexto de Software 
 Quando um processo é criado, o S.O. especifica os limites e características de 
recursos que o processo pode alocar. 
Estas informações são armazenadas no contexto de software e são relativas à: 
quantidade máxima de arquivos que o processo pode abrir simultaneamente, 
prioridade de execução, tamanho do buffer utilizado em operações de entrada e saída, 
etc. 
 
As especificações de limites de recursos são armazenadas, 
num arquivo do S.O. denominado arquivo de usuários. 
 
 
Sistemas Operacionais 
Contexto de Software 
 
 As informações do processo são divididas em três grupos no contexto de 
software. 
 Identificação – PID e UID. 
 Quotas – Limites de cada recurso do sistema que um processo pode alocar. 
 Privilégios – O que o processo pode o não fazer em relação ao sistema 
 e outros processos. 
 
Sistemas Operacionais 
Espaço de Endereçamento 
 Os processos são responsáveis pela execução das instruções de um programa. 
 A área de memória onde o programa será armazenado, além do espaço para os dados 
utilizados por ele. 
 Cada processo possui seu próprio espaço de endereçamento, que deve ser protegido 
do acesso dos demais processos. 
Sistemas Operacionais 
Estados de um Processo 
Processo é um programa em execução. 
A execução do processo ocorre de forma sequencial. 
A cada instante, apenas uma instrução de um processo específico é executada. 
Embora dois processos possam estar associados a um mesmo programa, são considerados 
duas sequencias de execução distintas. 
 Obs.: Um programa por si só não é um processo. 
 
Um processo em execução sofre mudanças de estado. 
O estado de um processo é definido em parte por seu contador de instruções e pelos valores 
dos registradores do processador. 
Há várias formas de representar os estados de um processo, variando o detalhamento dos 
estados possíveis. 
Sistemas Operacionais 
Estados de um Processo 
• Todas as informações sobre um processo são mantidas na tabela de processos. 
 
• A tabela de processos tem campos que dizem respeito: 
 à gerência do processo; 
 à gerência da memória; 
 à gerência de arquivos. 
 
• A tabela de processos possui uma entrada por processo e os campos nela contidos 
variam de sistema operacional para sistema operacional. 
Sistemas Operacionais 
Estados de um Processo 
 Com base em um diagrama de cinco estados é possível o entendimentos dos 
estados intermediários. 
 
Podem ser classificados, de acordo com o estado. 
 
 Novo 
 Pronto 
 Em execução 
 Em espera ou bloqueado 
 Terminado 
 
Sistemas Operacionais 
Estados de um Processo 
 
Novo  Estado de admissão onde são geradas as estruturas de dados e alocado o 
espaço para o processo; 
 
Pronto  Após admissão o processo está pronto para ser executado e aguardando a 
sua vez. 
 
Em execução  Apenas um processo por vez pode estar neste estado. Após ser 
selecionado, o processo recupera seu contexto que é guardado após ter sua 
execução interrompida. 
Sistemas Operacionais 
Estados de um Processo 
 
Em espera ou bloqueado  Processo está aguardando por um evento externo ou ser atendida 
alguma chamada ao S.O.. Esse bloqueio é síncrono, ou seja, ocorre sempre que 
determinado trecho do programa for executado. 
 
Terminado / Fim  Ao terminar a execução do processo as estruturas criadas são removidas e 
a área alocada é liberada. 
 
Obs.: A substituição do processo em execução é 
denominada“troca de contexto”. Nas operações 
de interrupção do processo e retorno a execução 
seu contexto ser respectivamente, armazenado 
e recuperado. 
Sistemas Operacionais 
Estados de um Processo 
modelo de 5 estados 
Sistemas Operacionais 
Mudança de Estado 
Novo  Pronto : Ocorre apenas na admissão pelo S.O.. 
 
Pronto  Em execução: Ocorre quando o processo é selecionado para execução segundo um 
critério do escalonador. 
 
Em execução  Pronto: Ocorre quando o processo é interrompido e novo processo será 
selecionado. 
 
Em execução  Espera: Ocorre quando o processo deve aguardar um recurso ou evento 
solicitado. 
 
Espera  Pronto: Ocorre quando a solicitação de recurso pelo processo é atendida. 
 
Em execução  Terminado: Ocorre quando o processo finaliza sua execução ou quando 
acontece algum erro e o processo precisa ser abortado. 
 
 
Sistemas Operacionais 
Ciclo de vida de um Processo 
Principais eventos que causam a criação de um processo 
 
Inicialização do sistema 
Na inicialização vários processos são criados. Ex.: processo requisições de páginas Web. 
 
Execução de uma chamada de sistema de criação de processo por um processo em execução 
Processos pais criam processos filhos, que podem criar seus próprios processos filhos e assim 
por diante. Ex.: no UNIX a chamada fork. 
 
Uma requisição do usuário para criar um novo processo 
Em sistemas interativos, digitando um comando ou clicando em um ícone. 
 
Início de uma tarefa em lote 
Em computadores de grande porte, quando o mesmo possui recursos suficientes para 
executar a tarefa. 
Sistemas Operacionais 
Ciclo de vida de um Processo 
Quando um processo é criado? 
Quando executamos um programa. 
Quando um usuário acessa o sistema. 
Quando um processo gera um processo-filho. 
 
Etapas de criação 
Atribui um identificador único. 
Aloca uma entrada na tabela de processos. 
Aloca espaço para o processo. 
Inicializa o PCB. 
Coloca o processo na fila apropriada. 
Cria estruturas auxiliares. 
 
Sistemas Operacionais 
Execução de um Processo 
 
Execução concorrente de processos leva às seguintes situações: 
 
 Trocas de Contexto  substituição do processo em execução. 
 Trocas de Modo de Execução  troca menor e mais rápida que a troca de contexto. 
 
 
Sistemas Operacionais 
Execução de um Processo 
Troca de Contexto 
 
 Interrupção : Reação a um evento assíncrono. 
 Trap Associado a erro na execução de uma instrução . 
 System Call Requisição explícita. 
 
Ações (etapas): 
Salva o estado do processador; 
Muda o estado do processo; 
Muda o processo para a fila apropriada; 
Seleciona o novo processo; 
Atualiza o PCB do novo processo; 
Modifica os mapeamentos de memória; 
Restaura o estado do processador. 
 
Sistemas Operacionais 
Execução de um Processo 
Troca de Modo de Execução 
 
 O estado do processo corrente não é alterado. 
 Ocorre geralmente quando o processador, ao final de um ciclo de instrução, detecta a 
existência de interrupção pendente. 
 
Nesses casos, o processador realiza o seguintes passos: 
 
 Salva o contexto do processo em execução. 
 Carrega o PC com o endereço inicial da rotina de interrupção. 
 Troca o modo de execução de usuário para kernel (privilegiado) para que 
instruções privilegiadas do tratador de interrupções possam ser executas. 
 
 
 
Sistemas Operacionais 
Termino de um Processo 
Condições que terminam um processo 
 
Saída Normal (voluntária) 
Quando terminaram seu trabalho 
Saída por erro (voluntária) 
Processo descobre um erro fatal. Ex.: compilar um arquivo que não existe. 
Erro fatal (involuntária) 
Erro causado pelo processo, normalmente erro de programação. Ex.: divisão por 
zero, referência para memória inexistente. 
Cancelamento por um outro processo (involuntária) 
Um processo executa uma chamada de sistema dizendo ao SO para cancelar 
algum outro processo. Ex.: no UNIX a chamada kill. 
 
 
 
Sistemas Operacionais 
Escalonamento de Processos 
 Em computadores multiprogramados, muitas vezes múltiplos processos (ou threads) 
competem pelo uso da CPU ao mesmo tempo. 
 Isso ocorre sempre que dois ou mais processos estão simultaneamente no estado pronto. 
 Nestes casos, quando o CPU se encontrar disponível, deverá ser feita uma escolha sobre 
qual processo executar. 
 A parte do sistema operacional que faz esta escolha é o escalonador e o algoritmo que ele 
usa é o algoritmo de escalonamento. 
 
 O objetivo do escalonador é atribuir processos para serem executados pelos 
processadores de modo a atingir parâmetros de performance, tais como: 
 Tempo de resposta 
 Vazão 
 Eficiência do processados 
Sistemas Operacionais 
Escalonamento de Processos 
Escalonador 
 Determina ordem em que processos alocam o processador. 
 S.O. usa algum critério para escolher um processo apto para rodar. 
 S.O. pode também tirar o processador de um processo que estiver rodando. 
 
 Quando um processo solicita operações bloqueantes (E/S, por exemplo), sua 
execução fica suspensa até que o evento solicitado ocorra. 
 Se outro processo estiver pronto para execução, o mesmo poderá passar a utilizar 
a CPU, maximizando a utilização da mesma, melhorando o desempenho percebido do 
sistema. 
 
 
Sistemas Operacionais 
Escalonamento de Processos 
Não preemptivo – Processo só perde o processador se terminar ou entrar em estado de espera. 
Preemptivo – O processo executa em fatias de tempo determinadas pelo S.O.. O escalonador pode 
desalocar um processo da CPU em qualquer instante de tempo 
 
Critérios para um bom escalonamento 
 Processor utilization: Porcentagem de tempo em que o processador está ocupado (eficiência). 
Tempo de resposta: Tempo entre a ocorrência de um evento e a reativação do processo que o 
aguarda. 
Tempo de execução: Tempo para finalizar a execução de um determinado processo no sistema. 
Throughput: Número de processos concluídos por unidade de tempo. 
Turnaround Time: Intervalo de tempo entre a submissão de um processo e o seu término de 
execução. 
Sistemas Operacionais 
Escalonamento de Processos 
 O escalonamento afeta a performance do sistema, pois determina quais processos deverão esperar 
e quais deverão progredir. Isso envolve o gerenciamento de filas. 
 
 Escalonador de curto prazo, também conhecido como dispatcher, é executado muito 
frequentemente sendo responsável pela tomada de decisão de qual será o próximo processo a ser 
executado. 
 Este escalonamento é executado quando da ocorrência de um evento que conduza o bloqueio do 
processo corrente, cria-se uma oportunidade de preempção em favor de outro processo. 
 
Exemplos desses eventos são: 
- Clock da CPU; 
- Interrupções de I/O; 
- Chamadas do sistema operacional; 
 
 O escalonador de curto prazo procura alocar o tempo do processador de tal maneira a otimizar um 
ou mais aspectos do comportamento do sistema. 
Sistemas Operacionais 
Processos do Sistema 
 
Grande parte do núcleo do sistema é executada no contexto de processos, inclusive no 
contexto de processos de usuários, como: 
 Auditoria e segurança; 
 Serviços de rede; 
 Gerencia de impressão; 
 Gerencia de jobs batch; 
 Comunicação de eventos; 
 Interface de comando (shell). 
Sistemas Operacionais 
Processos no Windows 
Sistemas Operacionais 
Processos no Windows 
Sistemas Operacionais 
Processos no Linux 
Sistemas Operacionais 
Processos no Linux 
Sistemas Operacionais 
Processos e Subprocessos 
Um processo pode criar vários novos processos através de uma chamada ao sistema para 
a criação de processo, durantesua execução. O processo criador é chamado de 
processo pai, enquanto os novos são chamados de processos filhos. 
Em geral, um processo precisará de determinados recursos: 
• tempo de CPU, memória, arquivos, dispositivos de I/O 
 para realizar sua tarefa. Quando um processo cria um subprocesso, esse subprocesso 
pode ser capaz de obter seus recursos diretamente do sistema operacional ou pode 
ser limitado a um subconjunto dos recursos do processo pai. 
O pai pode ter de dividir seus recursos entre os filhos, ou talvez possa compartilhar 
alguns recursos (como memória ou arquivos) entre vários filhos. 
Sistemas Operacionais 
Processos e Subprocessos 
Restringir um processo filho a um subconjunto dos recursos do pai evita que algum 
processo sobrecarregue o sistema criando subprocessos demais. 
 
Além dos vários recursos físicos e lógicos que um processo obtém quando é criado, os 
dados de inicialização (entrada) podem ser passados pelo processo pai para o 
processo filho. 
 
Quando um processo cria um novo processo, existem duas possibilidades em termos de 
execução: 
• O pai continua a executar de forma concorrente com os filhos. 
• O pai espera até que alguns ou todos os filhos tenham terminado. 
Sistemas Operacionais 
Processos e Subprocessos 
Existem também duas possibilidades em termos de espaço de endereçamento do novo 
processo: 
• O processo filho é uma duplicata do processo pai. 
• O processo filho tem um programa carregado nele. 
 
Um pai pode terminar a execução de um de seus filhos por vários motivos, a saber: 
• O filho excedeu seu uso de alguns dos recursos que foram alocados. 
• A tarefa atribuída ao filho não é mais exigida. 
• O pai está saindo, e o sistema operacional não permite que um filho continue se 
seu pai terminar. 
Sistemas Operacionais 
Processos Cooperativos 
Processos concorrentes em um sistema operacional podem ser cooperativos ou 
independentes. 
 
• Um processo é independente se não puder afetar ou ser afetado pelos outros 
processos executando no sistema. Processo que não compartilhe dados 
(temporários ou persistentes) com outro processo é independente. 
 
• Um processo é cooperativo se puder afetar ou ser afetado por outro processo 
executando no sistema. Processo que compartilhe dados com outros processos é 
um processo cooperativo. 
Sistemas Operacionais 
Processos Cooperativos 
Existem motivos para se criar ambiente que permita a cooperação entre processos: 
• Compartilhamento de informações: vários usuários interessados na mesma 
informação (arquivo compartilhado); 
• Velocidade de computação: executar tarefas rápido dividindo em subtarefas, e 
executando em paralelo com as outras. Se o computador tiver múltiplas 
possibilidades de processamento (tais como CPUs ou canais de I/O). 
• Modularidade: dividindo as funções do sistema em processos ou threads 
separados. 
• Conveniência: Várias tarefas do mesmo usuário em dado momento (editar, 
imprimir e compilar em paralelo). 
A execução concorrente que requer a cooperação entre os processos exige mecanismos 
para permitir que os processos se comuniquem e sincronizem suas ações. 
 
Sistemas Operacionais 
Tipos de Processos 
 Os processos são classificados de acordo com o tipo de processamento que realizam. 
 
Existem dois tipos de processos: 
 CPU-bound: são processos que utilizam de modo muito intenso o processador 
durante o seu ciclo de vida. A maior parte do tempo os estados destes processos 
são Pronto ou Em Execução . 
 
 I/O-bound: este tipo de processo está mais ligado aos dispositivos de 
entrada/saída do que propriamente ao processador. O estado deste processo fica 
Em Espera durante grande parte do seu ciclo de vida devido aos longos tempos 
aguardando respostas das solicitações feitas aos dispositivos de entrada e saída. 
 
Sistemas Operacionais 
Classificação de Processos 
 
 Durante o ciclo de vida de um processo são realizadas entradas e saídas de dado e 
elas são feitas através de canais de comunicação disponibilizados pelo processo. O 
processo tem no mínimo dois canais de comunicação associados a ele que permitem 
acesso de um processo a outros processos, comunicação com o usuário, arquivos, etc. 
 
Processo em foreground: são processos que mantém com o usuário uma ligação 
direta enquanto esta sendo processado. Esta ligação do processo com o usuário é feita 
através dos canais de comunicação associados ao teclado, mouse, monitor, etc. 
 
Processos em background: são processos que não tem ligação direta com o usuário 
enquanto esta sendo processado. Este tipo de processo é muito utilizado em 
processamentos do tipo batch. 
 
Sistemas Operacionais 
Reflexão e Duvidas

Outros materiais