arquitetura de sistemas operativoshpcosta/so/somod5baula2.pdf · resumo conceitos de processos, ......

53
Prof. Hernani Resumo Conceitos de Processos, Threads e Prioridades Arquitetura de Sistemas Operativos Hernani Costa [email protected] Sistemas Operativos 2011/2012 Hernani Costa [email protected] TGPSI 09/12 Sistemas Operativos odulo 5B

Upload: lykhuong

Post on 09-Nov-2018

228 views

Category:

Documents


1 download

TRANSCRIPT

! Prof. Hernani

Resumo Conceitos de Processos, Threads e Prioridades

Arquitetura de Sistemas Operativos

Hernani Costa

[email protected]

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