Lista de Exerci cios 1
1. Quais são as funções de um sistema operacional? As principais funções do SO são gerenciar os recursos, tornando a execução mais eficiente ao levar em consideração que E/S é lenta, fornece abstrações, simplificar as complexidades do hardware e apresentando para o programa um computador mais simples. Um Sistema Operacional também funciona como a interface do computador.
2. Dê exemplos de abstrações mais simples oferecidas pelo sistema operacional e as compare com aquelas providas pelo hardware.
Podemos citar como exemplo o Disquete, no qual para ler ou escrever são necessários 13 parâmetros que ocupam 9 bytes. Esses parâmetros seriam endereço do bloco, número de setores por trilha, modo de gravação, intervalo de espaçamento, entre outros mais esotéricos. A resposta seria composta por 23 campos de erro que ocupam 7 bytes. Além de todos esses detalhes o programador ainda deve se preocupar em ligar e desligar o motor.
É possível programar diretamente todos os dispositivos, mas se reduz o que se consegue fazer. Assim, os sistemas operacionais resolvem o problema de acesso ao hardware e apresentam uma interface mais amigável. No exemplo do disquete, com a abstração apresentada pelo SO, o processo para escrever algo no dispositivo seria bem mais simples, não sendo necessário se preocupar com o motor, os 13 parâmetros, entre outros. Normalmente os dados são identificados por nomes simples como /home/gustavo/arquivo.txt. A leitura destes dados é feita por comandos como:
FILE *arquivo = fopen(arquivo.txt, "r+") fgets(linha, tam, arquivo) fprintf(arquivo, "%d %d", 23, 42)
3. O que é multiprogramação? O que é necessário para implementar multiprogramação?
Multiprogramação é uma forma de permitir o uso de um mesmo recurso (CPU) por vários programas, dando a impressão de que todos os programas estão sendo executados ao mesmo tempo. As operações de E/S são mais lentas que a CPU, portanto enquanto um programa aguarda por uma operação de E/S,