Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e...

74
Sistemas Operativos Escalonamento e sincronização Rui Maranhão ([email protected] )

Transcript of Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e...

Page 1: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Sistemas OperativosEscalonamento e sincronização

Rui Maranhão ([email protected])

Page 2: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Benefícios da Multiprogramação

• maximiza o tempo de utilização do CPU

• utilização do CPU = 1 - pn

• n é o número de processos

• p fracção de tempo em espera por I/O

Page 3: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Políticas de escalonamento

• processos competem por recursos

• a política depende dos objectivos do sistema

• as políticas visam

• conveniência: redução dos tempos de resposta, sendo justo para os processos

• eficiência: débito e max utilização do CPU

Page 4: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Critérios de escalonamento

• IO-bound ou CPU-bound

• interactivo ou não

• urgência de resposta (tempo real)

• comportamento recente

• necessidade de periféricos especiais

• por prioridade

Page 5: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Estados de um processo

• em execução

• foi-lhe atribuído CPU

• bloqueado

• o processo está logicamente impedido de prosseguir, porque lhe falta um recurso

• do ponto de visto do SO, transição voluntária

• pronto a executar, aguarda escalonamento

Page 6: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Primitivas de despacho

• bloqueia(evento)

• coloca processo na fila de processos parados à espera do evento

• invoca próximo processo

• liberta(evento) ou liberta(processo, evento)

• se processo não esta a espera de mais eventos, coloca-o na lista de espera

Page 7: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Primitivas de despacho

• próximo_processo()

• selecciona um dos processos existentes na lista de processos prontos a executar

• executa a comutação de contexto

• salvaguarda contexto volátil do processo corrente

• carrega contexto do processo escolhido

Page 8: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Principais decisões

• Qual o próximo processo?

• Quando começa a executar?

• Durante quanto tempo?

Page 9: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Escalonamento de processos

• Se, após lhe ser atribuído o CPU, nunca mais lhe for retirado

• escalonamento cooperativo (non-preemptive)

• ex., windows 3.1, co-rotinas, thread_yield()

• se o CPU lhe for retirado

• escalonamento com desafectação forçada

• ou preemptive

Page 10: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Escalonamento de processos

• escalonamento cooperativo

• sensível as variações de carga

• escalonamento com desafectação forçada

• sistema responde melhor

• comutação de contexto é cara

Page 11: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Escalonamento

• longo-prazo (segundos, minutos) e de curto-prazo (milisegundos)

• CPU-bound: faz pouco uso de I/O; requer muito processamento

• I/O-bound: faz muito uso de I/O

Page 12: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Escalonamento

• os processos prontos são seriados numa fila (ready list)

• lista ligada de apontadores para process control block

• lista pode estar ordenada por prioridades

Page 13: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Escalonamento

• quando um processo é escalonado, é retirado da ready list e posto a executar

• o processo pode perder o CPU

• aparecer um com maior prioridade

• pedido de I/O (bloqueado)

• o quantum expira (pronto)

Page 14: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Escalonamento

• pretende-se maximizar a utilização do CPU tendo em atenção

• tempo de resposta de aplicações interactivas

• utilização de dispositivos I/O

• justiça na distribuição de tempo de CPU

Page 15: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Escalonamento

• Quando escalonar um processo?

• quando um processo passa de a-executar a bloqueado

• quando um processo passa a pronto

• quando se termina uma operação I/O

• quando um processo termina

Page 16: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Escalonamento

• diferentes algoritmos de escalonamento favorecem diferentes optimizações

• tempo de resposta

• máxima utilização de CPU

Page 17: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Objectivos dos algoritmos de escalonamento

• em geral

• equidade, balanceado e forçar que as regras impostas pelo algoritmo são respeitadas

• sistemas de batch

• thoughput, turnaournd time, maximizar utilização do CPU

Page 18: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Objectivos dos algoritmos de escalonamento

• sistemas interactivos

• tempo de resposta e proporcionalidade

• sistemas de tempo real

• tempos de resposta estão pré-definidos, previsibilidade

Page 19: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Algoritmos

• FCFS (first come, first served)

• SJF (shortest job first)

• SRTF (shortest remaining time first)

• preemptive priority scheduling

• RR (round-robin)

• outros algoritmos: lotaria, promessas

Page 20: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

FCFS

• a ready list é uma fila FIFO

