Exercícios — System Calls ==================================================== **Exercício 1** Explique o que é uma *system call* e porque ela é necessária num sistema operativo. -------------------------------------------------- **Exercício 2** Indique a função das seguintes system calls: * open() * read() * write() * close() -------------------------------------------------- **Exercício 3** Considere o código: .. code-block:: c int fd = open("dados.txt", O_RDONLY); if (fd == -1) { printf("Erro ao abrir ficheiro\n"); } Explique: 1. O que faz a função open() 2. O que significa O_RDONLY 3. Porque se verifica se fd == -1 -------------------------------------------------- **Exercício 4** Explique a diferença entre: * modo utilizador (*user mode*) * modo núcleo (*kernel mode*) e a relação com as system calls. -------------------------------------------------- **Exercício 5** O que acontece quando um processo executa uma system call como read()? Explique o papel do sistema operativo nesse processo. -------------------------------------------------- **Exercício 6** Indique se é Verdadeiro ou Falso: 1. write() serve para ler dados 2. close() fecha um ficheiro aberto 3. open() pode devolver -1 4. System calls permitem acesso direto ao hardware sem controlo 5. read() precisa de um file descriptor 6. O sistema operativo controla o acesso aos recursos