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:

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