Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e...
Transcript of Sistemas Operativosweb.fe.up.pt/~rma/SOPE/at/T_06_07_08_09.pdfSistemas Operativos Escalonamento e...
![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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/2.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/3.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/4.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/5.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/6.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/7.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/8.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/9.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/10.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/11.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/12.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/13.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/14.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/15.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/16.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/17.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/18.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/19.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/20.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/21.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/22.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/23.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/24.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/25.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/26.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/27.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/28.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/29.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/30.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/31.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/32.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/33.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/34.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/35.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/36.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/37.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/38.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/39.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/40.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/41.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/42.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/43.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/44.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/45.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/46.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/47.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/48.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/49.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/50.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/51.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/52.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/53.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/54.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/55.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/56.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/57.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/58.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/59.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/60.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/61.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/62.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/63.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/64.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/65.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/66.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/67.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/68.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/69.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/70.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/71.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/72.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/73.jpg)
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 •](https://reader031.fdocument.pub/reader031/viewer/2022011910/5f821d06cba7301f6e5b546f/html5/thumbnails/74.jpg)
Problemas clássicos de sincronização
• algoritmo do barbeiro
• algoritmo dos produtores / consumidores
• jantar dos filósofos
• algoritmo dos leitores / escritores