Baixe o app para aproveitar ainda mais
Prévia do material em texto
Revisão para prova SO. Introdução. 1 - Como seria utilizar um computador sem sistemas operacional? Qual suas duas principais funções? Não funcionaria. Pois sem um intermediário entre os usuários e os componentes de hardware, não haveria como utilizar os recursos disponíveis para aplicações, que por sinal não existiria sem o sistema operacional. Sistema Operacional possibilita o uso eficiente e controlado dos recursos de hardware e implementam políticas e estruturas de software de modo a assegurar um melhor desempenho do sistema de computação. 2- Quais as principais dificuldades que um programador teria no desenvolvimento de uma aplicação em um ambiente sem sistema operacional? A maior dificuldade que o programador teria seria em programar em linguagem de máquina, já que o hardware não possui ambiente programável. O programador teria que programar todo os componentes de hardware: vídeo, teclado, mouse, placa de rede, disco rígido. Cada tarefa que a aplicação fosse fazer teria que ser detalhada num nível muito baixo para que o computador funcione. 3 - Explique o conceito de máquina virtual. Qual a grande vantagem de utilizar esse conceito? Máquina virtual é o nome dado a uma máquina, implementada através de software, no qual podemos criar diversas máquinas virtuais independentes e isoladas, onde cada máquina oferece um cópia virtual do hardware, incluindo modos de acesso, interrupções, dispositivos de E/S, etc. e seu próprio SO como se fosse um computador real, mas utilizando dos mesmos recursos de hardware da máquina real na qual foi instalada. 4 - Defina o conceito de uma máquina de camadas. Separação das funções por camadas onde uma camada somente pode chamar uma rotina da camada imediatamente abaixo. 5 - Quais os tipos de sistemas operacionais existentes? Sistemas monoprogramáveis, sistemas multiprogramáveis s sistemas com vários processadores 6 - Por que dizemos que existe subutilização de recursos em sistemas monoprogramáveis? Porque em sistemas monoprogramáveis somente é possível a execução de um programa por vez. Como um programa não utiliza todos os recursos do sistema totalmente ao longo da sua execução, existe ociosidade e, consequentemente, subutilização de alguns recursos. 7 - Qual a grande diferença entre sistemas monoprogramáveis e multiprogramáveis? Os sistemas monoprogramáveis se caracterizam por permitir que o processador, a memória e os periféricos permaneçam exclusivamente dedicados à execução de um único programa. Nos sistemas multiprogramáveis ou multitarefa, os recursos computacionais são compartilhados entre os diversos usuários e aplicações. Enquanto em sistemas monoprogramáveis existe apenas um programa utilizando os recursos disponíveis, nos multiprogramáveis várias aplicações compartilham esses mesmos recursos. 8 - Quais as grandes vantagens dos sistemas multiprogramáveis? As vantagens são: redução do tempo de resposta das aplicações processadas no ambiente e de custos, a partir do compartilhamento dos diversos recursos do sistema entre as diferentes aplicações. 9 - Um sistema monousuário pode ser um sistema multiprogramável? Dê um exemplo. Sim, pois um único usuário executa diversas aplicações concorrentemente em um SO. Ex: Windows 7. 10 - Quais são os tipos de sistemas multiprogramáveis? Sistemas batch, sistemas de tempo compartilhado e sistemas de tempo real. 11 - O que caracteriza o processamento batch? Quais aplicações podem se processadas nesse tipo de ambiente? A principal característica é a de não exigir a interação do usuário com a aplicação. Alguns exemplos de aplicações originalmente processadas em batch são programas envolvendo cálculos numéricos, compilações, ordenações, backups e todos aqueles onde não é necessária a interação com o usuário. 12 - Quais as vantagens de sistemas de tempo compartilhado? Quais as vantagens em utilizá-los? Já respondida na 8. 13 - Qual a grande diferença entre sistemas de tempo compartilhado e tempo real? Quais aplicações são indicadas para sistemas em tempo real? Nos de tempo Compartilhados temos o fator tempo de resposta já nos sistemas de tempo real, os tempos de resposta devem estar dentro de limites rígidos. Aplicações de controle de processos, como no monitoramento de refinarias de petróleo, controle de tráfego aéreo em geral onde é preciso uma grande precisão de cálculos. 14 - O que são sistemas com múltiplos processadores e quais as vantagens em utilizá-los? Os sistemas com múltiplos processadores possuem duas ou mais UCPs interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em partes para serem executadas simultaneamente em mais de um processador. 15 - Qual a grande diferença entre sistemas fortemente acoplados e fracamente acoplados? Nos sistemas fortemente acoplados existem vários processadores compartilhando uma única memória física e dispositivos de I/O, sendo gerenciados por apenas um sistema operacional. Os sistemas fracamente acoplados possuem dois ou mais sistemas computacionais conectados através de linhas de comunicação. Cada sistema funciona de forma independente, possuindo seu próprio sistema operacional e gerenciando seus próprios recursos, como UCP, memória e dispositivos deI/O. 16 - O que é um sistema SNP? Qual a diferença para um sistema NUPA? Nos sistemas SMP, o tempo de acesso à memória principal pelos diversos processadores é uniforme. Nos sistemas NUMA, existem diversos conjuntos de processadores e memória principal interconectados, onde o tempo de acesso à memória principal varia em função da sua localização física. 17 - O que é um sistema fracamente acoplado? Qual a diferença entre sistemas operacionais em rede e sistemas distribuídos? Os sistemas fracamente acoplados possuem dois ou mais sistemas computacionais conectados através de linhas de comunicação. Cada sistema funciona de forma independente,possuindo seu próprio sistema operacional e gerenciando seus próprios recursos, como UCP,memória e dispositivos de I/O. Os sistemas operacionais de rede permitem que um host compartilhe seus recursos, como uma impressora ou diretório, com os demais hosts da rede enquanto que nos sistemas distribuídos, o sistema operacional esconde os detalhes dos hosts individuais e passa a tratá-los como um conjunto único, como se fosse um sistema fortemente acoplado. 18 - Qual os benefícios de um sistema com múltiplos processadores em um computador pessoal? A experiência do usuário será maximizada já que ele conseguirá utilizar várias aplicações ao mesmo tempo sem perder usabilidade do sistema operacional. Cada aplicação será dividida entre os processadores. 19 - Qual seria o sistema operacional indicado para o uso em um servidor de aplicações em um ambiente corporativo? Servidor de aplicação. 20 - Qual seria o sistema operacional indicado para executar uma aplicação que manipula grande volume de dados e necessita de um baixo tempo de resposta? Sistema em tempo real. Concorrência. 1 - O que é concorrência e como esse sistema está presente em sistemas operacionais multiprogramáveis? Concorrência é o princípio básico para projeto e implementação dos sistemas operacionais multiprogramáveis onde é possível o processador executar instruções em paralelo com operações de E/S. Isso possibilita a utilização concorrente da UCP por diversos programas sendo implementada de maneira que, quando um programa perde o uso do processador e depois retorna para continuar o processamento, seu estado deve ser idêntico ao do momento em que foi interrompido. O programa deverá continuarsua execução exatamente na instrução seguinte àquela em que havia parado, aparentando ao usuário que nada aconteceu. 2 - Por que o mecanismo de interrupção é fundamental para implementação da multiprogramação? Porque é em função desse mecanismo que o sistema operacional sincroniza a execução de todas as suas rotinas e dos programas dos usuários, além de controlar dispositivos. 3 - Explique o mecanismo de funcionamento das interrupções. Uma interrupção é sempre gerada por algum evento externo ao programa e, neste caso, independe da instrução que está sendo executada. Ao final da execução de cada instrução, a unidade de controle verifica a ocorrência de algum tipo de interrupção. Neste caso, o programa em execução é interrompido e o controle desviado para uma rotina responsável por tratar o evento ocorrido, denominada rotina de tratamento de interrupção. Para que o programa possa posteriormente voltar a ser executado, é necessário que, no momento da interrupção, um conjunto de informações sobre a sua execução seja preservado. Essas informações consistem no conteúdo de registradores, que deverão ser restaurados para a continuação do programa. 4 - O que são eventos síncronos e assíncronos? Como estes eventos estão relacionados ao mecanismo de interrupção e exceção? Evento síncronos são resultados direto da execução do programa corrente. Tais eventos são previsíveis e, por definição, só podem ocorrer um único de cada vez. Eventos assíncronos não são relacionados à instrução do programa corrente. Esses eventos, por serem imprevisíveis, podem ocorrer múltiplas vezes, como no caso de diversos dispositivos de E/S informarem ao processador que estão prontos para receber ou transmitir dados. Uma interrupção é um evento assíncrono enquanto uma exceção é um evento síncrono. 5 - Dê exemplos de eventos associados ao mecanismo de exceção. Uma instrução que gere a situação de overflow ou uma divisão por zero. 6 - Qual a vantagem da E/S controlada por interrupção comparada com a técnica de polling? Na E/S controlada por interrupção, as operações de E/S podem ser realizadas de uma forma mais eficiente. Em vez de o sistema periodicamente verificar o estado de uma operação pendente como na técnica de polling, o próprio controlador interrompe o processador para avisar do término da operação. Com esse mecanismo, o processador, após a execução de um comando de leitura ou gravação, permanece livre para o processamento de outras tarefas 7 - O que é DMA e qual a vantagem desta técnica? A técnica de DMA permite que um bloco de dados seja transferido entre a memória principal e dispositivos de E/S, sem a intervenção do processador, exceto no início e no final da transferência. Quando o sistema deseja ler ou gravar um bloco de dados, o processador informa ao controlador sua localização, o dispositivo de E/S, a posição inicial da memória de onde os dados serão lidos ou gravados e o tamanho do bloco. Com estas informações, o controlador realiza a transferência entre o periférico e a memória principal, e o processador é somente interrompido no final da operação. 8 - Como a técnica de buffering permite aumentar a concorrência em um sistema computacional? Como o buffering permite minimizar o problema da disparidade da velocidade de processamento existente entre o processador e os dispositivos de E/S, esta técnica permite manter, na maior parte do tempo, processador e dispositivos de E/S ocupados. 9 - Explique o mecanismo de spooling de impressão. No momento em que um comando de impressão é executado, as informações que serão impressas são gravadas antes em um arquivo em disco, conhecido como arquivo de spool, liberando imediatamente o programa para outras atividades. Posteriormente, o sistema operacional encarrega-se em direcionar o conteúdo do arquivo de spool para a impressora. Estrutura do sistema operacional 1. O que é o núcleo do sistema e quais são suas principais funções? É o conjunto de rotinas que oferece serviços aos usuário s, suas aplicações, além do próprio sistema operacional. As principais f unções do núcleo encontradas na maioria dos sistemas comerciais são: tratamento de interrupções e exceções; criação e eliminação de processos e threads; sincronização e comunicação entre processos e threads; escalonamento e controle dos processos e threads; gerência de memória; gerência do sistema de arquivos; gerência de dispositivos de E/S; suporte à r edes locais e distribuídas; contabilização do uso do sistema; auditoria e segurança do sistema. 2. O que são instruções privilegiadas e não privilegiadas? Qual a relação dessas instruções com os modos de acesso? Instruções privilegiadas são instruções que só devem ser executadas pelo sistema operacional ou sob sua supervisão, impedindo, assim, a ocorrência de problemas de segurança e integridade do sistema. As instruções não -privilegiadas não oferecem risco ao sistema. Quando o processador trabalha no modo usuário, uma aplicação só pode executar instruções não -privilegiadas, tendo acesso a um número reduzido de instruções, enquanto no modo kernel ou supervisor a aplicação pode ter acesso ao conjunto total de instruções do processador. 3. Explique como funciona a mudança de modos de acesso e dê um exemplo de como um programa faz uso desse mecanismo. Sempre que um programa necessita executar uma instrução privilegiada, a solicitação deve ser realizada através de uma chamada a uma system call, que altera o modo de acesso do processador do modo usuário para o modo kernel. Ao término da execução da rotina do sistema, o modo de acesso retorna para o modo usuário. 4. Como o kernel do sistema operacional pode ser protegido pelo mecanismo de modos de acesso? Através do modo usuário. Neste modo, todos os comandos não privilegiados podem ser executados. Todos os aplicativos são executados no modo usuário, e enviam as instruções para o modo kernel que avaliam a segurança e garantia da execução protegida de cada "system call". Este forma de chamadas identifica se o aplicativo possui permissão para executar o comando. 5. Por que as rotinas do sistema operacional possuem instruções privilegiadas? Como é o sistema operacional que controla tudo, apenas ele tem o poder de dizer o que está certo ou errado. Assim ele mesmo é responsável por qualquer situação de risco para o hardware ou software. Usar o modo kernel, o sistema pode administrar a memória de forma transparente, e também deve saber a hora de cada evento acontecer. No modo kernel, ações delicadas são realizadas e é seguro ao máximo para não falhar. para gerenciar uma memória, liberar o espaço de memória utilizado por um aplicativo, não deve ser uma tarefa realizada pela programação do programador, mas sim pela observação do sistema operacional. operações deste tipo, são delicadas e devem ser executadas com segurança. para evitar erros e intenções maliciosas, apenas o sistema operacional consegue fazer isso, e só realmente faz se estiver seguro. 6. O que é uma system calls e qual sua importância para a segurança do sistema? System call é uma chamada do sistema, como sua própria tradução indica. em uma chamada ao sistema, o sistema operacional recebe um comando e possíveis parâmetros. como resposta, recebe um outro código, que pode indicar sucesso, falha ou até mesmo o resultado do próprio comando. No processo de receber o comando, o sistema identifica o aplicativo que fez a chamada e verificar a sua permissãopara execução do comando. dada a permissão executa e retorna o resultado. 7 - Quais das instruções a seguir devem ser executadas apenas pelo modo kernel? Desabilitar todas as interrupções, consultar data e hora do sistema, alterar a data e hora do sistema, alterar as informações residentes no núcleo do sistema, somar duas variáveis declaradas dentro de um programa, realizar um desvio para uma instrução dentro do próprio programa e acessar diretamente posições no disco. Desabilitar todas as interrupções, alterar a data e hora do sistema, realizar um desvio para uma instrução dentro do programa e acessar diretamente posições do disco 8 - Pesquise comandos disponíveis em linguagens de controle de sistemas operacionais. 9 - Explique o processo de ativação (boot) do sistema operacional. Quando o computador é ligado, não existe nada na memória, então o primeiro programa a ser chamado, é chamado boot, que fica gravado na memória rom. Este programa chama um programa que testa a existência dos recursos mínimos para inicializar o sistema e se comunicar com o hardware. este sistema se chama post (power on self test), que identifica possíveis erros do hardware, como falta de memória, teclado etc. Se tudo estiver ok, é verificado a existência de algum sistema operacional instalado em algum dispositivo. Quando encontrado ele chama procura por um espaço chamado boot sector, que contém as informações iniciais para carregar o sistema operacional na memória. 10 - Compare as arquiteturas monolítica e de camadas. Quais as vantagens e desvantagens de cada arquitetura? A primeira, é composta por módulos que se comunicam livremente e a segunda é arquitetada em camadas, classificando as funções em cada uma destas camadas. A arquitetura monolítica funcionou muito bem até o sistema operacional se tornar complexo. Como foi evoluindo muito rápido, também se tornou complexo e de difícil manutenção. 11 - Quais as vantagens do modelo de máquina virtual? Permite executar uma instrução sobre um computador virtual, desta forma não prejudica o hardware real. Sendo que uma computador real pode conter várias máquinas virtuais, qualquer comando não prejudica as outras máquinas virtuais, apenas a que está em execução. Processos 1. Defina o conceito de processo. Um processo pode ser definido como o ambiente onde um programa é executado. Este ambiente, além das informações sobre a execução, possui também o quanto de recursos do sistema cada programa pode utilizar, como o espaço de endereçamento, tempo de processador e área em disco. 2. Por que o conceito de processo é tão importante projeto de sistemas multiprogramáveis? Através de processos, um programa pode alocar recursos, compartilhar dados, trocar informações e sincronizar sua execução. Nos sistemas multiprogramáveis os processos são executados concorrentemente, compartilhando o uso do processador, memória principal, dispositivos de E/S dentre outros recursos. 3. É possível que um programa execute no contexto de um processo e não execute no contexto de outro? Por quê? Sim, pois a execução de um programa pode necessitar de recursos do sistema que um processo pode possuir enquanto outro não. 4. Quais partes compõem um processo? Um processo é formado por três partes, conhecidas como contexto de hardware, contexto de software e espaço de endereçamento, que juntos mantêm todas as informações necessárias à execução de um programa. 5. O que é o contexto de hardware de um processo? como é a implementação da troca de contexto ? Quando um processo está em execução, o seu contexto de hardware está armazenado nos registradores do processador. No momento em que o processo perde a utilização da UCP, o sistema salva as informações no contexto de hardware do processo. O sistema operacional gerencia a mudança de contexto, base para a implementação da concorrência, que consiste em salvar o conteúdo dos registradores do processo que está deixando a UCP e carregá-lo com os valores referentes ao do novo processo que será executado. Se resume em substituir o contexto de hardware de um processo pelo outro. 6. Qual a função do contexto de software? Exemplifique cada grupo de informação. No contexto de software de um processo são especificados limite s e características dos recursos que podem ser alocados pelo processo, como o número máximo de arquivos abertos simultaneamente, prioridade de execução e tamanho do buffer para operações de E/S. É composto por três grupos de informações sobre o processo: Identificação, quotas e privilégios. Identificação: Cada processo criado pelo sistema recebe uma identificação única (PID) representada por um número. Quotas: As quotas são os limites de cada recurso do sistema que o processo pode alocar. (número máximo de arquivos abertos, número máximo de operações de E/S, etc.) Privilégios: Os privilégios definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processos e ao sistema operacional. 7. O que é o espaço de endereçamento de um processo? O espaço de endereçamento é a área da memória pertencente ao processo onde instruções e dados do programa são armazenados para execução. 8. Como o sistema operacional implementa o conceito de processo? Qual a estrutura de dados índice para organizar os diversos processos na mem principal? O processo é implementado pelo sistema operacional através de uma estrutura de dados chamada bloco de controle do processo (Process Control Block — PCB). A partir do PCB, o sistema operacional mantém todas as informações sobre o contexto de hardware, contexto de software e espaço de endereçamento de cada processo. 9. Defina os cinco estados possíveis de um processo. Criação: A criação de um processo ocorre a partir do momento em que o sistema operacional adiciona um novo PCB à sua estrutura e aloca um espaço de endereçamento na memória para uso. Execução: Quando está sendo processado pela UCP. Pronto: Quando aguarda apenas para ser executado. Espera: Quando está aguardando por um evento externo ou por algum recurso para prosseguir seu processamento. Término: Não poderá ter mais nenhum programa executando no seu contexto, porém o S.O ainda mantém suas informações de controle presentes em memória 12. Explique a diferença entre processos foreground e background. Foreground: É aquele que permite a comunicação direta de usuário com o processo durante o seu processamento. Background: Não existe a comunicação com o usuário durante o seu processamento. 13. Qual a relação entre processo e arquitetura microkernel? A arquitetura microkernel implementa o uso intensivo de processos que disponibilizam serviços para processos das aplicações e do próprio sistema operacional. 14. Dê exemplos de aplicações CPU-bound e I/O-bound. CPU-bound: É encontrado em aplicações científicas que efetuem muitos cálculos. I/O-bound: É encontrado em aplicações comerciais, que se baseiam em leitura, processamento e gravação. Threads 1 - Como uma aplicação pode implementar concorrência em um ambiente Monothread? A aplicação deve implementar a concorrência através do uso de Múltiplos processos independentes ou subprocessos, permitindo dividir uma aplicação em partes que podem trabalhar de forma concorrente. 2 - Quais os problemas de aplicações concorrentes desenvolvidas em ambiente Monothread? O uso de múltiplos processos e subprocessos geram gastos de recursos do sistema, consumindo tempo deprocessamento e espaço na memória Principal, tanto para alocar ou desalocar recursos. Cada processo tem endereçamento diferente, isso significa que a comunicação entre esses processos se torna muito lenta e difícil de se programar, nesse caso usa-se técnicas muito complicadas como semáforos,pipes, sinais, memória compartilhada ou troca de mensagens. 3 - O que é um ambiente Multithread e quais as vantagens de sua utilização? A ideia do ambiente Multithread é trabalhar de forma concorrente dentro do mesmo processo, dividindo as tarefas em várias tarefas menores chamadas de thread ou sub-rotinas. O thread é tratado pelo processador como um processo. A vantagem é a minimização de recursos do sistema, e ganho de desempenho uma vez que os processos demandam muito tempo com a criação, troca e eliminação de processos. Os threads trabalhar de forma cooperativa e Utilizam o mesmo espaço de endereçamento. Isso torna o acesso às informações mais rápida e simples, pois evita mudança de modo de acesso e permissão de acesso. 4 - Explique a diferença entre unidade de alocação de recursos e unidade de escalonamento. Com a unidade de alocação de recursos o processador seleciona um processo para execução e com a unidade de escalonamento permite a execução de threads. 5 - Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre Threads de um mesmo processo? A vantagem é permitir o compartilhamento de dados entre os threads de maneira mais rápida e eficiente. 9 - Compare os pacotes de threads em modo usuário e modo kernel? Threads em modo usuário (TMU) são implementados pela aplicação e não pelo sistema operacional. Para isso, deve existir uma biblioteca de rotinas que possibilita à aplicação realizar tarefas como criação/eliminação de threads, troca de mensagens entre threads e uma política de escalonamento. Neste modo, o sistema operacional não sabe da existência de múltiplos threads, sendo responsabilidade exclusiva da aplicação gerenciar e sincronizar os diversos threads existentes. Sincronização 1 - Defina o que é uma aplicação concorrente e dê um exemplo de sua utilização. É a sincronização e comunicação entre os processos. Muitas vezes os processos concorrentes devem comunicar entre si. Está comunicação pode ser implementada através de memória compartilhada e a troca de mensagens. 2 - Considere uma aplicação que utilize uma matriz na memória principal para a comunicação entre vários processos concorrentes. Que tipo de problema pode ocorrer quando dois ou mais processos acessam uma mesma posição da matriz? Analisando os exemplos conclui-se que em qualquer situação, onde dois ou mais processos compartilham um mesmo recurso, devem existir mecanismos de controle para evitar estes tipos de problemas, conhecidos como race conditions (condições de corrida). 3 - O que é exclusão mútua e como é implementada? É a solução para evitar problemas de compartilhamento, impedindo que dois ou mais processos acessem um mesmo recurso simultaneamente, assim enquanto um processo estiver acessando um recurso, os demais que queiram acessá los deverão esperar pelo término da utilização do recurso. São implementadas através de protocolos de E/S. 5 - O que é starvation e como podemos solucionar esse problema? Starvation é uma espera indefinida. Um processo fora da sua região crítica impede que outros processos utilizem o recurso compartilhado. Soluções de hardware: Desabilitação de interrupções; Soluções de software: Algoritmo de Dekker; Algoritmo de Peterson; Algoritmo para exclusão mútua entre N processos. 6 - Qual o problema com a solução que desabilita as interrupções para implementar a exclusão mútua? A multiprogramação pode ficar seriamente comprometida, já a concorrência tem como base o uso de interrupções; Se o processo “esquecer” de habilitar as interrupções, o sistema ficaria seriamente comprometido; Em sistemas multiprocessados esta solução torna-se ineficiente devido ao tempo de propagação de um processador para os outros da desabilitação/habilitação das interrupções. 7 - O que é espera ocupada e qual o seu problema? Na espera ocupada, toda vez que um processo não consegue entrar em sua região crítica, por já existir outro processo acessando o recurso, o processo permanece em looping, testando uma condição, até que lhe seja permitido o acesso. Dessa forma, o processo em looping consome tempo do processador desnecessariamente, podendo ocasionar problemas ao desempenho do sistema. 8 - Explique o que é sincronização condicional e dê um exemplo de sua utilização. Sincronização condicional é uma situação onde o acesso ao recurso compartilhado exige a sincronização de processos vinculada a uma condição de acesso. Um recurso pode não se encontrar pronto para uso devido a uma condição específica. Nesse caso, o processo que deseja acessá-lo deverá permanecer bloqueado até que o recurso fique disponível. Um exemplo clássico desse tipo de sincronização é a comunicação entre dois processos através de operações de gravação e leitura em um buffer. 9 - Explique o que são semáforos e dê dois exemplos de sua utilização: um para a solução da exclusão mútua e outro para a sincronização condicional. Um semáforo é uma variável inteira, não negativa, que só pode ser manipulada por duas instruções: DOWN e UP. 13. O que é deadlock, quais as condições para obtê-lo e quais as soluções possíveis? Deadlock é a situação em que um processo aguarda por um recurso que nunca estará disponível ou um evento que não ocorrerá. Para que ocorra a situação de deadlock, quatro condições são necessárias simultaneamente: exclusão mútua: cada recurso só pode estar alocado a um único processo em um determinado instante; espera por recurso: um processo, além dos recursos já alocados, pode estar esperando por outros recursos; não-preempção: um recurso não pode ser liberado de um processo só porque outros processos desejam o mesmo recurso; espera circular: um processo pode ter de esperar por um recurso alocado a outro processo e vice-versa. Para prevenir a ocorrência de deadlocks, é preciso garantir que uma das quatro condições apresentadas, necessárias para sua existência, nunca se satisfaça. A prevenção de deadlocks evitando-se a ocorrência de qualquer uma das quatro condições é bastante limitada e, por isso, na prática não é utilizada. Uma solução conhecida como Algoritmo do Banqueiro (implementada com a presença das quatro condições) também possui várias limitações. A maior delas é a necessidade de um número fixo de processos ativos e de recursos disponíveis no sistema. Essa limitação impede que a solução seja implementada na prática, pois é muito difícil prever o número de usuários no sistema e o número de recursos disponíveis.
Compartilhar