Você está na página 1de 10

Captulo 6 Thread 1. Como uma aplicao pode implementar concorrncia em um ambiente monothread? Atravs de processos independentes e subprocessos. 2.

. Quais os problemas de aplicaes concorrentes desenvolvidas em ambientes monothread? Um problema que o uso de processos no desenvolvimento de aplicaes concorrentes demanda consumo de diversosrecursos do sistema. Sempre que um novo processo criado, o sistema deve alocar recursos para cada processo,consumindo tempo de processador neste trabalho. No caso do trmino do processo, o sistema dispensa tempo paradesalocar recursos previamente alocados.Outro problema a ser considerado quanto ao compartilhamento do espao de endereamento. Como cada processopossui seu prprio espao de endereamento, a comunicao entre processos torna-se difcil e lenta, pois utilizamecanismos como pipes, sinais, semforos, memria compartilhada ou troca de mensagem. 3. O que um thread e quais as vantagens em sua utilizao? Um thread pode ser definido como uma subrotina de um programa que pode ser executada de forma assncrona, ou seja,executada paralelamente ao programa chamador. A grande vantagem no uso de threads a possibilidade de minimizar aalocao de recursos do sistema, alm de diminuir o overhead na criao, troca e eliminao de processos. 4. Explique a diferena entre unidade de alocao de recursos e unidade de escalonamento? Em ambientes monothread, o processo ao mesmo tempo a unidade de alocao de recursos e a unidade deescalonamento. A independncia entre os conceitos de processo e thread permite separar a unidade de alocao derecursos da unidade de escalonamento, que em ambientes monothread esto fortemente relacionadas. Em um ambientemultithread, a unidade de alocao de recursos o processo, onde todos os seus threads compartilham o espao deendereamento, descritores de arquivos e dispositivos de E/S. Por outro lado, cada thread representa uma unidade deescalonamento independente e, neste caso, o sistema no seleciona um processo para a execuo, mas sim um de seusthreads. 5. Quais as vantagens e desvantagens do compartilhamento do espao de endereamento entre threads deum mesmo processo? Como threads de um mesmo processo compartilham o mesmo espao de endereamento, no existe qualquer proteono acesso memria, permitindo que um thread possa alterar facilmente dados de outros. Para que threads trabalhem deforma cooperativa, fundamental que a aplicao implemente mecanismos de comunicao e sincronizao entrethreads, a fim de garantir o acesso seguro aos dados compartilhados na memria. Por outro lado, o compartilhamento doespao de enderemento extremamente simples e rpido. 6. Compare os pacotes de threads em modo usurio e modo kernel? Threads em modo usurio (TMU) so implementados pela aplicao e no pelo sistema operacional. Para isso, deveexistir uma biblioteca de rotinas que possibilita aplicao realizar tarefas como criao/eliminao de threads, troca demensagens entre threads e uma poltica de escalonamento. Neste modo, o sistema operacional no sabe da existncia demltiplos threads, sendo responsabilidade exclusiva da aplicao gerenciar e sincronizar os diversos threads existentes Threads em modo kernel (TMK) so implementadas diretamente pelo ncleo do sistema operacional, atravs dechamadas a rotinas do sistema que oferecem todas as funes de gerenciamento e sincronizao. O sistema operacionalsabe da existncia de cada thread e pode escalon-los individualmente. No caso de mltiplos processadores, os threadsde um mesmo processo podem ser executados simultaneamente. 7. Qual a vantagem do scheduler activations comparado ao pacote hbrido? A principal vantagem melhorar o desempenho no seu uso evitando as mudanas de modos de acesso desnecessrias(usuriokernel-usurio). Caso um thread utilize uma chamada ao sistema que o coloque no estado de espera, no necessrio que o kernel seja ativado, bastando que a prpria biblioteca em modo usurio escalone outro thread. Isto possvel porque a biblioteca em modo usurio e o kernel se comunicam e trabalham de forma cooperativa. Cada camadaimplementa seu escalonamento de forma independente, porm trocando informaes quando necessrio. 8. D exemplos do uso de threads no desenvolvimento de aplicativos, como editores de textos e planilhaseletrnicas. Livre. 9. Como o uso de threads pode melhorar o desempenho de aplicaes paralelas em ambientes commltiplos processadores? Para obter os benefcios do uso de threads, uma aplicao deve permitir que partes diferentes do seu cdigo sejamexecutadas em paralelo de forma independente. O uso de uma arquitetura com mltiplos processasdores beneficia aconcorrncia entre os threads com a possibilidade do paralelismo de execuo entre processadores.

