Processos e threads

Disponível somente no TrabalhosFeitos
  • Páginas : 20 (4918 palavras )
  • Download(s) : 0
  • Publicado : 17 de junho de 2012
Ler documento completo
Amostra do texto
Processos: o conceito mais importante em sistemas operacionais.
Como vários "programas" podem rodar simultaneamente em um computador se ele possui um único processador (ou menos processadores ou núcleos – "cores" – do que o número de programas em execução)?
Multiprogramação: o processador é chaveado entre diversos programas dando a cada um algumas dezenas de milissegundos de processamentoproduzindo a ilusão de paralelismo ("pseudo-paralelismo").
Árdua tarefa do sistema operacional: tratamento das múltiplas atividades realizadas em pseudo-paralelismo.

1.1. O Modelo de Processos

Todos os programas que rodam em um computador (o sistema operacional, inclusive) são compostos de um conjunto de processos.
PROCESSO = instância de um programa em execução + seu contexto (formado por:valores áveis + valores dos registradores do hardware (Program Counter - PC, Stack Pointer - SP) + recursos (lista de arquivos abertos, alarmes pendentes, listas de processos relacionados, etc.)
Um processo é essencialmente um contêiner de informações necessárias para executar um programa.
PROGRAMA = arquivo contendo um conjunto de informações que descrevem como construir um processo. Estasinformações incluem:
• Identificação do formato binário: o formato do arquivo executável que permite ao kernel interpretar as demais informações contidas no arquivo;
• Instruções em linguagem de máquina: representam o algortimo do programa;
• Endereço de entrada do programa: identifica a localização da instrução na qual a execução do programa deverá começar;
• Dados: valores usadospara inicializar as variáveis e constantes;
• Tabelas de símbolos e de relocação: localização e nomes das funções e variáveis de um programa;
• Informações de bibliotecas compartilhadas e linkagem dinâmica: lista de bibliotecas dinâmicas necessárias ao programa.
• Outras informações que descrevem como o processo deverá ser construído.
Vários processos podem rodar o mesmo programa.Multiprogramação: rápido chaveamento do processador entre os diversos processos.
[pic]
FIGURA 1. Multiprogramação e a ilusão de paralelismo.
Consequência: a velocidade de execução de um processo não é constante. Portanto, cuidados especiais precisam ser tomados para processos com características de processamento em tempo real.

Criação de processos

MS-DOS: suspende a execução do processo paiaté que o filho termine sua execução.
UNIX: operação fork (cria cópia exata do processo pai) (pai e filho rodando em pseudo-paralelismo). No processo filho, fork retorna 0 (zero). No processo pai, fork retorna o identificador (PID = Process Identifier) do processo filho.
[pic]
FIGURA 2. Hierarquia de processos e o comando fork().
• Comandos shell: ps [-aux] / pstree [-p] (raiz = processochamado systemd – anteriormente, init) / top
• Identificador de processos: pid (único no sistema)
• Identificador de grupo de processos: pgrp (grupos de processos: interessantes para sinalização).

Estados de um processo

Necessidade de comunicação: sincronização: bloqueio até que uma entrada esteja disponível.
Bloqueado: falta de condições lógicas para prosseguir.
[pic]
FIGURA 3.Estados de um processo.
1. Escalonador escolhe novo processo para executar (fim do tempo de processador alocado ao processo corrente).
2. Escalonador entrega o processador ao novo processo.
3. Processo bloqueado para fazer entrada de dados (por exemplo, espera dados do teclado – scanf/cin – ou do disco) ou outra situação na qual não tem condições lógicas de rodar.
4. Operação deentrada e saída (por exemplo, entrada de dados) concluída ou processo volta a ter condições de rodar novamente.
Detalhes para ativar/bloquear processos estão dentro do escalonador (geralmente implementado em linguagem de máquina).
[pic]
FIGURA 4. O escalonador de processos.

1.2. Implementação do Modelo de Processos

Para implementar o modelo o SO utiliza uma tabela de processos com uma...
tracking img