Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti [email protected] 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; 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. As estruturas de dados internas do kernel registram vários tipos de informações sobre cada 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. 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. 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. xntpd: processo ao qual a “gentileza” é mais comumente aplicado nos sistemas modernos; ◦ daemon de sincronização do relógio da CPU; 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. 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”. Através do comando ps, o superusuário do sistema Linux pode controlar os processos que estão em execução; Comando top: fornece um sumário atualizado regularmente dos processos ativos e o emprego de seus recursos. 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. 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. 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 Controla a determinação de permissões de sistema de arquivos: A) EGID B) FSUID C) GID D) PID Quando um processo é criado, seu primeiro valor de “gentileza” é atribuído pelo comando: A) nice B) renice C) ps D) kill Qual dos números abaixo indica um nice de processo com mais baixa prioridade? A) +10 B) -8 C) +12 D) 0 Processo ao qual a “gentileza” é mais comumente aplicado nos sistemas modernos: A) xntpd B) xtp C) xnt D) exntpd Cria a cópia de um processo, originando assim um “processo-filho”: A) exec B) fork C) init D) wait Comando para visualizar a execução dos processos residentes no sistema: A) xntpd B) ps C) kill D) ls -a Fornece um sumário atualizado regularmente dos processos ativos e o emprego de seus recursos: A) ls B) kill C) xntpd D) top 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