10. Quais os benefcios do uso de threads em ambientes cliente-servidor? O principal benefcio do uso de threads em ambientes cliente-servidor a melhoria no desempenho da aplicaoservidora. Alm disso, a comunicao entre os threads no servidor pode ser feita atravs de mecanismos mais simples eeficientes. 11. Como o uso de threads pode ser til em arquiteturas microkernel? A arquitetura microkernel utiliza processos para implementar funes relativas ao kernel do sistema operacional, sendoque esses processos so utilizados como servidores quando algum cliente necessita de algum servio do sistema.Arquiteturas que implementam threads, possibilitam um melhor desempenho dos processos servidores. Captulo 7 Sincronizao e Comunicao entre Processos 1. Defina o que uma aplicao concorrente e d um exemplo de sua utilizao. uma aplicao estruturada de maneira que partes diferentes do cdigo do programa possam executarconcorrentemente. Este tipo de aplicao tem como base a execuo cooperativa de mltiplos processos ou threads, quetrabalham em uma mesma tarefa na busca de um resultado comum. 2. Considere uma aplicao que utilize uma matriz na memria principal para a comunicao entre vriosprocessos concorrentes. Que tipo de problema pode ocorrer quando dois ou mais processos acessam umamesma posio da matriz? Caso no haja uma gerncia no uso concorrente dos recursos compartilhados, inconsistncias nos dados podem ocorrer. 3. O que excluso mtua e como implementada? impedir que dois ou mais processos acessem um mesmo recurso simultaneamente. Para isso, enquanto um processoestiver acessando determinado recurso, todos os demais processos que queiram acess-lo devero esperar pelo trminoda utilizao do recurso 4. Como seria possvel resolver os problemas decorrentes do compartilhamento da matriz, apresentadoanteriormente, utilizando o conceito de excluso mtua? Garantindo na aplicao que somente um nico processo pode estar acessando a matriz por vez. 5. O que starvation e como podemos solucionar esse problema? Starvation a situao onde um processo nunca consegue executar sua regio crtica e, conseqentemente, acessar orecurso compartilhado. A soluo para o problema depende de estabelecimentos de mecanismos de acesso pelo sistemaoperacional que garantam o acesso ao recurso por todos os processos que solicitarem uso. 6. Qual o problema com a soluo que desabilita as interrupes para implementar a excluso mtua? Essa soluo apesar de simples, apresenta algumas limitaes. Primeiramente, a multiprogramao pode ficarseriamente comprometida, j que a concorrncia entre processos tem como base o uso de interrupes. Um caso maisgrave poderia ocorrer caso um processo desabilitasse as interrupes e no tornasse a habilit-las. Nesse caso, osistema, provavelmente, teria seu funcionamento seriamente comprometido.Em sistemas com mltiplos processadores, esta soluo torna-se ineficiente devido ao tempo de propagao quando umprocessador sinaliza aos demais que as interrupes devem ser habilitadas ou desabilitadas. Outra considerao que omecanismo de clock do sistema implementado atravs de interrupes, devendo esta soluo ser utilizada combastante critrio. 7. O que espera ocupada e qual o seu problema? Na espera ocupada, toda vez que um processo no consegue entrar em sua regio crtica, por j existir outro processoacessando o recurso, o processo permanece em looping, testando uma condio, at que lhe seja permitido o acesso.Dessa forma, o processo em looping consome tempo do processador desnecessariamente, podendo ocasionar problemasao desempenho do sistema. 8. Explique o que sincronizao condicional e d um exemplo de sua utilizao. Sincronizao condicional uma situao onde o acesso ao recurso compartilhado exige a sincronizao de processosvinculada a uma condio de acesso. Um recurso pode no se encontrar pronto para uso devido a uma condioespecfica. Nesse caso, o processo que deseja acess-lo dever permanecer bloqueado at que o recurso fiquedisponvel. Um exemplo clssico desse tipo de sincronizao a comunicao entre dois processos atravs de operaesde gravao e leitura em um buffer. 9.