• o processo é colocado no fim da fila e seleccionado o da frente

• método cooperativo

• nada apropriado para ambientes interactivos

Page 21: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

FCFS

• tempo de espera com grandes flutuações dependendo da ordem de chegada e das características dos processos

• simplicidade de implementação

Page 22: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

SJF

• escalonar processo mais curto primeiro

• possibilidades

• desafectação forçada - interrompe o processo em execução se aparecer um mais curto

• cooperativo - aguarda terminação do processo em execução mesmo que apareça um mais curto

Page 23: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

SJF

• não se consegue calcular a priori o tempo de execução dos processos

• apenas se podem fazer estimativas

• uma combinação de tempos reais e estimativas para fazer futuras previsões

Page 24: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Preemptive priority

• associa uma prioridade a cada processo

• a ready queue é uma fila seriada por prioridades

• escalona sempre o processo de maior prioridade

• se um processo de maior prioridade aparecer, faz a troca de processos

Page 25: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Preemptive priority

• Problema: míngua (starvation)!!

• Solução: evelhecimento

• aumenta a prioridade dos processos pouco a pouco para que sejam executados eventualmente

Page 26: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

RR

• dá a cada processo um intervalo de tempo de CPU fixo de cada vez

• quando um processo esgota o seu quantum retira-o do CPU e volta a colocá-lo no fim da fila

• ignorando overheads do escalonamento (quais?), cada um dos n processos terá 1/n do tempo disponível de CPU

Page 27: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

RR

• se o quantum for muito grande, RR tende a comportar-se como FCFS

• se o quantum for muito pequeno, então o overhead de mudanças de contexto degrada os níveis de utilização do CPU

• tempo de resposta melhor que o SJF (o quantum é normalmente o SJ)

Page 28: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Avaliação de algoritmos

• Modelo deterministico

• definição da carga tipo: ordem de chegada dos processo, tempos de execução, distribuição CPU/IO, etc. e avaliação analítica do desempenho

• vantagem: simples

• desvantagem: ajuste dos resultados depende directamente dos dados de entrada (necessários vários cenários)

Page 29: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Avaliação de algoritmos

• Teoria de fila de espera

• definição de um modelo matemático do sistema e avaliar segundo a teoria de filas de espera

• desvantagem: muitas simplificações para que o modelo seja tratável

Page 30: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Avaliação de algoritmos

• simulação

• escrever/adoptar/usar um programa que modele o sistema e analisar o desempenho do algoritmo

• tentar obter traços do comportamento de sistemas reais

• desvantagem: tempo de execução longos

Page 31: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Sincronização de processos

Page 32: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Programação concorrente

• a possibilidade de execução “simultânea” leva ao acesso em concorrência a recursos partilhados

• o acesso concorrente pode ser feito a zonas de endereçamento partilhadas

• o acesso concorrente pode resultar na incoerência dos dados/resultados

Page 33: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Cooperação entre processos

• vários processos executam em conjunto uma ou mais tarefas, nos quais

• competem por recursos

• indicam uns aos outros

• ausência/existência de recursos

• ocorrência de acontecimentos

Page 34: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Problema da exclusão mútua

• Qual o problema se for multi-tarefa?

Page 35: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Problema da execução concorrente

Page 36: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Problema...

• em linguagem máquina as acções atómicas são mais elementares

Page 37: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Programação concorrente

• para garantir a coerência dos dados é necessário que os processos acedam ordenadamente aos recursos

• o SO fornece um conjunto de mecanismos que permitem os processos sincronizarem-se

Page 38: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Secção crítica

• em programação concorrente sempre que se testam ou se modificam estrutura de dados:

• fazê-lo dentro de uma secção crítica!!

Page 39: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Secção crítica

Page 40: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Secção crítica: Propriedades

• exclusão mútua

• progresso (liveness)

• ausência de deadlocks

• ausência de míngua (starvation)

Page 41: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Secção crítica: Condições

• As seguintes condições são necessárias para uma solução eficiente

• só um processo pode estar dentro da secção crítica

• não se deve assumir valores quanto a velocidade de execução ou #CPUs disponíveis

Page 42: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Secção crítica: Condições

• processos a executar fora da secção crítica não deverá bloquear outros processos

• nenhum processo deverá esperar indefinidamente para entrar na região crítica

Page 43: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Implementações

• algorítmicas

• hardware

