LEIC – 1º Semestre – 2002/03
Repescagem do 2º Teste de Sistemas Operativos
11 de Fevereiro de 2002
Faça cada grupo em folhas separadas
Identifique cada uma das folhas que utilizar
Justifique todas as suas respostas
Duração: 1h30m
I
1.
Considere uma arquitectura de memória segmentada. Suponha a seguinte tabela de segmentos e
endereços virtuais do tipo segmento; deslocamento. Descreva o que sucede nas situações seguintes
calculando no caso de isso ser possível o respectivo endereço físico. Justifique a solução
Segmento
Base
Tamanho
Presença
0
1
2
3
4
219
2300
90
1327
1952
600
14
100
580
100
Sim
Não
Sim
Sim
Não
Tipo de
Acesso
R
RW
RW
R
RW
a) Leitura do endereço 3;100
b) Escrita no endereço 1;25
c) Leitura no endereço 5;250
d) Escrita no endereço 3;200
e) Leitura no endereço 0;500
2) Considere o algoritmo de gestão da memória paginada do Unix V.
a) O algoritmo de base da substituição designa-se por ageing. Em que consiste?
b) Quando uma página é retirada a um processo vai imediatamente para o disco? Explique as várias
alternativas.
c) Quando um processo efectua um fork o que sucede às tabelas que representam:
i) a região de código
ii) dados
iii) pilha
d) Explique a optimização que permite diminuir o tempo de criação de um processo filho
II
1) Admita que executou o seguinte comando:
ls -l /dev/disk0
brw-r----- 2 root 0, 21 jan 2002 /dev/disk0
A informação diz respeito a um periférico. Esclareça o seu conteúdo comparando com o mesmo comando
aplicado a um ficheiro, seja exaustivo na resposta
2)
No programa seguinte lê-se directamente de um disco.
#include <fcntl.h>
main(int argc,char* argv[])
{
char buf[4096];
int fd, i;
if ((( fd = open (“/dev/dsk0”, O_RDONLY)) == -1){
printf (“erro no open\n”);
exit(-1);
}
lseek(fd, 8192L,0);
if ((read(fd, buf, sizeof(buf)) == -1){
printf (“erro no read\n”);
exit (-1);
}
Explique em detalhe o programa em particular as funções do sistema.
a)
Função open
b) Função lseek
c)
Função read
3) A organização das E/S no Windows 2000 procura ter uma maior uniformização e permitir uma maior
dinâmica na ligação dos periféricos. Desenhe o esquema global das E/S neste sistema e explique a
função dos diferentes módulos
III
1) A descrição dos blocos em disco pode ser efectuada de diversas formas
a) Explique a razão pela qual o acesso aleatório implica uma organização que não seja uma simples
lista ligada de blocos?
b) No MS/DOS, a gestão dos discos é efectuada com base no conceito de File Allocation Table. Qual
a organização do disco que pressupõe? Explique detalhadamente.
c) No Unix a descrição dos blocos de um ficheiro está no I-node. Descreva a organização típica desta
estrutura.
d) Compare os dois métodos para tamanhos crescentes dos discos.
e) A solução do Unix não tem limitações sobre o tamanho dos ficheiros? Responda apresentando um
cenário quantificado.
2) A figura acima representa as tabelas utilizadas na gestão dos ficheiros
User file descriptor
table
File table
Inode table
2| A
1| B
a) Indique qual a função de cada uma das tabelas
b) Descreva um cenário que corresponda à situação descrita para o ficheiro A. Ilustre a resposta com
o código que deveria conduzir a esta solução e refaça o diagrama com a informação
correspondente
c) Suponha que o processo efectua um open para leitura sobre o B. Descreva as alterações nas tabelas
d) Suponha que o processo efectua um fork o que sucede
e) O processo filho efectua um read sobre o ficheiro B. Descreva o que sucede e o que isso pode ter
de influência no processo pai.
1
2
3
I
2,5
4
6,5
II
1,5
3
2
6,5
III
0,5+1+0,5+0,5+1
0,5+1+0.5+0,5+1
7