Explique o que so semforos e d dois exemplos de sua utilizao: um para a soluo da exclusomtua e outro para a sincronizao condicional. Um semforo uma varivel inteira, no negativa, que s pode ser manipulada por duas instrues: DOWN e UP. Veritens 7.7.1 e 7.7.2. 10. Apresente uma soluo para o problema dos Filsofos que permita que os cinco pensadores sentem mesa, porm evite a ocorrncia de starvation e deadlock. Livre. 11. Explique o que so monitores e d dois exemplos de sua utilizao: um para a soluo da excluso mtuae outro para a sincronizao condicional. Monitores so mecanismos de sincronizao de alto nvel que torna mais simples o desenvolvimento de aplicaesconcorrentes. Ver itens 7.8.1 e 7.8.2. 12. Qual a vantagem da forma assncrona de comunicao entre processos e como esta pode serimplementada? A vantagem deste mecanismo aumentar a eficincia de aplicaes concorrentes. Para implementar essa soluo, almda necessidade de buffers para armazenar as mensagens, devem haver outros mecanismos de sincronizao quepermitam ao processo identificar se uma mensagem j foi enviada ou recebida. 13. O que deadlock, quais as condies para obt-lo e quais as solues possveis? Deadlock a situao em que um processo aguarda por um recurso que nunca estar disponvel ou um evento que noocorrer. Para que ocorra a situao de deadlock, quatro condies so necessrias simultaneamente:

excluso mtua: cada recurso s pode estar alocado a um nico processo em um determinado instante;

espera por recurso: um processo, alm dos recursos j alocados, pode estar esperando por outros recursos;

no-preempo: um recurso no pode ser liberado de um processo s porque outros processos desejam o mesmorecurso;

espera circular: um processo pode ter de esperar por um recurso alocado a outro processo e vice-versa.Para prevenir a ocorrncia de deadlocks, preciso garantir que uma das quatro condies apresentadas, necessrias parasua existncia, nunca se satisfaa. A preveno de deadlocks evitando-se a ocorrncia de qualquer uma das quatrocondies bastante limitada e, por isso, na prtica no utilizada. Uma soluo conhecida como Algoritmo doBanqueiro (implementada com a presena das quatro condies) tambm possui vrias limitaes. A maior delas anecessidade de um nmero fixo de processos ativos e de recursos disponveis no sistema. Essa limitao impede que asoluo seja implementada na prtica, pois muito difcil prever o nmero de usurios no sistema e o nmero derecursos disponveis. 14. Em uma aplicao concorrente que controla saldo bancrio em contas correntes, dois processoscompartilham uma regio de memria onde esto armazenados os saldos dos clientes A e B. Osprocessos executam, concorrentemente os seguintes passos: Processo 1 (Cliente A) Processo 2 (Cliente B) /* saque em A */ /*saque em A */1a. x := saldo_do_cliente_A; 2a. y := saldo_do_cliente_A;1b. x := x - 200; 2b. y := y 100;1c. saldo_do_cliente_A := x; 2c. saldo_do_cliente_A := y;/* deposito em B */ /* deposito em B */1d. x := saldo_do_client e_B; 2d. y := saldo_do_cliente_B;1e. x := x + 100; 2e. y := y + 200;1f. saldo_do_cliente_B := x; 2f. saldo_do_cliente_B := y; Supondo que os valores dos saldos de A e B sejam, respectivamente, 500 e 900, antes de os processosexecutarem, pede-se:a) Quais os valores corretos esperados para os saldos dos clientes A e B aps o trmino da execuodos processos? Cliente A = 200 e Cliente B = 1.200 b) Quais os valores finais dos saldos dos clientes se a sequncia temporal de execuo das operaesfor: 1a, 2a, 1b, 2b, 1c, 2c, 1d, 2d, 1e, 2e, 1f, 2f Cliente A = 400 e Cliente B = 1.100 c) Utilizando semforos, proponha uma soluo que garanta a integridade dos saldos e permita o maiorcompartilhamento possvel dos recursos entre os processos, no esquecendo a especificao dainicializao dos semforos. Processo 1 (Cliente A) Processo 2 (Cliente B)

