processos (linux)
DESCRIPTION
Teoria de Processos LinuxTRANSCRIPT
Sistemas Operacionais
Processos no Linux
Processo
• Processo é um programa que está em execução;
• O programa reside em uma memória secundária;
• O processo reside (em momento de execução) em uma memória primária.
Processo
• Um processo tem:
– Início;
– Fim;
– Tempo de execução;
• Um processo consome:
– Recursos;
Processo
Contexto de Hardware
Contexto de Software
• Identificação (PID)
• Quotas– número máximo de arquivos abertos simultaneamente;
– número máximo de operações de E/S pendentes;
– tamanho máximo do buffer para operações de E/S;
– tamanho máximo de memória principal e secundária que o processo pode alocar;
– número máximo de processos, subprocessos e threads que podem ser criados.
Contexto de Software
• Privilégios
– Permissão no acesso dos recursos;
– Permissão nas ações;
Espaço de Endereçamento
• Corresponde a sua área na memória, na qual encontra-se código, dados e pilhas.
Bloco de Controle do Processo
• O processo é implementado pelo sistema operacional através de uma estrutura de dados chamada bloco de controle do processo (Process Control Block – PCB).
Bloco de Controle do Processo
Estado de um Processo
Sub-Processo
Comandos Linux
• ps: Lista os processos;
• pstree: Lista dos procesos na hierarquia;
• kill: Finaliza o processo.
Multithread
Foreground e Background
Foreground no Linux
• Quando executamos um programa, o shell fica esperando o mesmo terminar para depois nos devolver a linha de comando. Isso chama-se execução em primeiro plano, ou foreground, em inglês.
Background no Linux
• Uma outra maneira de colocar um programa para rodar em background, utilizamos para isso o sinal &
Pipe
Pipe no Shell Linux
• De uma maneira simplória poderíamos dizer que o pipe nada mais é do que o encadeamento de processos.
$ ls | grep b | sort -r | tee arquivo.out | wc -l
Sinal (Interrupção)
Processos do Sistema Operacional
• auditoria e segurança;
• serviços de rede;
• contabilização do uso de recursos;
• contabilização de erros;
• gerência de impressão;
• gerência de jobs batch;
• temporização;
• comunicação de eventos;
• interface de comandos (shell).
Referência
• MACHADO, F. B., MAIA, L. P., Arquitetura de Sistemas Operacionais, 3a edição, Ed. LTC, 2002, Rio de Janeiro.
• TANENBAUM, A., Sistemas Operacionais Modernos, 5a edição, Ed. Makron Books, 1999, Rio de Janeiro.