Você está na página 1de 5

Lista de Exerccios 1 - Sistemas Operacionais 1 Professor: Leandro Marzulo 2012/1

1. Nos primeiros computadores, cada byte em um dispositivo de E/S era lido ou escrito diretamente pelo processador, isto , no havia nenhum mecanismo para realizar a transferncia de bytes diretamente entre o dispositivo e a memria. Que implicaes esse arranjo tem para a multiprogramao? 2. Suponha que um programa A leve 18s para executar no processador e que, para executar a sua tarefa, ele precise fazer E/S por 4s. Se este programa fosse executado em um sistema anterior ao da terceira gerao, qual seria a frao de tempo do processador desperdiada com operaes de E/S? Justifique. Este desperdcio ainda ocorreria nos sistemas posteriores ao da segunda gerao? Justifique. 3. Suponha que dois programas, A e B, estejam para serem executados no processador. O programa A executa por 6s, sendo que 20% deste tempo gasto esperando pelo trmino de uma operao de E/S. J o programa B, que no faz operaes de E/S, executa por 2s no processador. Se o sistema operacional no implementa o conceito de multiprogramao, o processador poder ficar ocioso? Em caso afirmativo, qual ser o tempo de ociosidade do processador? Justifique a sua resposta. 4. Suponha que somente dois programas, A e B, estejam em execuo no processador do computador. O programa A foi o primeiro a executar no processador: executou por 7s, tendo precisado fazer uma operao de E/S, com durao de 4s, aps os primeiros 5s de execuo. O programa B, que executou por 9s, tambm precisou fazer uma operao de E/S, com durao de 3s, aps os primeiros 4s de execuo. Se o sistema operacional no usar a multiprogramao, qual ser o tempo de ociosidade do processador? Agora, se o sistema usar a multiprogramao, o processador ficar ocioso? Justifique a sua resposta. 5. Suponha que um computador pode executar 1 bilho de instrues por segundo, e que uma chamada ao sistema toma 1000 instrues, incluindo a de TRAP e todas as necessrias troca de contexto. Quantas chamadas ao sistema o computador pode executar por segundo para ainda possuir metade da capacidade do processador para executar cdigos de aplicao? 6. Um aluno de sistemas operacionais alegou que a hierarquia dada a seguir relaciona os processos A, B, C, D, E e F em execuo no sistema operacional. A alegao do aluno est correta? Justifique a sua resposta.

7. Suponha que um sistema operacional esteja executando sobre uma mquina virtual. Suponha ainda que o processador virtual possua um poder de processamento 25% menor do que o do processador real, e que o tempo de execuo de uma chamada ao sistema aumente de 10ms para 12ms. Se um determinado programa, tendo feito 25

chamadas ao sistema, executou em 25s, qual seria o tempo de execuo diretamente sobre o hardware do computador? 8. Considerando o programa abaixo, responda: #include <stdio.h> #include <stdlib.h> int main() { fork(); fork(); fork(); return 0; } a) Ao executar o programa, quantos processos so criados, incluindo o processo inicial, assumindo que no houve falha na execuo de nenhuma chamada fork()? b) Como fica a sub-rvore de processos do processo incial, com todos os filhos criados (considerando que nenhum deles terminou e assumindo que no houve falha na execuo de nenhuma chamada fork())? 9. Considerando o programa abaixo, responda: #include <stdio.h> #include <stdlib.h> #include <sys/types.h> int main() { pid_t pid; pid = fork(); if (pid == 0) pid = fork(); if (pid > 0) fork(); fork(); return 0; } c) Ao executar o programa, quantos processos so criados, incluindo o processo inicial, assumindo que no houve falha na execuo de nenhuma chamada fork()? d) Como fica a sub-rvore de processos do processo incial, com todos os filhos criados (considerando que nenhum deles terminou e assumindo que no houve falha na execuo de nenhuma chamada fork())?

10. Suponha que um processo execute em 5s e que durante a sua execuo sejam realizadas 500 operaes de E/S. Suponha ainda que o sistema operacional esteja executando sobre o hardware real, e que uma operao de E/S execute em 2ms. Se o sistema operacional agora executar sobre uma mquina virtual que reduz a velocidade das operaes de E/S em 25%, e cuja velocidade do processador virtual 80% da velocidade do processador real, qual ser o novo tempo de execuo do processo? 11. Na figura dada a seguir mostramos uma verso estendida do diagrama de transio clssico dos estados de um processo, com dois novos estados: o estado Novo, em que o processo colocado quando criado, e o estado Terminado, em que o processo colocado quando termina a sua execuo. Esse diagrama est correto? Justifique a sua resposta.

