Buscar

Aula06 Controle de Processos

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 33 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 33 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 33 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

Sistemas Operacionas 
Prof. Osvaldo Viana Jr, Msc. 
osvaldoviana@yahoo.com.br 
Aula 6 
Controlando Processos 
Controlando Processos 
 Componentes de um Processo 
 Um processo é constituído de um espaço de 
endereços e um conjunto de estruturas de 
dados dentro do kernel; 
 O espaço de endereços é um conjunto de 
páginas de memória que o kernel marcou para 
ser empregado pelo processo; 
2 
Controlando Processos 
 Componentes de um Processo 
 Estruturas de dados internas do kernel 
registram vários tipos de informação sobre 
cada processo: 
 - Mapa do espaço de endereços do processo; 
 - Estado atual do processo; 
 - A prioridade de execução do processo; 
 - Informações sobre os recursos que o processo 
lançou mão; 3 
Controlando Processos 
 Componentes de um Processo 
 Estruturas de dados internas do kernel 
registram vários tipos de informação sobre 
cada processo: 
 - Máscara de sinalização do processo; 
 - Proprietário do processo; 
4 
Controlando Processos 
 Componentes de um Processo 
 Um processo também controla quais 
instruções a CPU está executando no momento 
em seu nome; 
 O Linux permite que mais de um processo 
compartilhe um espaço de endereços atingido, 
consequentemente, o efeito de vários threads 
de execução; 
5 
Controlando Processos 
 Componentes de um Processo 
 PID: número de identificação de processo 
 - O kernel atribui um numero de identificação 
exclusivo a cada processo; 
 - Os PIDs são atribuídos na ordem em que os 
processos são criados; 
 - Quando o kernel esgota os PIDs, ele reinicia 
em 1, pulando quaisquer PIDs que ainda se 
encontram em uso; 
6 
Controlando Processos 
 Componentes de um Processo 
 PPID: PID-pai 
 - O Linux não fornece uma chamada de 
sistema que crie um processo executando num 
determinado programa; 
 - Um processo existente tem de se clonar para 
criar um processo novo. O clone pode então trocar 
o programa que ele está executando por um outro 
diferente; 
7 
Controlando Processos 
 Componentes de um Processo 
 UID e EUID: identificadores de usuário real e 
efetivo 
 - É o número de identificação do usuario da 
pessoa que o criou. Ou seja, é uma cópia do valor 
EUID do processo-pai; 
 - Somente o criador e o superusuário têm 
permissão para manipular um processo; 
8 
Controlando Processos 
 Componentes de um Processo 
 GID e EGID: identificadores de grupo real e 
efetivo 
 - É o número de identificação de grupo de um 
processo; 
 - O EGID está relacionado ao GID da mesma 
forma que o EUID ao UID; 
 - Em sistemas Linux, um processo pode ser um 
membro de vários grupos ao mesmo tempo; 
9 
Controlando Processos 
 Componentes de um Processo 
 Gentileza 
 - A prioridade de escalonamento de um 
processo determina quanto tempo de CPU ele 
recebe. O kernel usa um algoritmo dinâmico para 
calcular prioridades; 
 - O kernel presta atenção a um valor 
normalmente chamado de “gentileza”, assim 
chamado pois ele informa quão gentil você está 
planejando ser com os demais usuarios; 
10 
Controlando Processos 
 Componentes de um Processo 
 Terminal de Controle 
 - O terminal de controle determina links-
padrão para os canais de entrada-padrão, saída-
padrão e erro-padrão; 
 - Ao iniciar um comando no shell, seu terminal 
normalmente se torna o terminal de controle do 
processo 
11 
Controlando Processos 
 Ciclo de Vida de um Processo 
 Para criar um processo, um processo faz uma 
cópia de si mesmo por meio da chamada de 
sistema fork; 
 O novo processo possui um PID distinto e 
possui suas próprias informações contábeis; 
 Após um fork, o processo-filho usará uma das 
chamadas de sistema da família exec para 
começar a execução de um novo programa; 
12 
Controlando Processos 
 Ciclo de Vida de um Processo 
 Essas chamadas mudam o texto do programa 
que o processo está executando e reinicializam 
os segmentos de dados e de pilha para um 
estado inicial predefinido; 
 As várias formas de exec diferem somente na 
maneira pela qual elas especificam o ambiente 
e os argumentos de linha de comando a serem 
dados ao novo programa; 
13 
Controlando Processos 
 Ciclo de Vida de um Processo 
 Quando o sistema é inicializado, o kernel cria 
e instala de maneira autônoma vários 
processos; 
 O init é responsavel pela execução da maioria 
dos scripts de inicialização do sistema; 
 O init também desempenha um importante 
papel no gerenciamento de processos; 
14 
Controlando Processos 
 Ciclo de Vida de um Processo 
 Antes de um processo ter a permissão para 
desaparecer completamente, o Linux requer 
que sua expiração seja reconhecida pelo 
processo-pai, o que o pai faz através de uma 
chamada a wait; 
 
15 
Controlando Processos 
 Sinais 
 São solicitações de interrupção em nível de 
processo. São definidos cerca de 30 tipos 
distintos e eles são usados de várias maneiras: 
 - Podem ser enviados entre processos como um 
meio de comunicação; 
 - Podem ser enviados pelo driver de terminal 
para extinguir, interromper ou suspender 
processos; 
 
16 
Controlando Processos 
 Sinais 
 São solicitações de interrupção em nível de 
