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