Académique Documents
Professionnel Documents
Culture Documents
-1-
PS-T Sistemas Operacionais Modernos Tanembaum
Resumindo:
Sistema Operacional
Linguagem de máquina
Micro arquitetura Hardware
Dispositivos físicos
Nível de micro arquitetura → nível no quais os dispositivos físicos são agrupados em unidades
funcionais. Normalmente, esse nível contém alguns registradores internos à CPU (unidade
central de processamento) e um caminho de dados (data path) contendo uma unidade lógico-
aritmética.
-2-
PS-T Sistemas Operacionais Modernos Tanembaum
-3-
PS-T Sistemas Operacionais Modernos Tanembaum
A série 360 foi a primeira linha de computadores a usar circuitos integrados em pequena escala,
propiciando assim uma melhor relação custo e beneficio em comparação à segunda geração de
máquinas, construídas com transistores individuais.
-4-
PS-T Sistemas Operacionais Modernos Tanembaum
Obs.: a) Primeira versão do Windows que é totalmente independente do DOS: Windows 95.
b) Windows 95 / 98 ainda contém uma grande quantidade de código em 16 bits.
c) Windows NT: 32 bits.
-5-
PS-T Sistemas Operacionais Modernos Tanembaum
Sistemas Monoprogramáveis:
Se caracterizam pela execução de uma única tarefa (processo) por vez, sendo que todos os
recursos (processador, memória e periféricos) ficam exclusivamente a eles dedicados. Nesses
sistemas, enquanto o programa aguarda a ocorrência de um evento qualquer, o processador
ficará ocioso (idle); a memória ficará subtilizada, caso o programa não ocupe totalmente e os
periféricos também ficarão ociosos se não utilizados.
Sistemas Multiprogramáveis:
Se caracterizam por permitir que vários programas (tarefas) residam “simultaneamente” na
memória e “concorram” pelo uso dos recursos disponíveis (apenas um programa detém, num
determinado instante o controle da UCP). O sistema operacional se encarrega de gerenciar o
acesso concorrente das diversas tarefas aos diversos recursos, de forma ordenada e protegida. O
throughput do sistema melhora, isto é, o número de processos concluídos por unidade de tempo
aumenta. Os sistemas multiprogramáveis oferecem condições de maior eficiência
computacional que um sistema monoprogramável.
Um sistema multiprogramável pode ser dos tipos: lote (batch), tempo compartilhado (time
sharing) ou tempo real (real time), sendo que o único sistema pode suportar um ou mais
desses tipos de processamento.
o Sistemas Time Sharing: Surgiram com o aparecimento dos terminais de vídeo que
permitiam ao usuário compartilhar a distância o uso de recursos do computador.
Dessa forma o usuário acessa e interage com o computador tanto na fase de
desenvolvimento quanto na fase de execução e análise dos resultados. Não só o
processador é compartilhado neste sistema, mas também a memória e os periféricos,
como discos e impressoras. O sistema cria para o usuário um ambiente de trabalho
próprio, dando a impressão de que todo o sistema está dedicado, exclusivamente a
ele.
-6-
PS-T Sistemas Operacionais Modernos Tanembaum
o Tempo real São caracterizados por terem o tempo como um parâmetro fundamental.
Se as ações precisam necessariamente ocorrer em determinados instantes ou em
determinados intervalos de tempo tem-se então um sistema de tempo real, mas se o
descumprimento ocasional de um prazo é aceitável temos um sistema de tempo real
não crítico;
-7-
PS-T Sistemas Operacionais Modernos Tanembaum
Sistemas Multiprocessados
Caracterizam-se por permitir a execução simultânea de duas ou mais instruções, o que requer
a existência de mais de um processador. O multiprocessamento mantém todos os conceitos
da multiprogramação agora aplicados a vários processadores ao mesmo tempo.
Sistemas Distribuídos
É, conceitualmente, um sistema em rede que possibilita a integração e a cooperação
transparente dos diversos nós que compõem a rede. Dessa forma, sob o enfoque dos
usuários e das tarefas, o sistema é único e se comporta como uma arquitetura
multiprocessada possibilitando tanto paralelismo de granularidade fina como grossa.
-8-
PS-T Sistemas Operacionais Modernos Tanembaum
• Computadores pessoais;
Ponteiro de pilha aponta para o topo da pilha atual na memória. A pilha contém uma estrutura
para cada procedimento chamado, mas que ainda não encerrou. Uma estrutura de pilha do
-9-
PS-T Sistemas Operacionais Modernos Tanembaum
Registrador PWD – Esse registrador contém os bits do código de condições, os quais são
alterados pelas instruções de comparação, pelo nível de prioridade da CPU, pelo modo de
execução (usuário ou núcleo) e por vários outros bits de controle. Desempenha um papel
importante nas chamadas ao sistema e em E/S.
Obs.: O tempo de acesso à memória para buscar uma instrução ou operando é muito
menor que o tempo para executá-la.
Chamada do sistema → alterar de modo usuário para núcleo para obter serviços do Sistema
Operacional.
- 10 -
PS-T Sistemas Operacionais Modernos Tanembaum
Memória → CMOS são memórias voláteis que consomem pouca energia e geralmente são
usados para guardar parâmetros de configuração, como por exemplo de que disco o boot deve
ser carregado.
- 11 -
PS-T Sistemas Operacionais Modernos Tanembaum
Driver de dispositivos → programa que se comunica com o controlador. Ele deve ser colocado
no núcleo. Há três maneiras de fazer isso:
➔ Apenas conectado e reiniciando do computador;
➔ Fazendo uma entrada de arquivo em um sistema operacional informar que precisa
de driver e então reinicializar o sistema
➔ Instalá-los sem a necessidade de reiniciar (USB, IEEE e 1394).
Realizando Entrada/Saída:
• Espera ociosa (controlada pelos dispositivos);
o Desvantagem: Mantém a CPU ocupada todo o tempo interrogando o
dispositivo até que a operação de E/S tenha terminado.
• Interrupção;
• DMA.
- 12 -
PS-T Sistemas Operacionais Modernos Tanembaum
Barramentos:
• ISA (8,33 MHz transferi dois bytes de 1vez com velocidade máxima de 16,67
MB/s– interconexão de componentes periféricos); - compatibilidade de placas
antigas.
• PCI (66 MHz, transferi oito bytes por vez com velocidade de 528 MB/s); -
interconexão de periféricos.
• IDE acopla ao sistema dispositivos periférico com o CD-ROM;
• USB para dispositivos lentos – mouse, teclado;
• SCSI alto desempenho destinado a discos rápidos - scanners,
• IEEE 1394 (serial em bit, não tem controlador central – câmera digital).
Plug and play: faz com que o sistema colete automaticamente informações sobre os
dispositivos de E/S, atribua de maneira centralizada os níveis de interrupções e endereços de
E/S e informe a cada placa sobre quais são os seus números.
Flash ROM: memória não volátil, mas que pode ser atualizada pelo sistema operacional se
erros forem encontradas na BIOS
Sinal de alarme → análogos em software das instruções de hardware. Esse sinal faz com que
o processo suspenda temporariamente, salve seus registradores na pilha e inicia a execução de
um procedimento especial para tratamento de sinal.
- 13 -
PS-T Sistemas Operacionais Modernos Tanembaum
Os processos têm suas memórias divididas em três: segmento de texto (programa), segmento
de dados (variáveis) e o segmento de pilha. O segmento (explicitamente) de dados cresce para
cima e a pilha cresce para baixo (automaticamente).
Sistemas monolíticos: O sistema operacional é escrito como um programa único composto por
uma coleção de subrotinas que chamam umas as outras quando necessário. Mesmo os modelos
monolíticos, adotam modos distintos de operação, no mínimo dois – modo usuário e modo
supervisor (kernel) que operam com privilégios e prioridades distintas de execução. Aos
programas aplicativos é reservado o modo usuário, com menor privilegio e menor prioridade, e
as rotinas do sistema operacional é reservado o modo supervisor.
Cada procedimento do Sistema Operacional pode chamar um dos demais sempre que necessário.
Sistemas de camadas: Cada camada construída sobre a camada inferior, nessa filosofia em
camadas a comunicação ocorre apenas entre as camadas adjacentes e, assim, fica estabelecida a
segurança e o funcionamento do sistema.
Máquinas virtuais → cada máquina virtual é uma cópia exata do hardware, cada uma delas
pode executar qualquer sistema operacional capaz de ser executado diretamente sobre o
hardware. Nesta técnica cada máquina real pode abrigar internamente diferentes ambientes
virtuais, cada um simulando uma máquina distinta, com memória, sistema operacional, recursos
e processos próprios. Dessa forma, cada usuário ou aplicativo parece possuir sua própria
máquina.
Exonúcleos → executado em modo núcleo, sua tarefa é alocar recursos às máquinas virtuais e
então verificar as tentativas de usá-las para assegurar de que nenhuma máquina esteja tentando
usar recursos de outra.
- 14 -
PS-T Sistemas Operacionais Modernos Tanembaum
- 15 -
PS-T Sistemas Operacionais Modernos Tanembaum
Processo X programa: Um processo constitui uma atividade. Ele possui programa, entrada e
saída e um estado. Um único processador pode ser compartilhado entre os vários processos, com
algum algoritmo de escalonamento usado para determinar quando parar o trabalho sobre um
processo e servir outro. Um programa é um algoritmo expresso por uma notação adequada.
Pseudo paralelismo: no decorrer de 1s a CPU executa vários programas, dando aos usuários a
ilusão de paralelismo.
- 16 -
PS-T Sistemas Operacionais Modernos Tanembaum
Término do processo:
• Saída normal;
• Saída por erro;
• Erro fatal;
• Cancelamento por um outro processo.
Estados do Processo
• Em execução (realmente usando a CPU naquele instante);
• Pronto (executável; temporariamente parado para dar lugar a outro processo);
• Bloqueado (incapaz de executar enquanto um evento externo não ocorrer);
Transições de estado
• (1) Em execução -> bloqueado;
• (2) Em execução -> Pronto (final de time slice);
• (3) Pronto -> Em execução;
1- O processo bloqueia aguardando uma entrada.
• (4) Bloqueado -> Pronto; 2- O escalonador seleciona outro processo
3- O escalonador seleciona esse processo
4- A entrada torna-se disponível
Execução
Bloqueado Pronto
Todo tratamento de interrupção e o bloqueio de processos estão ocultos naquilo que é chamado
escalonador, que na verdade, não em muito código.
- 17 -
PS-T Sistemas Operacionais Modernos Tanembaum
Tabelas de processos ou bloco de controle de processos → cada entrada tem estado, contador
de programa, o ponteiro da pilha, a alocação de memória, os estados de seus arquivos abertos e
qualquer outra informação de um processo necessário quando tira um processo de execução.
- 18 -
PS-T Sistemas Operacionais Modernos Tanembaum
THREAD
Thread (de execução): tem um contador de programa, registradores que contêm suas variáveis
atual de trabalho, pilha com história da execução. Compartilha o espaço de endereçamento e
variáveis globais têm os estados.
Thread – yield → thread desiste voluntariamente da CPU para deixar outro thread executar.
Vantagens → possibilitam que múltiplas atividades ocorram no mesmo tempo, é mais fácies de
criar e destruir que o processo, tem ganhado em desempenho na execução baseada
Entrada/Saída.
Máquina de estados finitos → cada computação tem um estado salvo e existe um conjunto de
eventos que podem ocorrer para mudar o estado.
- 19 -
PS-T Sistemas Operacionais Modernos Tanembaum
Thread de usuário
O núcleo gerencia processos e threads executam no topo de um sistema supervisor, o qual os
gerencia. Cada processo tem a sua tabela de thread, permitindo ser implementada em Sistema
Operacional que não suporte thread. A alternância de threads é feita pelo sistema supervisor.
Permite algoritmo de escalonamento personalizado
Jaqueta ou Wrapper → código que envolve a chamada ao sistema para fazer a verificação.
Desvantagem → não tem relógio para o processo, isso faz com que o escalonador não tenha
oportunidade de trabalhar por alternância circular.
Thread de núcleo
Não necessita de sistema superior, o núcleo que tem a tabela de thread e de processos. E
alternativamente, para diminuir custo, não se destrói um thread marca-o não executável
poupando sobrecarga quando tivesse que ser criada uma nova thread.
* Reciclagem de thread;
- 20 -
PS-T Sistemas Operacionais Modernos Tanembaum
Exclusão Mútua → algum modo de impedir acesso a um recurso compartilhado que esteja em
uso. Boa solução:
- Nunca dois processos podem estar simultaneamente em suas regiões críticas.
- Nada pode ser afirmado sobre velocidade ou números de CPUs.
- Nenhum processo executando fora da região crítica pode bloquear outro.
- Nenhum processo deve esperar eternamente para entrar em sua região crítica.
- 21 -
PS-T Sistemas Operacionais Modernos Tanembaum
Desabilitando interrupção
• Quando o processo entra na região crítica desabilita as interrupções. É a solução
mais simples, cada processo desabilita todas as interrupções logo depois de entrar
em sua região crítica e reabilita-as antes de sair dela.
• A CPU não será alternada para outro processo
• Não é prudente dar aos processos o poder de desligar interrupções
• Em multiprocessadores, afetará apenas a CPU que executou a instrução
disable, as outras poderão ter acesso a memória compartilhada.
Variáveis de impedimento
• Uma única variável compartilhada (lock) inicialmente com o valor 0 (zero).
• Para entrar na região crítica, um processo testa antes se há impedimento,
verificando o valor de lock, quando tem acesso modifica para 1
• Apresenta exatamente a mesma falha do diretório de spool.
Alternância obrigatória
• Utiliza uma variável compartilhada turn que indica vez de qual processo pode
entrar na região crítica, a qual deve ser modificada para o próximo processo antes
de sair da região crítica.
• Não é uma boa idéia quando um dos processos for muito mais lento que o outro
• Essa situação viola a condição três: um processo bloqueia outro que não está em
sua região crítica
- 22 -
PS-T Sistemas Operacionais Modernos Tanembaum
Solução de Peterson
• Consiste em dois processos em ANSI C
• Antes de entrar na região crítica cada processo chama enter_region com seu
número de processo (0 ou 1). Esta chamada fará com que ele fique esperando
até que seja seguro entrar. Depois de terminar o uso da região crítica, o
processo chama leave_region para permitir o outro processo entrar.
Instruções TSL
• Instrução test and set lock
• TSL RX, LOCK copia o valor de RX para LOCK. Um processo pode entrar em sua
região crítica apenas no caso de LOCK ser 0. A leitura do valor de LOCK e sua
restauração para 0 podem ser feitas por instruções ordinárias.
• Copia o valor de lock, muda o valor de lock para 1, verifica se o lock = 0 entra
senão volta a testar.
Dormir e acordar
• As soluções baseadas em espera ociosa têm a desvantagem de provocar gasto de
CPU.
• Outra abordagem é que o SO disponibilize duas chamadas de sistema (sleep e
wakeup).
• Sleep faz com que um processo “durma” até ser acordado por outro processo
através de um wakeup
- 23 -
PS-T Sistemas Operacionais Modernos Tanembaum
o O problema produtor-consumidor
▪ Dois processos (produtor e consumidor) compartilham um
buffer de tamanho fixo
▪ O problema se origina quando o produtor quer colocar um novo
item no buffer, mas ele está cheio ou o consumidor remover
quando está vazio.
▪ A solução é colocar o processo, impedido pela capacidade do
buffer, para dormir até que o outro modifique o buffer e acorde o
anterior.
Semáforos
• Usa uma variável inteira para contar o número de sinais de acordar salvos para
uso futuro.
• Down: operação que decrementa a variável do semáforo se maior que zero, caso
contrário, é posto para dormir.
• Up: incrementa o valor do semáforo e um dos processos bloqueados será
liberado.
• Verificar o valor, alterá-lo e possivelmente ir dormir são tarefas executadas todas
como uma única ação atômica.
• São simples
• São gerais
- 24 -
PS-T Sistemas Operacionais Modernos Tanembaum
• Permitem múltiplos processos numa seção crítica de uma vez, se isso for
desejável.
Mutexex
• Basicamente são semáforos simplificados onde não há necessidade de “contar”.
• Um mutex é uma variável de um bit que pode estar impedida ou desimpedida.
• Quando um processo vai entrar em uma região crítica ele chama mutex_lock() e
quando sai chama mutex_unlock()
• Por serem muito simples podem ser implementados no espaço do usuário se houver
uma instrução TSL disponível
• Se ao tentar dar um lock já estiver impedido chamado thread-yield para liberar execução
para outra thread.
Monitor
• Uma unidade básica de sincronização de alto nível;
• É uma coleção de procedimentos, variáveis e estrutura de dados. Os processos podem chamar
os procedimentos, mas não podem acessar as estruturas internas diretamente;
• A exclusão mútua é garantida, pois somente um processo pode estar ativo em um monitor em
um dado momento;
• Quando um processo chama um procedimento de um monitor, é verificado se outro processo
está ativo. Se estiver, o processo que chamou é suspenso até que o outro deixe o monitor, senão
o processo que chamou poderá entrar;
• Cabe ao compilador implementar a exclusão mútua nas entradas do monitor;
• É preciso também um modo de bloquear processos quando não puderem continuar;
• A solução são variáveis condicionais, com duas operações: wait e signal;
• Quando um procedimento do monitor descobre que não pode prosseguir emite um wait sobre
uma variável condicional (resultando no bloqueio do processo), permitindo que outro processo
proibido de entrar no monitor agora entre;
• Esse outro processo pode acordar seu parceiro adormecido a partir da emissão de um signal
para a variável condicional;
• Algumas linguagens suportam monitores. Ex: java;
- 25 -
PS-T Sistemas Operacionais Modernos Tanembaum
• Java suporta threads de usuário e também permite que métodos sejam agrupados em classes;
• Adicionando-se a palavra-• chave synchronized à declaração de um método, Java garante que,
uma vez iniciado qualquer thread executando aquele método, a nenhum outro thread será
permitido executar qualquer outro método synchronized naquela classe;
Troca de mensagens
• Permite a troca de informações entre processos usando duas primitivas: send(destination,
&message)
• Envia uma mensagem para um dado destino receive(source, &message)
• Recebe uma mensagem de uma dada origem ou uma origem qualquer;
• Se nenhuma mensagem estiver disponível o receptor poderá ficar bloqueado, até chegue
alguma;
• Possui problemas específicos como perda da mensagem pela rede para prevenir pode-se
usar confirmação de recebimento (acknowledgement), mas se o receptor receber a
mensagem e não a confirmação?
o As mensagens podem ser numeradas
• Chamadas send e receive não podem ser ambíguas;
• Autenticação deve ser garantida;
• Desempenho deve ser garantido em troca de mensagens de processos na mesma
máquina;
• Copiar mensagens é mais lento que realizar operações sobre monitores ou semáforos;
• Problema produtor-consumidor;
• Pode ser resolvido com troca de mensagens sem memória compartilhada;
• Considerando que todas as mensagens são do mesmo tamanho e que aquelas enviadas e
ainda não recebidas são armazenadas pelo SO;
- 26 -
PS-T Sistemas Operacionais Modernos Tanembaum
• O consumidor envia N mensagens vazias para o produtor, que se tiver algum item para
fornecer pegará uma mensagem vazia e retornará uma cheia. O número total de
mensagens permanece certo.
• Se o produtor trabalhar mais rápido que o consumidor?
Barreiras
• Mecanismo de sincronização dirigido a grupos de processos;
• Algumas aplicações são divididas em fase e têm como regra que nenhum processo
pode avançar para a próxima fase até que todos os processos estejam prontos para
fazê-lo;
• Isso pode ser conseguido por meio de uma barreira no final de cada fase;
• Quando uma barreira é alcançada o processo é bloqueado até que todos a alcancem;
- 27 -
PS-T Sistemas Operacionais Modernos Tanembaum
Escalonamento
Escalonador: parte do sistema operacional que faz a escolha de que processo será executado,
utiliza um algoritmo chamado algoritmo de escalonamento.
Objetivos do algoritmo de escalonamento: melhorar os seguintes aspectos:
• Vazão: número de jobs por hora que o sistema termina.
• Tempo de retorno: é estaticamente o tempo médio do momento em que o um job
em lote é submetido até o momento em que ele é terminado.
• Utilização da CPU: Um processo que permaneça mais tempo na UCP terá maior
probabilidade para ser escalonado.
• Throughput: representa o número de tarefas executadas em um período.
• Tempo de Turnaround: tempo em que se leva desde a admissão até o seu
término.
• Tempo de resposta: nos sistemas interativos, esse tempo é decorrido entre a
submissão de um pedido ao sistema até a primeira resposta produzida.
Para atender tais objetivos, muitas vezes conflitantes, os Sos precisam levar em
consideração:
• As características dos processos em execução (batch, interativo, tempo-real,
CPU-bounded, IO-bounded);
• A disponibilidade de recursos;
• As características da instalação
- 28 -
PS-T Sistemas Operacionais Modernos Tanembaum
- 29 -
PS-T Sistemas Operacionais Modernos Tanembaum
▪ Interativo:
• Escalonador por alternância circular (round robin): utilizado
em sistemas de tempo compartilhado, é semelhante ao FIFO,
sendo que o processo permanecerá na UCP até que o time slice
(quantum) do sistema seja esgotado. Denominado preempção
por tempo. Os processos são tratados de maneira igual.
o A definição do quantum é um param,etro de gerência
da operação, sendo que se deve levar em consideração
a disponibilidade
• Escalonar por prioridades: os processos são associados a algum
tipo de prioridade de execução e são escalonados
preferencialmente, de acordo com suas prioridades. É
implementada mediante um clock que interrompe o processador
em determinados intervalos de tempo, para que a prioridade de
cada processo da fila seja reavaliado
.
• Filas múltiplas: são implementados diversas filas para os
processos em estado de pronto e essas filas têm um grau de
prioridade equivalente aos processos. Há situações em que o
processo altera a sua prioridade, porém não poderá sair da fila que
se encontra.
- 30 -
PS-T Sistemas Operacionais Modernos Tanembaum
- 31 -
PS-T Sistemas Operacionais Modernos Tanembaum
Algoritmos de SCHEDULING
Resolvendo a questão.
0 11 41
45 53 66
Cálculo: (0 + 11 + 41 + 45 + 53)/5 = 30
0 4 12
23 36 66
Cálculo: (4+12+23+36)/5 = 15
Utilizando por prioridade: Tem que ser estabelecida a prioridade.
- 32 -
PS-T Sistemas Operacionais Modernos Tanembaum
Exemplo:
Processo Tempo de Chegada Prioridade
P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2
0 1 6
16 18 19
Cálculo: (1+6+16+18)/5 = 8,2
0 4 7 10 14
18 22 26 30
Com P1 precisa de mais 20 segundo será interceptado,será alocado o próximo processo P2 vai fazer
P2 e P3 e voltar para P1.
Cálculo: (7+10)/3 = 5,66
- 33 -
PS-T Sistemas Operacionais Modernos Tanembaum
Capítulo 3 – DeadLocks
Recursos preemptível → é aquele que pode ser retirado do processo proprietário sem nenhum
prejuízo.
- 34 -
PS-T Sistemas Operacionais Modernos Tanembaum
Prevenção de deadlocks
• Estabelecer critérios de que todos os recursos sejam previamente alocados, antes do
processo ganhar acesso à UCP.
• Admitir a prática da preempção, isto é, o sistema ter a possibilidade de retirar um
recurso alocado para um processo e dar a outro processo.
• Forçar que um processo não aloque mais do que um recurso de cada vez.
Qualquer que seja a estratégia de prevenção adotada, ela é sempre muito onerosa, uma
vez que precisa ser executada a todo instante. A estratégia mais comum e menos onerosa é
detectar a ocorrência de um deadlock e, uma vez adotada, executar rotinas de resolução
do problema.
Detecção de deadlocks
• Eliminar um ou mais processos envolvidos;
• Liberar acumulativamente alguns dos recursos já alocados pelos processos envolvidas
até que a espera circular se desfaça;
- 35 -
PS-T Sistemas Operacionais Modernos Tanembaum
Algoritmo → procure um processo na matriz cujo os recursos necessários para execução seja
menor igual ao equivalente no vetor de recursos disponíveis, ao encontrar marque o processo e
atualize as matrizes. Quando acabar o loop se ainda existir algum valor na matriz de requisição
esses processos estarão em deadlock.
Quando verificar as matrizes: a toda requisição (caro), de tempos em tempos ou quando a
utilização da CPU estiver caído abaixo de um certo limite.
Evitando deadlocks
• Estado seguro – se ele não está em situação de deadlock e se existe alguma ordem de
escalonamento na qual todo o processo possa ser executado até a conclusão.
• Algoritmo do banqueiro para um único recurso → verifica se a liberação de uma
requisição é capaz de levar a um estado inseguro. Em caso positivo, a requisição será
negada, senão atendida.
• Algoritmo do banqueiro com múltiplos recursos → igual detecção de deadlock para
múltiplos recursos do mesmo tipo.
Prevenção de deadlocks
- 36 -
PS-T Sistemas Operacionais Modernos Tanembaum
Condição de inanição (star vation) → processo que nunca obtém recursos. Pode ser evitado
com a política de alocação FIFO.
- 37 -
PS-T Sistemas Operacionais Modernos Tanembaum
d) Essa é a única opção correta, pois entrará em deadlock os processos p4, p5,p7 e p8, uma vez
que, ele receber o recurso de r5,já que a alternativa colocou de forma clara que se obtiver o recurso
r5 entrará em deadlock está certa a opção. Para ficar mais claro ainda, observe que fez um círculo
nos processos e recursos: p4,r3,p5,r4,p7,r7,p8 e r5 e retornando ao início. Olha que ele poderia
brincar com a questão falando de recurso, mas o examinador foi bonzinho falou só dos processos.
(certa)
- 38 -
PS-T Sistemas Operacionais Modernos Tanembaum
- 39 -