Processo e threds

Disponível somente no TrabalhosFeitos
  • Páginas : 9 (2096 palavras )
  • Download(s) : 0
  • Publicado : 21 de outubro de 2012
Ler documento completo
Amostra do texto
Trabalho de Fundamentos de Sistemas Operacionais

PROCESSOS E THREDS

ÍNDICE:
Definições .............................................................. pag 02
Threds e Processos e suas diferenças ............... pag 03
Estados de execução de um Processo ................ pag 04
Programação paralela Threds ............................... pag 06
Concorrência.......................................................... pag 09
Concorrências com Threads ................................. pag 10

Aluno: Cristiano da Silva Campos / Matr. 02410009014

CONCEITOS

Processos e Threads

Processo é geralmente entendido como um programa em execução
porém, na realida-de, trata-se de uma estrutura mais complexa que contém,
além do programa no seu formato executável, todas as informaçõesnecessárias (contexto) à execução e ao controle da execução do mesmo, como
por exemplo: o contador de programa, pilhas, registradores e área de dados.

THREAD
Linha ou Encadeamento de execução (em inglês: Thread), é uma forma de
um processo dividir a si mesmo em duas ou mais tarefas que podem ser
executadas concorrentemente. O suporte à thread é fornecido pelo próprio
sistema operativo(SO), no caso da linha de execução ao nível do núcleo (em
inglês: Kernel-Level Thread (KLT)), ou implementada através de uma biblioteca
de uma determinada linguagem, no caso de uma User-Level Thread (ULT).
O conceito dum Processo pode ser dividido em dois :

1: Um conjunto de recursos necessários para a execução duma
programa.
Por exemplo :


um espaço de endereçamento (virtual addressspace) que contêm
o texto do programa e os seus dados



uma tabela de Descritores de Ficheiros abertos



informação sobre processos filhos



código para tratar de sinais (signal handlers)



informação sobre o próprio ( Permissões, Nome do Utilizador,
Inventário) etc.

2 Uma linha ou contexto de execução, chamada “Thread”


Uma thread tem um programa counter (pc) queguarde
informação sobre a próxima instrução a executar



Registadores – valores das variáveis actuais



Stack – contem a história de execução com um “frame” para cada
procedimento chamado mas não terminado

Os dois conceitos necessários para a execução duma programa, “conjunto de
recursos” e “contexto de execução” podem ser separados:
Assim
1. Processos são usados para agruparrecursos.
2. Threads são as entidades escalonadas para execução no CPU.

Heavyweight Process:
programas completamente separados com suas próprias variáveis, pilha e
alocação de memória
Threads: lightweight processes
rotinas compartilham o mesmo espaço de memória e variáveis globais

THEADS

PROCESSO

Program Counter

Program Counter

Stack (pilha)

Stack

Conjunto deregistradores

Conjunto de registradores

Registrador de “status”

Registrador de “status”

Threads filhos

-

-

Espaço próprio de endereço

-

Variáveis globais

-

Arquivos abertos

-

Semáforos

-

Informações de contabilização

-

Processos filhos

Beneficios de Threads vs Processos


A criação e terminação duma thread nova é em geral mais rápida do que a criaçãoe
terminação dum processo novo.



A comutação de contexto entre duas threads é mais rápido do que entre dois
processos.



A comunicação entre threads é mais rápida do que a comunicação entre processos porque as threads compartilham tudo: espaço de endereçamento, variáveis globais
etc.



Multi-programação usando o modelo de threads é mais simples e mais portável do quemulti-programação usando múltiplos processos.

ESTADOS DE EXECUÇÃO DE UM PROCESSO
Estados do Processo
– Nos sistemas operacionais multitarefa, um processo não
poderá ocupar exclusivamente uma CPU.
– Para que o compartilhamento da CPU seja efetivado, um
processo passa por vários estados ao longo de seu
completo processamento.
– A mudança de estados é gerada por eventos do sistema
operacional...
tracking img