Sistemas operacionais
1. Quais são as principais funções de um Sistema Operacional?
2. Como seria desenvolver aplicações para um ambiente sem um Sistema Operacional?
3. Explique por que o uso de um Sistema Operacional Monotarefa leva à subutilização dos recursos.
4. Como funciona um Sistema Operacional de tempo compartilhado?
5. Os Sistemas Operacionais desktop (Windows, Linux, MacOS) são de tempo real? Por quê?
6. Que aplicações necessitam de um Sistema Operacional de tempo real?
7. Defina o conceito de Processo. Por que este conceito é tão importante no projeto de sistemas multitarefa?
Processos
8. O que é a tabela de processos? O que ela armazena?
9. O que é o contexto de um processo? Como ocorre a troca de contexto?
10. Qual é a diferença entre processo e thread?
11. Para que servem as threads?
12. Quais são os possíveis estados de um processo? Quais são as possíveis transições e quando elas ocorrem?
Comunicação Inter-Processos
13. Considere uma aplicação que utilize uma matriz na memória principal para a comunicação entre vários processos concorrentes. Que tipo de problema pode ocorrer quando dois ou mais processos acessam uma mesma posição da matriz?
14. O que é exclusão mútua?
15. Como a desabilitação das interrupções serve para implementar a exclusão mútua? Qual é o problema de utilizar esta técnica?
16. O que é espera ocupada? Dê um exemplo de técnica baseada em espera ocupada.
17. Por que o uso de uma variável de bloqueio não resolve o problema da exclusão mútua? O que é preciso para que esta técnica funcione?
18. O que são soluções bloqueantes? Em que elas são melhores que as soluções de espera ocupada?
19. Qual é o problema da solução baseada nas chamadas de sistema sleep / wake up?
20. O problema dos leitores/escritores consiste na sincronização de processos que acessam uma base de dados comum – algo como um