Você está na página 1de 4

Exerccios 2 - Andr Campos Rodovalho - 064896 - SO UFG/EEEC 2008

1) Quais as duas principais funes de um sistema operacional? A funo de um sistema operacional fornecer a programadores um sistema mais enxuto e direto para implementar suas solues, sem ter que preocupar-se com o que feito internamente em nvel de controle e hardware. Tambm papel do SO coordenar dados de entrada e sada, bem como outras funes bsicas de manipulao de dados. 2) O que multiprogramao? Multiprogramao uma soluo obtida para acabar com a ociosidade do processador quando h a necessidade da troca entre processos a executar. Com ela possvel dividir o tempo de processamento entre as tarefas que j esto carregadas na memria. 3) O que spooling? Voc acredita que os computadores pessoais avanados tero spooling como um recurso padro no futuro? uma tcnicas de ler os dados de entrada (ex. cartes de job) para o disco assim que estiverem disponveis, assim no final de cada processo o processador poderia passar para o prximo passo. Existe tambm o sppoling de impresso, que consiste em uma cache, antecedente impresso em si. bvio que no se precisar do spooling de entrada futuramente (e j no se precisa) j o spooling de sada provavelmente ser usado por muito tempo. 4) Nos primeiros computadores, cada byte de dados lido ou escrito era diretamente tratado pela CPU (no havia DMA - acesso direto memria). Que implicaes esse arranjo tem para a multiprogramao? Esse arranjo tira a funcionalidade da multiprogramao, sem o acesso a memria, o processador incapaz de fazer outras tarefas em seu tempo ocioso. 8) Quais das seguintes instrues devem ser autorizadas apenas no modo kernel? (a) Desabilitar todas as interrupes (b) Ler o relgio de hora do dia (c) Setar o relgio de hora do dia (d) Mudar mapeamento de memria Em modo kernel apenas a, c e d. 10) Um computador tem um pipeline de 4 estgios. Cada estgio leva o mesmo tempo para cumprir sua tarefa, no caso 1 nano segundo. Quantas

instrues por segundo este computador pode executar? Toda instruo vem de um pipe. Isso quer dizer que a mquina executa 1x109 instrues por segundo. Independendo da quantidade de estados que o pipeline possui. 11) Um de alerta notifica um erro de ortogrfico em um manuscrito didtico de sistemas operacionais que est prestes a ser impresso. O livro tem aproximadamente 700 pginas, cada uma com 50 linhas e cada linha com 80 caracteres. Quanto vai demorar para scanear eletronicamente para o caso de a cpia principal comear em cada um dos nveis de memria da fig. 1-7? Para mtodos 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 subseqente 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. Memria cache = 5.8 x 10-6 segundos. Disco: ~2700 blocos = 27 segundos. Fita: ~2700 blocos = 2 minutos 7 segundos. Isso levando em considerao leitura dos dados no meio. No o processamento! 14) Qual a diferena chave entre trap e interrupo? O trap causado pelo prprio hardware em um caso de erro (ex. overflow) para depurao. A interrupo 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? tambm necessrio em mquinas 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 no necessrio... Afinal ele nunca estar suspenso. 18) Para cada uma das seguintes chamadas de sistema, d uma condio que cause falha a: fork, exec e unlink. Fork pode falhar no caso de no haver espao para alocar o processo clone na memria, ou swap e etc... Exec pode falhar se o parmetro recebido no for executvel, e unlink falhar caso parmetro recebido no for um caminho vlido, ou no existir tal arquivo.

20) Um arquivo cujo filedescriptor fd contm a seguinte sequencia de bytes: 3,1,4,1,5,9,2,6,5,3,5. As seguintes chamadas de sistema so feitas: lseek(fd,3,SEEK_SET); read(fd,&buffer,4); onde lssek faz a procura pelo byte 3 no arquivo. O que buffer contm 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 diferena essencial entre dispositivos de caracter e dispositivos de bloco? A diferena est na forma de transmisso de dados. Dispositivos de caracter transmitem caracter por caracter (serialmente) e no suportam buffer, logo no se pode fazer buscas e outras coisas que possvel com o dispositivo de bloco. Nos dispositivos de bloco possvel fazer acesso aleatrio, escrever e ler blocos independentemente, seus dados so transmitidos paralelamente. 28) Se voc tem um sistema pessoal baseado em UNIX (Linux, MINIX, Free BSD, etc) disponvel no qual voc possa seguramente causar falha, reiniciar, escrever um script shell que tenta criar um nmero 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 execuo do mesmo. Nota: no tente isso num sistema compartilhado sem antes pedir a permisso do administrador do sistema. As conseqncias sero instantaneamente obvias ento provavelmente voc ser pego, e poder ser punido.
Testei duas implementaes 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; }

Em ambas o resultado o mesmo, os processos comeam a ficar lentos, at o mouse fica legado at travar o processamento e todo sistema congelar. S o reset soluciona o caso!