Aqui está o questionário de Sistemas Operativos I respondido de forma clara, objectiva e técnica:
1. Dificuldades de programar sem um sistema operativo:
• Gerir manualmente o hardware (memória, CPU, disco).
• Implementar a comunicação entre dispositivos.
• Controlar multitarefa e concorrência.
• Lidar com erros e interrupções sem abstrações.
• Ausência de bibliotecas e serviços de sistema.
2. Definição de sistemas operativos:
Um sistema operativo (SO) é um software intermediário entre o hardware e os programas de
aplicação, responsável por gerir recursos do sistema e fornecer uma interface para o utilizador.
3. Classificação quanto às tarefas:
• Monotarefa: executa uma tarefa de cada vez.
• Multitarefa: executa múltiplas tarefas simultaneamente, com partilha do tempo de CPU.
4. Classificação quanto aos usuários:
• Monousuário: apenas um utilizador por vez (ex.: MS-DOS).
• Multiusuário: permite múltiplos utilizadores simultaneamente (ex.: Linux, UNIX).
5. Funções de gerência do kernel:
• Gerência de processos.
• Gerência de memória.
• Gerência de dispositivos de entrada/saída.
• Gerência de sistema de ficheiros.
• Gerência de segurança e acesso.
6. Recursos para criar um processo:
• Espaço na memória.
• Identificador único (PID).
• PCB (Bloco de Controle de Processo).
• Registos de CPU.
• Posição de código e dados do programa.
7. Diferença entre processo e programa:
• Programa: código passivo armazenado em disco.
• Processo: instância ativa de um programa em execução, com contexto e recursos próprios.
8. Tipos de processos quanto à ocorrência:
• Processo independente: não interage com outros.
• Processo cooperativo: partilha dados ou sincroniza com outros processos.
9. Classificação em disputas de recursos:
• Concorrente cooperativo: partilha recursos de forma coordenada.
• Concorrente competitivo: pode causar condições de corrida e deadlocks se não gerido.
10. Estados básicos de um processo:
• Novo: criado, ainda não executado.
• Pronto: preparado para executar.
• Executando: usando a CPU.
• Bloqueado: à espera de evento.
• Finalizado: execução terminada.
11. Actividades do SO na gerência de processos:
• Criação/remoção de processos.
• Escalonamento de processos.
• Troca de contexto.
• Comunicação e sincronização entre processos.
• Alocação de recursos.
12. Diferença entre sistemas operativos:
Ex.:
• Linux: código aberto, multitarefa, multiusuário.
• Windows: interface gráfica robusta, proprietário.
• UNIX: forte em redes, estabilidade, usado em servidores.
13. Definição de System Calls (chamadas de sistema):
São interfaces entre programas e o sistema operativo, que permitem que um programa solicite
serviços do SO (ex.: leitura de ficheiros, criação de processos).
14. Grupos de System Calls:
• Controle de processo.
• Manipulação de ficheiros.
• Manipulação de dispositivos.
• Informação sobre o sistema.
• Comunicação.
• Proteção.
15. Diferenças:
• Tradutor: converte código de uma linguagem para outra.
• Interpretador: executa linha por linha do código.
• Compilador: traduz todo o código para linguagem de máquina.
• Linker: liga módulos/ficheiros de código compilado.
• Loader: carrega o programa na memória.
• Depurador: ajuda a encontrar e corrigir erros no código.
16. Três subsistemas básicos:
• Processador (CPU): executa instruções.
• Memória: armazena dados e programas.
• Dispositivos de entrada/saída: comunicação com o exterior.
17. Cinco funções do núcleo (kernel):
1. Gerir processos.
2. Gerir memória.
3. Gerir dispositivos.
4. Gerir sistema de ficheiros.
5. Garantir segurança e controlo de acesso.
18. Modos de acesso internos ao SO:
• Modo utilizador: acesso limitado, usado por programas.
• Modo kernel: acesso total, usado pelo SO.
São fundamentais para garantir segurança e estabilidade do sistema.
19. Itens básicos para operação de um sistema computacional:
• Hardware.
• Sistema operativo.
• Programas de aplicação.
• Utilizadores.
20. Conceitos:
• DMA (Direct Memory Access): acesso direto à memória, sem usar a CPU.
• Buffering: armazenamento temporário para compensar diferenças de velocidade.
• Spooling: fila de dados para dispositivos lentos (ex.: impressora).
• Reentrância: capacidade de um código ser executado simultaneamente por múltiplos
processos.
21. Diferença entre contexto de hardware e software:
• Hardware: registos da CPU, contador de programa, stack, etc.
• Software: variáveis do processo, estado, privilégios, código-fonte.
22. Estados de um processo:
• Novo.
• Pronto.
• Executando.
• Esperando (bloqueado).
• Finalizado.
23. Função do PCB (Process Control Block):
• Armazena todas as informações do processo: estado, registos, memória, prioridades.
• Fundamental para gerência e troca de contexto no sistema operativo.
Se quiser, posso formatar isto num PDF ou preparar para impressão. Queres?