200 likes | 465 Views
Recursos. Recurso: objeto físico ou abstrato necessário para que uma tarefa seja executada exemplos: tempo de CPU, memória principal, dispositivos de E/S, arquivos, caixas postais Tipos de recursos compartilháveis, preemptivos, serialmente reusáveis, consumíveis Propriedades de recursos
E N D
Recursos • Recurso: objeto físico ou abstrato necessário para que uma tarefa seja executada • exemplos: tempo de CPU, memória principal, dispositivos de E/S, arquivos, caixas postais • Tipos de recursos • compartilháveis, preemptivos, serialmente reusáveis, consumíveis • Propriedades de recursos • discretos, limitados • Classes de recursos • conjuntos de recursos idênticos • instâncias idênticas de um recurso podem estar disponíveis
Gerenciamento de Recursos • Gerenciador de Recursos • módulo do sistema operacional responsável pelas solicitações para utilização de recursos de uso exclusivo • eventos necessários para utlizar recursos: • requisitar recurso • utilizar recurso • liberar recurso • se um recurso requisitado, ou instância dele, não está disponível então o processo solicitante é obrigado a esperar que ele se torne disponível (bloqueado a espera da condição recurso disponível)
Impasse (deadlock) • Definição • um conjunto de processos se encontra num estado de impasse (deadlock) quando cada processo deste conjunto está esperando (bloqueado) por um evento que só poderá ser realizado por um outro processo deste mesmo conjunto • os principais eventos relacionados são: requisição e liberação de recursos
Caracterização de Impasse • Condições necessárias • Exclusão Mútua • recurso utilizado de modo não compartilhado • em cada instante o recurso pode estar disponível ou atribuído a um processo • Mantém e Espera • processo que mantém recurso que lhe foi concedido pode requisitar um outro recurso • processo espera pela concessão desse outro recurso que está sendo mantido por um outro processo
Caracterização de Impasse • Não preempção • recursos não podem ser preemptados • recursos só podem ser liberados voluntariamente pelo processo que mantém a sua concessão • Espera circular • deve existir uma cadeia circular de dois ou mais processos, cada um dos quais está esperando por um recurso mantido pelo próximo elemento da cadeia • os recursos solicitados e que causam o bloqueio de processos não podem ser liberados porque os processos estão bloqueados
Caracterização de Impasse D1 detém requisita P2 P1 D2 detém requisita grafo de alocação / requisição de recursos
Impasses • Áreas de Estudo • como prevenir o impasse • como evitar o impasse • como detectar o impasse • como recuperar de um impasse • Métodos de Manipulação • o problema de impasse não ocorrerá • prevenir • evitar • o estado de impasse poderá ocorrer • detectar • recuperar • a recuperação de um estado de impasse pode ser difícil e será caro
Postergação Indefinida(starvation) • um processo pode ficar esperando indefinidamente por recursos mesmo quando recursos podem se tornar disponíveis • processos que competem por recursos podem levar a uma situação de postergação indefinida • fazer um processo esperar indefinidamente por recursos que são fornecidos, quando disponíveis, sempre para outros processos • causada por influência das políticas de escalonamento de recursos de sistema
Prevenindo de Impasse • para que ocorra um impasse é necessário que as quatro condições necessárias possam verificadas • garantindo que no mínimo uma dessas condições necessárias não acontece, se está prevenindo a ocorrência do impasse
Políticas de Prevenção • Alocação num único disparo • todos os recursos necessários para a execução de um dado processo devem ser solicitados de uma só vez • todos os recursos solicitados , se disponíveis, serão entregue ou nenhum recurso será concedido • nega mantém e espera • má utilização de recursos • divisão em subprocessos com necessidades independentes de recursos • postergação indefinida pode ocorrer
Políticas de Prevenção • Libera para não esperar mantendo • quando a concessão para utilizar recursos não é dada então os recursos mantidos devem ser liberados • recursos liberados podem ser solicitados novamente • nega a não preempção • pode acarretar perda de processamento • o custo pode ser substancial • a postergação indefinida pode ocorrer
Políticas de Prevenção • Alocação Hierárquica • numeração dos recursos com números únicos • processos devem solicitar recursos na ordem ascendente das suas numerações • um processo só poderá solicitar recursos de numeração mais alta do que os que ele mantém • nega a espera circular • pode acarretar numa má utilização de recursos
Evitando o Impasse • o impasse pode ser evitado pelo cuidado que se deve ter na alocação de recursos • requisitar informações adicionais sobre como os recursos deverão ser utilizados • Política para evitar o impasse • declaração de número máximo de recursos a serem utilizados • fornecer informações a priori sobre o número máximo de cada tipo de recurso que pode ser requisitado • algoritmo da previsão de requisições - algoritmo do banqueiro(advance-claim algorithm)
Evitando o Impasse • Algoritmo do Banqueiro • cada processo fornece informações sobre o número máximo de requisições para cada recurso que serão realizadas • o algoritmo do banqueiro garante que o estado de impasse nunca vai ocorrer • as requisições de recursos fazem que o estado de alocação de recursos seja analizado para garantir a não ocorrência de impasse • o estado de alocação de recursos é definido pelo número de recursos disponíveis e alocados e o máximo das requisições dos processos
Evitando o Impasse • Algoritmo do Banqueiro • estado seguro: um estado é seguro (safe) se o sistema pode alocar recursos a cada processo, até o seu máximo, em qualquer ordem e ainda evitar o impasse • se o sistema aloca recursos a um dado processo e o estado de impasse pode ocorrer então o estado é inseguro (unsafe) • um estado seguro não é um estado de impasse • um estado inseguro pode ser um estado de impasse
Detectando o Impasse • Detecção de impasse • processo que determina se existe um estado de impasse corrente • processos e recursos implicados no impasse devem ser identificados • algoritmos para detecção de impasse geram uma sobrecarga (overhead) do sistema • compromisso entre detectar o impasse e poder recuperar o sistema desse estado
Política de Detecção de Impasse • Modelo do Grafo de Alocação de Recursos • notação utilizada para permitir que grafos dirigidos indiquem situação de requisição e aquisição de recursos
Política de Detecção de Impasse • redução de um grafo de alocação de recursos, onde processos que podem ser completados e processos em impasse podem ser determinados • se um processo pode obter concessões então o grafo pode ser reduzido para aquele processo • se um grafo pode ser reduzido para todos os seus processos então não existe impasse • se um grafo não pode ser reduzido para todos os seus processos então existe o impasse (grafo irredutível)
Recuperando o Impasse • quando se verifica que o sistema se encontra em estado de impasse, o impasse deve ser quebrado • a quebra de um estado de impasse é realizada pela remoção de uma das condições necesárias para a ocorrência de impasse
Política de Recuperação de Impasse • tomar recursos de processos que permitam que outros processos que também estejam em impasse possam continuar • nega a não preempção • recuperação pode parecer não apropriada • processos são anulados (killed) para que recursos possam ser liberados • necessidade de muito trabalho para poder selecionar um processo a ser anulado (considerar prioridades) • processos selecionados perdem trabalho realizado • uma alternativa é a criação de pontos de checagem (check pointers) para que ele possa ser continuado destes pontos