Processos e threads em windows e linux

Disponível somente no TrabalhosFeitos
  • Páginas : 18 (4476 palavras )
  • Download(s) : 0
  • Publicado : 24 de março de 2012
Ler documento completo
Amostra do texto
ENGENHARIA DA COMPUTAÇÃO
PROF. GERALDO VALERIANO RIBEIRO














PROCESSOS E THREADS EM
WINDOWS E UNIX
Eduardo Machado da silva





















GOIÂNIA, OUTUBRO DE 2010







ENGENHARIA DA COMPUTAÇÃO
EDUARDO MACHADO DA SILVA














PROCESSOS E THREADS EM
WINDOWS E UNIXTrabalho desenvolvido sob a orientação do prof. Geraldo Valeriano Ribeiro para obtenção de nota complementar da avaliação de N2.


















GOIÂNIA, OUTUBRO DE 2010
Índice
1. Introdução 4

2. Processos e Threads 5

3. Estados de Processos 5

4. Gerenciamento de Processos 6

5. Windows 8
5.1. Estados de processos 9
5.2. Gerenciamento de processos 96. UNIX 10
6.1. Estados de processos 11
6.2. Gerenciamento de processos 12

7. Threads 15
7.1. Ambiente Monothread 15
7.2. Ambiente Multithread 16
7.3. Vantagens 19

8. Conclusão 21

































1. Introdução



Existem diferentes modelos para a implementação de threads em um sistema operacional, onde desempenho,flexibilidade e custo devem ser avaliados atentamente.
Este trabalho pretende esclarecer o que vem a ser threads, sua utilização, vantagens, implementação e cuidados na programação concorrente. Antes porém, devemos apresentar o conceito de processo, que está intimamente relacionado a threads.



2. Processos e Threads


Tratando-se do estudo de Sistemas Operacionaisnenhum conceito é tão importante quanto à definição de processo, porém é fundamental termos a noção da diferenciação entre processo e programa. O próprio conceito de processo é abstrato e causa divergências, pois não existe uma definição precisa aceita por todos. Sendo assim, definiremos aqui processo como uma instância de um programa em execução e programa como conjunto de instruções necessárias àexecução das operações desejadas. Desse modo, o programa é passivo dentro do sistema, ou seja, ele não muda seu estado, diferentemente do processo que é um elemento ativo e altera seus estados à medida que executa um programa.
Um processo reúne uma série de atributos (espaço de endereçamento, permissões de acesso, quotas e etc.) e áreas (de código, dados e pilha de execução). Para cadaprocesso temos também ao menos um fluxo de execução, também chamado de thread. Nos sistemas operacionais modernos existe a idéia de multithreading, ou seja, vários fluxos de execução associados internamente a um único processo, compartilhando entre elas os recursos do processo. Devido a essa característica a gerência das threads é muito mais simples tornando o próprio processamento mais leve, pois ochaveamento entre as threads de um mesmo processo é muito mais rápido do que o chaveamento entre processos diferentes.





3. Estados de Processos



Cada processo passa por diferentes momentos. A partir destes momentos podemos estabelecer diferentes possíveis estados para um processo, que mudam de acordo com as chamadas do sistema. Os estados em que um processo pode seencontrar variam de acordo com cada sistema, mas de forma geral são classificados em pronto, executando e bloqueado.
Quando um processo é criado ele está pronto para ser executado pelo processador, no entanto, existe uma fila de processos, chamada “fila de aptos” (ready queue), esperando para serem executados, pois o processador executa apenas um processo por vez. Como cada processo utiliza oprocessador por apenas alguns milisegundos, têm-se a impressão de que o processador executa vários processos ao mesmo tempo.
A mudança de qualquer estado de qualquer processo é iniciada por um evento. Esse evento aciona o sistema operacional que então altera os estados de um ou mais processos. Quando um processo que está no estado executando sofre uma mudança de estado o processador fica...
tracking img