4
Exercícios 2 - André Campos Rodovalho - 064896 - SO UFG/EEEC 2008 1) Quais as duas principais funções de um sistema operacional? A função de um sistema operacional é fornecer a programadores um sistema mais enxuto e direto para implementar suas soluções, sem ter que preocupar-se com o que é feito internamente em nível de controle e hardware. Também é papel do SO coordenar dados de entrada e saída, bem como outras funções básicas de manipulação de dados. 2) O que é multiprogramação? Multiprogramação é uma solução obtida para acabar com a ociosidade do processador quando há a necessidade da troca entre processos a executar. Com ela é possível dividir o tempo de processamento entre as tarefas que já estão carregadas na memória. 3) O que é spooling? Você acredita que os computadores pessoais avançados terão spooling como um recurso padrão no futuro? É uma técnicas de ler os dados de entrada (ex. cartões de job) para o disco assim que estiverem disponíveis, assim no final de cada processo o processador poderia passar para o próximo passo. Existe também o sppoling de impressão, que consiste em uma cache, antecedente à impressão em si. É óbvio que não se precisará do spooling de entrada futuramente (e já não se precisa) já o spooling de saída provavelmente será usado por muito tempo. 4) Nos primeiros computadores, cada byte de dados lido ou escrito era diretamente tratado pela CPU (não havia DMA - acesso direto à memória). Que implicações esse arranjo tem para a multiprogramação? Esse arranjo tira a funcionalidade da multiprogramação, sem o acesso a memória, o processador é incapaz de fazer outras tarefas em seu tempo ocioso. 8) Quais das seguintes instruções devem ser autorizadas apenas no modo kernel? (a) Desabilitar todas as interrupções (b) Ler o relógio de hora do dia (c) Setar o relógio de hora do dia (d) Mudar mapeamento de memória Em modo kernel apenas a, c e d. 10) Um computador tem um pipeline de 4 estágios. Cada estágio leva o mesmo tempo para cumprir sua tarefa, no caso 1 nano segundo. Quantas

SO Perguntas e Respostas - Cap. 1

Embed Size (px)

DESCRIPTION

Livro base: Sistemas Operacionais - Tanenbaum 2.a Edição

Citation preview

Page 1: SO Perguntas e Respostas - Cap. 1

Exercícios 2 - André Campos Rodovalho - 064896 - SO UFG/EEEC 2008 1) Quais as duas principais funções de um sistema operacional? A função de um sistema operacional é fornecer a programadores um sistema mais enxuto e direto para implementar suas soluções, sem ter que preocupar-se com o que é feito internamente em nível de controle e hardware. Também é papel do SO coordenar dados de entrada e saída, bem como outras funções básicas de manipulação de dados. 2) O que é multiprogramação? Multiprogramação é uma solução obtida para acabar com a ociosidade do processador quando há a necessidade da troca entre processos a executar. Com ela é possível dividir o tempo de processamento entre as tarefas que já estão carregadas na memória. 3) O que é spooling? Você acredita que os computadores pessoais avançados terão spooling como um recurso padrão no futuro? É uma técnicas de ler os dados de entrada (ex. cartões de job) para o disco assim que estiverem disponíveis, assim no final de cada processo o processador poderia passar para o próximo passo. Existe também o sppoling de impressão, que consiste em uma cache, antecedente à impressão em si. É óbvio que não se precisará do spooling de entrada futuramente (e já não se precisa) já o spooling de saída provavelmente será usado por muito tempo. 4) Nos primeiros computadores, cada byte de dados lido ou escrito era diretamente tratado pela CPU (não havia DMA - acesso direto à memória). Que implicações esse arranjo tem para a multiprogramação? Esse arranjo tira a funcionalidade da multiprogramação, sem o acesso a memória, o processador é incapaz de fazer outras tarefas em seu tempo ocioso. 8) Quais das seguintes instruções devem ser autorizadas apenas no modo kernel? (a) Desabilitar todas as interrupções (b) Ler o relógio de hora do dia (c) Setar o relógio de hora do dia (d) Mudar mapeamento de memória Em modo kernel apenas a, c e d. 10) Um computador tem um pipeline de 4 estágios. Cada estágio leva o mesmo tempo para cumprir sua tarefa, no caso 1 nano segundo. Quantas

Page 2: SO Perguntas e Respostas - Cap. 1

