Sistemas operacionais
1. O que é concorrência e como este conceito está presente nos sistemas operacionais multiprogramáveis?
A concorrência é a possibilidade que o processador tem de executar instruções ao mesmo tempo que outras operações, por exemplo, operações de E/S, permite que diversas tarefas sejam executadas concorrentemente pelo sistema. Concorrência é o princípio básico para o projeto e a implementação dos sistemas multiprogramáveis.
2. O que é o núcleo do sistema e quais são suas principais funções?
O núcleo do sistema é o conjunto de rotinas que oferece serviços aos usuários, suas aplicações, além do próprio sistema operacional.
Em sistemas comerciais tem como principais funções: tratamento de interrupções e exceções; criação e eliminação de processos e threads; sincronização e comunicação entre processos e threads; escalonamento e controle dos processos e threads; gerência de memória; gerência do sistema de arquivos; gerência de dispositivos de E/S; suporte à redes locais e distribuídas; contabilização do uso do sistema; auditoria e segurança do sistema.
3. Compare as arquiteturas monolítica e de camadas. Quais as vantagens e desvantagens de cada arquitetura?
Na arquitetura de camadas, o sistema é dividido em níveis sobrepostos. Cada camada oferece um conjunto de funções que podem ser utilizadas apenas pelas camadas superiores. A arquitetura monolítica pode ser comparada com uma aplicação formada por vários módulos que são compilados separadamente e depois linkados, formando um grande e único programa executável, onde os módulos podem interagir livremente.
A vantagem da estruturação em camadas é isolar as funções do sistema operacional, facilitando sua manutenção e depuração, além de criar uma hierarquia de níveis de modos de acesso, protegendo as camadas mais internas. Uma desvantagem para o modelo de camadas é o desempenho, cada nova camada implica em uma mudança no modo de acesso.