Sumário. Sistemas Operativos: Escalonamento de Processos e Deadlocks. Padrão de Execução dum Processo. Multiprocessamento
|
|
- Rubens Tuschinski Palha
- 7 Há anos
- Visualizações:
Transcrição
1 Sumário Sistemas Operativos: Escalonamento de Processos e Deadlocks Pedro F. Souto (pfs@fe.up.pt) May 18, 2008 Escalonamento de Processos O Problema Algoritmos de Escalonamento de Processos Leitura Adicional Deadlocks O Problema Soluções Leitura Adicional Padrão de Execução dum Processo Multiprocessamento Processos (e threads) alternam: execução de instruções; realização de operações de entrada/saída. De acordo com a duração dos intervalos de execução de instruções, um processo pode ser classificado em CPU-bound (a) ou IO-bound (b) (a) (b) Long CPU burst Short CPU burst Waiting for I/O A generalidade dos SOs é multi-processo: enquanto um, ou mais processos realizam operações de entrada/saída; outro processo pode executar instruções. Obtém-se uma maior utilização dos recursos dum computador. Para o efeito o SO deverá suportar comutação entre processos (process switching), i.e.: retirar o CPU a um processo e atribuí-lo a outro. A parte do SO que faz a comutação de processos designa-se por despacho (dispatcher). Time
2 Comutação de Processos (1/2) Comutação de Processos (2/2) P 0 está no estado RUN e passa para o estado READY : A comutação entre processos inclui: Transferir o estado do processo em execução para a memória (o Process Control Block); Carregar o processador com o estado do processo que passa para o estado de execução; Passar o controlo para o novo processo, possivelmente comutando para user-mode. A comutação entre processos é feita em instantes "oportunos", incluindo: chamadas ao sistema (p.ex., exit(), read()); interrupções: por dispositivos de E/S; pelo relógio. CPU CPU queue head P0 queue head P1 P1 P2 P2 P null P null P0 Escalonamento de Processos Problema: quando há mais de um processo em condições de execução (estado ready), qual o processo a executar? 1 ready running 4 2 waiting Solução: o SO, mais precisamente o scheduler, executa um algoritmo de escalonamento para decidir. I.e., o escalonador determina a que processo deve ser atribuído o CPU. Escalonamento Preemptivo vs. Não-preemptivo Um algoritmo de escalonamento diz-se não-preemptivo, se, uma vez na posse do CPU, um processo executa até o (ao CPU) libertar voluntariamente. Quase todos os algoritmos de escalonamento têm duas versões: uma preemptiva outra não. Algoritmos não-preemptivos têm problemas graves: certas classes de processos executam durante muito tempo até bloquear; um utilizador egoísta pode impedir que o computador execute processos de outros utilizadores. Praticamente todos os sistemas operativos usam algoritmos preemptivos: O SO usa as interrupções do relógio para retirar o CPU ao processo em execução.
3 Critérios para um Bom Algoritmo de Escalonamento Algoritmo Round-Robin Equidade: dar oportunidade a todos os processos para progredir. Equilíbrio: na utilização dos recursos. Satisfação da política escolhida: Sistemas interactivos: tempo de resposta; previsibilidade. Sistemas de tempo-real: cumprir prazos; determinismo. Sistemas não-interactivos: débito; utilização do CPU. Quando um processo passa para o estado de execução, o SO atribui-lhe a posse do CPU por um intervalo de tempo fixo: quantum. A comutação de processos realiza-se: ou quando o processo em execução bloquear; ou quando o quantum expirar. Qual o valor dum quantum? compromisso tempo-de-resposta/utilização-do-cpu: a comutação de processos leva algum tempo; Unix/Linux usa um valor de 100 ms, que se mantém inalterado há mais de 20 anos!!! Algumas vantagens deste algoritmo são: fácil de implementar (como?); equitável (mais uma característica). Escalonamento Baseado em Prioridades Problema por vezes, alguns processos são mais iguais do que os outros. Solução atribuir uma prioridade a cada processo. Quando da comutação de processos, o processo pronto a executar com maior prioridade passa para o estado de execução. As prioridades podem ser atribuídas estática ou dinamicamente. Potencial problema: inanição (starvation): Os processos de mais baixa prioridade podem nunca ser seleccionados para executar. Escalonamento em BSD-Unix Cada processo tem uma prioridade. Processos são agrupados em classes com base na sua prioridade: o escalonamento entre classes é baseado em prioridades; o escalonamento numa classe usa round-robin. q headers prior. 4 prior. prior. 2 prior. 1 Para evitar inanição de processos de prioridade mais baixa: sempre que um processo executa até ao fim do seu quantum, a sua prioridade diminui.
4 Rate-monotonic Scheduling Mecanismos vs. Políticas Assume n processos periódicos, cada um deles: de período T i igual ao prazo (deadline); com um tempo de execução C i. É de facto um algoritmo de atribuição de prioridades estáticas: quanto mais curto é período maior é a prioridade. Tem propriedades matemáticas que o tornam apropriado para sistemas hard real-time. O algoritmo original (197) impõe sérias restrições, mas desenvolveram-se técnicas que permitem levantar a maioria delas. Observação: Não é possível agradar a gregos e a troianos. : O SO não conhece as necessidades das aplicações suficientemente para tomar as decisões mais apropriadas. Ideia: oferecer os utensílios e permitir que os seus utilizadores os usem da maneira que acharem conveniente. O SO oferece os mecanismos: algoritmos de escalonamento parametrizáveis. Os processos seleccionam as políticas: i.e. o algoritmo e os valores dos seus parâmetros. Escalonamento em POSIX (Linux) (1/2) Escalonamento em POSIX (Linux) (2/2)) POSIX define políticas de escalonamento: SCHED_FIFO preemptivo, baseado em prioridades estáticas; SCHED_RR semelhante a SCHED_FIFO mas com quanta; SCHED_OTHER algoritmo não especificado, i.e. dependente da implementação. O escalonador é baseado em prioridades. A política de escalonamento especifica: quando os processos passam do estado run para o estado ready; onde é que são inseridos na ready-list de processos com a mesma prioridade. SCHED_FIFO e SCHED_RR foram especificados para aplicações de tempo-real. A sua prioridade é sempre superior à de processos com política SCHED_OTHER. Em Linux, SCHED_OTHER é um algoritmo semelhante ao de BSD-Unix, embora os pormenores sejam ligeiramente diferentes. (Para mais informação veja man 2 sched_setscheduler.) Estas políticas de escalonamento podem também ser atribuídas a threads através de funções de libpthread: int pthread_setschedparam(pthread_t tid, int policy, struct sched_param *param);
5 Escalonamento de Threads Order in which threads run 2. Runtime system picks a thread User-level vs. kernel-level Process A Process B Process A Process B Kernel picks a process 1. Kernel picks a thread Possible: A1, A2, A, A1, A2, A Not possible: A1, B1, A2, B2, A, B (a) Quantum de cada processo de 50 ms. Cada thread executa em bursts de 5 ms. Possible: A1, A2, A, A1, A2, A Also possible: A1, B1, A2, B2, A, B (b) Modos de Partilha do CPU em libpthread libpthread suporta 2 modos da partilha do CPU: PTHREAD_SCOPE_PROCESS threads disputam o CPU apenas com outros threads do processo em execução: user-level threads implica este modo de escalonamento. PTHREAD_SCOPE_SYSTEM threads disputam o CPU com todos os threads no sistema impossível de implementar com user-level threads: SO não conhece todos os threads em execução; modo natural quando se usa kernel-level threads. Note-se que este atributo pode ser configurado por cada thread, usando pthread_attr_setscope(). Linux suporta apenas PTHREAD_SCOPE_SYSTEM. Leitura Adicional Deadlocks Modern Operating Systems, 2nd. Ed. Secção 2.5: Scheduling Secção 10.: Processes in Unix Um zelo excessivo na eliminação de race conditions pode conduzir a um outro problema deadlock: um cenário em que 2 ou mais processos ficam bloqueados indefinidamente. Um exemplo é a seguinte solução do bounded buffer com semáforos: public void remove(object item) { mutex.down(); // keep other threads out empty.down(); // wait for some item que difere da solução correcta na ordem de execução das operações down(): Se o buffer estiver vazio, o consumidor bloqueia sem libertar o mutex, impedindo o produtor de eventualmente introduzir a mensagem no buffer.
6 Recursos O estudo do problema de deadlock tem origem em SOs, no contexto da gestão de recursos dum computador. Um recurso é um objecto usado por um processo. P. ex.: físico: disco, memória, CPU,...; lógico: um socket, um ficheiro, uma secção crítica,...; Num sistema, pode haver mais do que um recurso do mesmo tipo, p.ex. disco. Propriedades importantes de recursos: tipo de acesso certos recursos, p.ex. uma impressora, têm que ser acedidos em exclusão mútua; preemptibilidade recursos podem ser ou não preemptíveis: isto é, podem ser ou não removidos dum processo sem problemas de maior. Por exemplo, uma impressora não é preemptível, mas o CPU é-o. Uso de Recursos por Processos Recursos são geridos por gestores, os quais podem ser ou não componentes do SO. O uso de um recurso por um processo tipicamente envolve a sequência: pedido do recurso; uso do recurso; libertação do recurso. Se o recurso pedido por um processo não estiver disponível, o processo não o pode usar. Neste caso, o processo: ou bloqueia, à espera que o recurso fique disponível; ou prossegue, mas não terá acesso ao recurso pedido. Bloqueio Mútuo (Deadlock) Condições Necessárias para Deadlock Definição um conjunto de processos está mutuamente bloqueado (deadlocked), se cada processo nesse conjunto está à espera dum evento que apenas outro processo nesse conjunto pode causar. Normalmente, o evento pelo qual um processo espera é a libertação dum recurso na posse de outro processo nesse conjunto Numa situação de deadlock, nenhum processo pode: executar; libertar os recursos que detém; ser activado. Bloqueio á espera que o recurso fique disponível (exclusão mútua); Espera com retenção processos não libertam os recursos na sua posse quando bloqueiam à espera de outros recursos; Não-preempção recursos na posse dum processo não lhe podem ser retirados; Espera-circular tem que haver uma cadeia de 2 ou mais processos, cada um dos quais à espera dum recurso na posse do processo seguinte.
7 Estratégias de Ataque ao Problema de Deadlock Algoritmo da Avestruz 1. Ignorar o problema: algoritmo da avestruz (Tanenbaum). 2. Detectar e recuperar.. Evitar (avoidance: solução dinãmica). 4. Prevenir (prevention: solução estática). Ignorar o problema: pretender que não existe. Pode ser aceitável. se a probabilidade de deadlock fôr muito baixa; o custo de qualquer das outras soluções fôr elevado. Unix tenta evitar situações de deadlock, mas não as elimina completamente. É um compromisso entre: correcção; conveniência/eficiência; análogo a muitos em engenharia.... viver é gerir riscos. Detectar e Recuperar Detecção de Deadlock Tem 2 partes: 1. Detectar o deadlock: O algoritmo basicamente testa se há alguma ordem de terminação dos processos. 2. Recuperar da situação: preempção de recursos; roll-back de processos; terminação de processos. Faz uso das seguintes estruturas de dados: Vector dos recursos existentes, E, tem m elementos, i.e. tantos quantos os tipos de recursos. O valor de cada elemento é o número de recursos do tipo correspondente existentes no sistema. Vector de recursos disponíveis, D, com m elementos. Matriz dos recursos atribuídos, A, de dimensão n m, em que n é o número de processos. A linha i é o vector com os recursos atribuídos ao processo P i. Matriz dos pedidos pendentes, P, de dimensão n m. A linha i é o vector com os pedidos pendentes de recursos pelo processo P i.
8 Exemplo de Detecção de Deadlock E = [ ] D = [ ] A = P = Testar se há uma ordem de terminação dos processos. P 1 e P 2 estão bloqueados: os seus pedidos não podem ser satisfeitos. Mas P pode executar e se terminar libertará os seus recursos. Depois os pedidos de P 2 podem ser satisfeitos e P 2 poderá terminar, libertando os seus recursos. Algoritmos de Detecção Os algoritmos de detecção são caros : O(m n 2 ). De facto, a complexidade dum algoritmo não é a história completa: há constantes a considerar e os valores dos parâmetros se m ou n forem pequenos o custo pode ser baixo. Quando devem ser executados? sempre que é feito um pedido; periodicamente; quando a utilização do CPU diminui. Finalmente, os pedidos de P 1 poderão ser satisfeitos e P 1 poderá terminar: não há deadlock. Recuperação de Deadlock (1/2) Recuperação de Deadlock (2/2) Preempção de recursos: depende do recurso em causa: não é sempre aplicável; pode requerer intervenção humana, Rollback de processos: fazer o checkpoint do estado dos processos, periodicamente; em caso de deadlock, identificar um processo que se rolled-back quebrará o deadlock. Terminar um processo no ciclo: de preferência, dever-se-á terminar um processo que possa ser reexecutado de início sem problemas de maior. Em qualquer dos casos, é preciso escolher uma vítima. Alguns critérios: o processo que possui menos recursos; o processo que possui mais recursos; o processo que usou menos o CPU. Pode ainda, usar-se o seguinte critério: o menor conjunto de processos que quebrará o deadlock. Com excepção de roll-back as outras soluções podem deixar o sistema num estado inconsistente. Mesmo com rollback, fazer o checkpointing do estado dos processos pode não ser suficiente: E se o processo rolled-back modificou um ficheiro desde o último checkpoint?
9 Estados Seguros e Não-seguros Deadlock Avoidance (Solução Dinãmica) A B C Admitamos que processos partilham só um tipo de recurso, e que há 10 unidades desse tipo. Has Max Has Max Has Max Has Max Has Max 2 2 Free: (a) A B C 4 2 Free: 1 (b) A B C 0 B 0 2 Free: 5 (c) 9 7 A C 7 Free: 0 (d) 9 7 A B C 0 0 Free: 7 (e) 9 Ideia antes de satisfazer um pedido, averiguar se essa satisfação conduz a um estado não-seguro estratégia pessimista em comparação com detecção & recuperação. Requisito desta técnica: é necessário o conhecimento a priori dos requisitos máximos de cada tipo de recurso por cada processo. Algoritmo para Deadlock Avoidance Faz uso das seguintes estruturas de dados: Vector dos recursos existentes, E, tem m elementos, i.e. tantos quantos os tipos de recursos. O valor de cada elemento é o número de recursos do tipo correspondente existentes no sistema. Vector de recursos disponíveis, D, com m elementos. Matriz dos recursos atribuídos, A, de dimensão n m, em que n é o número de processos. A linha i é o vector com os recursos atribuídos ao processo P i. Matriz dos recursos a atribuir, R, de dimensão n m. A linha i é o vector com os pedidos de recursos que o processo P i ainda poderá fazer: O algoritmo é semelhante ao apresentado para detecção de deadlock, excepto em vez da matriz P usa-se a matriz R. Exemplo de Deadlock Avoidance Seja após a satisfação condicionada dum pedido: E = [ ] D = [ ] A = R = P 4 pode terminar: D = [ ] ; 2. P 1 pode terminar: D = [ ] ;. P 2 pode terminar: D = [ ] ; 4. P pode terminar: D = [ ] ; O pedido pode ser satisfeito: não conduz a deadlock mesmo que os processos usem os recursos ao máximo.
10 Considerações sobre Deadlock Avoidance Prevenir Deadlocks (Solução Estática) Um pedido de recursos só é satisfeito, se os recursos que ficarem disponíveis, permitirem a terminação de todos os processos que detém pelo menos um recurso, assumindo que cada um destes processos usa o número máximo de recursos correspondente. Infelizmente, a utilidade deste algoritmo (Banker s Algorithm, de Dijkstra) é no melhor dos casos limitada: normalmente, os processos não conhecem a priori as suas necessidades máximas. Provavelmente, alguns sistemas de tempo-real serão a única excepção. Ideia garantir que 1 das 4 condições necessárias nunca ocorre: 1. Exclusão mútua; 2. Espera com retenção;. Não-preempção; 4. Espera circular. deadlock avoidance é uma solução dinâmica: o programa executa um algoritmo para determinar se a satisfação do pedido pode conduzir a deadlock. deadlock prevention é uma solução estática: impede-se a ocorrência de deadlock por concepção do programa. Prevenir Deadlocks: Não-exclusividade Exclusão mútua, p.ex., recorrendo a processos auxiliares - printer spooler: nem todos os recursos se prestam a spooling; a contenção no acesso a outros recursos (p.ex. disco, no caso do printer spooler) pode também dar origem a deadlocks. Princípio, em qualquer dos casos, deve-se: atribuir um recurso apenas quando necessário; minimizar o número de processos que partilham um recurso. Prevenir Deadlocks: Espera sem Retenção Espera com retenção de recursos: Pedir todos os recursos necessários antes de iniciar tarefa: sofre do mesmo problema que deadlock avoidance. Alternativamente, um processo deverá libertar todos os recursos que possui, quando o pedido de um recurso conduziria a um bloqueio: quando desbloqueado, o processo terá que readquirir todos os recursos de novo; é uma variante da solução anterior, na qual os recursos necessários são descobertos dinamicamente. Técnica usada por vezes ao nível do kernel do SO.
11 Prevenir Deadlocks: Preempção e Não-circularidade Mais sobre Gestão de Recursos Na prática, usa-se uma combinação destas técnicas. Preempção dos recursos: retirar recursos a um processo (sem a sua cooperação) é inviável na maioria dos casos. Espera circular pode ser evitada por vezes. Por exemplo: definindo uma ordem total para todos os tipos de recursos; impondo que o pedido dos recursos respeite essa ordem. Infelizmente, nem sempre é viável. Inanição (starvation) de processos pode ocorrer também associada à gestão de recursos: quando o número de recursos disponível é inferior ao número de recursos pedido, o sistema tem que decidir a que processos atribuir os recursos disponíveis; se o algoritmo usado favorecer alguns processos em relação a outros, estes últimos poderão ser continuamente preteridos no acesso aos recursos e assim impossibilitados de fazer qualquer progresso. O escalonamento de processos é um problema de gestão dum recurso particular: o CPU. Leitura Adicional Modern Operating Systems, 2nd. Ed. Secção.1: Resources Secção.2: Introduction to Deadlocks Secção.: The Ostrich Algorithm Secção.4: Deadlock Detection and Recovery Secção.5: Deadlock Avoidance Secção.6: Deadlock Prevention Subsecção.7.2: Nonresource Deadlocks Subsecção.7.2: Starvation
Sistemas Operativos: Escalonamento de Processos
Sistemas Operativos: Escalonamento de Processos Pedro F. Souto (pfs@fe.up.pt) March 29, 2011 Sumário Escalonamento de Processos O Problema Algoritmos de Escalonamento de Processos Leitura Adicional Padrão
Leia maisMultiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo
Sumário Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. 1 Padrão de Execução dum Processo Processos (e threads) alternam: execução de instruções;
Leia maisSistemas Operativos: Implementação de Processos
Sistemas Operativos: Implementação de Processos Pedro F. Souto (pfs@fe.up.pt) March 8, 2012 Sumário: Implementação de Processos Contexto (Estado) dum Processo Comutação de Processos Escalonamento de Processos
Leia maisSistemas Operativos. Deadlocks FEUP. 23 de Outubro, 2009
Sistemas Operativos Rui Maranhão (rma@fe.up.pt) FEUP 23 de Outubro, 2009 Agradecimento: Pedro Souto (pfs@fe.up.pt) Rui Maranhão (FEUP) 23 de Outubro, 2009 1 / 33 Sumário O Problema Grafos de Alocação de
Leia maisSistemas Operativos: Implementação de Processos
Sistemas Operativos: Implementação de Processos Pedro F. Souto (pfs@fe.up.pt) March 4, 2014 Sumário: Implementação de Processos Contexto (Estado) dum Processo Comutação de Processos Escalonamento de Processos
Leia maisSistemas Operativos: Deadlocks
Sistemas Operativos: Deadlocks Pedro F. Souto (pfs@fe.up.pt) March 30, 2012 Deadlocks Um deadlock é uma situação em que 2 ou mais processos ficam bloqueados indefinidamente pode ser uma race condition
Leia maisEscalonamento de Processos. Estratégia de atribuição do Processador aos Processos
Escalonamento de Processos Estratégia de atribuição do Processador aos Processos 1. Introdução 2. Políticas de Escalonamento 3. Critérios para um bom escalonador 4. Caracterização dos escalonadores 5.
Leia maisRecursos. Exemplos de recursos:
Deadlocks 1. Recursos 2. Introdução aos deadlocks 3. Algoritmo Ostrich (Avestruz) 4. Detecção e recuperação de deadlocks 5. Evitar deadlocks 6. Prevenir deadlocks 7. Considerações Recursos Exemplos de
Leia maisSistemas Operacionais. Escalonamento de processos
Sistemas Operacionais Escalonamento de processos 1 Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas
Leia maisProcessos. Escalonamento de Processos
Processos Escalonamento de Processos Objetivos do Escalonamento Maximizar a taxa de utilização da UCP. Maximizar a vazão ( throughput ) do sistema. Minimizar o tempo de execução ( turnaround ). Turnaround:
Leia maisArquitetura de Sistemas Operativos
Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Threads Conceito Um processo é um programa em execução. A execução de um processo é sequencial: pode-se caracterizar um processo pelo
Leia maisEscalonamento de Processos Estratégias de Escalonamento de Processos
Estratégias de Escalonamento de s Rossano Pablo Pinto, MSc. FATEC - Americana 15/0/008 O que é um sistema multiprogramável? compartilha a CPU entre diversos processos é desejável que os processos obtenham
Leia maisEstratégias de Escalonamento de Processos
Estratégias de Escalonamento de Processos Rossano Pablo Pinto, MSc. FATEC - Americana 15/02/2008 Prof. Ms. Rossano Pablo Pinto - FATEC Ame 1 O que é um sistema multiprogramável? compartilha a CPU entre
Leia maisQuestões de Provas de Períodos Anteriores
Sistemas Operacionais 2010/1 Questões de Provas de Períodos Anteriores 1) Dois importantes conceitos encontrados no sistema operacional Unix são: (i) modo de execução ( execution mode ); e (ii) contexto
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento) Aula 05 Objetivos de um sistema operacional são: Eficiência: relação entre o uso efetivo de um recurso e a quantidade desse recurso
Leia maisSOP - TADS Escalonamento de Processos
SOP - TADS Escalonamento de Processos Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Cronograma Conceito de Escalonamento
Leia maisEscalonamento de processos
de processos Carlos Gustavo A. da Rocha Nos computadores atuais frequentemente temos vários processos (threads) competindo por um pequeno número de CPUs Nestes casos uma escolha deve ser feita de qual
Leia maisProcessos. Escalonamento de Processos
Processos Escalonamento de Processos Objetivos do Escalonamento Maximizar a taxa de utilização da UCP. Maximizar a vazão ( throughput ) do sistema. Minimizar o tempo de execução ( turnaround ). Turnaround:
Leia maisSistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE III SUMÁRIO 4. GERÊNCIA DO PROCESSADOR: 4.1 Introdução; 4.2 Funções Básicas; 4.3 Critérios de Escalonamento; 4.4 Escalonamentos Não-Preemptivos
Leia maisSistemas Operativos: Concorrência
Sistemas Operativos: Concorrência Pedro F. Souto (pfs@fe.up.pt) March 16, 2012 Sumário Race Conditions e Secções Críticas Exclusão Mútua via Programação Exclusão Mútua via Inibição de Interrupções. Locks
Leia maisTemporização(Scheduling) de Processos. TemporobjectivomaximizarousodoCPU,i.e.tersempre um processo a executar.
Temporização(Scheduling) de Processos TemporobjectivomaximizarousodoCPU,ietersempre um processo a executar Filas de processos usadas em scheduling: Fila de tarefas: processos submetidos para execução,
Leia maisCapítulo 3 Deadlocks - Impasses
Capítulo 3 Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks 3.3. Algoritmo do avestruz 3.4. Detecção e recuperação de deadlocks 3.5. Evitando deadlocks 3.6. Prevenção de deadlocks 3.7. Outras
Leia maisProcessos. Escalonamento de Processos
Processos Escalonamento de Processos Objetivos do Escalonamento Maximizar a taxa de utilização da UCP. Maximizar a vazão ( throughput ) do sistema. Minimizar o tempo de execução ( turnaround ). Turnaround:
Leia maisProcessos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.
Objetivos do Escalonamento Maximizar a taxa de utilização da UCP. Processos Maximizar a vazão ( throughput ) do sistema. Minimizar o tempo de execução ( turnaround ). Turnaround: tempo total para executar
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Escalonamento CPU Um vez escalonado, o processo utiliza o processador, de modo: Não preemptivo (FIFO, SJF, Cooperativo) Término
Leia maisSSC0640 Sistemas Operacionais I
SSC64 Sistemas Operacionais I 2ª Aula Deadlocks Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados no livro
Leia maisProcessos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)
Aula Passada Processos (Aula 6) Escalonamento de Processos O SO gerencia os recursos do sistema de computação em benefício dos processos Para isso, mantem estruturas de controles Tabelas (memória, I/O,
Leia maisEscalonamento do CPU
Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho Função: escolher qual o processo pronto que corre em seguida Invocado possivelmente aquando: interrupções
Leia maisSISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios
SISTEMAS OPERACIONAIS Prof a. Roberta Lima Gomes (soufes@gmail.com) 1ª. Lista de Exercícios Data de Entrega: não há. O objetivo da lista é ajudar no estudo individual dos alunos. Soluções de questões específicas
Leia maisResumo: Sistemas Operacionais Abertos
Resumo: Sistemas Operacionais Abertos Prof. Michael A. Pontes Processos Um processo é um programa em execução. Enquanto um processo é executado, ele muda de estado. O estado de um processo é definido pela
Leia maisSistemas Operacionais. Gerência de Processador
Sistemas Operacionais Gerência de Processador Sumário 1. Introdução 2. Funções Básicas do Escalonamento 3. Critérios de Escalonamento 4. Escalonamento 1. Não-Preemptivo 2. Preemptivo 5. Políticas de Escalonamento
Leia maisEscalonamento no Unix. Sistemas Operacionais
Escalonamento no Unix Projeto do Escalonador O projeto de um escalonador deve focar em dois aspectos: Política de escalonamento estabelece as regras usadas para decidir para qual processo ceder a CPU e
Leia maisNa Aula Anterior... Escalonamento de Processos. Nesta Aula. Escalonamento. Comportamento de um Processo. Historicamente...
GSI018 Sistemas Operacionais 05/09/2016 Escalonamento de Processos Na Aula Anterior... Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Utilização de Processos
Leia maisAlgoritmos de escalonamento
Algoritmos de escalonamento Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas Filas; Utilizam escalonamento
Leia maisTemporização (Scheduling) de Processos
Temporização (Scheduling) de Processos Tem por objetivo maximizar o uso da CPU, i.e. ter sempre um processo a executar. Ð ÔÖÓ Ó Ù Ñ ÙÐ Ò Fila de tarefas: processos submetidos para execução, à espera de
Leia maisSistemas Operativos. Sumário. Escalonador da CPU. Por Prioridades Round Robin. ! Algoritmos de escalonamento
Escalonador da CPU Sumário! Algoritmos de escalonamento Por Prioridades Round Robin Por Prioridades! A cada processo é associada uma prioridade Geralmente um número inteiro (vamos considerar que os números
Leia maisCapítulo 7: Impasse (Deadlocks( Deadlocks)
Capítulo 7: Impasse (Deadlocks( Deadlocks) Capítulo 7: Impasse (Deadlocks( Deadlocks) O Problema do Impasse Modelo de Sistema Caracterização de Impasse Métodos para Manipular Impasses Prevenção de Impasse
Leia maisMAC422/5753 Sistemas Operacionais
MAC422/5753 Sistemas Operacionais Prof. Marcel P. Jackowski Aula #9 Sincronização no kernel e deadlocks Sobre sincronização... Tarefa complexa e sutil Exemplos através de código-fonte mostrado utilizando
Leia maisInfra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar
Escalonamento Decidindo qual processo vai executar Escalonamento de processos Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado
Leia maisEscalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software
Escalonamento Decidindo qual processo vai executar Escalonamento de processos Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado
Leia maisSistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução
Sistemas Operativos Objetivo O objetivo deste questionário é levá-lo a rever os conceitos básicos dos sistemas operativos, bem como os algoritmos de scheduling e mecanismos de sincronização estudados.
Leia maisEscalonamento da CPU
Escalonamento da CPU Sistemas Operacionais Charles Tim Batista Garrocho Instituto Federal de Minas Gerais IFMG Campus Ouro Branco https://garrocho.github.io charles.garrocho@ifmg.edu.br Sistemas de Informação
Leia maisLabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...
LabSO Gerência de Processos Retrospectiva da aula passada... AULA 4 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Na aula passada... Processos Estados do processo
Leia maisProgramação Concorrente. 2º Semestre 2010
Programação Concorrente 2º Semestre 2 Tópicos de Hoje Assunto: Deadlocks Livro Texto Capítulo 4; Conceitos Iniciais; Tipos de Recursos; Condições necessárias para ocorrência de deadlock; Um sistemas livre
Leia maisEscalonamento da CPU
Escalonamento da CPU Sistemas Operacionais Charles Tim Batista Garrocho Instituto Federal de São Paulo IFSP Campus Campos do Jordão garrocho.ifspcjo.edu.br/oso charles.garrocho@ifsp.edu.br Técnico em Informática
Leia maisInfra-Estrutura de Software. Escalonamento
Infra-Estrutura de Software Escalonamento Processos Concorrentes O Modelo de Multiprogramação Multiprogramação de quatro programas Modelo conceitual de 4 processos sequenciais, independentes Somente um
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 10: Escalonadores Preemptivos Diego Passos Última Aula Escalonadores Não-Preemptivos Escalonadores não-preemptivos agem: Quando um processo requisita E/S. Quando
Leia maisSISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar
- Aula 3-1. DEADLOCK Os sistemas computacionais estão repletos de recursos que podem ser usados por um processo por vez. Exemplo: CD-ROM, Driver de Fita Dat, etc. Ter dois processos simultaneamente gravando
Leia maisGrupo I [7 Val] 1. Considere os seguintes 3 algoritmos de escalonamento num sistema operativo de tempo virtual:
Número: Nome: LEIC/LERC 2012/13-1º Teste de Sistemas Operativos 24 de Novembro de 2011 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Justifique todas as respostas. Duração:
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 07: PROGRAMANDO COM THREADS EM LINGUAGEM C Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMANDO
Leia maisRedes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE III: GERÊNCIA DE RECURSOS SUMÁRIO 8. GERÊNCIA DO PROCESSADOR: 8.1 Introdução; 8.2 Funções Básicas; 8.3 Critérios de Escalonamento;
Leia maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento
Aula 3 Escalonamento Escalonamento Porque? Quando? Como? Critérios? Políticas de escalonamento Como avaliar? Referências: Capítulo 5: 5.1 a 5.3, 5.6 Porque Escalonar? Escalonamento controla compartilhamento
Leia maisProcessos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,
Processos Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Objetivos da aula Introduzir a noção de processo um programa em execução que é a base de toda a computação Descrever as várias
Leia maisDefinição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU
Definição? Algoritmo de Escalonamento de CPU 6 Terminado? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU? Executado quando ocorre estouro de Quantum ou interrupção do processo (I/O,
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento na prática) Aula 06 Sistemas atuais tem uma série de particularidades Multiprocessadores e multicore Existência de memória cache
Leia maisSistemas de Tempo-Real. Acesso exclusivo a recursos partilhados
Sistemas de Tempo-Real Aula 7 Acesso exclusivo a recursos partilhados O acesso exclusivo a recursos partilhados A inversão de prioridades como consequência do bloqueio Técnicas básicas para acesso exclusivo
Leia maisDEADLOCKS IMPASSES. Vinícius Pádua
DEADLOCKS IMPASSES O que é um Deadlock? 2 O que é um Deadlock? Cenário Dois processos : Gravar CD com dados do scanner Processo A solicita o CD é autorizado Processo B solicita o scanner é autorizado Processo
Leia maisDEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I - 1 0 SEM/12 PROVA I Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos Aluno: G A B A R I T O Escore: Responda às perguntas de forma
Leia maisSincronização e Comunicação entre Processos. Adão de Melo Neto
Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.
Leia maisEscalonamento no Unix. Sistemas Operacionais
Escalonamento no Unix Projeto do Escalonador O projeto de um escalonador deve focar em dois aspectos: Política de escalonamento estabelece as regras usadas para decidir para qual processo ceder a CPU e
Leia maisSistemas de Tempo-Real. Acesso exclusivo a recursos partilhados
Sistemas de Tempo-Real Aula 7 Acesso exclusivo a recursos partilhados O acesso exclusivo a recursos partilhados A inversão de prioridades como consequência do bloqueio Técnicas básicas para acesso exclusivo
Leia maisNotas da Aula 10 - Fundamentos de Sistemas Operacionais
Notas da Aula 10 - Fundamentos de Sistemas Operacionais 1. Escalonadores preemptivos Escalonadores preemptivos são aqueles que têm a capacidade de interromper a execução de um processo para realizar alterações
Leia mais14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo
Conceito de processo Os computadores executam várias operações ao mesmo tempo. - Compilar um programa; - Enviar um arquivo para a impressora; - Exibir uma página web; - Reproduzir músicas; - Receber mensagens
Leia maisSistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal
Sistemas Operacionais Aula 07: Scheduling da CPU Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Introduzir o Scheduling da CPU, que é a base dos sistemas operacionais multiprogramados
Leia maisSistemas Operacionais Gerenciamento de Processos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerenciamento de Processos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução Devido
Leia maisSistemas Distribuídos
Sistemas Distribuídos Deadlocks Referência Sistemas operacionais modernos Andrew S. TANENBAUM Prentice-Hall, 1995 Seção 11.5 pág. 340-344 2 Conteúdo Detecção de deadlock distribuído Detecção centralizada
Leia maisEscalonamento de Processos
Escalonamento de Processos Escalonamento de processos Multiprogramação visa maximizar uso da CPU Sempre que processos estão prontos disputam CPU Algoritmo de escalonamento: maneira de escolher o processo
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.
Leia maisSistemas Operacionais Aula 09: Deadlocks / Impasses. Ezequiel R. Zorzal
Sistemas Operacionais Aula 09: Deadlocks / Impasses Ezequiel R. Zorzal ezorzal@unifesp.br www.ezequielzorzal.com Objetivos Desenvolver uma descrição de deadlocks, que impedem que grupos de processos simultâneos
Leia maisSO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (http://flaviovdf.github.io)
SO: Escalonamento Sistemas Operacionais 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Aonde Estamos Processos Chapt 3 Threads Chapt 4 Vamos pular o Chapt 5 brevemente Sincronização e comunicação
Leia maisCapítulo 3 Deadlocks - Impasses
Capítulo 3 Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks 3.3. Algoritmo do avestruz 3.4. Detecção e recuperação de deadlocks 3.5. Evitando deadlocks 3.6. Prevenção de deadlocks Pearson
Leia maisSistemas Operacionais. DeadLock. Edeyson Andrade Gomes.
Sistemas Operacionais DeadLock Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula DeadLock Metas Algoritmos 2 DeadLock Um estado de deadlock ocorre quando dois ou mais processos estão esperando por
Leia maisEscalonamento no Unix. Sistemas Operacionais
Escalonamento no Unix Introdução Unix é um S.O. multiprogramado de tempo compartilhado: Permite que vários processos sejam executados concorrentemente. Processos ativos competem pelos recursos do sistema
Leia maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 2. Gerência de Processos
Aula 2 Gerência de Processos Gerência de Processos O que são Processos e Threads? Porque são necessários? Como são implementados? Como são controlados? Escalonamento Referências: Capítulo 4: 4.1 a 4.5
Leia maisSistemas Operacionais. Escalonamento de Processos
Escalonamento de Processos arliones.hoeller@ifsc.edu.br de fevereiro de baseado no material do Prof. Fröhlich em http://www.lisha.ufsc.br/~guto Gerenciamento de processos Processo É uma instância de um
Leia maisDeadlocks (impasses)
Deadlocks (impasses) Exemplos de recursos impressoras, drives, tabelas, memória, tempo de processador Sequência de eventos necessária para usar um recurso Solicitar recurso Usar recurso Liberar recurso
Leia maisSistemas de Computação. Processos e escalonamento
Processos e escalonamento Sistema operacional Programa que age como intermediário entre o usuário de um computador e o hardware Objetivos: Executar programas do usuário e facilitar a resolução de problemas
Leia maisNotas da Aula 11 - Fundamentos de Sistemas Operacionais
Notas da Aula 11 - Fundamentos de Sistemas Operacionais 1. Escalonamento de Tempo Real Em sistemas de tempo real, o objetivo principal do escalonador é garantir que todos os processos sejam executados
Leia maisGerência do Processador. Adão de Melo Neto
Gerência do Processador Adão de Melo Neto 1 Introdução Sistemas Multiprogramáveis: Múltiplos processos podem permanecer na memória principal compartilhando o uso da CPU. POLÍTICA DE ESCALONAMENTO São um
Leia mais6 ESCALONAMENTO DE CPU
6 ESCALONAMENTO DE CPU O escalonamento de CPU é ponto chave da multiprogramação. Ela permite que haja mais de um processo em execução ao mesmo tempo. Em ambientes com um único processador, o escalonador
Leia maisIntrodução aos Sistemas Operacionais. Threads
Introdução aos Sistemas Operacionais Threads Eleri Cardozo FEEC/Unicamp O que é uma Thread? Uma thread (linha de controle) é uma unidade de execução e de controle, alocação e compartilhamento de recursos
Leia maisSistemas Operacionais Aula 7
Sistemas Operacionais Aula 7 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Leia maisEstados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos
Infra Estruturas Computacionais Professor: André Ferreira andre.ferreira@ifba.edu.br Material baseado: Prof.ª Renata Vilas e outros Estados dos processos novo admissão condição satisfeita pronto carga
Leia maisInfra-Estrutura de Software. Sistemas Operacionais Revisão
Infra-Estrutura de Software Sistemas Operacionais Revisão Sistema Computacional em Camadas Não pode executar instruções que afetam o controle da máquina ou fazem E/S GUI ou shell Acesso completo a todo
Leia maisUFRJ IM - DCC. Sistemas Operacionais I. Unidade III. Escalonamento de Processos. 24/04/2014 Prof. Valeria M. Bastos
UFRJ IM - DCC Sistemas Operacionais I Unidade III Escalonamento de Processos 24/04/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Processador Escalonamento de Processos Conceituação Critérios de
Leia maisEscalonamento. Pedro Cruz. EEL770 Sistemas Operacionais
Escalonamento Pedro Cruz EEL770 Sistemas Operacionais Avisos Propostas de trabalho já foram revisadas Todos os grupos foram comunicados 2 Jantar dos filósofos - Dijkstra Filósofos estão jantando em uma
Leia maisSistemas Operacionais. Deadlock
Sistemas Operacionais Deadlock Deadlocks! Recursos: hardware ou informação! Preemptivo X não preemptivo! Uso do Recurso:! Pedido (Request ou Open)! Uso! Liberação! Um conjunto de processos está em deadlock
Leia maisGERENCIAMENTO DE PROCESSOS E MEMÓRIA
GERENCIAMENTO DE PROCESSOS E MEMÓRIA GRUPO ELAINE P. S. ALVES RAFAEL T. ROLDÃO VINICIUS A. ZANQUINI SAMUEL DISCIPLINA: SISTEMAS OPERACIONAIS 2º QUAD/2010 PROFº MARCELO NASCIMENTO MOTIVAÇÃO 1. Sistema de
Leia maisSistemas Operacionais
Introdução Sistemas Operacionais Gerência do processador (Escalonamento na prática) Aula 06 Sistemas atuais tem uma série de particularidades Multiprocessadores e multicore Existência de memória cache
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1203 - SISTEMAS OPERATIVOS 2º Semestre 2005/2006 27/7/2007 Resolução 1. Identifique três situações em que ocorra uma transição do modo de execução utilizador
Leia maisConceito de Processo. Estados de Processos. Diagrama de Estados de Processos
Conceito de Processo Módulo 4: Processos Um Sistema Operacional executa uma variedade de programas: Sistemas de processamento em lotes (batch) processa jobs Sistemas de tempo partilhado (time shared) roda
Leia maisAlgoritmos Distribuídos (deadlock) ALGORITMOS DISTRIBUÍDOS Deadlock. Algoritmos Distribuídos (deadlock) Algoritmos Distribuídos (deadlock)
Um deadlock é causado pela situação onde um conjunto de processos está bloqueado permanentemente, i.e., não conseguem prosseguir a execução, esperando um evento que somente outro processo do conjunto pode
Leia maisProcessos. Estruturas de Controle
Processos Estruturas de Controle Processos e Recursos (1) LPRM/DI/UFES 2 Processos e Recursos (2) O S.O. gerencia recursos computacionais em benefício dos diversos processos que executam no sistema. A
Leia maisGerência de Recursos. Gerência do Processador
Gerência de Recursos Gerência do Processador Escalonamento Não-Preemptivos e Preemptivos Preempção - possibilidade de o SO interromper um processo em execução e substituí-lo por um outro. O Escalonamento
Leia maisCapítulo 5: Escalonamento da CPU. Operating System Concepts 8th Edition
Capítulo 5: Escalonamento da CPU Capítulo 5: Escalonamento de CPU Conceitos Básicos Critérios de Escalonamento Algoritmos de Escalonamento Escalonamento de Threads Escalonamento de Multiprocessadores Exemplos
Leia maisSistemas Operacionais
Sistemas Operacionais Processos - Parte 3 Prof. Dr. Fábio Rodrigues de la Rocha (Processos - Parte 3) 1 / 19 Algoritmos de Escalonamento Nas aulas anterior vimos o ESCALONADOR, que é uma parte do SO responsável
Leia maisProcessos. Processo (1) Processo (2) Processo (3) Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisProcessos. Conceitos Básicos
Processos Conceitos Básicos Processo (1) Abstração usada pelo S.O. para designar a execução de um programa. É caracterizado por uma thread de execução, um estado corrente e um conjunto associado de recursos
Leia maisSistemas Operacionais
ANHANGUERA Sistemas Operacionais Prof. Esp. Rafael Gross Processos Sumário Introdução Conceito de processo Estrutura do processo Estados do processo Mudanças de estado do processo Criação e eliminação
Leia mais