Upload
lykhuong
View
228
Download
1
Embed Size (px)
Citation preview
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Arquitetura de Sistemas Operativos
Hernani Costa
Sistemas Operativos 2011/2012
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
1 Conceitos de Processos, Threads e PrioridadesProcessosThreads
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Conceito
Um processo e um programa em execucao.
A execucao de um processo e sequencial: pode-se caracterizarum processo pelo seu trace (instrucoes executadas).
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Conceito
Um processo e mais do que um programa, pois inclui:
seccao de texto (ou programa);o conteudo do contador de programa (PC, program counter);conteudo dos registos do processador;a pilha (stack) do processo;seccao de dados que contem as variaveis globais.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Conceito
Esta nocao de processo permite que varios utilizadoresestejam a usar varias copias do mesmo programa, ou que omesmo utilizador possa abrir varias vezes o mesmo programa.
Cada uma destas copias e um processo separado: apenas asseccoes de texto sao identicas, as seccoes de dados, pilha,tabelas de ficheiros abertos, etc., sao diferentes.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Representacao Logica de um Processo
No sistema operativo, um processo e representado por umbloco de controlo do processo (PCB - Process ControlBlock).
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Representacao Logica de um Processo
O bloco de controlo do processo (PCB), as vezes chamado“descritor de processo”, e a maneira como um SO representao conceito de um processo.
Um PCB tem que conter um identificador unico (valor inteirochamado “process ID”), este valor pode-se aceder atraves deuma chamada ao sistema (getpid em linux e getpid emwindows).
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Representacao Logica de um Processo
Informacao associada a cada processo:
estado do processo: ver diagrama de estados, mais a frente;contador de programa (PC): indica o endereco da proximainstrucao a ser executada;registos da CPU: incluem os acumuladores, registos deindexacao, ponteiros de pilha, registos gerais, etc;informacao de escalonamento da CPU: inclui prioridade doprocesso, ponteiros para filas de escalonamento, etc.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Representacao Logica de um Processo
Informacao associada a cada processo:
informacao de gestao de memoria: inclui valores dos registosde base e de limite, tabelas de paginacao (ou tabelas desegmentacao);informacao de inventario;informacao de estado de entrada/saıda (E/S ou I/O): incluilista de dispositivos E/S ligados ao processo, lista de ficheirosabertos, etc.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Estado de um Processo
Um processo em execucao muda de estado:
new: o processo esta a ser criado;running: instrucoes estao a ser executadas;waiting: o processo esta a espera que algum evento ocorra(rececao de sinal ou o fim de alguma operacao de E/S);ready: o processo esta a espera que lhe seja atribuıdo oprocessador;terminated: o processo acabou de terminar a sua execucao.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Diagrama de Estados de um Processo
So um processo pode estar no estado running.
Podem haver varios processos no estado ready e no estadowaiting.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Comutacao e Escalonamento de Processos
De forma a maximizar a utilizacao do CPU, ha que ter sempreum processo a correr, i.e., em execucao.
Alem disso, num dado instante, so um processo pode usar umdispositivo de entrada/saıda (E/S).
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Comutacao e Escalonamento de Processos
Isto obriga a que haja:
comutacao de contexto - a troca entre os processos emexecucao;processo num estado - estados representados por “filas” deprocessos;escalonamento - escolha dos processos das filas emovimentacao entre as filas.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Comutacao de Contexto
A partilha do processador requer um mecanismo decomutacao de processos, a que se da o nome de comutacaode contexto (context switching, em ingles).
Comutacao entre dois processos faz-se atraves da:
salvaguarda do estado do processo que perde o CPU;restauro do estado do processo que ganha o CPU.
A comutacao deve ser frequente, mas nao exagerada, tem umcusto overhead (sobrecarga em portugues) para o sistema.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Comutacao de Contexto
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Filas de Escalonamento de Processos
Normalmente, todo o recurso tem associada uma fila deescalonamento.
Ready Queue - Esta fila contem os PCB’s dos processosresidentes em memoria que estao no estado ready, i.e.,processos que estao prontos e a espera de executar.
Waiting Queues - Se um processo espera a conclusao de E/Sou outro dispositivo, e colocado na fila de espera dodispositivo em causa.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Filas de Escalonamento de Processos
Um novo processo e inicialmente colocado na ready queue.
O processo fica a espera na ready queue ate ser selecionadoe despachado para o CPU.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Filas de Escalonamento de Processos
Durante a sua execucao varias coisas podem acontecer:
o processo pode emitir um pedido E/S, e consequentementeser colocado numa I/O device queue;o processo pode criar um novo subprocesso (fork), ficando aespera que ele termine;o processo pode ser removido do CPU em consequencia deuma interrupcao, o que o faz transitar para a ready queue.entre outras...
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Filas de Escalonamento de Processos
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Escalonadores
Um processo migra entre varias filas de escalonamentodurante o seu tempo de vida.
O sistema operativo deve selecionar processos destas filas combase em algum metodo ou algoritmo.
Existem varios tipos de escalonadores - vamos caracterizartres tipos:
curto prazo;medio prazo;longo prazo.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Escalonamento de curto-prazo
Seleciona que processos devem ser executados de seguida ereserva, consequentemente, o CPU.
Escalonador de curto-prazo e invocado com bastantefrequencia (milissegundos) → (tem de ser rapido).
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Escalonamento de medio-prazo
Ideia base: swapping
Remover processos da memoria (i.e., remover o grau demultiprogramacao).
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Escalonamento de medio-prazo
Mais tarde, estes processos podem ser re-introduzidos namemoria e continuar a sua execucao onde tinham sidodeixados.
Pode assim conseguir-se uma melhor mistura de processos, ouentao libertar memoria principal para outros processos.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Escalonamento de medio-prazo
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Escalonamento de longo-prazo
Seleciona que processos devem ser levados para a fila ready.
Escalonador de longo-prazo e invocado com pouca frequencia(segundos, minutos) → (pode ser lento).
Controla o grau de multiprogramacao.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Operacoes sobre Processos
Criacao de processos:
o processo progenitor (pai) cria processos progenitos (filhos),os quais, por sua vez, criam outros processos, formando umaarvore de processos.
Modos de execucao:
pai e filho(s) executam concorrentemente;pai espera ate que o(s) filho(s) terminem.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Operacoes sobre Processos
Ocupacao da memoria:
o filho duplica o espaco do pai;o filho carrega um novo programa.
Partilha de recursos:
pai e filhos partilham todos os recursos;filhos partilham um subconjunto dos recursos do pai;pai e filhos nao partilham quaisquer recursos.
Criacao de processos em UNIX:
a chamada ao sistema fork cria um novo processo;a chamada ao sistema exec depois de um fork e usada parasubstituir o espaco de memoria do processo com um novoprograma.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Operacoes sobre Processos - Modos de terminacao
Terminacao normal: um processo termina quando acaba aexecucao da sua ultima instrucao, e pede ao sistema operativopara o eliminar atraves da chamada ao sistema exit.
Nesta altura:
o processo devolve eventualmente dados ao seu progenitor (viachamada ao sistema wait);recursos do processo progenito sao libertados pelo sistemaoperativo.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Operacoes sobre Processos - Modos de terminacao
Terminacao abruta: o pai pode terminar a execucao dosprocessos filhos atraves da chamada ao sistema abort.
filho excedeu os recursos que lhe foram reservados;a tarefa atribuıda ao filho nao e mais necessaria;o pai esta a terminar, o que obriga os seus filhos a terminar.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Processos
Avaliacao - Trabalho Teorico-Pratico 2
Descreva um dos seguintes conceitos num texto.1 Processos2 Diagrama de estados de um processo3 Comutacao e escalonamento de processos:
3.1 comutacao de contexto3.2 escalonamento
O texto devera: ser elaborado em grupo; enviado por email aoprofessor no final da aula; e devera conter entre 250 a 500palavras.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Conceito
Uma thread e um processo mais leve (lightweight process),tendo multiplos fluxos de execucao no mesmo processo.
Um processo tradicional e igual a uma tarefa apenas com umathread.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Conceito
Mecanismo para criar fluxos de execucao, partilhando umcontexto comum:
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Conceito
Uma thread partilha com outras threads pares (peers):
a seccao de codigo;a seccao de dados;os recursos do SO.
Coletivamente tudo isto e conhecido como tarefa (task emingles).
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Conceito
Numa tarefa com multiplas threads, enquanto uma threadesta bloqueada e a espera, uma segunda thread na mesmatarefa pode executar.
Cooperacao de multiplas threads no mesmo job confere maiorvazao (throughput) e melhoria no desempenho.
Aplicacoes que requerem partilha de dados beneficiam aoutilizar threads.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Exemplo - Processador de Texto Multithreaded
A ideia e usar uma thread por tarefa:uma thread para interagir com o utilizador (teclado e rato);uma thread para formatar o texto (em background);uma thread para guardar o ficheiro periodicamente no disco.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Threads vs. Processos
Porque nao usar so processos?
Processos obrigam ao isolamento:
espacos de enderecamento disjuntos;dificuldade em partilhar.
Eficiencia na criacao e comutacao.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Partilha de recursos com Threads
Threads de um mesmo processo podem partilhar a maiorparte dos recursos, com excepcao da stack e do estado doprocessador:
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Estado de uma Thread
Tal como um processo, uma thread pode estar num de 3estados:
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Estado de uma Thread
A informacao especıfica a manter por cada thread erelativamente reduzida:
o seu estado (pode estar bloqueado a espera de um evento);o estado do processador (incluindo o SP e PC);a stack.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Uso de Threads
Threads de um mesmo processo podem partilhar muitosrecursos, incluindo o espaco de enderecamento:
sao particularmente apropriados para aplicacoes consistindo ematividades concorrentes.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Uso de Threads
Por exemplo um servidor da Web:
recebe e processa pedidos de paginas da Web;as paginas da Web sao ficheiros guardados em disco;mantem as paginas acedidas mais recentemente em memoria,cache;se a pagina pedida nao estiver na cache, o servidor tem que irao disco.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Uso de Threads
Servidor da Web com uma unica thread (ou um processo):
se a pagina pedida nao estiver na cache, o servidor tem que irao disco, bloqueando;enquanto a pagina nao for posta para memoria, o servidor naopode processar outros pedidos;o numero de pedidos que este servidor pode processar porunidade de tempo e muito baixo.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Uso de Threads
Servidor da Web com multiplas threads:uma thread, o dispatcher, recebe os pedidos e passa-os aoutras threads, os worker;cada worker thread processa um pedido de cada vez: podeusar operacoes de E/S que bloqueiem.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Implementacao
Threads podem ser implementadas:
diretamente pelo SO: Kernel-level Threads;
por codigo que executa em user-level, i.e., acima do SO:User-level Threads.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Kernel-level Threads
O kernel suporta processos com multiplos threads:
as threads sao as “entidades” que disputam o CPU.
O SO mantem uma tabela de threads com a informacaoespecıfica a cada thread.
O PCB de um processo aponta para a sua tabela de threads.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Kernel-level Threads
Todas as operacoes de gestao de threads, por exemplo criaruma thread, requerem a execucao de chamadas ao sistema.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
User-level Threads
O kernel nao sabe da existencia das threads:
sao implementados inteiramente por uma biblioteca emuser-space;podem ser implementados num SO que nao suporta threads.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
User-level vs. Kernel-level Threads
Vantagens:
o SO nao precisa suportar threads.evita a intervencao do kernel em muitas operacoes, porexemplo criacao/terminacao de threads e comutacao dethreads.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
User-level vs. Kernel-level Threads
Desvantagens:
page-fault por uma thread bloqueia as restantes threads doprocesso;incapazes de explorar paralelismo em arquiteturasmultiprocessador.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Nota
Page-fault: e uma interrupcao (ou excecao) disparada pelohardware quando um programa acede a uma pagina mapeadano espaco de memoria, mas que nao foi carregada na memoriafısica do computador.
Uma pagina e um bloco de memoria de tamanho fixo,utilizada como uma unidade de transferencia entre a memoriafısica e um dispositivo de armazenagem externo como, porexemplo, um disco rıgido.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Implementacao Hıbrida
A ideia e multiplexar user-level threads sobre kernel-levelthreads.
O kernel nao esta a par dos user-level threads.
A biblioteca de user-level threads atribui estes aos kernel-levelthreads.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Implementacao Hıbrida
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B
! Prof. Hernani
Resumo Conceitos de Processos, Threads e Prioridades
Threads
Avaliacao - Trabalho Teorico-Pratico 3
Descreva um dos seguintes conceitos num texto.
Conceito de threadThreads versus processosDescrever os varios estados de uma threadUser-level versus Kernel-level threads
O texto devera: ser elaborado em grupo; enviado por email aoprofessor no final da aula; e devera conter entre 250 a 500palavras.
Hernani Costa [email protected]
TGPSI 09/12 Sistemas Operativos Modulo 5B