Escolar Documentos
Profissional Documentos
Cultura Documentos
Atividade 2 - 22/01/20
Samuel de Castro Ribeiro 0032743
1.2) ATIVIDADE: Faça os exercícios nº 20, 22, 23, 26, 28, 31 do livro-texto do
autor TANENBAUM (4ª ed., pág. 57-58 do cap. 1).
20. Para cada uma das chamadas de sistema a seguir, dê uma condição que a faça
falhar: fork, exec e unlink.
A chamada de sistema “fork” falhará caso não exista espaços livres na tabela de
processos. O “exec” falhará caso não exista o nome do arquivo passado como
parâmetro. Já o “unlink” falhará caso o arquivo a ser desvinculado passado como
parâmetro não exista.
22. A chamada count = write(fd, buffer, nbytes); pode retornar qualquer valor
em count fora nbytes? Se a resposta for sim, por quê?
Sim, pode haver retorno de valor diferente de nbytes. Isso se justifica pelo fato de que a
chamada pode falhar caso o arquivo seja inválido ou não possa ser lido, retornando o
valor -1. Outra forma para que o nbytes não seja retornado, se deve ao fato de que caso
o disco esteja cheio, não será possível escrever o número de bytes que foram solicitados,
ou seja, o final do arquivo pode ter sido encontrado antes.
23. Um arquivo cujo descritor é fd contém a sequência de bytes: 3, 1, 4, 1, 5, 9, 2, 6,
5, 3, 5. As chamadas de sistema a seguir são feitas:
lseek(fd, 3, SEEK_SET);
read(fd, &buffer, 4);
onde a chamada lseek faz uma busca para o byte 3 do arquivo. O que o buffer
contém após a leitura ter sido feita?
Com base no sistema UNIX, o interpretador de comandos deve executar uma chamada
de sistema fork() que cria o processo filho idêntico ao pai 9exceto por alguns atributos e
recursos), onde em seguida o programa selecionado é carregado na memória e
executado através da chamada de sistema exec().
Com base no Windows, o shell deve executar a chamada de sistemas CreateProcess().
2.8 Qual é a principal vantagem da abordagem em camadas para o projeto de
sistemas? Quais as desvantagens da abordagem em camadas?