/* saque em A */ /*saque em A */Down (S1) Down (S1)x := saldo_do_cliente_A; y := saldo_do_cliente_A;x := x 200; y := y 100;saldo_do_cliente_A := x; saldo_do_cliente_A := y;Up (S1) Up (S1)/* deposito em B */ /* deposito em B */Down (S2) Do wn (S2)x := saldo_do_cliente_B; y := saldo_do_cliente_B;x := x + 100; y := y + 200;saldo_do_cliente_B := x; saldo_do_client e_B := y;Up (S2) Up (S2) 15. O problema dos leitores/escritores, apresentado a seguir, consiste em sincronizar processos queconsultam/atualizam dados em uma base comum. Pode haver mais de um leitor lendo ao mesmo tempo;no entanto, enquanto um escritor est atualizando a base, nenhum outro processo pode ter acesso a ela(nem mesmo leitores). VAR Acesso: Semaforo := 1;Exclusao: Semaforo := 1;Nleitores: integer := 0;PROCEDURE Escritor;BEGINProduzDado;DOWN (Acesso);Escreve;UP (Acesso);END;PROCEDURE Leitor;BEGINDOWN (Exclusao);Nleitores := Nleitores + 1;IF ( Nleitores = 1 ) THEN DOWN (Acesso);UP (Exclusao); Leitura;DOWN (Exclusao);Nleitores := Nleitores - 1;IF ( Nleitores = 0 ) THEN UP (Acesso);UP (Exclusao);ProcessaDado;END; a) Suponha que exista apenas um leitor fazendo acesso base. Enquanto este processo realiza aleitura, quais os valores das trs variveis? Acesso=0 Exclusao=1 Nleitores=1 b) Chega um escritor enquanto o leitor ainda est lendo. Quais os valores das trs variveis aps obloqueio do escritor ? Sobre qual(is) semforo(s) se d o bloqueio? Acesso=0 Exclusao=1 Nleitores=1, o bloqueio ocorre no semforo Acesso. c) Chega mais um leitor enquanto o primeiro ainda no acabou de ler e o escritor est bloqueado.Descreva os valores das trs variveis quando o segundo leitor inicia a leitura. Acesso=0 Exclusao=1 Nleitores=2 d) Os dois leitores terminam simultaneamente a leitura. possvel haver problemas quanto integridade do valor da varivel nleitores? Justifique. No, pois a excluso mtua a esta varivel implementada pelo semforo Exclusao. e) Descreva o que acontece com o escritor quando os dois leitores terminam suas leituras. Descrevaos valores das trs variveis quando o escritor inicia a escrita. O processo Escritor inicia a escrita. Acesso=0 Exclusao=1 Nleitores=0 f) Enquanto o escritor est atualizando a base, chagam mais um escritor e mais um leitor. Sobrequal(is) semforo(s) eles ficam bloqueados? Descreva os valores das trs variveis aps obloqueio dos recm-chegados. Os processo ficam bloqueados no semforo Acesso. Acesso=0 Exclusao=0 Nleitores=1 g) Quando o escritor houver terminado a atualizao, possvel prever qual dos processosbloqueados (leitor ou escritor) ter acesso primeiro base? No, em geral os sistemas operacionais utilizam a escolha randmica dentre os processos em estado deespera. h) Descreva uma situao onde os escritores sofram starvation (adiamento indefinido). Caso um processo Escritor esteja aguardando, bloqueado pelo semforo Acesso, e sempre surgirem novosprocessos Leitor, o processo Escritor pode nunca ganhar acesso ao recurso. Captulo 8 Gerncia do Processador 1. O que poltica de escalonamento de um sistema operacional? Uma poltica de escalonamento composta por critrios estabelecidos para determinar qual processo em estado depronto ser escolhido para fazer uso do processador. 2. Quais as funes do escalonador e do dispatcher? O escalonador uma rotina do sistema operacional que tem como principal funo implementar os critrios da polticade escalonamento. O dispatcher responsvel pela troca de contexto dos processos aps o escalonador determinar qualprocesso deve fazer uso do processador. 3.