12. Como seria utilizar um computador sem um sistema operacional? Quais so suas duas principais funes? 13. Explique o conceito de mquina virtual. Qual a grande vantagem em utilizar este conceito? 14. Por que dizemos que existe uma subutilizao de recursos em sistemas monoprogamveis? Qual a grande diferena entre sistemas monoprogramveis e sistemas multiprogramveis? 15. Um sistema monousurio pode ser um sistema multiprogramvel? D um exemplo. 16. Como funcionam os sistemas de tempo compartilhado? Quais as vantagens em utilizlos? 17. Qual a grande diferena entre sistemas de tempo compartilhado e tempo real? Quais aplicaes so indicadas para sistemas de tempo real? 18. O que concorrncia e como este conceito est presente nos sistemas operacionais multiprogramveis? 19. Por que o mecanismo de interrupo fundamental para a implementao da multiprogramao? 20. Explique o mecanismo de funcionamento das interrupes.

21. O que so eventos sncronos e assncronos? Como estes eventos esto relacionados ao mecanismo de interrupo e exceo? 22. Qual a vantagem da E/S controlada por interrupo comparada com a tcnica de polling (ou programada)? 23. O que DMA e qual a vantagem desta tcnica? 24. Como a tcnica de buffering permite aumentar a concorrncia em um sistema computacional? 25. Explique o mecanismo de spooling de impresso. 26. Em um sistema multiprogramvel, seus usurios utilizam o mesmo editor de textos (200 Kb), compilador (300 Kb), software de correio eletrnico (200 Kb) e uma aplicao corporativa (500 Kb). Caso o sistema no implemente reentrncia, qual o espao de memria principal ocupado pelos programas quando 10 usurios estiverem utilizando todas as aplicaes simultaneamente? Qual o espao liberado quando o sistema implementa reentrncia em todas as aplicaes? 27. Por que a questo da proteo torna-se fundamental em ambientes multiprogramveis? 28. O que o ncleo do sistema e quais so suas principais funes? 29. O que uma system call e qual sua importncia para a segurana do sistema? Como as system calls so utilizadas por um programa? 30. O que so instrues privilegiadas e no privilegiadas? Qual a relao dessas instrues com os modos de acesso? 31. Explique como funciona a mudana de modos de acesso e d um exemplo de como um programa faz uso desse mecanismo. 32. Compare as arquiteturas monoltica e de camadas. Quais as vantagens e desvantagens de cada arquitetura? 33. Quais as vantagens do modelo de mquina virtual? 34. Como funciona o modelo cliente-servidor na arquitetura microkernel? Quais suas vantagens e desvantagens dessa arquitetura? 35. Defina o conceito de processo. 36. Por que o conceito de processo to importante no projeto de sistemas multiprogramveis? 37. possvel que um programa execute no contexto de um processo e no execute no contexto de um outro? Por que? 38. Quais partes compem um processo? 39. O que uma troca de contexto? Como e quando ela ocorre? 40. O que o espao de endereamento de um processo?

41. Como o sistema operacional implementa o conceito de processo? Qual a estrutura de dados indicada para organizar os diversos processos na memria principal? 42. Desenhe o diagrama clssico (de 3 estgios) de processos. Explique todas as transies. Como este diagrama estendido para incluir a situao onde um processo no est residente em memria? Desenhe o novo diagrama e explique as novas transies. 43. Explique a diferena entre processos foreground e background. 44. O que so processos CPU-bound e I/O-bound? 45. Como funciona a chamada de sistema fork() de sistemas do tipo UNIX? D um exemplo de uso com um programa em C. 46. Qual a funo da chamada exec() de sistemas do tipo UNIX? D um exemplo de uso com um programa em C. 47. Qual a funo das chamadas shmget(), shmst() e shmdt() de sistemas do tipo UNIX? D um exemplo de uso com um programa em C. 48. O que so pipes? D um exemplo de uso da chamada pipe() dos sistemas do tipo UNIX com um programa em C.