Você está na página 1de 19

Carlos Eduardo Maciel Rodrigues

E-mail: cadurodrigues@hotmail.com
https://www.linkedin.com/in/cadurodrigues/
CEH | ISO27002 | LPI | COBIT | ITIL
MBA – CYBER SECURITY – FORENSICS, ETHICAL
HACKING & DEVSECOPS
Processos e Threads
Vamos entender o conceito, as características e o funcionamento
de processo e threads e como eles são implementados, como os
processos são criados e finalizados pelo sistema operacional e a
hierarquia e os estados de processos.
O que são processos ?
Processos são programas ou tarefas em execução e o sistema
operacional é o responsável por administrá-los, por meio do
gerenciador de processos.

Existem processos iniciados pelo usuário, exemplo: executar um


editor de texto, abrir uma página na internet, entre outros.

Existem processos iniciados por outros processos, exemplo: uma


página de internet solicitando a ajuda de outro processo para
fazer o carregamento dos seus elementos.
Serviços que os sistemas
operacionais podem implementar
através de processos:
• Auditoria e Segurança do sistema
• A contabilização do uso de recursos
• A contabilização de erros
• Comunicação de eventos
• Serviços de redes
• Interface de comandos (Shell), entre outros
Criação de processos
Existem quatro eventos que fazem com que um processo seja
criado:
1. Inicio do sistema, são criados vários processos, no qual
existem os de primeiro plano que interagem com os usuários
e suas aplicações e os segundo plano, que possuem uma
função específica (atualizar e-mails, ou msg na caixa de
entrada), para visualizar no Windows pressione
(CTRL+ALT_DEL) e no Linux digite (ps –ax)
2. Execução de uma chamada ao sistema de criação por um
processo em execução: por exemplo, quando um processo
está fazendo download, ele aciona um outro processo para
ajuda-lo, enquanto um faz download o outro armazena os
dados em disco.
Criação de processos
Existem quatro eventos que fazem com que um processo seja
criado:
3. Uma requisição do usuário para criar um novo processo: por
exemplo quando um usuário digita um comando ou solicita a
abertura de um ícone para abertura de um aplicativo.
4. Inicio de um job em lote: este é um processo criado em
computadores de grande porte, os mainframes.
Término de Processos
O processos podem ser finalizados das seguinte forma:
1. Saída normal(voluntária): Isso quando o processo é
executado e é finalizado após concluir o trabalho.
2. Saída por erro (voluntário): Isso quando o processo tenta
acessar um arquivo que não existe, normalmente abre uma
caixa de diálogo perguntando ao usuário se ele quer tentar
novamente.
3. Erro fatal (Involuntário): Acontece com um erro no aplicativo,
ou uma execução ilegal de uma instrução ou até uma divisão
por zero. Neste caso existe um processo com prioridade
máxima que supervisiona os demais processos.
4. Cancelamento por um outro processo: Acontece quando um
processo que possui permissão emite uma chamada ao
sistema para cancelar outro processo
Hierarquia de Processos
Quando um processo cria outro, é chamado de processo-pai e o
processo filho e assim ficam associados e os processos filhos
geram outros processo fazendo assim um hierarquia.
Hierarquia de Processos
No Unix, quando um processo pai é morto, todos os filhos
vinculados a ele são “mortos também”.

No Windows não possui uma hierarquia de processos, cada


processo possui um identificador próprio e quando um processo
cria outro, existe uma ligação entre eles, mas ela é quebrada
quando o processo pai passa seu identificador para outro
processo.
Estados do Processo
Existem três estados que o processo pode passar ao longo do
processamento:

1. Execução: Quando o processo está sendo processado pela


CPU.
2. Pronto: Quando o processo está no estado de pronto para
executar e está aguardando a definição de ordem do sistema
operacional.
3. Espera ou Bloqueado: Quando um processo está aguardando
um evento externo como exemplo: um comando do usuário
ou um recurso de um dispositivo de entrada / saída para
executar.
Estados do Processo
Desenho de Transição de estado de um processo
Estados do Processo
Existem três estados que o processo pode passar ao longo do
processamento:

1. Execução: Quando o processo está sendo processado pela


CPU.
2. Pronto: Quando o processo está no estado de pronto para
executar e está aguardando a definição de ordem do sistema
operacional.
3. Espera ou Bloqueado: Quando um processo está aguardando
um evento externo como exemplo: um comando do usuário
ou um recurso de um dispositivo de entrada / saída para
executar.
Threads
Uma Thread é um fluxo de controle(Execução) dentro do
processo, chamado também de processos leves.
Um processo pode conter um ou vários threads que
compartilham os recursos do processo.
O uso de thread é que as aplicações da atualidade rodam muitas
atividades ao mesmo tempo e quando são compostas por
threads, podem ser executadas em paralelo e são fáceis de criar
e destruir, por não terem recursos vinculados a eles.
Exemplo de Threads
Pense em uma arquivo de texto no qual você esta construindo
um livro e precisa fazer a correção na escrita em diversos
capítulos, caso esteja em um único arquivos vai ser mais fácil,
caso o livro este dividido em vários arquivos diferente o trabalho
vai ser muito maior.

Imagine se o arquivo do livro é retirado duas ou três páginas,


isso pode ser um problema pois o livro terá que ser formatado
novamente.
Se for utilizado threads, uma thread auxiliaria na formatação do
texto, outra atenderia aos requisitos de usuário via teclado e
uma terceira thread faria o backup dos dados em disco, sem
interferir nas ações das demais threads.
Exemplo de Threads
Implementação de Processos
Para implementar um modelo de processo é importante saber
sobre o estado do processo, seu contador de programa, o
ponteiro da pilha, a alocação de memória, o status dos arquivos
abertos, entre outros que podem permitir que o processo seja
reiniciado do ponto em que parou.
Quadro de Processos
Implementação de Threads
Podemos fazer a implementação das Threads no espaço do
usuário, no núcleo do sistema operacional e em uma
implementação híbrida.

• Thread de usuários : é implementado pelo aplicativo do


usuário no qual o S.O. não sabe de sua existência.
• Thread do núcleo: São implementado pelo núcleo do S.O., no
qual existe uma desvantagem que é a performance.
• Threads Híbridas: Podem ser implementados tanto no espaço
do usuário, quanto no núcleo do sistema operacional e todo o
gerenciamento das threads do usuário é feito pelo S.O., tendo
uma vantagem no qual permite uma flexibilidade em função
das duas implementações.
Kahoot

1. Exercícios

Você também pode gostar