Exame de Sistemas Operativos

(Lic. em Matemática)

Prática

30 de Setembro de 1996

Com consulta Duração:

Leia todo o enunciado antes de começar a responder

1. Pretende-se fazer um menu em shell para uso de secretárias que escrevem em TEX. Esse menu deve permitir as seguintes opcoes:

(a) Mostrar os ficheiros com sufixo “.tex” existentes na directoria, numerando-

os; Exemplo:

1 exame.tex
2 freq.tex
. . . . . .

(b) Seleccionar um destes ficheiros usando o seu número;

(c) Editar o ficheiro seleccionado.

(d) Compilar o texto (latex xxx.tex produz xxx.dvi)

(e) Mostrar o texto no ecran (xdvi xxx.dvi &)

(f) Seleccionar a impressora a usar

(g) Imprimir o ficheiro (dvips xxx.dvi -o xxx.ps. O ficheiro xxx.ps pode ser impresso por uma impressora adequada).

(h) Terminar. Antes de o programa terminar deve escrever o número de vezes que cada opção foi chamada e a percentagem a que esse número de chamadas corresponde.

2. Escreva um programa em C que:

(a) i. com a opção “-c \underline{n}” cria um ficheiro com os logins existentes no

computador num ficheiro de tamanho \underline{n} usando “hashing”. ii. com um “login” como argumento responde se esse login está ou

não presente.

(b) alêm dos próprios logins guarda a informação associada a eles noutro ficheiro. Nesse caso quando um login é encontrado deve ser mostrada a informação associada.

Notas:

(a) para função de “hashing” use a (soma dos caracteres do login) mod N (em que N é o tamanho do ficheiro);

(b) para resolver colisões use o método de endereçamento aberto;

(c) Deve usar apenas chamadas ao Sistema Unix, i.e. não usar funções como: sleep, fopen, etc...