Como plantar abobrinhas com o cu.
1 SO I
1.5.2 Dead/locks
1.5 Conceitos de sistemas operacionais
1.5.1 Processos
Processo = programa em execução.
Cada processo possui um espaço de endereçamento, uma lista de endereços de memória (em geral de 0 até um valor máximo) onde o programa pode ler e gravar dados.
Cada programa possui um conjunto de registradores e outras informações que devem ser salvas quando o SO decide entregar a
CPU para outro.
Para isso, cada programa é inserido em uma tabela de processos.
Em geral, uma lista ligada com uma entrada para cada processo.
Processos podem se organizar em hierarquias, desde que um processo possa dar origem a outros.
O processo que cria outros processos é chamado de processo pai, enquando os criados são chamados de processos filhos.
Processos são associados com identificadores:
• Usuários: UID;
• Processo: PID;
• Grupo: GID.
Deadlock é uma situação a que os processos podem chegar por compartilharem recursos de uso exclusivo.
P. ex.:
• Considere 2 processos e 2 recursos, uma impressora e uma fita;
• Processo 1 pede o controle da impressora;
• Processo 2 pede a fita;
• P1 pede a fita – como ela está em uso e é exclusiva, ele bloqueia;
• P2 pede a impressora e bloqueia;
• Como só um dos processos pode fornecer o recurso que o outro precisa e está bloqueado justamente por causa do outro, esse sistema não tem solução – os processos poderiam ficar nessa situação indefinidamente.
1.5.3 Gerência de memória
Todo computador possui memória principal, usada para manter os programas em execução.
• Para evitar a interferência de um com o outro (e com o SO), há necessidade de algum tipo de proteção.
Outro ponto importante é o manuseio do espaço de endereçamento de cada processo.
• No caso + simples, o espaço de um processo deve ser menor que a memória principal;
• Hoje, os processadores de 32 bits (e até de 64 bits) permitem espaços de 232 e 264 bytes;
• Se essa memória não existir, a técnica de memória virtual