Quais os principais critrios utilizados em uma poltica de escalonamento? Utilizao do processador, throughput, tempo de Processador (tempo de UCP), tempo de espera, tempo de turnaround etempo de resposta. 4. Diferencie os tempos de processador, espera, turnaround e resposta. Tempo de processador ou tempo de UCP o tempo que um processo leva no estado de execuo durante seuprocessamento. Tempo de espera o tempo total que um processo permanece na fila de pronto durante seuprocessamento, aguardando para ser executado. Tempo de turnaround o tempo que um processo leva desde a suacriao at ao seu trmino, levando em considerao todo o tempo gasto na espera para alocao de memria, espera nafila de pronto (tempo de espera), processamento na UCP (tempo de processador) e na fila de espera, como nasoperaes de E/S. Tempo de resposta o tempo decorrido entre uma requisio ao sistema ou aplico e o instante emque a resposta exibida.. 5. Diferencie os escalonamentos preemptivos e no-preemptivos. No escalonamento preemptivo, o sistema operacional pode interromper um processo em execuo e pass-lo para oestado de pronto, com o objetivo de alocar outro processo na UCP. No escalonamento no-preemptivo, quando umprocesso est em execuo, nenhum evento externo pode ocasionar a perda do uso do processador. O processo somentesai do estado de execuo, caso termine seu processamento ou execute instrues do prprio cdigo que ocasionem umamudana para o estado de espera. 6. Qual a diferena entre os escalonamentos FIFO e circular? O FIFO um escalonamento no-preemptivo onde o processo que chegar primeiro ao estado de pronto o selecionadopara execuo. Este algoritmo bastante simples, sendo necessria apenas uma fila, onde os processos que passam parao estado de pronto entram no seu final e so escalonados quando chegam ao seu incio. Quando um processo vai para oestado de espera, o primeiro processo da fila de pronto escalonado. Todos os processos quando saem do estado deespera entram no final da fila de pronto. O Circular um escalonamento preemptivo, projetado especialmente parasistemas de tempo compartilhado. Esse algoritmo bastante semelhante ao FIFO, porm, quando um processo passapara o estado de execuo, existe um tempo limite para o uso contnuo do processador denominado fatia de tempo(time-slice) ou quantum. 7. Descreva o escalonamento SJF e o escalonamento por prioridades. No escalonamento SJF, o algoritmo de escalonamento seleciona o processo que tiver o menor tempo de processadorainda por executar. Dessa forma, o processo em estado de pronto que necessitar de menos tempo de UCP para terminarseu processamento selecionado para execuo. O escalonamento por prioridades um escalonamento do tipopreemptivo realizado com base em um valor associado a cada processo denomidado prioridade de execuo. O processocom maior prioridade no estado de pronto sempre o escolhido para execuo e processos com valores iguais soescalonados seguindo o critrio de FIFO. Neste escalonamento, o conceito de fatia de tempo no existe,conseqentemente, um processo em execuo no pode sofrer preempo por tempo. 8. Qual a diferena entre preempo por tempo e preempo por prioridade? Preempo por tempo ocorre quando o sistema operacional interrompe o processo em execuo em funo da expiraoda sua fatia de tempo, substituindo-o por outro processo. Preempo por prioridade, ocorre quando o sistemaoperacional interrompe o processo em execuo em funo de um processo entrar em estado de pronto com prioridadesuperior ao do processo em execuo. 9. O que um mecanismo de escalonamento adaptativo? um mecanismo onde o sistema operacional identifica o comportamento dos processos durante sua execuoadaptando as polticas de escalonamento dinamicamente. 10. Que tipo de escalonamento aplicaes de tempo real exigem? Escalonamento por prioridades onde possvel atribuir prioridades aos processos em funo da sua importncia. Almdisso, o mecanismo de preempo por prioridades garante o escalonamento imediato de processos crticos quando essespassam para o estado de pronto. 11. O escalonamento por mltiplas filas com realimentao favorece processos CPU-bound ou I/O-bound?Justifique. Processos I/O-bound so favorecidos neste tipo de escalonamento. Como a probabilidade desse tipo de processo sofrerpreempo por tempo baixa, a tendncia que os processos I/O-bound permaneam nas filas de alta prioridadeenquanto os processos CPU-bound tendem a posicionar-se nas filas de prioridade mais baixa. 12.

Considere que cinco processos sejam criados no instante de tempo 0 (P1 , P2 , P3 , P4 e P5) e possuamas caractersticas descritas na tabela a seguir: Processo Tempo de UCP Prioridade P1 10 3P2 14 4P3 5 1P4 7 2P5 20 5 Desenhe um diagrama ilustrando o escalonamento dos processos e seus respectivos tempos de turnaround,segundo as polticas especificadas a seguir. O tempo de troca de contexto deve ser desconsiderado. a) FIFOb) SJFc) Prioridade (nmero menor implica prioridade maior) d) Circular com fatia de tempo igual a 2 u.t. a) P1 P21024P3 P4 P52936. 56 b) P3 P4 P1 P2051222P2 P52936. 56 14. Como o valor do quantum pode afetar o grau de multiprogramao em um sistema operacional? Qual aprincipal desvantagem de um quantum com um valor muito pequeno? Um valor de quantum grande pode prejudicar a multiprogramao, na medida em que a ocorrncia de preempes portempo reduzida, favorecendo os processos CPU-bound e prejudicando os processos I/O-bound. Um valor de quantumpequeno ocasionaria um grande overhead ao sistema devido a alta frequncia de mudanas de contexto geradas pelasfrequentes preempes por tempo. 15. Considere um sistema operacional que implemente escalonamento circular com fatia de tempo igual a 10u.t.. Em um determinado instante de tempo, existem apenas trs processos (P1, P2 e P3) na fila depronto, e o tempo de UCP de cada processo 18, 4 e 13 u.t, respectivamente. Qual o estado de cadaprocesso no instante de tempo T, considerando a execuo dos processos P1, P2 e P3, nesta ordem, e quenenhuma operao de E/S realizada?a) T = 8 u.t. P1: Execuo, P2:Pronto, P3:Pronto b) T = 11 u.t. P1: Pronto, P2:Execuo, P3:Pronto c) T = 33 u.t. P1: Terminado, P2:Terminado, P3:Execuo 16. Considere um sistema operacional que implemente escalonamento circular com fatia de tempo igual a 10u.t. Em um determinado instante de tempo, existem apenas trs processos (P1, P2 e P3) na fila de pronto,e o tempo de UCP de cada processo 14, 4 e 12 u.t, respectivamente. Qual o estado de cada processo noinstante de tempo T, considerando a execuo dos processos P1, P2 e P3, nesta ordem, e que apenas oprocesso P1 realiza operaes de E/S? Cada operao de E/S executada aps 5 u.t. e consome 10 u.t.a) T = 8 u.t. P1: Espera, P2:Execuo, P3:Pronto b) T = 18 u.t. P1: Pronto, P2:Terminado, P3:Execuo c) T = 28 u.t. P1: Espera, P2:Terminado, P3:Terminado