• sistema operativo

Page 44: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Proposta #1

• Qual a propriedade não garantida??

Page 45: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Proposta #2

• Qual a propriedade não garantida??

Page 46: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Proposta #3

• Qual a propriedade não garantida??

• Porque motivo é garantida a exclusão mútua

Page 47: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Proposta #4

• Qual a propriedade não garantida??

Page 48: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Algoritmo Peterson

Page 49: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Conclusões sobre soluções algorítmicas

• complexas: alta latência

• só contemplam espera activa

• solução: introduzir implementações de hardware

Page 50: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Soluções com suporte do hardware

• abrir() e fechar() usam instruções especiais oferecidas pelos processadores

• inibição de interruptores

• exchange (xchg no intel IA)

• test-and-set (cmpxchg no intel IA)

Page 51: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Exclusão mútua com inibição de interruptores

• só deve ser usado dentro do SO em secções críticas de pouca duração

• inibição das interrupções impede execução de serviços de sistema

• se o programa não chamar abrir(), as interrupções ficam inibidas e o sistema para

Page 52: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Não funciona em multiprocessadores...

Page 53: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Problema da atomicidade em multiprocessadores

Page 54: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Exclusão mútua com exchange

Page 55: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Exchange em multiprocessadores

Page 56: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Exclusão mútua com test-and-set

Page 57: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Conclusões sobre as soluções de hardware

• oferecem mecanismos básicos

• não podem ser usadas por programas em modo utilizador

• só contemplam espera activa

Page 58: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Regiões críticas

• soluções anteriores não são muito interessantes porque

• acarretam espera activa

• remetem o problema para o código fonte

• só estão disponíveis em kernel mode

• Objectivo: primitvas genéricas, acessíveis no modo utilizador, fornecendo espera passiva

Page 59: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Soluções com suporte do SO

• Primitivas de sincronização

• software trap (interrupção SW)

• comutação para modo núcleo

• estrutura de dados e código de sincronização pertence ao núcleo

• usa suporte de hardware (ex., test-and-set)

• mutex e semáforos

Page 60: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Mutex

• técnica de programação para evitar que processos tenham acesso simultâneo a um recurso partilhado

• em português: trinco?

• outra definição?

Page 61: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Estrutura de dados

Page 62: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Diagrama de estados

Page 63: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Funções do mutex

Page 64: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Funções do mutex

Page 65: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

mutex: limitações

• mutex não são suficientemente expressivos para resolver alguns problemas de sincronização

• bloquear tarefas se a pilha estiver cheia

• necessário um controlador de recursos

Page 66: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Semáforos

Page 67: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Semáforos: Primitivas

• s = criar_semafaro(num)

• esperar(s)

• bloqueia o processo se num <= 0

• assinalar(s)

• se houver processos bloqueados, liberta um, senão num++

• primitivas atómicas e podem ser invocadas de processos diferentes

Page 68: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Semáforos: Primitivas

Page 69: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Exemplo

Page 70: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Interface mutex POSIX

int pthread_mutex_init(pthread_mutex_t *m, pthread_mutexattr_t *a);int pthread_mutex_lock(pthread_mutex_t *mutex);int pthread_mutex_unlock(pthread_mutex_t *mutex);int pthread_mutex_trylock(pthread_mutex_t *mutex);int pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *timeout);

Exemplo:pthread_mutex_t count_lock;pthread_mutex_init(&count_lock, NULL);pthread_mutex_lock(&count_lock);count++;pthread_mutex_unlock(&count_lock);

Page 71: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Interface semáforo POSIX

int sem_init(sem_t *sem, int pshared, unsigned value);int sem_post(sem_t *sem);int sem_wait(sem_t *sem);

Exemplo:sem_t sharedsem;sem_init(&sharedsem, 0, 1);sem_wait(&sharedsem);count++;sem_post(&sharedsem);

Page 72: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Alternativas

• Outras formas de implementar regiões críticas

• sleep/wakeup

• contagem de eventos

• monitores

• mensagens

Page 73: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Exemplos clássicos de problemas de sincronização

Page 74: Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e sincronização Rui Maranhão (rma@fe.up.pt) Benefícios da Multiprogramação •

Problemas clássicos de sincronização

• algoritmo do barbeiro

• algoritmo dos produtores / consumidores

• jantar dos filósofos

• algoritmo dos leitores / escritores