Escolar Documentos
Profissional Documentos
Cultura Documentos
Threads
Parte III
Prof. Lzaro
maio/2012
SOp-Apres08
Sistemas Operacionais
Recursos
Memria Processador
Canais Comunic.
Concorre por
Processo A
Sistemas Operacionais
Fonte: http://java.sun.com/docs/hotspot/threads/threads.html
Sistemas Operacionais
Fonte: http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=bks&fname=/SGI_Developer/Cos3C_PG/ch13.html
Sistemas Operacionais
Propriedade
das Threads
Thread uma linha de execuo de controle. uma parte de um processo que pode ser executada independentemente. Todo processo tem, pelo menos, uma thread.
Inicio Abre_Arquivos() Limpa_Variveis() Exibe_Tela() Clculos() Abre_Arquivos() Open Arq1, Arq2, Arq3 Open Trab1, Trab2 Limpa_Variveis() Area1=space(10) NUm1=0, Num2=0 Exibe_Tela() Molda Tela e Exibe Clculos() Calc1= -------Inicio
Thread nica
Abre_Arquivos()
Limpa_Variveis()
Exibe_Tela()
Clculos()
Sistemas Operacionais
Propriedade
Por exemplo: Se voc deseja conferir uma srie de fotos no website de um amigo e seu sistema operacional permite que os processos tenham uma nica linha de execuo de controle, voc dever instruir o navegador para estabelecer uma conexo entre dois sites e fazer o download de uma foto por vez.
das Threads
Foto1
Sistema Operacional
P1
Foto1
Foto2 Foto3
Sistemas Operacionais
Propriedade
das Threads
No entanto, se seu sistema permite que os processos tenham mltiplas linhas de execuo de controle, voc poder requisitar vrias fotos simultaneamente e o navegador estabelecer mltiplas conexes para fazer o download de vrias fotos ao mesmo tempo.
Foto1
Sistema Operacional
P1
Foto1
P1
Foto2
P1
Foto3
Foto2 Foto3 7
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
registradores
pilha
Registr. pilha
Registr. pilha
nico Thread
Multithreads
Sistemas Operacionais
11
Sistemas Operacionais
Como os threads podem usar os mesmos endereos em uma tarefa, um thread pode ler e escrever sobre pilhas de outros threads.
12
Sistemas Operacionais
Segmento de cdigo
Segmento de dados
13
Sistemas Operacionais
Morto
Pronto
Despacho Concluso E/S Notificar ou acordar
Execuo
Requisio E/S
Dormir
Adormecido
Acordar 14
Em Espera
Sistemas Operacionais
15
Sistemas Operacionais
Contador de Programa
A
Processo
thread
Sistemas Operacionais
Servidor de Impresso
Arquivos
17
Sistemas Operacionais
comunicao
18
Sistemas Operacionais
19
Sistemas Operacionais
20
Sistemas Operacionais
21
Sistemas Operacionais
Proc. A
Proc. B
Thread 1
Thread 2
Processo Principal
22
Sistemas Operacionais
Sistemas Operacionais
24
Sistemas Operacionais
Chamadas Fork e Exec quando um thread chama a rotina fork para criar um processo, h duas modalidades de operao: Uma ser a duplicao total do processo onde a thread est com todas as threads sendo duplicada, outra ser duplicar apenas a thread que est invocando a rotina fork.
A utilizao das duas verses depende da aplicao.
25
Sistemas Operacionais
Sistemas Operacionais
27
Criao de Threads
Sistemas Operacionais
Cadeias de Threads criar um nmero de threads na inicializao do processo e coloc-los em uma cadeia, onde eles permanecem e aguardam para entrar em funcionamento. Usado em servidores, sendo que, quando um servidor recebe uma solicitao, ele desperta um thread desta cadeia, se um estiver disponvel, passando a ele a solicitao para ser atendida. Exemplo: a criao de processo init com os vrios terminais alocados na rede multiusuria.
28
Sistemas Operacionais
A nova verso, um sistema moderno, com suporte de processos em tempo real e no nvel de usurios, multiprocessamento simtrico e seleo de processos em tempo real.
SOLARIS 2
API Pthread Thread do Usurio
29
Sistemas Operacionais
30
Sistemas Operacionais
31
Sistemas Operacionais
ncleo
CPU
Sistemas Operacionais
Tabela de Threads - contem uma entrada por thread com contador de programa, registradores e estado do thread. Contador de programa porque threads podem ser suspensos e retomados
33
Sistemas Operacionais
34
Sistemas Operacionais
FIM
35