instruções por segundo este computador pode executar? Toda instrução vem de um pipe. Isso quer dizer que a máquina executa 1x109

instruções por segundo. Independendo da quantidade de estados que o pipeline possui. 11) Um de alerta notifica um erro de ortográfico em um manuscrito didático de sistemas operacionais que está prestes a ser impresso. O livro tem aproximadamente 700 páginas, cada uma com 50 linhas e cada linha com 80 caracteres. Quanto vai demorar para scanear eletronicamente para o caso de a cópia principal começar em cada um dos níveis de memória da fig. 1-7? Para métodos de armazenamento interno, considere que o tempo de acesso dado por caracter, por dispositivos de disco considere que o tempo é por bloco de 1024 caracteres, e para fita considere que o tempo é devido abertura de dados com subseqüente acesso com a mesma velocidade de acesso do disco. A quantidade total de caracteres é 50x80x700 = 2.800.000 Considerando armazenamento em: Regustradores = 2.8 x 10-6 segundos. Memória cache = 5.8 x 10-6 segundos. Disco: ~2700 blocos = 27 segundos. Fita: ~2700 blocos = 2 minutos 7 segundos. Isso levando em consideração leitura dos dados no meio. Não o processamento! 14) Qual a diferença chave entre trap e interrupção? O trap é causado pelo próprio hardware em um caso de erro (ex. overflow) - para depuração. A interrupção pode ser usada pelo software para E/S, enfim, chamadas ao sistema. 16) Porque a necessidade da tabela de processos em um sistema de tempo compartilhado? É também necessário em máquinas pessoais onde apenas um processo existe e toma conta de todo processo até que se termine? A tabela de processos existe para armazenar o estado dos processos (pronto, suspenso, bloqueado). Para um sistema de processo único, este controle não é necessário... Afinal ele nunca estará suspenso. 18) Para cada uma das seguintes chamadas de sistema, dê uma condição que cause falha a: fork, exec e unlink. Fork pode falhar no caso de não haver espaço para alocar o processo clone na memória, ou swap e etc... Exec pode falhar se o parâmetro recebido não for executável, e unlink falhará caso parâmetro recebido não for um caminho válido, ou não existir tal arquivo.

Page 3: SO Perguntas e Respostas - Cap. 1

20) Um arquivo cujo filedescriptor fd contém a seguinte sequencia de bytes: 3,1,4,1,5,9,2,6,5,3,5. As seguintes chamadas de sistema são feitas: lseek(fd,3,SEEK_SET); read(fd,&buffer,4); onde lssek faz a procura pelo byte 3 no arquivo. O que buffer contém depois de read finalizar? Como lssek devolve o ponteiro de onde se encontrou o byte procurado, e read coloca em buffer os 4 bytes sucessivos, buffer vai conter os bytes: 1,4,1,5. 21) Qual a diferença essencial entre “dispositivos de caracter” e “dispositivos de bloco”? A diferença está na forma de transmissão de dados. Dispositivos de caracter transmitem caracter por caracter (serialmente) e não suportam buffer, logo não se pode fazer buscas e outras coisas que é possível com o dispositivo de bloco. Nos dispositivos de bloco é possível fazer acesso aleatório, escrever e ler blocos independentemente, seus dados são transmitidos paralelamente. 28) Se você tem um sistema pessoal baseado em UNIX (Linux, MINIX, Free BSD, etc) disponível no qual você possa seguramente causar falha, re-iniciar, escrever um script shell que tenta criar um número ilimitado de processos filhos e observe o que acontece. Antes de testar o experimento pressione sync na shell para limpar buffers do sistema de arquivos e evitar a execução do mesmo. Nota: não tente isso num sistema compartilhado sem antes pedir a permissão do administrador do sistema. As conseqüências serão instantaneamente obvias então provavelmente você será pego, e poderá ser punido. Testei duas implementações do proposto: em Shell script :(){ :|:& };: e em C #include <stdlib.h> #include <unistd.h> int main(void) {

while (1) { malloc(1048576); fork(); }

return EXIT_SUCCESS; }

Page 4: SO Perguntas e Respostas - Cap. 1

Em ambas o resultado é o mesmo, os processos começam a ficar lentos, até o mouse fica “legado” até travar o processamento e todo sistema congelar. Só o reset soluciona o caso!