17. Existem quatro processos (P1, P2, P3 e P4) na fila de pronto, com tempos de UCP estimados em 9, 6, 3 e5, respectivamente. Em que ordem os processos devem ser executados para minimizar o tempo deturnaround dos processos? A melhor poltica para minimizar o tempo de turnaround seria utilizar o escalonamento SJF na sequncia de execuoP3, P4, P2 e P1 Solues de Exerccios Autores Verso 3.1 (Jan/2004) Arquitetura de Sistemas Operacionais 3 a Edio Machado/Maia 23 Captulo 9 Gerncia de Memria 1. Quais as funes bsicas da gerncia de memria? Maximizar o nmero de processos na memria, permitir a execuo de programas maiores que a memria fsica,compartilhamento de dados na memria e proteo da memria utilizada por cada processo e pelo sistema operacional. 2. Considere um sistema computacional com 40Kb de memria principal e que utilize um sistemaoperacional de 10Kb que implemente alocao contgua de memria. Qual a taxa de subutilizao damemria principal para um programa que ocupe 20Kb de memria? Considerando que o sistema opeacional e o programa somados ocupam da memria principal, temos 25% desubutilizao da memria. 3. Suponha um sistema computacional com 64Kb de memria principal e que utilize um sistemaoperacional de 14Kb que implemente alocao contgua de memria. Considere tambm um programade 90Kb, formado por um mdulo principal de 20Kb e trs mdulos independentes, cada um com 10Kb,20Kb e 30Kb. Como o programa poderia ser executado utilizando-se apenas a tcnica de overlay? Como existe apenas 50Kb para a execuo do programa, a memria deve ser dividida em duas reas: uma para omdulo principal (20Kb) e outra de overlay para a carga dos mdulos, em funo do tamanho do maior mdulo (30Kb). 4. Considerando o exerccio anterior, se o mdulo de 30Kb tivesse seu tamanho aumentado para 40Kb,seria possvel executar o programa? Caso no possa, como o problema poderia ser contornado? No. No caso de no haver como aumentar o espao de memria real, a nica soluo seria tentar alterar o programa deforma que o mdulo de 40Kb pudesse ser dividido em outros mdulos menores independentes. 5. Qual a diferena entre fragmentao interna e externa da memria principal? Fragmentao interna ocorre em espaos livres e contguos na memria principal que so pr-alocados por processos,no possibilitando, portanto, o uso por outros processos. Fragmentao externa ocorre em espaos livres e contnuos,porm to pequenos que no possibilitam a alocao de programas por processos. 6. Suponha um sistema computacional com 128Kb de memria principal e que utilize um sistemaoperacional de 64Kb que implementa alocao particionada esttica relocvel. Considere tambm que osistema foi inicializado com trs parties: P1 (8Kb), P2 (24Kb) e P3 (32Kb). Calcule a fragmentaointerna da memria principal aps a carga de trs programas: PA, PB e PC.a) P1 PA (6Kb); P2 PB (20Kb); P3 PC (28Kb) 2Kb, 4Kb, 4Kb b) P1 PA (4Kb); P2 PB (16Kb); P3

