95105752 Silberschatz Abraham Manual Do Professor Conceitos de Sistemas de Informacao 6º Ed

download 95105752 Silberschatz Abraham Manual Do Professor Conceitos de Sistemas de Informacao 6º Ed

of 109

Transcript of 95105752 Silberschatz Abraham Manual Do Professor Conceitos de Sistemas de Informacao 6º Ed

  • MANUAL DO PROFESSORPARA ACOMPANHAR O LIVRO

    CONCEITOS

    DE SISTEMA

    OPERACIONAL

    SEXTA EDIO

    ABRAHAM SILBERSCHATZYale University

    PETER BAER GALVINCorporate Technologies

    GREG GAGNEWestminster College

    Copyright 2001 A. Silberschatz, P. Galvin e Greg Gagne

  • Prefcio

    Este volume um manual do instrutor para a Sexta Edio de Conceitos de Sistema Operacional, de AbrahamSilberschatz, Peter Baer Galvin e Greg Gagne. Ele consiste em respostas para os exerccios no texto princi-pal. Em casos nos quais a resposta para uma pergunta envolve um programa longo, o desenvolvimento deum algoritmo ou uma experincia, nenhuma resposta dada, apenas acrescentamos a frase Sem respostaproposta.

    Embora tenhamos tentado produzir um manual do instrutor que auxilie a todos os usurios de nosso li-vro o mximo possvel, sempre poder haver melhorias (respostas melhoradas, perguntas adicionais, exem-plos de perguntas para teste, projetos de programao, ordens de apresentao alternativas para o material,referncias adicionais e outros). Convidamos vocs, tanto instrutores quanto alunos, a nos ajudarem na me-lhoria desse manual. Se voc tiver solues melhores para os exerccios ou outros itens que sejam teis parao livro, incentivamos o envio desse material para considerarmos em outras edies. Todas as contribuies,naturalmente, recebero devidamente os crditos de seus colaboradores.

    E-mails devero ser endereados para [email protected]. A correspondncia fsica poder ser enviadapara Avi Silberschatz, Department of Computer Science, Yale University 51 Prospect Street, New Haven,CT 06520, USA.

    A. S.P. B. G.G. G.

  • Sumrio

    Captulo 1 Introduo 1

    Captulo 2 Estruturas do computador 5

    Captulo 3 Estruturas do sistema operacional 9

    Captulo 4 Gerncia de processos 13

    Captulo 5 Threads 16

    Captulo 6 Escalonamento de CPU 19

    Captulo 7 Sincronismo de processos 24

    Captulo 8 Deadlocks 31

    Captulo 9 Gerenciamento de memria 39

    Captulo 10 Memria virtual 45

    Captulo 11 Interface do sistema de arquivos 53

    Captulo 12 Implementao do sistema de arquivos 57

    Captulo 13 Sistemas de E/S 61

    Captulo 14 Estrutura de armazenamento em massa 65

    Captulo 15 Estruturas de sistemas distribudos 79

    Captulo 16 Sistemas de arquivos distribudos 84

    Captulo 17 Coordenao distribuda 86

    Captulo 18 Proteo 89

    Captulo 19 Segurana 92

    Captulo 20 O sistema Linux 94

    Captulo 21 Windows XP 104

  • C A P T U L O 1

    Introduo

    O Captulo 1 apresenta o tpico geral de sistemas operacionais e alguns de seus conceitos importantes (mul-tiprogramao, tempo compartilhado, sistemas distribudos e assim por diante). A finalidade mostrar porque os sistemas operacionais so o que so, mostrando como eles so desenvolvidos. Nos sistemas operacio-nais, como em grande parte da cincia de computao, somos conduzidos ao presente pelos caminhos queseguimos no passado, e podemos entender melhor o presente e o futuro compreendendo o passado.

    Um trabalho adicional que pode ser considerado o estudo do(s) sistema(s) especfico(s) ao(s) qual(is) osalunos tero acesso em sua instituio. Essa ainda s uma viso geral, pois as interfaces especficas so con-sideradas no Captulo 3.

    Exerccios1.1 Quais so os trs propsitos principais de um sistema operacional?

    Resposta:

    Oferecer um ambiente para um usurio de computador executar programas no hardware docomputador de uma forma conveniente e eficiente.

    Alocar os recursos separados do computador de acordo com a necessidade, para solucionar de-terminado problema. O processo de alocao dever ser o mais justo e eficiente possvel.

    Como um programa de controle, ele tem duas funes principais: (1) superviso da execuo dosprogramas do usurio, para impedir erros e uso indevido do computador, e (2) gerenciamento daoperao e controle dos dispositivos de E/S.

    1.2 Relacione os quatro passos necessrios para executar um programa em uma mquina completamen-te dedicada.

    Resposta:a. Reservar tempo de mquina.b. Carregar o programa manualmente para a memria.c. Carregar o endereo inicial e iniciar a execuo.d. Monitorar e controlar a execuo do programa a partir do console.

  • 1.3 Qual a principal vantagem da multiprogramao?

    Resposta: A multiprogramao faz uso eficiente da CPU, sobrepondo as demandas por CPU e seusdispositivos de E/S a partir de diversos usurios. Ela tenta aumentar a utilizao de CPU sempre ten-do algo para a CPU executar.

    1.4 Quais so as principais diferenas entre os sistemas operacionais para mainframes e PCs?

    Resposta: Em geral, os sistemas operacionais para sistemas batch (em lote) possuem requisitos maissimples do que para computadores pessoais. Os sistemas batch no precisam se preocupar com a in-terao com um usurio tanto quanto um computador pessoal. Como resultado, um sistema opera-cional para um PC precisa se preocupar com o tempo de resposta para um usurio interativo. Os sis-temas batch no possuem esses requisitos. Um sistema batch puro tambm pode no precisar lidarcom o compartilhamento de tempo, enquanto um sistema operacional precisa alternar rapidamenteentre diferentes tarefas.

    1.5 Em um ambiente de multiprogramao e tempo compartilhado, vrios usurios compartilham o sis-tema simultaneamente. Essa situao pode resultar em diversos problemas de segurana.

    a. Cite dois desses problemas.b. Podemos garantir o mesmo grau de segurana em uma mquina de tempo compartilhado que te-

    mos em uma mquina dedicada? Explique sua resposta.

    Resposta:a. Roubo ou cpia de programas ou dados; uso de recursos do sistema (CPU, memria, espao em

    disco, perifricos) sem a contabilidade devida.b. Provavelmente no, pois qualquer esquema de proteo idealizado por humanos inevitavelmente

    pode ser quebrado por um humano, e quanto mais complexo for o esquema, mais difcil ter cer-teza de que sua implementao est correta.

    1.6 Defina as propriedades essenciais dos seguintes tipos de sistemas operacionais:

    a. Batchb. Interativoc. Tempo compartilhadod. Tempo reale. Redef. SMPg. Distribudoh. Em clustersi. Porttil

    Resposta:a. Batch. As tarefas com necessidades semelhantes so agrupadas e executadas no computador

    como um grupo por um operador ou um seqenciador de tarefas automtico. O desempenho aumentado pela tentativa de manter a CPU e os dispositivos de E/S ocupados o tempo todo atra-vs de buffers, operao off-line, spooling e multiprogramao. O batch bom para executar ta-refas grandes, que precisam de pouca interao; ele pode ser submetido e apanhado mais tarde.

    b. Interativo. Esse sistema composto de muitas transaes curtas, em que os resultados da prxi-ma transao podem ser imprevisveis. O tempo de resposta precisa ser curto (segundos), pois ousurio submete e espera o resultado.

    2 Captulo 1 Introduo ELSEVIER

  • c. Tempo compartilhado. Esses sistemas utilizam o escalonamento de CPU e a multiprogramaopara prover o uso interativo econmico de um sistema. A CPU comuta rapidamente de um usu-rio para outro. Em vez de ter uma tarefa definida por imagens de carto em spool, cada programaprecisa do seu carto de controle a partir do terminal, e a sada normalmente impressa imedia-tamente na tela.

    d. Tempo real. Normalmente usado em uma aplicao dedicada, esse sistema l informaes desensores e precisa responder dentro de um perodo de tempo fixo, para garantir o desempenhocorreto.

    e. Rede. Oferece recursos do sistema operacional por uma rede, como compartilhamento de ar-quivos.

    f. SMP. Usado em sistemas em que existem vrias CPUs, cada uma executando a mesma cpia dosistema operacional. A comunicao ocorre atravs do barramento do sistema.

    g. Distribudo. Esse sistema distribui a computao entre vrios processadores fsicos. Os processa-dores no compartilham memria ou um relgio. Em vez disso, cada processador possui sua pr-pria memria local. Eles se comunicam entre si atravs de diversas linhas de comunicao, comoum barramento de alta velocidade ou uma rede local.

    h. Em clusters. Um sistema em clusters combina diversos computadores em um nico sistema, pararealizar a tarefa computacional distribuda pelo cluster.

    i. Porttil. Um pequeno computador que realiza tarefas simples, como calendrios, e-mail e nave-gao Web. Os sistemas portteis diferem dos sistemas desktop tradicionais por terem memria etela menores, e processadores mais lentos.

    1.7 Enfatizamos a necessidade de que um sistema operacional faa uso eficaz do hardware de computa-o. Quando apropriado que um sistema operacional abandone esse princpio e desperdice re-cursos? Por que esse sistema no realmente desperdiador?

    Resposta: Sistemas monousurios devem maximizar o uso do sistema para o usurio. Uma GUI po-deria desperdiar ciclos de CPU, mas otimiza a interao do usurio com o sistema.

    1.8 Sob quais circunstncias seria melhor para um usurio usar um sistema de tempo compartilhado emvez de um PC ou estao de trabalho monousurio?

    Resposta: Quando houver poucos outros usurios, a tarefa for grande e o hardware for rpido, otempo compartilhado faz sentido. O poder total do sistema pode ser utilizado para ajudar no pro-blema do usurio. O problema pode ser solucionado mais rapidamente do que em um computadorpessoal. Outro caso ocorre quando muitos outros usurios precisam de recursos ao mesmo tempo.

    Um computador pessoal melhor quando a tarefa pequena o suficiente para ser executada de for-ma razovel nele e quando o desempenho suficiente para executar o programa para a satisfao dousurio.

    1.9 Descreva as diferenas entre o multiprocessamento simtrico e assimtrico. Cite trs vantagens euma desvantagem dos sistemas multiprocessados.

    Resposta: O multiprocessamento simtrico trata todos os processadores como sendo iguais, e a E/Spode ser processada em qualquer CPU. O multiprocessamento assimtrico possui uma CPU mestree as CPUs restantes so escravas. O mestre distribui tarefas entre os escravos, e a E/S normalmente feita somente pelo mestre. Os multiprocessadores podem economizar dinheiro, no duplicandofontes de alimentao, gabinetes e perifricos. Eles podem executar programas mais rapidamente epodem ter maior confiabilidade. Eles tambm so mais complexos em hardware e software do quesistemas monoprocessadores.

    Exerccios 3

  • 1.10 Qual a principal dificuldade que um programador precisa contornar na escrita de um sistema ope-racional para um ambiente de tempo real?

    Resposta: A principal dificuldade manter o sistema operacional dentro das restries de tempo fi-xas de um sistema de tempo real. Se o sistema no completar uma tarefa em certo perodo de tempo,ele pode causar uma quebra do sistema inteiro que est executando. Portanto, ao escrever um siste-ma operacional para um sistema de tempo real, o desenvolvedor precisa estar certo de que esses es-quemas de escalonamento no permitem que o tempo de resposta ultrapasse a restrio de tempo.

    1.11 Faa a distino entre o modelo cliente-servidor e o peer-to-peer dos sistemas distribudos.

    Sem resposta proposta

    1.12 Considere as diversas definies do sistema operacional. Considere se o sistema operacional deverincluir aplicaes como navegadores Web e programas de correio. Argumente as posies pr e con-tra, explicando suas respostas.

    Resposta: Aplicaes como navegadores Web e ferramentas de e-mail esto realizando um papelcada vez mais importante nos sistemas desktop modernos. Para cumprir esse papel, eles precisam serincorporados como parte do sistema operacional. Ao fazer isso, eles podem oferecer melhor desem-penho e melhor integrao com o restante do sistema. Alm disso, essas aplicaes importantes po-dem ter o mesmo estilo do software do sistema operacional.

    1.13 Quais so as escolhas inerentes aos computadores portteis?

    Resposta: Os computadores portteis so muito menores do que os tradicionais PCs desktop. Issoresulta em menos memria, telas menores e capacidades de processamento mais lentas do que umPC desktop padro. Devido a essas limitaes, a maioria dos portteis atualmente s pode realizartarefas bsicas, como calendrios, correio eletrnico e processamento de textos simples. Entretanto,devido ao seu tamanho reduzido, eles so facilmente transportveis e, quando equipados com aces-so sem fio (wireless), podem prover acesso remoto ao correio eletrnico e World Wide Web.

    1.14 Considere um cluster de computadores consistindo em dois ns executando um banco de dados.Descreva duas maneiras como o software do cluster pode gerenciar o acesso aos dados no disco. Dis-cuta os benefcios e as desvantagens de cada um.

    Resposta: Considere as duas alternativas a seguir: clusters assimtricos e clusters paralelos. Com osclusters assimtricos, um host executa a aplicao de banco de dados com outro host simplesmentemonitorando-a. Se o servidor falhar, o host que monitora torna-se o servidor ativo. Isso apropria-do para oferecer redundncia. Porm, no utiliza o poder de processamento em potencial dos doishosts. Com os clusters paralelos, a aplicao de banco de dados pode ser executada em paralelo nosdois hosts. A dificuldade na implementao de clusters paralelos oferecer alguma forma de meca-nismo de lock distribudo para arquivos no disco compartilhado.

    4 Captulo 1 Introduo ELSEVIER

  • C A P T U L O 2

    Estruturas do computador

    O Captulo 2 discute a estrutura geral dos computadores. Pode ser uma boa idia rever os conceitos bsicosda organizao da mquina e programao em linguagem assembly. Os alunos devero estar acostumadoscom os conceitos de memria, CPU, registradores, E/S, interrupes, instrues e o ciclo de execuo dainstruo. Como o sistema operacional a interface entre o hardware e os programas do usurio, um bomconhecimento dos sistemas operacionais exige um conhecimento do hardware e dos programas.

    Exerccios

    2.1 Prefetching um mtodo de sobreposio da E/S de uma tarefa com a prpria computao dessatarefa. A idia simples. Depois que uma operao de leitura terminar e a tarefa estiver para co-mear a operar sobre os dados, o dispositivo de entrada instrudo a iniciar a prxima leitura ime-diatamente. A CPU e o dispositivo de sada ficam ambos ocupados. Com sorte, quando a tarefa es-tiver pronta para o prximo item de dados, o dispositivo de entrada ter terminado a leitura desseitem de dados. A CPU pode, ento, comear a processar os dados que foram lidos, enquanto o dis-positivo de entrada comea a ler os dados seguintes. Uma idia semelhante pode ser usada para asada. Nesse caso, a tarefa cria dados que so colocados em um buffer at que um dispositivo de sa-da possa aceit-los.

    Compare o esquema de prefetching com o esquema de spooling, no qual a CPU sobrepe a entradade uma tarefa com a computao e a sada de outras tarefas.

    Resposta: Prefetching uma atividade baseada no usurio, enquanto o spooling uma atividade ba-seada no sistema. O spooling uma forma muito mais eficaz de sobrepor as operaes de E/S e CPU.

    2.2 Como a distino entre modo monitor e modo usurio funciona como uma forma rudimentar desistema de proteo (segurana)?

    Resposta: Estabelecendo um conjunto de instrues privilegiadas que s possam ser executadasquando estiver no modo monitor, o sistema operacional tem garantia de controle do sistema inteiroo tempo todo.

    2.3 Quais so as diferenas entre um trap e uma interrupo? Para que usada cada funo?

    Resposta: Uma interrupo uma mudana de fluxo dentro do sistema, gerada pelo hardware. Umtratador de interrupo chamado para lidar com a causa da interrupo; o controle, ento, retor-

  • nado ao contexto interrompido e instruo. Um trap uma interrupo gerada pelo software. Umainterrupo pode ser usada para sinalizar o trmino de uma E/S a fim de evitar a necessidade dopolling de dispositivo. Um trap pode ser usado para chamar rotinas do sistema operacional ou apa-nhar erros aritmticos.

    2.4 Para que tipos de operaes o DMA til? Explique sua resposta.

    Resposta: O DMA til para transferir grandes quantidades de dados entre a memria e os disposi-tivos. Ele elimina a necessidade de envolver a CPU na transferncia, permitindo que a transfernciatermine mais rapidamente e a CPU realize outras tarefas simultaneamente.

    2.5 Quais das seguintes instrues devem ser privilegiadas?

    a. Definir o valor do temporizador.b. Ler o relgio.c. Apagar a memria.d. Desativar interrupes.e. Passar do modo usurio para o modo monitor.

    Resposta: As seguintes instrues devem ser privilegiadas:a. Definir o valor do temporizador.c. Apagar a memria.d. Desativar interrupes.e. Passar do modo usurio para o modo monitor.

    2.6 Alguns computadores no oferecem um modo de operao privilegiado no hardware. possvelconstruir um sistema operacional seguro para esses computadores? D argumentos mostrando seisso ou no possvel.

    Resposta: Um sistema operacional para uma mquina desse tipo precisaria permanecer no controle(ou modo monitor) o tempo todo. Isso poderia ser realizado por dois mtodos:a. Interpretao do software de todos os programas do usurio (como alguns ambientes BASIC,

    APL e LISP, por exemplo). O interpretador de software ofereceria, no software, o que o hard-ware no oferece.

    b. Exigir que todos os programas sejam escritos em linguagens de alto nvel, para que todo o cdigoobjeto seja produzido pelo compilador. O compilador geraria (em linha ou por chamadas de fun-o) as verificaes de proteo que o hardware no realiza.1

    2.7 Alguns computadores antigos protegiam o sistema operacional colocando-o em uma partio damemria que no poderia ser modificada pela tarefa do usurio ou pelo prprio sistema operacio-nal. Descreva duas dificuldades que voc acha que poderiam surgir com esse esquema.

    Resposta: Os dados exigidos pelo sistema operacional (senhas, controles de acesso, informaescontbeis etc.) teriam de ser armazenados ou passados pela memria desprotegida e, portanto, esta-riam acessveis a usurios no-autorizados.

    2.8 A proteo do sistema operacional crucial para garantir que o computador opere corretamente. Aproviso dessa proteo o motivo para a operao no modo dual, a proteo de memria e o tem-porizador. Porm, para permitir o mximo de flexibilidade, voc tambm dever colocar o mnimode restrio sobre o usurio.

    6 Captulo 2 Estruturas do computador ELSEVIER

    1 Nota do Revisor Tcnico: e impedir que o usurio possa instalar um compilador e bibliotecas em sua prpria rea/conta. Casocontrrio esse mtodo no funciona

  • A seguir, vemos uma lista de instrues que normalmente esto protegidas. Qual o conjunto mni-mo de instrues que precisam ser protegidas?a. Passar para o modo usurio.b. Passar para o modo monitor.c. Ler a partir da memria do monitor.d. Escrever na memria do monitor.e. Buscar uma instruo da memria do monitor.f. Ativar a interrupo por temporizador.g. Desativar a interrupo por temporizador.

    Resposta: O conjunto mnimo de instrues que precisam ser protegidas o seguinte:b. Passar para o modo monitor.c. Ler a partir da memria do monitor.d. Escrever na memria do monitor.g. Desativar interrupo de temporizador.

    2.9 Indique dois motivos pelos quais os caches so teis. Que problemas eles resolvem? Que problemaseles causam? Se um cache puder ser to grande quanto o dispositivo para o qual est dando suporte(por exemplo, um cache to grande quanto um disco), por que no mant-lo com esse tamanho e eli-minar o dispositivo?

    Resposta: Os caches so teis quando dois ou mais componentes precisam trocar dados, e os com-ponentes realizam transferncias em velocidades diferentes. O caches solucionam o problema detransferncia oferecendo um buffer de velocidade intermediria entre os componentes. Se o disposi-tivo rpido encontrar os dados de que precisa no cache, ele no precisa esperar pelo dispositivo maislento. Os dados no cache precisam ser mantidos consistentes com os dados nos componentes. Se umcomponente tiver uma mudana no valor dos dados, e o dado tambm estiver no cache, o cachetambm precisar ser atualizado. Isso um problema especialmente em sistemas multiprocessados,em que mais de um processo pode estar acessando um dado. Um componente pode ser eliminadopor um cache de mesmo tamanho, mas somente se: (a) o cache e o componente tiverem capacidadeequivalente para salvar o estado (ou seja, se o componente retiver seus dados quando a eletricidadefor removida, o cache ter de reter os dados tambm) e (b) o cache for acessvel, pois o armazena-mento mais rpido costuma ser mais caro.

    2.10 Escrever um sistema operacional que possa operar sem interferncia de programas de usurio mali-ciosos ou no depurados exige assistncia do hardware. Cite trs recursos do hardware para a escritade um sistema operacional e descreva como eles poderiam ser usados em conjunto para proteger osistema operacional.

    Resposta:a. Modo monitor/usuriob. Instrues privilegiadasc. Temporizadord. Proteo de memria

    2.11 Algumas CPUs oferecem mais de dois modos de operao. Quais so dois usos possveis para essesmltiplos modos?

    Resposta: Embora a maioria dos sistemas s faa a distino entre os modos de usurio e kernel, al-gumas CPUs possuem suporte para mltiplos modos. Os mltiplos modos poderiam ser usados paraoferecer uma poltica de segurana mais detalhada. Por exemplo, em vez de distinguir entre apenas

    Exerccios 7

  • o modo usurio e o modo kernel, voc poderia distinguir entre diferentes tipos do modo usurio.Talvez os usurios pertencentes ao mesmo grupo pudessem executar o cdigo um do outro. A m-quina entraria em um modo especificado quando um desses usurios estivesse executando cdigo.Quando a mquina estivesse nesse modo, um membro do grupo poderia executar o cdigo perten-cente a qualquer outro no grupo. Outra possibilidade seria oferecer diferentes distines dentro docdigo do kernel. Por exemplo, um modo especfico poderia permitir a execuo de drivers de dis-positivo USB. Isso significaria que os dispositivos USB poderiam ser atendidos sem ter de passar parao modo kernel, essencialmente permitindo que os drivers de dispositivo USB executem em ummodo quase usurio/kernel.

    2.12 Quais so as principais diferenas entre uma WAN e uma LAN?

    Resposta: As diferenas fundamentais so (a) a distncia coberta e (b) a taxa de bits. As LANs sousadas para cobrir pequenas distncias, como casas, prdios ou um conjunto de prdios, como emum campus universitrio. As WANs cobrem distncias muito maiores, talvez milhares de quilme-tros. Como as LANs cobrem distncias muito menores, a taxa em que os dados podem ser transmiti-dos normalmente muito maior. Uma LAN Ethernet pode atingir taxas de bits de at 1 Gigabit, em-bora a maioria das LANs Ethernet ainda seja de 10 ou 100 megabits. As WANs possuem taxas de da-dos muito menores; como um exemplo, uma conexo T1 transfere dados a 1,544 megabits.

    2.13 Que configurao de rede seria mais adequada para os seguintes ambientes?

    a. Um pavimento de dormitriob. Um campus universitrioc. Um estadod. Uma nao

    Resposta:a. Um pavimento de dormitrio Uma LAN.b. Um campus universitrio Uma LAN, possivelmente uma WAN para campus muito grandes.c. Um estado Uma WAN.d. Uma nao Uma WAN.

    8 Captulo 2 Estruturas do computador ELSEVIER

  • C A P T U L O 3

    Estruturas do sistema operacional

    O Captulo 3 trata das interfaces do sistema operacional que os usurios (ou ao menos os programadores)realmente vem: chamadas de sistema. O tratamento um tanto vago, j que mais detalhes exigiriam esco-lher um sistema especfico para a discusso. Este captulo pode ser suplementado exatamente com os deta-lhes do sistema especfico que os alunos tm em mos. O ideal que eles estudem as chamadas de sistema eescrevam alguns programas colocando-as em prtica. Este captulo tambm rene vrios conceitos impor-tantes, incluindo projeto em camadas, mquinas virtuais, Java e a mquina virtual Java, projeto e implemen-tao do sistema, gerao do sistema e a diferena entre poltica e mecanismo.

    Exerccios3.1 Quais so as cinco principais atividades de um sistema operacional em relao gerncia de processos?

    Resposta:

    A criao e a excluso de processos do sistema e do usurio.

    A suspenso e a retomada de processos.

    A proviso de mecanismos para o sincronismo de processo.

    A proviso de mecanismos para a comunicao entre processos.

    A proviso de mecanismos para o tratamento de deadlock.

    3.2 Quais so as trs principais atividades de um sistema operacional em relao gerncia de memria?

    Resposta:

    Acompanhar quais partes da memria esto atualmente sendo usadas e por quem.

    Decidir quais processos devem ser carregados para a memria quando o espao na memria setornar disponvel.

    Alocar e desalocar o espao de memria conforme a necessidade.

    3.3 Quais so as trs principais atividades de um sistema operacional em relao gerncia do armaze-namento secundrio?

    Resposta:

    Gerncia de espao livre.

    Alocao de armazenamento.

    Escalonamento de disco.

  • 3.4 Quais so as cinco principais atividades de um sistema operacional em relao gerncia de arquivos?

    Resposta:

    A criao e a excluso de arquivos.

    A criao e a excluso de diretrios.

    O suporte de primitivas para manipulao de arquivos e diretrios.

    O mapeamento de arquivos no armazenamento secundrio.

    O backup de arquivos em meio de armazenamento estvel (no voltil).

    3.5 Qual a finalidade do interpretador de comandos? Por que ele normalmente separado do kernel?

    Resposta: Ele l comandos do usurio ou de um arquivo de comandos e os executa, normalmentetransformando-os em uma ou mais chamadas de sistema. Normalmente ele no faz parte do kernel,pois o interpretador de comandos est sujeito a mudanas.

    3.6 Relacione cinco servios fornecidos por um sistema operacional. Explique como cada um oferececonvenincia aos usurios. Em que casos seria impossvel que os programas no nvel do usurio ofe-recessem esses servios? Explique.

    Resposta:

    Execuo de programa. O sistema operacional carrega o contedo (ou sees) de um arquivopara a memria e inicia sua execuo. Um programa em nvel de usurio poderia no ser confi-vel para alocar devidamente o tempo de CPU.

    Operaes de E/S. Discos, fitas, linhas seriais e outros dispositivos precisam ter comunicao emum nvel muito baixo. O usurio s precisa especificar o dispositivo e a operao que atuar sobreele, enquanto o sistema converte essa requisio em comandos especficos do dispositivo ou con-trolador. No se pode confiar que os programas no nvel do usurio acessaro apenas os dispositi-vos aos quais devem ter acesso e que somente os acessaro quando no estiverem sendo usados.

    Manipulao do sistema de arquivos. Existem muitos detalhes na criao, excluso, alocao enomeao de arquivos que os usurios no tero de realizar. Os blocos de espao no disco sousados por arquivos e precisam ser rastreados. A excluso de um arquivo exige a remoo das in-formaes do arquivo de nomes e a liberao dos blocos alocados. As protees tambm precisamser verificadas para garantir o acesso apropriado ao arquivo. Os programas do usurio no pode-riam garantir a aderncia aos mtodos de proteo, nem se pode confiar neles para alocar apenasblocos livres e desalocar blocos na excluso do arquivo.

    Comunicaes. A troca de mensagens entre os sistemas requer que as mensagens sejam transfor-madas em pacotes de informao, enviadas ao controlador de rede, transmitidas por um meio decomunicao e remontadas pelo sistema de destino. preciso que haja ordem nos pacotes e cor-reo de dados. Novamente, os programas do usurio no poderiam coordenar o acesso ao dis-positivo da rede, ou ento poderiam receber pacotes destinados a outros processos.

    Deteco de erros. A deteco de erros ocorre nos nveis de hardware e de software. No nvel dehardware, todas as transferncias de dados precisam ser inspecionadas para garantir que os dadosno tenham sido adulterados em trnsito. Todos os dados na mdia precisam ser verificados paragarantir que no sejam alterados desde que foram gravados na mdia. No nvel de software, a mdiaprecisa ser verificada em busca da consistncia dos dados; por exemplo, se a quantidade de blocosde armazenamento alocados e no alocados combina com a quantidade total no dispositivo. Os er-ros so constantemente independentes do processo (por exemplo, a adulterao dos dados em umdisco), de modo que preciso haver um programa global (o sistema operacional) que trate de todosos tipos de erros. Alm disso, processando os erros pelo sistema operacional, os processos no pre-cisam conter cdigo para apanhar e corrigir todos os erros possveis em um sistema.

    10 Captulo 3 Estruturas do sistema operacional ELSEVIER

  • 3.7 Qual a finalidade das chamadas de sistema?

    Resposta: As chamadas de sistema permitem que os processos no nvel do usurio solicitem serviosdo sistema operacional.

    3.8 Usando chamadas de sistema, escreva um programa em C ou C++ que leia dados de um arquivo eos copie para outro arquivo. Esse programa foi descrito na Seo 3.3.

    Resposta: Sem resposta proposta.

    3.9 Por que Java oferece a capacidade de chamar, de um programa Java, mtodos nativos que so escri-tos, digamos, em C ou C++? D um exemplo em que um mtodo nativo til.

    Resposta: Os programas em Java tm como finalidade ser independentes da E/S da plataforma. Por-tanto, a linguagem no oferece acesso aos recursos mais especficos do sistema, como a leitura de dis-positivos de E/S ou portas. Para realizar uma operao especfica de E/S do sistema, voc precisa escre-v-la em uma linguagem que admita tais recursos (como C ou C++). Lembre-se de que um programaJava que chama um mtodo nativo escrito em outra linguagem no ter mais arquitetura neutra.

    3.10 Qual a finalidade dos programas de sistema?

    Resposta: Os programas de sistema podem ser considerados como pacotes de chamadas de sistemateis. Eles oferecem a funcionalidade bsica para os usurios, e por isso os usurios no precisam es-crever seus prprios programas para solucionar problemas comuns.

    3.11 Qual a principal vantagem da tcnica em camadas para o projeto do sistema?

    Resposta: Como em todos os casos de projeto modular, o projeto de um sistema operacional de umaforma modular possui diversas vantagens. O sistema mais fcil de depurar e modificar, pois as mu-danas afetam apenas sees limitadas do sistema, em vez de tocar em todas as sees do sistemaoperacional. As informaes so mantidas apenas onde so necessrias e so acessveis apenas den-tro de uma rea definida e restrita, de modo que quaisquer bugs que afetam esses dados precisam serlimitados a um mdulo ou camada especfica.

    3.12 Qual a principal vantagem da tcnica de microkernel para o projeto do sistema?

    Resposta: Os benefcios normalmente incluem o seguinte: (a) acrescentar um novo servio no exi-ge modificao do kernel, (b) mais seguro, medida que mais operaes so feitas no modo usu-rio do que no modo kernel, e (c) projeto e funcionalidade de kernel mais simples normalmente re-sultam em um sistema operacional mais confivel.

    3.13 Qual a principal vantagem para um projetista de sistema operacional em usar uma arquitetura demquina virtual? Qual a principal vantagem para um usurio?

    Resposta: O sistema mais fcil de depurar e os problemas de segurana so fceis de solucionar. Asmquinas virtuais tambm oferecem uma boa plataforma para a pesquisa do sistema operacional,pois muitos sistemas operacionais diferentes podem ser executados em um sistema fsico.

    3.14 Por que um compilador just-in-time til para a execuo de programas Java?

    Resposta: Java uma linguagem interpretada. Isso significa que a JVM interpreta as instrues docdigo de bytes uma por vez. Normalmente, a maioria dos ambientes interpretados mais lenta doque a execuo de binrios nativos, pois o processo de interpretao exige a converso de cada ins-truo em um cdigo da mquina nativa. Um compilador just-in-time (JIT) compila o cdigo debytes para um mtodo e gera o cdigo da mquina nativa na primeira vez que o mtodo for encon-trado. Isso significa que o programa Java est basicamente executando como uma aplicao nativa(naturalmente, o processo de converso do compilador JIT tambm leva tempo, mas no tanto

    Exerccios 11

  • quanto a interpretao do cdigo de bytes). Alm do mais, o compilador JIT coloca o cdigo compi-lado em cache, de modo que ele possa ser reutilizado da prxima vez que o mtodo for encontrado.Um programa Java executado pelo compilador JIT, ao invs do interpretador tradicional, normal-mente executado muito mais rapidamente.

    3.15 Por que a separao do mecanismo e da poltica desejvel?

    Resposta: Mecanismo e poltica precisam ser separados para garantir que os sistemas sejam fceis demodificar. Duas instalaes do sistema nunca so iguais, de modo que cada instalao pode quererse ajustar ao sistema operacional para atender suas necessidades. Com a separao entre mecanismoe poltica, a poltica pode ser alterada vontade, enquanto o mecanismo permanece inalterado. Essearranjo ocasiona um sistema mais flexvel.

    3.16 O sistema operacional experimental Synthesis possui um assembler incorporado dentro do kernel.Para otimizar o desempenho da chamada de sistema, o kernel monta rotinas dentro do seu espaopara diminuir o caminho que a chamada de sistema precisa percorrer no kernel. Essa tcnica a ant-tese da tcnica em camadas, em que o caminho pelo kernel estendido para facilitar a montagem dosistema operacional. Discuta os prs e os contras da tcnica do Synthesis para o projeto do kernel e aotimizao do desempenho do sistema.

    Resposta: O Synthesis impressionante devido ao desempenho que ele alcana atravs da compila-o on-the-fly. Infelizmente, difcil depurar problemas dentro do kernel, devido fluidez do cdi-go. Alm disso, tal compilao especfica do sistema, tornando o Synthesis difcil de ser portado (preciso escrever um novo compilador para cada arquitetura).

    3.17 Por que alguns sistemas armazenam o sistema operacional em firmware e outros em disco?

    Sem resposta proposta

    3.18 Como um sistema poderia ser projetado para permitir uma escolha dos sistemas operacionais quedaro boot? O que o programa de boot precisaria fazer?

    Sem resposta proposta

    12 Captulo 3 Estruturas do sistema operacional ELSEVIER

  • C A P T U L O 4

    Gerncia de processos

    Neste captulo, apresentamos os conceitos de um processo e execuo simultnea; esses conceitos so a basedos sistemas operacionais modernos. Um processo um programa em execuo e a unidade de trabalho deum sistema de tempo compartilhado moderno. Tal sistema consiste em uma coleo de processos: proces-sos do sistema operacional executando cdigo do sistema e processos do usurio executando cdigo dousurio. Todos esses processos podem ser executados potencialmente de forma concorrente, com a CPU(ou CPUs) multiplexando entre eles. Comutando a CPU entre os processos, o sistema operacional pode tor-nar o computador mais produtivo. Tambm apresentamos a noo de uma thread (processo leve) e comuni-cao entre processos (IPC). As threads so discutidas com mais detalhes no Captulo 5.

    Exerccios4.1 O sistema operacional Palm OS no oferece uma forma de processamento concorrente. Discuta trs

    complicaes importantes que o processamento concorrente acrescenta a um sistema operacional.

    Resposta:

    Um mtodo de compartilhamento de tempo precisa ser implementado para permitir que cada umdos diversos processos tenha acesso ao sistema. Esse mtodo envolve a preempo dos processosque no desistem voluntariamente da CPU (usando uma chamada de sistema, por exemplo) e okernel ser reentrante (para que mais de um processo possa estar executando cdigo do kernelconcorrentemente).

    Os processos e recursos do sistema precisam ter protees e precisam ser protegidos um do outro.Qualquer processo precisa ser limitado na quantidade de memria que pode usar e nas operaesque pode realizar sobre os dispositivos, como os discos.

    Deve-se ter o cuidado no kernel de prevenir deadlocks entre processos, de modo que os processosno estejam aguardando pelos recursos alocados um do outro.

    4.2 Descreva as diferenas entre o escalonamento de curto prazo, mdio prazo e longo prazo.

    Resposta:

    Curto prazo (escalonador de CPU) seleciona as tarefas na memria cujas tarefas no estejamprontas para execuo e aloca a CPU para elas.

  • Mdio prazo usado especialmente com sistemas de tempo compartilhado, como um nvel de escalo-namento intermedirio. Um esquema de swap implementado para retirar da memria programasparcialmente executados e reinstanci-los mais tarde, a fim de continuar a partir de onde pararam.

    Longo prazo (escalonador de tarefa) determina quais tarefas so trazidas para a memria, paraprocessamento.

    A diferena principal est na freqncia de sua execuo. O escalonamento de curto prazo precisaselecionar um novo processo com muita freqncia. O de longo prazo usado muito menos fre-qentemente, pois trata de colocar tarefas no sistema e pode esperar at que uma tarefa termine, an-tes de admitir outra.

    4.3 O processador UltraSPARC da Sun possui vrios conjuntos de registradores. Descreva as aes deuma troca de contexto se o novo contexto j estiver carregado em um dos conjuntos de registrado-res. O que mais dever acontecer se o novo contexto estiver na memria, e no em um conjunto deregistradores, e todos os conjuntos estiverem em uso?

    Resposta: O ponteiro do conjunto de registradores atual da CPU alterado para apontar para o con-junto contendo o novo contexto, o que leva muito pouco tempo. Se o contexto estiver na memria, umdos contextos em um conjunto de registradores precisa ser escolhido e movido para a memria, e onovo contexto precisa ser carregado da memria para o conjunto. Esse processo leva um pouco maisde tempo do que em sistemas com um conjunto de registradores, dependendo de como seleciona-da uma vtima para substituio.

    4.4 Descreva as aes tomadas por um kernel para a troca de contexto entre os processos.

    Resposta: Em geral, o sistema operacional precisa salvar o estado do processo correntemente emexecuo e restaurar o estado do processo escalonado para ser executado em seguida. Salvar o esta-do de um processo normalmente inclui os valores de todos os registradores da CPU, alm da aloca-o de memria. As trocas de contexto tambm precisam realizar muitas operaes especficas daplataforma, incluindo o esvaziamento de caches de dados e instrues.

    4.5 Quais so os benefcios e as desvantagens de cada um dos seguintes? Considere os nveis tanto do sis-tema quanto do programador.

    a. Comunicao sncrona e assncrona.b. Buffer automtico e explcito.c. Enviar por cpia e enviar por referncia.d. Mensagens de tamanho fixo e de tamanho varivel.

    Resposta:a. Comunicao sncrona e assncrona Um benefcio da comunicao sncrona que ela permite

    um encontro entre o emissor e o receptor. Uma desvantagem de um envio com bloqueio que umponto de encontro pode no ser exigido e a mensagem poderia ser entregue de forma assncrona,recebida em um ponto de nenhum interesse ao emissor. Como resultado, os sistemas de troca demensagem normalmente oferecem as duas formas de sincronismo.

    b. Buffer automtico e explcito O buffer automtico oferece uma fila com tamanho indefinido,garantindo assim que o emissor nunca ter de bloquear enquanto espera para copiar uma mensa-gem. No existem especificaes de como o buffer automtico ser fornecido; um esquema podereservar uma memria suficientemente grande, na qual grande parte da memria desperdiada.O buffer explcito especifica o tamanho do buffer. Nessa situao, o emissor pode ser bloqueadoenquanto espera pelo espao disponvel na fila. Porm, h menos probabilidade de que a mem-ria seja desperdiada com o buffer explcito.

    14 Captulo 4 Gerncia de processos ELSEVIER

  • c. Enviar por cpia e enviar por referncia Enviar por cpia no permite que o receptor altere oestado do parmetro; enviar por referncia permite isso. Um benefcio de enviar por referncia que permite que o programador escreva uma verso distribuda de uma aplicao centralizada. ARMI da Java oferece ambos, porm, a passagem de um parmetro por referncia exige a declara-o do parmetro tambm como um objeto remoto.

    d. Mensagens de tamanho fixo e de tamanho varivel As implicaes disso esto relacionadas, namaioria da vezes, a aspectos da bufferizao; com mensagens de tamanho fixo, um buffer com ta-manho especfico pode manter uma quantidade de mensagens conhecida. A quantidade de men-sagens de tamanho varivel que podem ser mantidas por esse buffer desconhecida. Considere aforma como o Windows 2000 trata dessa situao: com mensagens de tamanho fixo (qualquercoisa < 256 bytes), as mensagens so copiadas do espao de endereos do emissor para o espaode endereos do processo receptor. Mensagens maiores (ou seja, mensagens de tamanho vari-vel) utilizam memria compartilhada para passar a mensagem.

    4.6 Considere o mecanismo de RPC. Descreva as circunstncias indesejveis que poderiam surgir se nohouver imposio da semntica no mximo uma vez ou exatamente uma vez. Descreva possve-is usos para um mecanismo que no tenha nenhuma dessas garantias.

    Resposta: Sem resposta proposta.

    4.7 Novamente considerando o mecanismo de RPC, considere a semntica exatamente uma vez. Oalgoritmo para implementar essa semntica executado corretamente mesmo que a mensagemACK de volta ao cliente for perdida devido a um problema na rede? Descreva a seqncia de men-sagens e se o esquema exatamente uma vez ainda preservado.

    Resposta: Sem resposta proposta.

    4.8 Modifique o servidor de data, mostrado na Figura 4.18, de modo que ele oferea nmeros de sortealeatrios em uma linha, em vez da data atual.

    Resposta: Sem resposta proposta.

    4.9 O algoritmo correto de produtor-consumidor, na Seo 4.4, permite que apenas n 1 buffers este-jam cheios ao mesmo tempo. Modifique o algoritmo para permitir que todos os buffers sejam utili-zados totalmente.

    Resposta: Sem resposta proposta.

    4.10 Considere o esquema de comunicao entre processos em que so usadas caixas de correio.

    a. Suponha que um processo P queira esperar por duas mensagens, uma da caixa de correio A e umada caixa de correio B. Que seqncia de send e receive ele dever executar?

    b. Que seqncia de send e receive P dever executar se quiser esperar por uma mensagem da caixade correio A ou da caixa de correio B (ou de ambas)?

    c. Uma operao receive realiza uma espera do processo at que a caixa de correio no esteja vazia.Crie um esquema que permita que um processo espere at que uma caixa de correio esteja vazia,ou explique por que tal esquema no pode existir.

    Resposta: Sem resposta proposta.

    4.11 Escreva um servidor de nmeros de sorte baseado em socket. Seu programa dever criar um servidorque escuta em uma porta especificada. Quando um cliente recebe uma conexo, o servidor deve res-ponder com um nmero de sorte escolhido a partir do seu banco de dados de nmeros de sorte.

    Resposta: Sem resposta proposta.

    Exerccios 15

  • C A P T U L O 5

    Threads

    O modelo de processo apresentado no Captulo 4 assumiu que um processo era um programa em execu-o com uma nica thread de controle. Muitos sistemas operacionais modernos agora provem recursospara um processo conter vrias threads de controle. Esse captulo apresenta muitos conceitos associadosaos computadores multithreads, explicando como usar Java para criar e manipular threads. Descobrimosque especialmente til discutir como uma thread Java mapeado no modelo de thread do sistema opera-cional host.

    Exerccios5.1 Fornea dois exemplos de programao em que o uso de multithreads oferece melhor desempenho

    do que uma soluo com nica thread.

    Resposta: (1) Um servidor Web que atende a cada requisio em uma thread separada. (2) Uma apli-cao paralelizada, como uma multiplicao de matriz em que diferentes partes da matriz podem seratuadas em paralelo. (3) Um programa GUI interativo, como um depurador em que uma thread usada para monitorar a entrada do usurio, outra thread representa a aplicao em execuo e umaterceira thread monitora o desempenho.

    5.2 Fornea dois exemplos de programao em que o uso de multithreads no oferece melhor desempe-nho do que uma soluo com uma nica thread.

    Resposta: (1) Qualquer tipo de programa seqencial no um bom candidato para usar threads. Umexemplo disso um programa para calcular a devoluo de imposto de renda individual. (2) Outroexemplo um programa de shell, como o C-shell ou o Korn shell. Esse tipo de programa precisamonitorar de perto seu prprio espao de trabalho, como arquivos abertos, variveis de ambiente ediretrio de trabalho atual.

    5.3 Cite duas diferenas entre as threads no nvel do usurio e threads no nvel do kernel. Sob que cir-cunstncias um tipo melhor que o outro?

    Resposta: (1) As threads no nvel do usurio so desconhecidas pelo kernel, enquanto o kernel estciente das threads do kernel. (2) As threads do usurio so escalonadas pela biblioteca de threads e okernel escalona as threads do kernel. (3) As threads do kernel no precisam estar associadas a umprocesso, enquanto cada thread do usurio pertence a um processo.

  • 5.4 Descreva as aes tomadas por um kernel para a troca de contexto entre as threads no nvel dokernel.

    Resposta: A troca de contexto entre as threads do kernel normalmente exige salvar o valor dos re-gistradores da CPU da thread que est saindo e restaurar os registradores da CPU da nova threadque est sendo escalonada.

    5.5 Descreva as aes tomadas por uma biblioteca de threads para a troca de contexto entre threads nonvel do usurio.

    Resposta: A troca de contexto entre as threads do usurio bem semelhante troca entre as threadsdo kernel, embora seja dependente da biblioteca de threads e de como ela mapeia as threads dousurio em threads do kernel. Em geral, a troca de contexto entre as threads do usurio envolve pe-gar uma thread do usurio do seu LWP e substitu-la por outra thread. Essa ao normalmente en-volve salvar e restaurar o estado dos registradores.

    5.6 Que recursos so usados quando uma thread criada? Como eles diferem daqueles usados quandoum processo criado?

    Resposta: Como uma thread menor do que um processo, a criao de thread normalmente utilizamenos recursos do que a criao de um processo. A criao de um processo exige a alocao de umbloco de controle de processo (PCB), uma estrutura de dados um tanto grande. O PCB inclui ummapa de memria, uma lista de arquivos abertos e variveis de ambiente. A alocao e o gerencia-mento do mapa de memria normalmente a atividade mais demorada. A criao de uma thread dousurio ou do kernel envolve a alocao de uma estrutura de dados pequena para manter um con-junto de registradores, pilha e prioridade.

    5.7 Suponha que um sistema operacional mapeie threads no nvel do usurio no kernel usando o mode-lo muitos-para-muitos, no qual o mapeamento feito atravs de LWPs. Alm disso, o sistema permi-te que os desenvolvedores criem threads de tempo real. necessrio associar uma thread de temporeal a um LWP? Explique.

    Resposta: Sim. A temporizao fundamental para aplicaes de tempo real. Se uma thread formarcada como tempo real, mas no estiver ligada a um LWP, a thread pode ter de esperar para serconectada a um LWP antes de sua execuo. Considere se uma thread de tempo real est execu-tando (est conectado a um LWP) e depois bloqueie (ou seja, precisa realizar E/S, foi preemptadopor uma thread de tempo real de maior prioridade, est esperando por um lock de excluso mtuaetc.). Enquanto a thread de tempo real est bloqueada, o LWP ao qual foi conectado foi atribudoa outra thread. Quando a thread de tempo real tiver sido escalonada para executar novamente,primeiro ter de esperar para ser conectada a um LWP. Vinculando um LWP a uma thread de tem-po real, voc est garantindo que a thread poder ser executada com um mnimo de atraso depoisde escalonada.

    5.8 Um programa Pthreads que realiza a funo de somatrio foi mostrado na Seo 5.4. Reescreva esseprograma em Java.

    Resposta: Sem resposta proposta.

    5.9 Escreva um programa Java ou Pthreads multithreaded, que gere a seqncia de Fibonacci. Esse pro-grama dever atuar da seguinte maneira: o usurio executar o programa e informar na linha decomandos a quantidade de nmeros de Fibonacci que o programa ter de gerar. O programa, ento,criar uma thread separada, que gerar os nmeros da seqncia de Fibonacci.

    Resposta: Sem resposta proposta.

    Exerccios 17

  • 5.10 Escreva um programa Java ou Pthreads multithreaded, que gere nmeros primos. Esse programa de-ver atuar da seguinte maneira: o usurio executar o programa e informar um nmero na linha decomandos. O programa, ento, criar uma thread separada, que gerar todos os nmeros primosmenores ou iguais ao nmero que o usurio digitou.

    Resposta: Sem resposta proposta.

    5.11 Escreva um programa em Java ou Pthreads multithreaded, que realize a multiplicao de matriz.Especificamente, use duas matrizes, A e B, onde A uma matriz com M linhas e K colunas, e a matrizB contm K linhas e N colunas. A matriz produto de A e B C, onde C contm M linhas e N colunas.A entrada na matriz C para a linha i coluna j (Ci,j) a soma dos produtos dos elementos para a linha ina matriz A e coluna j na matriz B. Ou seja,

    C A Bi j i nn

    K

    n j, , ,

    1

    Por exemplo, se A fosse uma matriz 3 por 2 e B fosse uma matriz 2 por 3, o elemento C3,1 seria asoma de A3,1 B1,1 e A3,2 B2,1. Calcule cada elemento Ci,j em uma thread separada. Isso envolvera criao de M N threads.

    Resposta: Sem resposta proposta.

    5.12 Modifique o servidor de data baseado em socket, do Captulo 4, de modo que o servidor atenda arequisio de cada cliente em uma thread separada.

    Resposta: Sem resposta proposta.

    18 Captulo 5 Threads ELSEVIER

  • C A P T U L O 6

    Escalonamento de CPU

    O escalonamento de CPU a base dos sistemas operacionais multiprogramados. Comutando a CPU entre osprocessos, o sistema operacional pode tornar o computador mais produtivo. Neste captulo, introduzimosos conceitos bsicos de escalonamento e discutimos bastante sobre o escalonamento de CPU. Os alunos jdevero estar familiarizados com os algoritmos de escalonamento FCFS, SJF, Round-Robin, Prioridade eoutros. Essa sua primeira exposio idia de alocao e escalonamento de recursos, de modo que im-portante que eles entendam como isso feito. Grficos de Gantt, simulaes e testes so formas valiosas deincutir as idias. Mostre como as idias so usadas em outras situaes (como esperar em uma fila do cor-reio, o compartilhamento de tempo de um garom entre os clientes, at mesmo as aulas sendo um escalo-namento Round-Robin intercalado de professores).

    Um projeto simples escrever vrios escalonadores de CPU diferentes e comparar seu desempenho porsimulao. A fonte dos bursts de CPU e E/S podem ser gerados por geradores de nmeros aleatrios ou poruma fita de rastreamento. O professor pode criar a fita de rastreamento com antecedncia, para oferecer osmesmos dados para todos os alunos. O arquivo que usei foi um conjunto de tarefas, cada uma sendo um n-mero varivel de bursts alternados de CPU e E/S. Na primeira linha de uma tarefa estava a palavra JOB e onmero da tarefa. Uma seqncia alterada de n linhas de CPU e n linhas de E/S vinha em seguida, cada umaespecificando um tempo de burst. A tarefa era terminada por uma linha END com o nmero de tarefa nova-mente. Compare o tempo para processar um conjunto de tarefas usando o escalonamento FCFS, MenorTempo de Burst e escalonamento Round-Robin. O Round-Robin mais difcil, pois exige a colocao de re-quisies no terminadas de volta fila de prontos (ready queue).

    Exerccios6.1 Um algoritmo de escalonamento de CPU determina a ordem para a execuo de seus processos esca-

    lonados. Dados n processos a serem escalonados em um processador, quantos escalonamentos pos-sveis existem? D uma frmula em termos de n.

    Resposta: n! (n fatorial = n n 1 n 2 ... 2 1)

    6.2 Defina a diferena entre escalonamento preemptivo e no-preemptivo. Indique por que o escalona-mento no-preemptivo estrito provavelmente no ser usado em um centro de computao.

    Resposta: O escalonamento preemptivo permite que um processo seja interrompido no meio de suaexecuo, afastando a CPU e alocando-a a outro processo. O escalonamento no-preemptivo garanteque um processo abandonar o controle da CPU somente quando terminar com seu burst de CPU atual.

  • 6.3 Considere o seguinte conjunto de processos, com o tamanho do tempo de burst de CPU dado emmilissegundos:

    Processo Tempo de burst Prioridade

    P1 10 3

    P2 1 1

    P3 2 3

    P4 1 4

    P5 5 2

    Considere que os processos chegaram na ordem P1, P2, P3, P4, P5, todos no momento 0.

    a. Desenhe quatro grficos de Gantt que ilustrem a execuo desses processos usando FCFS, SJF,uma prioridade no-preemptiva (um nmero de prioridade menor significa uma prioridade maisalta) e o escalonamento RR (quantum = 1).

    b. Qual o turnaround de cada processo para cada um dos algoritmos de escalonamento no item a?c. Qual o tempo de espera de cada processo para cada um dos algoritmos de escalonamento no

    item a?d. Qual dos escalonamentos no item a resulta no menor tempo de espera mdio (em relao a todos

    os processos)?

    Resposta:a. Os quatro grficos de Gantt so

    1 2 3 4 5 FEFS

    1 2 3 4 5 1 3 5 1 5 1 5 1 5 1 RR

    2 4 3 5 1 SJF

    2 5 1 3 4 Prioridade

    b. Turnaround

    FCFS RR SJF Prioridade

    P1 10 19 19 16

    P2 11 2 1 1

    P3 13 7 4 18

    P4 14 4 2 19

    P5 19 14 9 6

    20 Captulo 6 Escalonamento de CPU ELSEVIER

  • c. Tempo de espera (turnaround menos tempo de burst)

    FCFS RR SJF Prioridade

    P1 0 9 9 6

    P2 10 1 0 0

    P3 11 5 2 16

    P4 13 3 1 18

    P5 14 9 4 1

    d. Shortest Job First

    6.4 Suponha que os seguintes processos cheguem para execuo nos momentos indicados. Cada proces-so ser executado pela quantidade de tempo indicada. Ao responder as perguntas, use o escalona-mento no-preemptivo, e baseie todas as decises nas informaes que voc tem no momento emque a deciso deve ser tomada.

    Processo Tempo de chegada Tempo de burst

    P1 0,0 8

    P2 0,4 4

    P3 1,0 1

    a. Qual o turnaround mdio para esses processos com o algoritmo de escalonamento FCFS?b. Qual o turnaround mdio para esses processos com o algoritmo de escalonamento SJF?c. O algoritmo SJF deveria melhorar o desempenho, mas observe que escolhemos executar o pro-

    cesso P1 no momento 0 porque no sabamos que dois outros processos mais curtos chegariamem breve. Calcule qual ser o turnaround mdio se a CPU ficar ociosa para a primeira 1 unidade edepois o escalonamento SJF for utilizado. Lembre-se de que os processos P1 e P2 esto aguardan-do durante esse tempo ocioso, de modo que seu tempo de espera poder aumentar. Esse algorit-mo poderia ser conhecido como escalonamento por conhecimento do futuro.

    Resposta:a. 10,53b. 9,53c. 6,86

    Lembre-se de que o turnaround o tempo de trmino menos o tempo de chegada, de modo quevoc precisa subtrair os tempos de chegada para calcular os turnarounds. FCFS 11 se voc se es-quecer de subtrair o tempo de chegada.

    6.5 Considere uma variante do algoritmo de escalonamento RR, em que as entradas na fila de prontosso ponteiros para os PCBs.

    a. Qual seria o efeito de colocar dois ponteiros para o mesmo processo na fila de prontos?b. Quais seriam as vantagens e desvantagens mais importantes desse esquema?c. Como voc modificaria o algoritmo RR bsico para conseguir o mesmo efeito sem os ponteiros

    duplicados?

    Resposta:a. Esse processo ter aumentado sua prioridade, pois ao obter tempo com mais freqncia ele est

    recebendo tratamento preferencial.

    Exerccios 21

  • b. A vantagem que tarefas mais importantes poderiam receber mais tempo, em outras palavras,maior prioridade no tratamento. A conseqncia, naturalmente, que tarefas menores sofreromais.

    c. Distribui uma quantidade de tempo maior para os processos que merecem maior prioridade. Emoutras palavras, tenha dois ou mais quantums possveis no esquema Round-Robin.

    6.6 Que vantagem existe em ter diferentes tamanhos de quantum de tempo em diferentes nveis de umsistema de enfileiramento multinvel?

    Resposta: Os processos que precisam de atendimento mais freqente, por exemplo, processos inte-rativos como os editores, podem estar em uma fila com um quantum de tempo pequeno. Os proces-sos sem necessidade de atendimento mais freqente podem estar em uma fila com um quantummaior, exigindo menos trocas de contexto para completar o processamento, criando um uso maiseficiente do computador.

    6.7 Considere o seguinte algoritmo de escalonamento por prioridade preemptiva, baseado em priorida-des alteradas dinamicamente. Nmeros de prioridade maiores implicam em prioridade mais alta.Quando um processo est esperando pela CPU (na fila de prontos, mas no em execuo), sua prio-ridade muda a uma taxa ; quando est executando, sua prioridade muda a uma taxa . Todos osprocessos recebem uma prioridade 0 quando entram na fila de prontos. Os parmetros e podemser definidos para dar muitos algoritmos de escalonamento diferentes.

    a. Qual o algoritmo que resulta de > > 0?b. Qual o algoritmo que resulta de < < 0?

    Resposta:a. FCFSb. LIFO

    6.8 Muitos algoritmos de escalonamento de CPU so parametrizados. Por exemplo, o algoritmo RR re-quer um parmetro para indicar a fatia de tempo. As filas multinvel com feedback exigem parme-tros para definir o nmero de filas, os algoritmos de escalonamento para cada fila, os critrios usa-dos para mover processos entre filas, e assim por diante.

    Esses algoritmos so, na realidade, conjuntos de algoritmos (por exemplo, o conjunto de algoritmosRR para todas as fatias de tempo, e assim por diante). Um conjunto de algoritmos pode incluir outro(por exemplo, o algoritmo FCFS o algoritmo RR com um quantum de tempo infinito). Que rela-o (se houver alguma) permanece entre os seguintes pares de conjuntos de algoritmos?a. Prioridade e SJFb. Filas multinvel com feedback e FCFSc. Prioridade e FCFSd. RR e SJF

    Resposta:a. A tarefa mais curta tem a prioridade mais alta.b. O menor nvel de MLFQ FCFS.c. FCFS oferece prioridade mais alta para a tarefa que existe h mais tempo.d. Nenhuma.

    6.9 Suponha que um algoritmo de escalonamento (no nvel de escalonamento de CPU de curto prazo) fa-vorece os processos que tm usado o menor tempo do processador no passado recente. Por que essealgoritmo favorece programas I/O-Bound e no causa starvation permanente nos programasCPU-Bound?

    22 Captulo 6 Escalonamento de CPU ELSEVIER

  • Resposta: Ele favorecer os programas I/O-Bound por causa da requisio de burst de CPU relativa-mente curta por parte deles; os programas CPU-Bound no sofrero starvation porque os progra-mas I/O-Bound abriro mo da CPU com relativa freqncia para realizar sua E/S.

    6.10 Explique as diferenas no grau ao qual os algoritmos de escalonamento a seguir so discriminadosem favor de processos curtos:

    a. FCFSb. RRc. Multilevel feedback queues

    Resposta:a. FCFS discrimina tarefas curtas, pois quaisquer tarefas curtas que chegam aps tarefas longas te-

    ro um tempo de espera mais longo.b. RR trata todas as tarefas igualmente (dando-lhes bursts iguais de tempo de CPU), de modo que

    as tarefas curtas podero sair do sistema mais rapidamente, pois terminaro primeiro.c. Multilevel feedback queues funcionam de modo semelhante ao algoritmo RR elas discrimi-

    nam em favor de tarefas curtas.

    6.11 Explique a distino entre o escalonamento PCX e SCS.

    Resposta: Sem resposta proposta.

    6.12 Considere que um sistema operacional associe threads no nvel do usurio ao kernel usando o mo-delo muitos-para-muitos, no qual o mapeamento feito atravs do uso de LWPs. Alm disso, o siste-ma permite que os desenvolvedores de programas criem threads de tempo real. necessrio vincu-lar uma thread de tempo real a um LWP?

    Resposta: Sem resposta proposta.

    6.13 Usando o algoritmo de escalonamento do Windows XP, qual a prioridade numrica de umathread para os cenrios a seguir?

    a. Uma thread na REALTIME_PRIORITY_CLASS com uma prioridade relativa HIGHEST.

    Resposta: Sem resposta propostab. Uma thread na NORMAL_PRIORITY_CLASS com uma prioridade relativa NORMAL.

    Resposta: Sem resposta propostac. Uma thread na HIGH_PRIORITY_CLASS com uma prioridade relativa ABOVE_NORMAL.

    Resposta: Sem resposta proposta.

    6.14 Considere o algoritmo de escalonamento no sistema operacional Solaris para as threads de tempocompartilhado:

    a. Qual o quantum de tempo (em milissegundos) para uma thread com prioridade 10? E com prio-ridade 55?

    Resposta: Sem resposta proposta.b. Considere que uma thread com prioridade 35 tenha usado seu quantum de tempo inteiro sem

    bloqueio. Que nova prioridade o escalonador atribuir a essa thread?

    Resposta: Sem resposta proposta.c. Considere que uma thread com prioridade 35 bloqueada para E/S antes que seu quantum de

    tempo tenha se esgotado. Que nova prioridade o escalonador atribuir a essa thread?

    Resposta: Sem resposta proposta.

    Escalonamento de CPU 23

  • C A P T U L O 7

    Sincronismo de processos

    O Captulo 7 trata do tpico de sincronismo de processo entre processos executando concorrentemente.Geralmente difcil para os alunos lidarem com a concorrncia de forma correta, e por isso tentamos apre-sent-la juntamente com os problemas clssicos de coordenao de processos: excluso mtua, bounded-buffer, leitores/escritores e assim por diante. Um entendimento desses problemas e suas solues faz parteda atual teoria e do desenvolvimento de sistemas operacionais.

    Primeiro, usamos semforos e monitores para apresentar as tcnicas de sincronismo. Em seguida, o sin-cronismo em Java apresentado para demonstrar adicionalmente uma tcnica de sincronismo baseada emlinguagem.

    Exerccios7.1 Qual o significado do termo espera ocupada? Que outros tipos de espera existem em um sistema

    operacional? A espera ocupada pode ser completamente evitada? Explique sua resposta.

    Resposta: A espera ocupada ocorre quando um processo est realizando um loop enquanto espera aocorrncia de um evento externo. Ela chamada espera ocupada porque o processo normalmenteest em um loop tipo while(true);. Existem outros exemplos de espera ocupada em um sistema ope-racional: esperar at que a E/S esteja disponvel, esperar at que um semforo seja liberado etc. Sim,a espera ocupada pode ser evitada por meio de uma primitiva de sincronismo, como um mutex, se-mforo ou varivel de condio.

    7.2 Explique por que os spinlocks no so apropriados em sistemas monoprocessados, embora possamser adequados em sistemas multiprocessados.

    Resposta: Em sistemas monoprocessados, os spinlocks so um desperdcio de recursos do processa-dor, pois um processo exige o uso da nica CPU enquanto espera por um evento externo. Na verda-de, o processo que est realizando o spinlock pode estar usando a CPU exigida por outro processopara realizar o evento externo, pelo qual o primeiro processo est aguardando. Em sistemas multi-processados, isso pode no acontecer, pois o segundo processo pode ser executado em outra CPU.Com freqncia, os spinlocks so usados em sistemas multiprocessados se o processo s utilizar ospinlock por um curto perodo de tempo. Ou seja, pode ser mais rpido para um processo ficar noloop de espera por um curto perodo de tempo do que bloquear o processo e depois desbloque-loquando o evento que ele est esperando tiver sido completado.

  • 7.3 Prove que, no algoritmo da padaria (Seo 7.2), a propriedade a seguir verdadeira: se Pi est emsua seo crtica e Pk (k i) j tiver escolhido seu number[k] 0, ento (number[i], i) < (number[k], k).

    Resposta: Sem resposta proposta.

    7.4 A primeira soluo de software correta conhecida do problema da seo crtica para dois processosfoi desenvolvida por Dekker. Dois processos, P0 e P1, compartilham as seguintes variveis:

    boolean flag[2]; /* inicialmente falsa */int turn;

    A estrutura do processo Pi (i == 0 ou 1), com Pj (i == 1 ou 0) sendo o outro processo, aparece na Fi-gura 7.27.

    do {

    flag[i] = true;while (flag[j]) {

    if (turn == j) {flag[i] = false;while (turn == j);flag[i] = true;

    }}

    seo crtica

    turn = j;flag[i] = false;

    seo restante

    } while (1);

    F I G U R A 7 . 2 7 A estrutura do processo Pi no algoritmo de Dekker.

    Prove que o algoritmo satisfaz a todos os trs requisitos para o problema da seo crtica.

    Resposta: Esse algoritmo satisfaz as trs condies da excluso mtua: (1) A excluso mtua ga-rantida por meio do uso das variveis flag e turn. Se os dois processos definirem seu flag como true,somente um ter sucesso, a saber, o processo da vez. O processo aguardando s pode entrar em suaseo crtica quando o outro processo atualizar o valor de turn. (2) O progresso fornecido, nova-mente, por meio das variveis flag e turn. Esse algoritmo no oferece alternao estrita. Em vez dis-so, se um processo quiser acessar sua seo crtica, ele poder definir sua varivel flag como true eentrar em sua seo crtica. Ele apenas define turn como o valor do outro processo ao sair de sua se-o crtica. Se esse processo quiser entrar em sua seo crtica novamente antes do outro processo ele repetir o processo de entrada de sua seo crtica e definir turn como o outro processo na sa-da. (3) A espera limitada preservada por meio do uso da varivel TTturn. Considere que os dois pro-cessos queiram entrar em suas respectivas sees crticas. Ambos definem seu valor de flag comotrue; porm, somente a thread da vez poder prosseguir, e a outra espera. Se a espera limitada nofosse preservada, seria possvel que o processo aguardando esperasse indefinidamente enquanto oprimeiro processo entrasse e sasse repetidamente em sua seo crtica. Porm, o algoritmo deDekker faz com que um processo defina o valor de turn para o outro processo, garantindo assim queo outro processo entre em sua seo crtica em seguida.

    Exerccios 25

  • 7.5 A primeira soluo de software correta conhecida do problema da seo crtica para n processoscom um limite inferior na espera de n 1 vezes foi representado por Eisenberg e McGuire. Os pro-cessos compartilham as seguintes variveis:

    enum pstate {idle, want in, in_cs};pstate flag[n];int turn;

    Todos os elementos de flag so inicialmente idle; o valor inicial de turn irrelevante (entre 0 e n-1).A estrutura do processo Pi aparece na Figura 7.28.

    do {while(1) {

    flag[i] = want_in;j = turn;while (j != i) {if (flag[j] != idle)

    j = turn;else

    j = (j+1) % n;}flag[i] = in_cs;j = 0;while ((j < n) && (j == i || flag[j] != in_cs))

    j++;if ((j >= n) && (turn == i || flag[turn] == idle)) break;

    }turn = i;

    seo crtica

    j = (turn+1) % n;while (flag[j] == idle)

    j = (j+1) % n;turn = j;flag[i] = idle;

    seo restante

    } while (1);

    F I G U R A 7 . 2 8 A estrutura do processo Pi no algoritmo de Eisenberg e McGuire.

    Prove que o algoritmo satisfaz a todos os trs requisitos para o problema da seo crtica.

    Resposta: Sem resposta proposta.

    7.6 Na Seo 7.3, mencionamos que a desativao de interrupes constantemente pode afetar o rel-gio do sistema. Explique por que isso acontece e como tais efeitos podem ser minimizados.

    Resposta: O relgio do sistema atualizado a cada interrupo de relgio. Se as interrupes fossemdesativadas particularmente, por um longo perodo , possvel que o relgio do sistema facilmenteperdesse a hora correta. O relgio do sistema tambm usado para fins de escalonamento. Porexemplo, o quantum de tempo para um processo expresso como uma quantidade de batidas do re-lgio. A cada interrupo do relgio, o escalonador determina se o quantum de tempo para o pro-

    26 Captulo 7 Sincronismo de processos ELSEVIER

  • cesso atualmente em execuo expirou. Se as interrupes de relgio fossem desativadas, o escalo-nador poderia no atribuir quantums de tempo com preciso. Esse efeito pode ser aliviado desati-vando-se as interrupes de relgio apenas por perodos muito curtos.

    7.7 Mostre que, se as operaes wait e signal no forem executadas de forma atmica, ento a exclusomtua poder ser violada.

    Resposta: Sem resposta proposta.

    7.8 O Problema do Barbeiro Dormindo. Uma barbearia consiste em uma sala de espera com n cadeiras eum salo de barbeiro com uma cadeira. Se no houver clientes para serem atendidos, o barbeiro vaidormir. Se um cliente entrar na barbearia e todas as cadeiras estiverem ocupadas, ento o cliente vaiembora. Se o barbeiro estiver ocupado, mas houver cadeiras disponveis, ento o cliente senta emuma das cadeiras vagas. Se o barbeiro estiver dormindo, o cliente acorda o barbeiro. Escreva umprograma para coordenar o barbeiro e os clientes.

    Resposta: Sem resposta proposta.

    7.9 O Problema dos Fumantes. Considere um sistema com trs processos fumantes e um processo agen-te. Cada fumante continuamente enrola um cigarro e depois o fuma. Mas, para enrolar e fumar umcigarro, o fumante precisa de trs ingredientes: tabaco, papel e fsforos. Um dos processos fumantestem papel, outro tem tabaco e o terceiro tem fsforos. O agente possui um estoque infinito de todosos trs materiais. O agente coloca dois dos ingredientes na mesa. O fumante que possui o ingredien-te restante, ento, enrola e fuma um cigarro, sinalizando para o agente quando terminar. O agente,ento, coloca outros dois dos trs ingredientes, e o ciclo se repete. Escreva um programa para sin-cronizar o agente e os fumantes.

    Resposta: Sem resposta proposta.

    7.10 Demonstre que monitores, regies crticas condicionais e semforos so todos equivalentes, ao pon-to de os mesmos tipos de problemas de sincronismos poderem ser implementados com eles.

    Resposta: Sem resposta proposta.

    7.11 Escreva um monitor de bounded-buffer em que os buffers (pores) estejam embutidos dentro doprprio monitor.

    Resposta: Sem resposta proposta.

    7.12 A excluso mtua estrita dentro de um monitor torna o monitor de bounded-buffer do Exerccio7.11 adequado principalmente para pequenas pores.

    a. Explique por que essa afirmao verdadeira.b. Crie um novo esquema adequado para pores maiores.

    Resposta: Sem resposta proposta.

    7.13 Suponha que a instruo signal possa aparecer apenas como a ltima instruo em um procedimen-to de monitor. Sugira como a implementao descrita na Seo 7.7 pode ser simplificada.

    Resposta: Sem resposta proposta.

    7.14 Considere um sistema consistindo nos processos P1, P2, ..., Pn, cada um com um nmero de priorida-de exclusivo. Escreva um monitor que aloque trs impressoras idnticas para esses processos, usan-do os nmeros de prioridade para decidir a ordem de alocao.

    Resposta: Sem resposta proposta.

    Exerccios 27

  • 7.15 Um arquivo deve ser compartilhado entre diferentes processos, cada um com um nmero exclusivo.O arquivo pode ser acessado simultaneamente por vrios processos, sujeito seguinte restrio: asoma de todos os nmeros exclusivos associados a todos os processos atualmente acessando o arqui-vo precisa ser menor que n. Escreva um monitor para coordenar o acesso ao arquivo.

    Resposta: Sem resposta proposta.

    7.16 Suponha que substituamos as operaes wait e signal dos monitores por uma nica construoawait(B), onde B uma expresso Booleana geral que faz com que o processo que a executa espereat que B se torne true.

    a. Escreva um monitor usando esse esquema para implementar o problema de leitores-escritores.b. Explique por que, em geral, essa construo no pode ser implementada de forma eficiente.c. Que restries precisam ser colocadas na instruo await para que ela possa ser implementada de

    forma eficiente? (Sugesto: restrinja a generalidade de B; consulte Kessels [1977].)

    Resposta: Sem resposta proposta.

    7.17 Escreva um monitor que implemente um relgio despertador que permite que um programa cha-mando espere por um nmero especificado de unidades de tempo (ticks). Voc pode considerar aexistncia de um relgio real de hardware, que chama um procedimento tick no seu monitor em in-tervalos regulares.

    Resposta: Sem resposta proposta.

    7.18 Por que o Solaris 2 implementa vrios mecanismos de lock? Sob que circunstncias ele usa spinlocks,semforos, mutexes adaptativos, variveis condicionais e locks leitores-escritores? Por que ele usatal mecanismo? Qual a finalidade dos molinetes?

    Resposta: O Solaris 2 oferece diferentes mecanismos de locks, dependendo das necessidades do de-senvolvedor da aplicao. Os spinlocks so teis para sistemas multiprocessados, nos quais umathread pode ser executada em um loop ocupado (por um curto perodo de tempo) ao invs de incor-rer o custo adicional de ser colocado em uma fila para dormir. Os mutexes so teis para efetuar olock de recursos. O Solaris 2 utiliza mutexes adaptativos, significando que o mutex implementadocom um spinlock em mquinas multiprocessadas. Os semforos e as variveis de condio so ferra-mentas mais apropriadas para o sincronismo quando um recurso tiver de ser mantido por um longoperodo de tempo, pois os spinlocks so ineficazes por uma longa durao. Locks de leitores-es-critores so teis quando tanto leitores quanto escritores precisam acessar um recurso, mas os leito-res so mais ativos e o desempenho pode ser aumentado quando no se usa locks de acesso exclusi-vo. O Solaris 2 utiliza turnstiles para ordenar a lista de threads esperando para adquirir um mutexadaptativo ou um lock de leitor-escritor.

    7.19 Por que o Solaris 2 e o Windows 2000 utilizam spinlocks como um mecanismo de sincronismo ape-nas em sistemas multiprocessados e no em sistemas monoprocessados?Resposta: Consultar a pergunta 2.

    7.20 Explique as diferenas, em termos de custo, entre os trs tipos de armazenamento: voltil, no-vo-ltil e estvel.

    Resposta: O armazenamento voltil refere-se memria principal e de cache, e mais rpido. Po-rm, o armazenamento voltil no pode sobreviver a falhas do sistema ou desligamento do sistema.O armazenamento no-voltil sobrevive a falhas do sistema e sistemas desligados. Os discos e as fitasso exemplos de armazenamento no-voltil. Recentemente, apareceram dispositivos USB usandomemria somente de leitura programveis e apagveis (EPROM) oferecendo armazenamento novoltil. O armazenamento estvel refere-se ao armazenamento que tecnicamente nunca pode serperdido, pois existem cpias de backup redundantes dos dados (normalmente em disco).

    28 Captulo 7 Sincronismo de processos ELSEVIER

  • 7.21 Explique a finalidade do mecanismo de ponto de verificao (checkpoint). Com que freqncia ospontos de verificao devem ser realizados? Como a freqncia dos pontos de verificao afeta:

    O desempenho do sistema quando no ocorrem falhas?

    O tempo gasto para a recuperao de uma falha do sistema?

    O tempo gasto para a recuperao de uma falha do disco?

    Resposta: Um registro de log de ponto de verificao indica que um registro de log e seus dados modi-ficados foram escritos no armazenamento estvel e que a transao no precisa ser refeita no caso deuma falha do sistema. Obviamente, quanto mais freqentes forem os pontos de verificao, menoresas probabilidades de realizao de atualizaes redundantes durante o processo de recuperao.

    O desempenho do sistema quando no ocorrem falhas Se nenhuma falha ocorrer, o sistema de-ver incorrer o custo de realizar pontos de verificao que so essencialmente desnecessrios.Nessa situao, a realizao de pontos de verificao com menos freqncia levar a um desem-penho melhor do sistema.

    O tempo gasto para a recuperao de uma falha do sistema A existncia de um registro de pontode verificao significa que uma operao no ter de ser refeita durante a recuperao do siste-ma. Nessa situao, quanto maior a freqncia de realizao dos pontos de verificao, mais rpi-do ser o tempo de recuperao de uma falha do sistema.

    O tempo gasto para a recuperao de uma falha do disco A existncia de um registro de pontode verificao significa que uma operao no ter de ser refeita durante a recuperao do siste-ma. Nessa situao, quanto maior a freqncia de realizao dos pontos de verificao, mais rpi-do ser o tempo de recuperao de uma falha do disco.

    7.22 Explique o conceito de atomicidade da transao.

    Resposta: Uma transao uma srie de operaes de leitura e escrita sobre algum dado, acompa-nhada de uma operao de commit. Se a srie de operaes em uma transao no puder ser com-pletada, a transao dever ser cancelada e as operaes que ocorreram devero ser revertidas (roll-back). importante que a srie de operaes em uma transao aparea como uma operao atmi-ca, para garantir a integridade dos dados sendo atualizados. Caso contrrio, os dados poderiam sercomprometidos se as operaes de duas (ou mais) transaes diferentes fossem misturadas.

    7.23 Mostre que o protocolo de lock em duas fases garante a serializao de conflitos.

    Resposta: Um roteiro refere-se seqncia de execuo das operaes para uma ou mais transaes.Um roteiro serial a situao em que cada transao de um roteiro realizada de forma atmica. Seum roteiro consiste em duas transaes diferentes, em que operaes consecutivas de diferentestransaes acessam os mesmos dados e pelo menos uma das operaes uma escrita, ento temos oque conhecido como um conflito. Se um roteiro puder ser transformado em um roteiro serial poruma srie de trocas nas operaes no em conflito, dizemos que tal roteiro possui serializao deconflitos.

    O protocolo de lock em duas fases garante a serializao de conflitos porque os locks exclusivos(que so usados para operaes de escrita) precisam ser obtidos serialmente, sem liberar quaisquerlocks durante a fase de aquisio (crescimento). Outras transaes que desejam adquirir os mesmoslocks precisam esperar que a primeira transao comece a liberar locks. Exigindo que todos os locksdevam primeiro ser adquiridos antes de liberarem quaisquer outros, estamos nos assegurando deque os conflitos em potencial sero evitados.

    7.24 Mostre que alguns roteiros so possveis sob o protocolo de lock em duas fases, mas no so poss-veis sob o protocolo de estampa de tempo, e vice-versa.

    Exerccios 29

  • Resposta: Um roteiro que permitido no protocolo de lock em duas fases, mas no no protocolo deestampa de tempo, :

    Etapa T0 T1 Comentrios de precedncia

    1 lock-S(A)

    2 read(A)

    3 lock-X(B)

    4 write(B)

    5 unlock(B)

    6 lock-S(B)

    7 read(B) T1 T0

    8 unlock(A)

    9 unlock(B)

    Esse roteiro no permitido no protocolo de estampa de tempo porque, na etapa 7, a estampa-W deB 1.

    Um roteiro que permitido no protocolo de estampa de tempo, mas no no protocolo de lock emduas fases, :

    etapa T0 T1 T2

    1 write(A)

    2 write(A)

    3 write(A)

    4 write(B)

    5 write(B)

    Esse roteiro no pode ter instrues de lock acrescentadas para torn-lo vlido sob o protocolo delock em duas fases, pois T1 precisa efetuar o unlock (A) entre as etapas 2 e 3, e precisa efetuar o lock(B) entre as etapas 4 e 5.

    30 Captulo 7 Sincronismo de processos ELSEVIER

  • C A P T U L O 8

    Deadlocks

    Deadlock um problema que s pode surgir em um sistema com vrios processos assncronos ativos. im-portante que os alunos aprendam as trs tcnicas bsicas para prevenir, evitar e detectar deadlocks (emboraos termos prevenir e evitar sejam fceis de confundir).

    Pode ser til enunciar um problema de deadlock em termos humanos e perguntar por que os sistemas hu-manos nunca causam deadlock. Os alunos conseguem transferir esse conhecimento dos sistemas humanospara os computadores?

    Os projetos podem envolver simulao: crie uma lista de tarefas consistindo em requisies e liberaesde recursos (tipo nico ou tipos mltiplos). Pea aos alunos para alocarem os recursos a fim de evitar o de-adlock. Isso basicamente envolve a programao do algoritmo do banqueiro.

    A pesquisa de Coffman, Elphick e Shoshani [1971] uma boa leitura suplementar, mas voc tambm deveconsiderar pedir aos alunos que releiam os artigos de Havender [1968], Habermann [1969] e Holt [1971a].Os dois ltimos foram publicados na CACM e, portanto, devero estar disponveis com facilidade.1

    Exerccios8.1 Liste trs exemplos de deadlocks que no esto relacionados a um ambiente de computacional.

    Resposta:

    Dois carros atravessando uma ponte de mo nica vindos de direes opostas.

    Uma pessoa descendo uma escada de mo enquanto outra pessoa est subindo pela escada de mo.

    Dois trens seguindo um em direo ao outro no mesmo trilho.

    8.2 possvel ter um deadlock envolvendo apenas um processo de com uma nica thread? Explique suaresposta.

    Resposta: No. Isso segue diretamente da condio de manter e esperar.

    8.3 As pessoas tm dito que o spooling apropriado eliminaria os deadlocks. Certamente, isso elimina a dis-puta por leitoras de cartes, plotadoras, impressoras e assim por diante. possvel at mesmo colocarfitas em spool (chamado de staging), deixando apenas os recursos de tempo de CPU, memria e espa-o em disco. possvel haver deadlock envolvendo esses recursos? Se for possvel, como esse deadlock

    1 Nota do Revisor Tcnico: Essa informao no muito adequada no Brasil. possvel que eles estejam disponveis pelo siste-ma da CAPES ou via COMUT.

  • ocorreria? Se no for possvel, por que no ocorre? Que esquema de deadlock pareceria melhor paraeliminar esses deadlocks (se for possvel) ou que condio violada (se no for possvel)?

    Resposta: Sem resposta proposta.

    8.4 Considere o deadlock de trnsito representando na Figura 8.11.

    a. Mostre que as quatro condies necessrias para o deadlock so mantidas de fato neste exemplo.b. Indique uma regra simples para evitar deadlocks nesse sistema.

    Resposta:a. As quatro condies necessrias para um deadlock so (1) excluso mtua; (2) manter e esperar;

    (3) no-preempo; e (4) espera circular. A condio de excluso mtua existe porque somenteum carro pode ocupar um espao na rua. Manter e esperar ocorre quando um carro mantm seulugar na rua enquanto espera para avanar na rua. Um carro no pode ser removido (ou seja, pre-emptado) de sua posio na rua. Por fim, h realmente uma espera circular porque cada carroest esperando que um carro subseqente avance. A condio de espera circular tambm facil-mente observada no do desenho.

    b. Uma regra simples que evitaria esse deadlock de trfego que um carro no pode avanar paraum cruzamento, se estiver vazio, a menos que possam sair imediatamente da interseo, ou seja,nenhum carro pode parar em um cruzamento.

    8.5 Suponha que um sistema esteja em um estado inseguro. Mostre que possvel ao processo comple-tar sua execuo sem entrar em um estado de deadlock.

    Resposta: Um estado inseguro no necessariamente leva ao deadlock, ele apenas indica que no po-demos garantir que o deadlock no ocorrer. Porm, possvel que um sistema em um estado inse-guro ainda possa permitir que todos os processos terminem sem que ocorra o deadlock. Considere asituao em que um sistema possui 12 recursos alocados entre os processos P0, P1 e P2. Os recursosso alocados de acordo com a seguinte poltica:

    Mximo Atual Necessrio

    P0 10 5 5

    P1 4 2 2

    P2 9 3 6

    Atualmente, existem dois recursos disponveis. Esse sistema est em um estado inseguro porque oprocesso P1 poderia completar, liberando assim um total de quatro recursos. Mas no podemos ga-rantir que os processos P0 e P2 podem completar. Porm, possvel que um processo possa liberar re-cursos antes de requisitar algum outro. Por exemplo, o processo P2 poderia liberar um recurso, au-mentando assim o nmero total de recursos para cinco. Isso faz com que o processo P0 conclua, oque liberaria um total de nove recursos, permitindo assim que o processo P2 tambm conclua.

    8.6 Uma soluo possvel para prevenir os deadlocks ter um nico recurso de ordem mais alta quedeva ser requisitado antes de qualquer outro recurso. Por exemplo, se vrias threads tentarem aces-sar os locks para cinco objetos Java A...E, o deadlock possvel. Podemos prevenir o deadlock acres-centando um sexto objeto F. Sempre que uma thread quiser obter o lock para qualquer objeto A...E,ela primeiro ter de obter o lock para o objeto F. Essa soluo conhecida como conteno: os locksdos objetos A...E esto contidos dentro do lock do objeto F. Compare esse esquema com o esquemade espera circular da Seo 8.4.4.

    Resposta: Sem resposta proposta.

    32 Captulo 8 Deadlocks ELSEVIER

  • 8.7 Em um computador real, nem os recursos disponveis, nem as demandas dos processos por recursos,so consistentes por longos perodos (meses). Recursos falham ou so substitudos, novos processosvem e vo, novos processos so adquiridos e adicionados ao sistema. Se o deadlock controladopelo algoritmo do banqueiro, quais das seguintes alteraes podem ser feitas de forma segura (semintroduzir a possibilidade de deadlock), e sob quais circuntncias?

    a. Aumentar Available (novos recursos adicionados)b. Diminuir Available (recursos permanentemente removidos do sistema)c. Aumentar Max para um processo (o processo necessita de mais recursos do que os alocados, ele

    pode querer mais)d. Diminuir Max de um processo (o processo decide que no precisa de tantos recursos)e. Aumentar o nmero de processosf. Diminuir o nmero de processos

    Resposta:a. Aumentar Available (novos recursos adicionados) Esta modificao pode ser feita de forma se-

    gura, sem causar nenhum problema.b. Diminuir Available (recursos permanentemente removidos do sistema) Esta modificao pode

    causar algum impacto no sistema e introduzir a possibilidade de deadlock, uma vez que a estabili-dade assumida do sistema pressups a existncia de uma certa quantidade de recursos disponve-is.

    c. Aumentar Max para um processo (o processo necessita mais recursos do que os alocados, elepode querer mais) Esta modificao pode causar algum impacto no sistema e introduzir a possi-bilidade de deadlock.

    d. Diminuir Max de um processo (o processo decide que no necessita de tantos recursos) Estamodificao pode ser feita de forma segura, sem causar nenhum problema.

    e. Aumentar o nmero de processos Esta modificao pode ser efetuada assumindo que os recursossero alocados a novos processos, de tal forma que o sistema no entre em um estado inseguro.

    f. Diminuir o nmero de processos Esta modificao pode ser feita de forma segura, sem causarnenhum problema.

    for (int i = 0; i < n; i++) {// primeiro encontra um fluxo que possa terminarfor (int j = 0; j < n; j++) {if (!finish[j]) {boolean temp = true;for (int k = 0; k < m; k++) {if (need[j][k] > work[k])temp = false;

    }

    if (temp) { // se esse fluxo pode terminarfinish[j] = true;for (int x = 0; x < m; x++)work[x] += work[j][x];

    }}

    }}

    F I G U R A 8 . 1 Algoritmo de segurana do algoritmo do banqueiro.

    Exerccios 33

  • 8.8 Prove que o algoritmo de segurana apresentado na Seo 8.5.3 exige uma ordem de m n2 operaes.

    Resposta: A Figura 8.1 oferece o cdigo Java que implementa o algoritmo de segurana no algorit-mo do banqueiro (a implementao completa do algoritmo do banqueiro est disponvel por down-load do cdigo-fonte).

    Como podemos ver, os loops externos aninhados ambos repetindo n vezes oferecem o desempe-nho n2. Dentro desses loops externos existem dois loops seqenciais internos, que se repetem m ve-zes. A grande ordem desse algoritmo , portanto, O(m n2).

    8.9 Considere um sistema consistindo em quatro recursos do mesmo tipo, que so compartilhados portrs processos, cada um precisando no mximo de dois recursos. Mostre que o sistema est livre dedeadlock.

    Resposta: Suponha que o sistema esteja em deadlock. Isso implica que cada processo est mantendoum recurso e est esperando por mais um. Como existem trs processos e quatro recursos, um pro-cesso precisa ser capaz de obter dois recursos. Esse processo no exige mais recursos e, portanto, re-tornar seus recursos quando terminar.

    8.10 Considere um sistema consistindo em m recursos do mesmo tipo sendo compartilhados por n pro-cessos. Os recursos podem ser requisitados e liberados pelos processos somente um de cada vez.Mostre que o sistema est livre de deadlock se as duas condies a seguir forem mantidas:

    a. A necessidade mxima de cada processo est entre 1 e m recursos.

    b. A soma de todas as necessidades mximas menor que m + n.

    Resposta: Usando a terminologia da Seo 7.6.2, temos:a. M

    i

    n

    1ximoi < m + n

    b. Mximoi 1 para todo iProva: Necessrioi = Mximoi AlocaoiSe existir um estado de deadlock, ento:

    c. Ai

    n

    1locaoi = m

    Use a. para obter: Necessrioi + Alocaoi = Mximoi < m + n

    Use c. para obter: Necessrioi + m < m + n

    Reescrito para obter: Ni

    n

    1ecessrioi < n

    Isso implica que existe um processo Pi tal que Necessrioi = 0. Como Mximoi 1, segue-se que Pitem pelo menos um recurso que pode ser l