Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS OPERACIONAIS LISTA DE EXERCÍCIOS 3 - RESPOSTAS 1. Uma determinada aplicação é composta por diversos threads que acessam áreas comuns de memória, lendo e atualizando seus dados conforme algoritmos próprios. Em algumas ocasiões um thread altera dados que já estavam sendo manipulados por outro thread criando uma situação de instabilidade da aplicação e corrupção dos dados processados. Que técnicas de sincronização poderiam ter sido usadas pelo desenvolvedor para impedir esse tipo de problema? I - Monitor II - Bloqueio total III - Bloqueio seletivo IV - Mutex V - Deadlock (a) I e IV (b) II e III (c) II e IV (d) V, somente (e) IV e V Estão corretas I e IV Monitor - garante que dois processos não executam seus procedimentos simultaneamente. Basta programar a região crítica do código como um desses procedimentos. Mutex - Aplicar exclusão mútua sobre a região crítica do código. As demais opções não têm sentido nesse contexto. 2. Uma situação desagradável para qualquer desenvolvedor é descobrir que seu sistema está sujeito a sofrer de "Condições de corrida" (race conditions). Esta condição ocorre quando dois ou mais processos compartilham dados comuns e, dependendo dos instantes em que cada processo manipula os dados compartilhados, podem ocorrer falhas imprevisíveis. A depuração desse tipo de problema nem sempre é trivial, porém, uma vez identificado o trecho crítico de código, o desenvolvedor pode evitar o problema lançando mão da técnica: (a) Preempção (b) Desfragmentação interna (c) Exclusão mútua (d) Particionamento (e) Uso de threads Se há um trecho crítico de código, que não pode ser executado simultaneamente por mais de um processo, deve-se aplicar a Exclusão Mútua nessa região do código. 3. Qual das assertivas abaixo é incorreta: (a) A técnica de escalonamento do tipo SJF (Shortest Job First) requer uma estimativa prévia do tempo de processamento exigido por um determinado programa. (b) O escalonador deve ter atenção especial a processos interativos, pois um tempo de resposta elevado propicia uma má experiência ao usuário. (c) Em um sistema não-preemptivo um processo é interrompido se realizar uma operação de E/S. (d) Em um ambiente com multitarefa cooperativa, o escalonador permite que um processo execute por um tempo acima da média antes de ser interrompido. (e) Uma das informações relacionadas a um processo é o seu "Tempo de Processador", que jamais poderá ser maior do que o seu tempo de vida, ou seja, o tempo desde que o processo foi criado. Em um ambiente com multitarefa cooperativa, o escalonador permite que um processo execute por um tempo acima da média antes de ser interrompido. ERRADO. Na multitarefa cooperativa um processo só é interrompido nas seguintes condições: 1. O processo interrompe sua execução voluntariamente - não há limitação imposta pelo escalonador, nem interrupção forçada. 2. O processo termina sua execução - fim do programa. 3. O processo entra em modo de Espera (iniciou operação de E/S). 4. Sobre um sistema operacional que utiliza preempção circular, analise as assertivas abaixo: I - O uso de um quantum muito elevado é adequado em sistemas com maioria de aplicações interativas. II - Quanto menor for o quantum, maior será o impacto das rotinas que compõem o escalonador sobre o desempenho do sistema operacional. III - Processos que realizam operação de E/S durante sua execução sempre esgotam o tempo definido pelo quantum antes da liberação. Estão corretas as assertivas: (a) II , somente (b) I, somente (c) II e III, somente (d) I e III (e) Nenhuma das assertivas I - O uso de um quantum muito elevado é adequado em sistemas com maioria de aplicações interativas. ERRADO. Se o quantum é muito elevado, os processos executarão por mais antes de serem interrompidos. No entanto, processos interativos em modo de espera irão demorar mais a responder a operações de E/S, por exemplo, uma tecla digitada. Como esse efeito é desagradável ao usuário, pode-se dizer que o quantum elevado é inadequado nessa situação. II - Quanto menor for o quantum, maior será o impacto das rotinas que compõem o escalonador sobre o desempenho do sistema operacional. CORRETO. Quanto menor for o quantum, mais rápido um processo será interrompido. Cada vez que isso ocorre, o escalonador entra em ação para decidir o próximo processo que entrará em execução. Se as interrupções ocorrerem com mais frequência, o escalonador será invocado um maior número de vezes, ou seja, o processador, em comparação com a situação anterior, gastará mais tempo processando rotinas do núcleo do SO, ao invés de processos. III - Processos que realizam operação de E/S durante sua execução sempre esgotam o tempo definido pelo quantum antes da liberação. ERRADO. Ao iniciar uma operação de E/S, o processo entra em modo de Espera e sua execução é imediatamente interrompida. O controle é retornado ao SO, que, através do escalonador, decidirá o próximo processo a ser executado. 5. Suponha um programa composto por diversos módulos independentes, e cujo código é maior do que toda a área de memória principal do computador. Uma forma de permitir que ele possa ser executado em um sistema monotarefa é através do uso de: (a) Memória virtual (b) Overlay (c) Swapping (d) Paginação (e) Alocação particionada A técnica de overlay permite que apenas partes do programa sejam carregadas para a memória, conforme a necessidade, sendo possível executar um programa cujo código completo supera, em tamanho, a quantidade de memória disponível. Os conceitos de memória virtual, paginação, swapping e alocação particionada não se aplicam a sistemas monotarefa, como explicitado no enunciado. 6. O problema de fragmentação interna ocorre quando: (a) O sistema operacional não utiliza proteção para evitar que um processo escreva na partição de outro, corrompendo os dados ali contidos. (b) Um bloco de memória, liberado por um processo que se encerrou, e localizado entre blocos pertencentes a outros processos, é pequeno demais para ser reutilizado por um novo processo. (c) Após uma operação de swapping, não restam blocos de memória de tamanho fixo disponíveis. (d) O disco onde é realizado o swapping possui pouco espaço livre, o que ocorre após longa utilização. (e) Um processo não utiliza toda a capacidade do bloco de memória que possui. Um processo não utiliza toda a capacidade do bloco de memória que possui. CORRETO. Como parte daquele bloco de memória não foi usado, sobra uma área de memória sem uso e que não pode ser oferecida a outro processo. O sistema operacional não utiliza proteção para evitar que um processo escreva na partição de outro, corrompendo os dados ali contidos. ERRADO. Sem relação com o conceito de fragmentação interna. Um bloco de memória, liberado por um processo que se encerrou, e localizado entre blocos pertencentes a outros processos, é pequeno demais para ser reutilizado por um novo processo. ERRADO. A causa refere-se à fragmentação externa. Após uma operação de swapping, não restam blocos de memóriade tamanho fixo disponíveis. ERRADO. Sem relação com o conceito de fragmentação interna. O disco onde é realizado o swapping possui pouco espaço livre, o que ocorre após longa utilização. ERRADO. Sem relação com o conceito de fragmentação interna. Além disso, a fragmentação interna ocorre na memória principal e não na memória secundária (disco, etc). 7. Qual das assertivas abaixo está incorreta: (a) O mecanismo que traduz um endereço virtual em um endereço real é o mapeamento. (b) Se o mapeamento indicar que uma determinada página não está residente, ocorre um page fault. (c) Com o uso de memória virtual, os processos podem fazer referência direta ao endereço da memória principal, mas não de memórias secundárias pois o processador não reconhece esse endereçamento. (d) O uso de memória virtual não exige que as páginas de um processo ocupem regiões contíguas da memória principal, e nem que estejam ordenadas. (e) Dois processos não compartilham uma mesma tabela de mapeamento. Com o uso de memória virtual, os processos podem fazer referência direta ao endereço da memória principal, mas não de memórias secundárias pois o processador não reconhece esse endereçamento. ERRADO. O uso de memória virtual tem como característica fornecer aos processos um endereçamento virtual de memória, sem qualquer relação com a memória real (principal ou secundária). O mecanismo que traduz um endereço virtual em um endereço real é o mapeamento. CORRETO. Se o mapeamento indicar que uma determinada página não está residente, ocorre um page fault. CORRETO. A página deverá ser trazida para a memória principal (page in). O uso de memória virtual não exige que as páginas de um processo ocupem regiões contíguas da memória principal, e nem que estejam ordenadas. CORRETO. Esse é um dos objetivos da memória virtual. Dois processos não compartilham uma mesma tabela de mapeamento. CORRETO: Cada processo possui, por definição, sua tabela. Compartilhamento de blocos de memória são realizados de outras maneiras. 8. Uma operação fundamental realizada pela MMU é determinar, a partir de um endereço virtual, o número da página virtual correspondente e, dentro dessa página, o deslocamento até o ponto representado pelo endereço virtual. Essa operação, que precisa ser realizada no menor tempo possível, é feita separando-se o endereço virtual em duas partes: um bloco de bits mais significativos representando o número da página, e os demais bits (menos significativos), o deslocamento. Para que a operação possa ser feita como descrito acima, qual das condições abaixo é necessária: (a) A página não pode estar armazenada em memória secundária. (b) Os processos deverão alocar um número par de páginas. (c) O endereço virtual deve possuir duas vezes mais bits que o endereçamento da memória real. (d) Páginas devem possuir tamanho fixo. (e) Recurso de Swapping desativado. Páginas devem possuir tamanho fixo. CORRETO. As páginas devem possuir tamanho fixo, mas não é só isso. O tamanho deve ser 2n. Por exemplo: página de 4096 bytes - os 12 bits (212) menos significativos representam o deslocamento (0 a 4095 bytes). Os 20 bits mais significativos representam o número da página. 9. Sobre gerenciamento de memória, indique qual das opções abaixo está correta: (a) Se o limite de frames que podem ser ocupados por página de um mesmo processo for reduzido, o tempo até esse processo concluir sua tarefa pode aumentar. (b) O desempenho de um sistema operacional aumenta conforme aumenta a quantidade de page faults gerados pelos processos. (c) Ao selecionar um frame para liberar, o gerenciador deve preferir um cuja página alocada sofreu alteração desde o seu page in. (d) Quanto menor o tamanho das páginas, menor será a tabela de mapeamento. (e) Quando um processo faz referência a uma página residente, ele é colocado em estado de espera até o término do page in. Se o limite de frames que podem ser ocupados por página de um mesmo processo for reduzido, o tempo até esse processo concluir sua tarefa pode aumentar. CORRETO. Se em algum momento o processo precisar de um número de páginas residentes maior do que o limite, será necessária paginação, que consome tempo de E/S. Se o limite diminui, a taxa de substituição de páginas tenderá a aumentar, elevando o tempo de execução de um processo. Não confundir com o tempo de processador. O desempenho de um sistema operacional aumenta conforme aumenta a quantidade de page faults gerados pelos processos. ERRADO. Pelo contrário, page faults envolvem operações de E/S, que são mais demoradas e aumentam o tempo em que o processo ficará em espera. Portanto, o desempenho cai. Ao selecionar um frame para liberar, o gerenciador deve preferir um cuja página alocada sofreu alteração desde o seu page in. ERRADO. Se a página sofreu alteração será necessário copiá-la para a memória secundária antes da liberação. Se não tiver sido liberada, e já existir na memória secundária, os dados naquele frame podem ser simplesmente descartados, pois será possível recuperá-los posteriormente. Quanto menor o tamanho das páginas, menor será a tabela de mapeamento. ERRADO. Se o tamanho de cada página diminui (e a quantidade de memória não muda), a quantidade de páginas aumentará. Como a tabela de páginas possui uma entrada para cada página, essa tabela também crescerá. Quando um processo faz referência a uma página residente, ele é colocado em estado de espera até o término do page in. ERRADO. Se a página é residente, já está na memória principal, e nenhuma rotina de paginação (E/S) será necessária. O processo prossegue executando. 10. Sobre sistemas de arquivos, considere as assertivas abaixo: I - Se um processo solicita dados localizados no fim de um arquivo muito grande, a pesquisa será mais rápida num sistema de alocação indexada em relação a um sistema com alocação encadeada. II - Num sistema de arquivos com alocação contígua, as chances de não ser possível criar um arquivo aumentam quanto maior for esse novo arquivo. III - Num sistema de arquivos com alocação contígua, operações do tipo APPEND podem não ser possíveis, mesmo que exista espaço livre no disco. Estão corretas as assertivas: (a) I e III (b) II, somente (c) III, somente (d) II e III (e) I, II e III I - Se um processo solicita dados localizados no fim de um arquivo muito grande, a pesquisa será mais rápida num sistema de alocação indexada em relação a um sistema com alocação encadeada. CORRETO. No sistema de alocação encadeada o ponteiro para o próximo bloco está localizado no bloco anterior, portanto o sistema deve percorrer todos os blocos até chegar ao último. Num sistema de alocação indexada, a lista de blocos está numa área própria (índice). II - Num sistema de arquivos com alocação contígua, as chances de não ser possível criar um arquivo aumentam quanto maior for esse novo arquivo. CORRETO. Como é necessário que existam blocos contíguos que comportem todo o arquivo a ser criado, quanto maior o número deblocos necessários, menor será a chance de haver essa quantidade disponível e em sequência. III - Num sistema de arquivos com alocação contígua, operações do tipo APPEND podem não ser possíveis, mesmo que haja espaço livre no disco. CORRETO. A operação APPEND escreve dados no fim do arquivo, ou seja, o arquivo cresce. Se for preciso alocar mais um bloco do disco, será necessário que o bloco imediatamente posterior ao último esteja livre. Caso contrário, o arquivo não poderá crescer.
Compartilhar