PC (26Kb) 4Kb, 8Kb, 6Kb c) P1 PA (8Kb); P2 PB (24Kb); P3 PC (32Kb) no h fragmentao interna 7. Considerando o exerccio anterior, seria possvel executar quatro programas concorrentemente utlizandoapenas a tcnica de alocao particionada esttica relocvel? Se for possvel, como? Considerando aindao mesmo exerccio, seria possvel executar um programa de 36Kb? Se for possvel como? Somente seria possvel executar quatro programas concorrentemente alterando a configurao das parties do sistemae criando uma quarta partio. No segundo cado, seria possvel executar um programa de 36Kb alterando aconfigurao do sistema, aumentando uma das parties e reduzindo as demais. 8. Qual a limitao da alocao particionada esttica absoluta em relao a alocao esttica relocvel? A grande diferena entre a alocao particionada esttica absoluta e a alocao esttica relocvel o local na memriaprincipal onde programa carregado. Na alocao absoluta, um programa pode apenas ser carregado a partir de umnico endereo, consequentemente em uma nica partio. Na alocao relocvel, um programa pode ser carregado apartir de qualquer endereo ou partio. 10. Considerando as estratgias para escolha da partio dinamicamente, conceitue as estratgias best-fit eworst-fit especificando prs e contras de cada uma. Ver item 9.5.3 .11. Considere um sistema que possua as seguintes rea livres na memria principal, ordenadascrescentemente: 10Kb, 4Kb, 20Kb, 18Kb, 7Kb, 9Kb, 12Kb e 15Kb. Para cada programa abaixo, qualseria a partio alocada utilizando-se as estratgias first-fit, best-fit e worst-fit (Tanenbaum, 1992)?a) 12Kbb) 10Kbc) 9Kb First-fit: 20Kb, 10Kb e 18KbBest-fit: 12Kb, 10Kb e 9Kb.Worst-fit: 20Kb, 18Kb e 15Kb 13. O que swapping e para que utilizada esta tcnica? A tcnica de swapping foi introduzida para contornar o problema da insuficincia de memria principal. Essa tcnica aplicada gerncia de memria para programas que esperam por memria livre para serem executados. Nesta situao,o sistema escolhe um processo residente, que transferido da memria principal para a memria secundria (swap out),geralmente disco. Posteriormente, o processo carregado de volta da memria secundria para a memria principal(swap in) e pode continuar sua execuo como se nada tivesse ocorrido. 14. Por que importante o uso de um loader com relocao dinmica para que a tcnica de swapping possaser implementada? O loader com relocao dinmica permite que os programas possam ser retirados da memria principal para a memriasecundria e trazidos novamente para a memria principal em qualquer posio . Captulo 10 Gerncia de Memria Virtual 1. Quais os benefcios oferecidos pela tcnica de memria virtual? Como este conceito permite que umprograma e seus dados ultrapassem os limites da memria principal? Os principais benefcios da tcnica de memria virtual so possibilitar que programas e dados sejam armazenadosindependente do tamanho da memria principal, permitir um nmero maior de processos compartilhando a memriaprincipal e minimizar o problema da fragmentao. O que possibilita que um programa e seus dados ultrapassem oslimites da memria principal a tcnica de gerncia de memria virtual que combina as memrias principal esecundria, estendendo o espao de endereamento dos processos.

