Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti [email protected].
Transcript of Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti [email protected].
Capítulo 4: Controlando processos
Disciplina: Sistemas OperacionaisProfessor: Cristiano Mariotti
Um processo é constituído de um espaço de endereços de memória e um conjunto de estruturas de dados dentro do kernel;
O espaço de endereços é um conjunto de páginas (unidades nas quais a memória é gerenciada, normalmente 4 KB) de memória que o kernel marcou para ser empregado pelo processo;
Componentes de um processo
Contém o código e as bibliotecas que o processo está executando, as variáveis do processo, suas pilhas e várias informações adicionais que o kernel precisa enquanto um processo está em execução.
Componentes de um processo
As estruturas de dados internas do kernel registram vários tipos de informações sobre cada processo:
Componentes de um processo
PID: número do processo em execução; PPID : número do “pai” (original) do processo
em execução; ◦ A cópia de um processo clonado é chamado de
“processo-filho”; UID: número de identificação do usuário que
criou o processo; EUID: número de identificação do usuário
“efetivo” de um processo;◦ Usado para determinar quais recursos e arquivos um
processo tem permissão de utilizar em um dado momento.
Identificadores de processos
FSUID: controla a determinação de permissões de sistema de arquivos;
GID: número de identificação do grupo de usuários que exercem poder sobre um processo;
EGID: número de identificação do grupo “efetivo” de usuários que exercem poder sobre um processo.
Identificadores de processos
Gentileza: Indica como o processo deve ser tratado com relação aos demais processos que lutam por recursos na CPU;◦ Um valor alto nice significa baixa prioridade do processo:
significa que ele está apto a ceder lugar para outros processos serem executados;
◦ Os valores permitidos vão de [-20, +19];
Quando um processo é criado, seu primeiro valor de “gentileza” é atribuído pelo comando nice;
O comando renice ajusta o grau de “nice” (gentileza) que um processo terá com relação aos outros.
Propriedades de um processo
xntpd: processo ao qual a “gentileza” é mais comumente aplicado nos sistemas modernos;◦ daemon de sincronização do relógio da CPU;
Propriedades de um processo
Comando fork: cria a cópia de um processo, originando assim um “processo-filho”;◦ Retorna para o “filho” o valor 0 (zero), e para o
“processo-pai”, retorna o PID do “filho” recém-criado; init: sempre igual a 1, indica o primeiro processo
a ser criado, quando na inicialização do sistema; exit: comando que notifica ao kernel quando no
encerramento de um processo; wait: comando que faz o pai reconhecer a
notificação de que um processo será encerrado.
Ciclo de vida de um processo
São solicitações de interrupção enviados aos processos que estão em execução;
Podem ser enviados:◦ Entre processos como um meio de comunicação;◦ Pelo driver do terminal do sistema para extinguir,
interromper ou suspender processos quando teclas especiais como CTRL + C e CTRL + Z forem acionadas;
◦ Pelo superusuário, através do comando kill, por exemplo, capaz de eliminar um processo em execução;
◦ Pelo kernel quando o processo cai na “zona crítica” ou cai em erros de exceção, que resultam em sua “morte”.
Sinais de um processo
Estados de um processo
Através do comando ps, o superusuário do sistema Linux pode controlar os processos que estão em execução;
Monitorar processos
Comando top: fornece um sumário atualizado regularmente dos processos ativos e o emprego de seus recursos.
Monitoramento ainda melhor
Processos que utilizam demasiados recursos de tempo e espaço em disco do sistema; OU
Processos que, de repente, “se enfurecem” e foge do controle do kernel ou do próprio operador do sistema;
Deve-se descobrir a quem pertence o processo e se ele é destrutivo ou não para os demais antes de o usuário querer eliminá-lo através do comando kill;
Outra forma de tratá-los é redefinindo suas “gentilezas” através do comando renice.
Processos descontrolados
EXERCÍCIOS
As estruturas de dados internas do kernel registram vários tipos de informações sobre cada processo, EXCETO:
A) O tempo de vida útil do processo. B) O número de identificação do processo. C) O número de identificação do criador do
processo. D) O estado do processo.
Questão 1
Usado para determinar quais recursos e arquivos um processo tem permissão de utilizar em um dado momento:
A) EUID B) GID C) PID D) PPID
Questão 2
Controla a determinação de permissões de sistema de arquivos:
A) EGID B) FSUID C) GID D) PID
Questão 3
Quando um processo é criado, seu primeiro valor de “gentileza” é atribuído pelo comando:
A) nice B) renice C) ps D) kill
Questão 4
Qual dos números abaixo indica um nice de processo com mais baixa prioridade?
A) +10 B) -8 C) +12 D) 0
Questão 5
Processo ao qual a “gentileza” é mais comumente aplicado nos sistemas modernos:
A) xntpd B) xtp C) xnt D) exntpd
Questão 6
Cria a cópia de um processo, originando assim um “processo-filho”:
A) exec B) fork C) init D) wait
Questão 7
Comando para visualizar a execução dos processos residentes no sistema:
A) xntpd B) ps C) kill D) ls -a
Questão 8
Fornece um sumário atualizado regularmente dos processos ativos e o emprego de seus recursos:
A) ls B) kill C) xntpd D) top
Questão 9
Deve-se descobrir a quem pertence o processo e se ele é destrutivo ou não para os demais antes de o usuário querer eliminá-lo através do comando:
A) kill B) ps C) top D) init
Questão 10