processo. São definidos cerca de 30 tipos 
distintos e eles são usados de várias maneiras: 
 - Podem ser enviados pelo administrador (via 
kill) para obter vários resultados; 
 - Podem ser enviados pelo kernel quando um 
processo comete uma infração como, por exemplo, 
uma divisão por zero; 
 
17 
Controlando Processos 
 Kill e KillAll 
 Kill é usado para encerrar um processo. Kill é 
capaz de enviar qualquer sinal, porém, como 
padrão, ele envia um TERM; 
 Kill pode ser usado por usuarios comuns em 
seus próprios processos ou pelo superusuário 
em qualquer processo 
 kill [-signal] pid 
18 
Controlando Processos 
 Kill e KillAll 
 Signal é o numero ou nome simbólico do sinal 
a ser enviado e pid é o número de identificação 
do processo de destino; 
 Um pid -1 transmite o sinal a todos os 
processos, exceto init; 
 Um kill sem qualquer número de sinal não 
garante que o processo será extinto, pois o 
sinal TERM pode ser capturado, bloqueado ou 
ignorado; 
 
19 
Controlando Processos 
 Kill e KillAll 
 O killall é utilizado caso não conhecemos o 
PID do processo que deseja sinalizar; 
 Por exemplo, para fazermos com que o daemon 
xinetd restaure sua configuração, deveríamos 
executar o seguinte: 
 sudo killall –USR1 xinetd 
 O kill tem um recurso similar, porém ele não 
parece ser tão inteligente quanto killall no 
critério de busca de nomes de comando; 
20 
Controlando Processos 
 Nice e Renice 
 A “gentileza” de um processo é uma dica 
numérica para o kernel em relação a como o 
processo deve ser tratado no que diz respeito a 
outros processos lutando por recursos de CPU; 
 Um valor nice (gentil) alto significa baixa 
prioridade para o seu processo; 
 Um valor nice baixo ou negativo significa alta 
prioridade: você não será gentil; 
 
21 
Controlando Processos 
 Nice e Renice 
 O intervalo de valores nice permitidos vai de -
20 a +19; 
 O valor nice de um processo pode ser 
configurado no momento da criação pelo 
comando nice e pode ser ajustado durante a 
execução com o comando renice; 
 nice –n 5 -/bin/longtask 
 renice –n 8829 
22 
Controlando Processos Monitorar Processos: ps 
 ps é a principal ferramenta do administrador 
de sistemas para monitoramento de processos; 
 Podemos usá-lo para exibir o PID, o UID, a 
prioridade e o terminal de controle dos 
processos; 
 Ele também fornece informações sobre quanta 
memória foi consumida e seu estado atual; 
 
23 
Controlando Processos 
 Monitorar Processos: ps 
 Podemos obter uma visão geral dos processos 
em execução no sistema via ps aux: 
 
24 
Controlando Processos 
 Monitorar Processos: ps 
25 
Controlando Processos 
 top: Monitoramento ainda melhor dos processo 
 top fornece um sumário atualizado 
regularmente dos processos ativos e o emprego 
de seus recursos; 
 top tem de consumir uma pequena porção dos 
recursos de CPU para mostrar uma 
atualização a cada 10 segundos; 
 
26 
Controlando Processos 
 Processos Descontrolados 
 Vêm em duas variantes: processos de usuário 
que usam quantidades excessivas de um 
recurso de sistema como tempo de CPU ou 
espaço em disco e processos de sistema; 
 O primeiro tipo de descontrole pode ser 
simplesmente que o processo seja um comilão 
de recursos; 
27 
Controlando Processos 
 Processos Descontrolados 
 Vêm em duas variantes: processos de usuário 
que usam quantidades excessivas de um 
recurso de sistema como tempo de CPU ou 
espaço em disco e processos de sistema; 
 O primeiro tipo de descontrole pode ser 
simplesmente que o processo seja um comilão 
de recursos; 
28 
Controlando Processos 
 Processos Descontrolados 
 Podemos identificar processos que usam tempo 
de CPU em excesso observando a saída gerada 
pelo comando top; 
 Se um processo usa uma quantidade excessiva 
de CPU, mas parece realizar algo razoável e 
funcionar corretamente, você deve emitir um 
renice passando-o para um valor nice maior e 
solicitar ao proprietário para fazer o 
procedimento de nice futuramente; 29 
Exercicios 
 1) De que é constituído um processo ? 
 
 2) Para que serve o kill e o nice ? 
 
30 
Respostas 
 1) De que é constituído um processo ? 
R: Um processo é constituído de um espaço de endereços e um 
conjunto de estruturas de dados dentro do kernel. 
 
 2) Para que serve o kill e o nice ? 
R: Kill é usado para encerrar um processo. Kill é capaz de enviar 
qualquer sinal, porém, como padrão, ele envia um TERM; 
A “gentileza” de um processo é uma dica numérica para o kernel em 
relação a como o processo deve ser tratado no que diz respeito a 
outros processos lutando por recursos de CPU; 
 
31 
Sincronização de Processos 
 Dinâmica em Grupo 
 Ler e debater em grupo sobre o assunto 
abordado 
32 
Referencia Bibliografica 
 Referencia Básica 
o NEMETH, E. ; SNYDER, G. ; TRENT, R. H. 
Manual Completo do LINUX: Guia do 
Administrador. Pearson, 2004. Págs: 38-46. 
 
o TANENBAUM, A S. ; WOODHULL, A S. 
Sistemas Operacionais: Projeto e 
Implementação. Bookman, 2008. Págs: 80-98. 
 
 
33

Outros materiais