250 likes | 322 Views
Capítulo 4: Controlando processos. Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti procrismar@globo.com. Componentes de um processo. Um processo é constituído de um espaço de endereços de memória e um conjunto de estruturas de dados dentro do kernel ;
E N D
Capítulo 4: Controlando processos Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti procrismar@globo.com
Componentes de um processo • 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:
Identificadores de processos • 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.
Propriedades de um processo • 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;
Ciclo de vida 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.
Sinais 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”.
Monitorar processos • Através do comando ps, o superusuário do sistema Linux pode controlar os processos que estão em execução;
Monitoramento ainda melhor • Comando top: fornece um sumário atualizado regularmente dos processos ativos e o emprego de seus recursos.
Processos descontrolados • 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.
Questão 1 • 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 2 • 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 3 • Controla a determinação de permissões de sistema de arquivos: • A) EGID • B) FSUID • C) GID • D) PID
Questão 4 • Quando um processo é criado, seu primeiro valor de “gentileza” é atribuído pelo comando: • A) nice • B) renice • C) ps • D) kill
Questão 5 • Qual dos números abaixo indica um nice de processo com mais baixa prioridade? • A) +10 • B) -8 • C) +12 • D) 0
Questão 6 • Processo ao qual a “gentileza” é mais comumente aplicado nos sistemas modernos: • A) xntpd • B) xtp • C) xnt • D) exntpd
Questão 7 • Cria a cópia de um processo, originando assim um “processo-filho”: • A) exec • B) fork • C) init • D) wait
Questão 8 • Comando para visualizar a execução dos processos residentes no sistema: • A) xntpd • B) ps • C) kill • D) ls -a
Questão 9 • 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 10 • 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