2. Explique como um endereo virtual de um processo traduzido para um endereo real na memriaprincipal? Ver item 10.4. 3. Por que o mapeamento deve ser feito em blocos e no sobre clulas individuais? Apresente um exemplonumrico. Porque caso o mapeamento fosse realizado para cada clula na memria principal, o espao ocupado pelas tabelas demapeamento seria to grande quanto o espao de endereamento virtual de cada processo, o que inviabilizaria aimplementao do mecanismo de memria virtual. Um processo em um sistema computacional com arquitetura de 32bits poderia ter 4 G endereos virtuais e, consequentemente, tabelas de mapeamento com 4 G entradas. 4. Qual a principal diferena entre os sistemas que implementam paginao e segmentao? A principal diferena entre os dois sistemas est relacionada a forma como o espao de endereamento virtual estdividido logicamente. Na paginao, o espao de endereamento est dividido em blocos com o mesmo nmero deendereos virtuais (pginas), enquanto que na segmentao o tamanho dos blocos pode variar (segmentos). 5. Diferencie pgina virtual de uma pgina real. Pgina virtual um conjunto de endereos virtuais que faz parte do espao de endereamento virtual de um processo.Pgina real um conjunto de endereos reais localizado na memria principal. A pgina real est sempre associada auma pgina virtual. 6. O que so tabelas de pginas e tabelas de segmentos? So tabelas de mapeamento, utilizadas no mecanismo de memria virtual, que possibilitam que endereos virtuais sejamtraduzidos em endereos reais. 7. Para que serve o bit de validade nas tabelas de pginas e segmentos? Para indicar se a pgina ou o segmento em questo encontra-se na memria principal. 8. O que um page fault, quando ocorre e quem controla a sua ocorrncia? Como uma elevada taxa depage fault pode comprometer o sistema operacional? O page fault ocorre todas as vezes que um processo faz referncia a um endereo virtual pertencente a uma pginavirtual que no se encontra mapeada em uma pgina real, ou seja, no est, no momento, na memria principal. Aocorrncia de um page fault verificada atravs do bit de validade presente na ETP da tabela de pginas referente pgina virtual. Uma elevada taxa de page fault pode comprometer o desempenho do sistema devido ao excessivooverhead de operaes de E/S gerados pela paginao. 9. Nos sistemas com paginao, a rotina para tratamento de page faults est residente na memria principal.Esta rotina pode ser removida da memria em algum momento? O que aconteceria se esta rotina noestivesse na memria principal durante a ocorrncia de um page fault? No. A rotina de tratamento de page faults tem que permanecer sempre residente na memria principal, caso contrriono ser possvel realizar o page in quando necessrio (no caso, at mesmo da prpria rotina). 10. Descreva como ocorre a fragmentao interna em um sistema que implementa paginao. A fragmentao interna em um sistema que implementa paginao s encontrada, realmente, na ltima pgina, quandoo cdigo no ocupa o frame por completo . 11. Compare as polticas de busca de pginas apresentadas. Na paginao por demanda, as pginas dos processos so transferidas da memria secundria para a principal apenasquando so referenciadas. Este mecanismo conveniente, na medida em que leva para a memria principal apenas aspginas realmente necessrias execuo do programa. Desse modo, possvel que partes no executadas do programa,como rotinas de tratamento de erros, nunca sejam carregadas para a memria.Na paginao antecipada, o sistema carrega para a memria principal, alm das pginas referenciadas, outras pginasque podem ou no ser necessrias ao processo ao longo do seu processamento. Se imaginarmos que o programa estarmazenado seqencialmente no disco, existe uma grande economia de tempo em levar um conjunto de pginas damemria secundria, ao contrrio de carregar uma de cada vez. Por outro lado, caso o processo no precise das pginascarregadas antecipadamente, o sistema ter perdido tempo e ocupado memria principal desnecessariamente. 12. Quais as vantagens e desvantagens da alocao de pginas varivel comparada alocao fixa?

A alocao fixa simples de ser implementada pelo sistema operacional mas no sempre uma boa opo pois osprocessos possuem necessidades diferentes na alocao de memria. A alocao varivel mais flexvel mas exige queo sistema operacional monitore constantemente o comportamento dos processos gerando maior overhead. 17. Por que existe a necessidade de uma poltica de substituio de pginas? Compare as polticas desubstiuio local e global. Ver item 10.4.3. 18. Para que serve o bit de modificao nas tabelas de pginas e segmentos? Para indicar se a pgina ou segmento foi modificado desde o momento em que foi carregado pela tlima vez namemria principal. 19. Como o princpio da localidade viabiliza a implementao da gerncia de memria virtual porpaginao? O princpio da localidade fundamental para qualquer sistema que implemente a gerncia de memria virtual, poisreduz a ocorrncia de page/segments faults e, conseqentemente, operaes de E/S. 20. Por que programas no estruturados esto sujeitos a uma alta taxa de page faults? Porque o princpio da localidade no se faz presente em cdigos desestrurados. 21. Descreva os algoritmos de substituio de pginas FIFO e LRU, apresentando vantagens e desvantagens. Ver item 10.4.5. 36. Na tcnica de swapping que critrios o sistema operacional pode utilizar para selecionar os processosque sofrero swap out? Na maioria das polticas, o critrio de escolha considera o estado do processo e sua prioridade, buscando dessa formaidentificar o processo com as menores chances de serem executados. 37. Existe fragmentao em sistemas que implementam gerncia de memria virtual? Se existe, que tipo defragmentao encontrado em sistemas paginados? Que tipo de fragmentao encontrado em sistemascom segmentao? O problema da fragmentao existe tanto na gerncia de memria virtual por paginao quanto na por segmentao. Afragmentao interna ocorre na memria virtual por paginao na ltima pgina, caso no seja totalmente ocupada. Afragmentao externa ocorre na memria virtual por segmentao em funo dos espaos livres deixados entresegmentos alocados na memria principal. 38. O que o thrashing em sistemas que implementam memria virtual? Thrashing conseqncia da excessiva paginao/segmentao em sistemas que implementam memria virtual,levando o sistema a dedicar mais tempo com operaes relacionadas gerncia da memria do que no processamentodas aplicaes dos usurios