LEIC/LERC 2008/09. Repescagem do Primeiro Teste de Sistemas Operativos

Documentos relacionados
LEIC/LERC 2008/09. 2º Exame de Sistemas Operativos

LEIC/LERC 2008/09 Primeiro Teste de Sistemas Operativos

LEIC/LERC 2008/09. Primeiro Exame de Sistemas Operativos. 20 de Janeiro de Duração: 2h30m. Grupo I [3 valores]

LEIC/LERC 2010/11 1º Teste de Sistemas Operativos

LEIC/LERC 2009/10 1º Teste de Sistemas Operativos

LEIC/LERC 2008/09. Segundo Teste de Sistemas Operativos. Grupo I [3 valores]

LEIC/LERC 2009/10 Repescagem do 1º Teste de Sistemas Operativos

Tratamento de Sinais

LEIC/LERC 2011/12-1º Exame de Sistemas Operativos 16/Janeiro/2012

LEIC/LERC 2010/11 2º Exame de Sistemas Operativos

Grupo I [7 Val] 1. Considere os seguintes 3 algoritmos de escalonamento num sistema operativo de tempo virtual:

Teste de Sistemas de Operação 30 de Maio de 2009

Teste de Sistemas de Operação 15 de Abril de 2010

LEIC/LERC 2009/10 1º Exame de Sistemas Operativos

Trincos Lógicos: Implementações. Trincos lógicos: Propriedades

LEIC/LERC 2009/10 2º Exame de Sistemas Operativos

Gestão de Memória. Espaço de Endereçamento

Sinais: eventos assíncronos

Gestor de Processos. Gestor de Processos

1 System Calls no Linux

Grupo I [6 v] Considere o processo com a seguinte tabela de páginas: Página Presente Protecção Base 0 0 RW RW R R RW -

Sistemas de Operação

LEIC/LERC 2009/10 Repescagem do 2º Teste de Sistemas Operativos

Espaço de Endereçamento

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C SISTEMAS OPERATIVOS

Arquitetura de Sistemas Operativos

LEIC/LERC 2012/13 2º Teste de Sistemas Operativos 15/Janeiro/2013

Grupo I [4v] executaprograma();

6. Mostre os principais modelos de organização interna de um sistema operacional.

Introdução à Arquitetura de Computadores

ARQUITECTURA DE COMPUTADORES 2º TESTE A

Sistemas Operativos I/O. Rui Maranhão

Sistemas Operacionais I

SSC0640 Sistemas Operacionais I

COMPETÊNCIAS A DESENVOLVER CONTEÚDOS Nº HORAS ESTRATÉGIAS RECURSOS AVALIAÇÃO. (30 x 45 ) Windows XP Office 2003 Internet Explorer

Gestão de Memória. Espaço de Endereçamento

Sistemas Operacionais I

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS CURSO DE ENGENHARIA ELECTROTÉCNICA

2 - Organização do Sistema Operativo. Prof. Ricardo Silva

Memória virtual. Sistemas Segmentados

Arquitetura de Sistemas Operativos

7 Mecanismos de gestão de memória. Prof. Ricardo Silva

Controlo de Execução. K&R: Capitulo 3

ORGANIZAÇÃO DE COMPUTADORES

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado

INSTITUTO SUPERIOR TÉCNICO

Gestão de memória - Memory Management Unit (MMU)

Gestão de memória - Memory Management Unit (MMU)

Programação de Sistemas

Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

SISTEMA DE ARQUIVOS DO SISTEMA OPERACIONAL

Exclusão Mútua (mutex)

Exame de 1ª Época Introdução à Programação IGE e ETI 2003/02/25-1º semestre de 2002/2003 ISCTE

! Os primeiros computadores permitiam a execução de apenas um programa de cada vez, com acesso completo aos recursos do sistema

Tratamento de sinais em sistemas UNIX

INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5)

Memória. Gestão do espaço lógico Paginação Segmentação com paginação

Introdução à linguagem C

Introdução à Arquitetura de Computadores

Execução Concorrente

TE244 - Sistemas Operacionais Lista Exercícios 1

Sumário. Sistemas Operativos 1

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Arquitetura de Sistemas Operativos

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Breve Introdução aos Sistemas Operativos. Disciplina de Informática PEUS, U.Porto

Sistemas de Entrada e Saídas III

Introdução à Arquitetura de Computadores

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?

Sistemas de Computação O Sistema Operacional Unix

Arquitectura de Computadores

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Modelação de algoritmos de substituição de páginas Anomalia Belady

1 a Questão Unidade I e II (45 pontos)

INE5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA - Prova 1 12/05/2014 Aluno: Bosco

ORGANIZAÇÃO DE COMPUTADORES

Complementos de Programação. Engenharia Electrotécnica - Electrónica e Computadores. Ano Lectivo: 2005/2006. Ana Madureira. Gestão de Processos

Sistemas Operacionais

Processos. Conceitos Básicos

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Arquitectura de Computadores (ACom)

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco

INSTITUTO SUPERIOR TÉCNICO

SISTEMAS OPERACIONAIS

Sistemas Operacionais Aula 3

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO

Estruturas de Sistemas Operacionais

MIEIC SISTEMAS OPERATIVOS 2009/2010 1S FEUP

1. Processos. Núcleo, Processos e Tarefas. Page 1. Processo Processo Processo. Sistemas Operativos 2011 / Departamento de Engenharia Informática

Função Fundamental do SO

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Aplicações para Sistemas Embebidos 2006/2007 1º Exame, 6 de Janeiro de 2007

Segurança em Sistemas Operativos

Arquitectura de Computadores

Arquitectura de Computadores (ACom)

Transcrição:

Nome: Número: LEIC/LERC 2008/09 Repescagem do Primeiro Teste de Sistemas Operativos Identifique o cabeçalho de todas as folhas da prova. 10 de Fevereiro de 2009 Duração: 1h30m O teste é resolvido no espaço dedicado ao efeito após cada pergunta. O número de linhas reservado para o efeito não pode ser excedido, havendo lugar a uma penalização para quem responder num número de linhas superior. Em caso de engano, poderá usar em alternativa o espaço da última página para responder à questão, devendo indicá-lo claramente, e respeitar o limite de linhas da questão. Nas perguntas de escolha múltipla, na ausência de outra indicação, cada resposta errada desconta 1/3 da cotação. Grupo I [2,4 v.] 1. [0,8 v.] O núcleo do sistema operativo pode ter uma organização baseada num micronúcleo. A. Unix não tem um micronúcleo. B. Um micronúcleo obriga à utilização de hardware dedicado no processador. C. A subdivisão existente no Windows designada kernel é o micronúcleo desse sistema operativo. D. A vantagem de um micronúcleo é permitir não ter de utilizar chamadas sistema. 2. [0,8 v.] Como é possível ultrapassar a barreira de protecção? A. Pode-se saltar a execução de nível utilizador para um endereço do código do núcleo mas o problema é conhecer esses endereços. B. Instalar um device driver que responda a comandos do utilizador. C. Modificar os registos da gestão da memória. D. Em vez de interrupções de software usar interrupções de hardware com vectores definidos pelos utilizadores. 3. [0,8 v.] Para que serve o valor passado com a interrupção de software (ou trap) utilizada nas chamadas sistema? (Por exemplo, em Intel xx86, o valor num da instrução INT num )? A. É o endereço dentro do núcleo onde está a função. B. Permite endereçar uma tabela de indirecção que tem os endereços das funções do núcleo. C. Nas chamadas sistema não há parâmetros. É só no hardware que existem vectores. D. É para passar um parâmetro na invocação. Página 1 de 8

Grupo II [7 valores] monitor.enter(); while (contador == MAX) monitor.wait(); monitor. signalall(); monitor.exit(); monitor.enter(); while (contador == 0) monitor.wait(); indtirar++; contador --; monitor.signalall(); monitor.exit Procure nas perguntas seguintes programar a função enviar e receber utilizando semáforos em vez de monitores, seguindo os passos que lhe são pedidos e preocupando-se em evidenciar a sincronização. Não se esqueça de definir a inicialização das variáveis ou objectos que introduzir 1. [1,0 v.] Resolva apenas o problema da exclusão mútua. indtirar++; contador --; Página 2 de 8

2. [1,0 v.] Resolva a sincronização associada à condição de tampão cheio. indtirar++; contador --; 3. [1,0 v.] Resolva a sincronização associada à condição de tampão vazio. indtirar++; contador --; 4. Como sabe a existência de exclusão mútua e de funções de sincronização pode dar origem a interblocagem (deadlock). 4.1. [1,0 v.] Em particular, é possível combinar as soluções às alíneas anteriores dando origem a um programa que sofre de interblocagem. Apresente tal solução com interblocagem e dê um exemplo de uma execução onde aconteça interblocagem. Página 3 de 8

4.2. [1,0 v.] Porque razão não surge este problema de interblocagem nos monitores? 5. Com semáforos poderia existir uma optimização evitando que as funções enviar e receber tivessem de ser executadas numa única secção crítica. 5.1. [1,0 v.] Se o seu programa da alínea II.1 ainda não incluir essa optimização, indique que alterações teria de fazer para que ele incluísse essa optimização....indtirar++;...contador --; 5.2. [1,0 v.] Por que razão esta optimização não é possível com monitores? Página 4 de 8

Grupo III [5,6 valores] Considere o seguinte programa, em que a chamada sistema getppid() retorna o pid do processo pai (do processo chamador da função). ApanhaSig() { printf( PID %d Signal tratado \n, getpid()); signal(sigint, ApanhaSig); main () { int ppid; signal(sigint, ApanhaSig); if (fork() ==0) { ppid = getppid(); for(;;) if (kill(ppid, SIGINT) == -1)exit(); nice (10); for (;;); 1. [0,8 v.] Explique qual a função da chamada sistema signal. 2. [0,8 v.] Justifique por que razão a chamada aparece em duas situações no programa. 3. [0,8 v.] Considere a chamada sistema nice (10). O que faz concretamente esta chamada sistema? 4. [0,8 v.] Relacione esta chamada sistema com a fórmula da prioridade dos processos em Unix. 5. [0,8 v.] Se algum processo executar a função nice, que processo será? A. O processo pai. B. O processo filho. C. Ambos os processos. D. É impossível algum dos processo executar nice devido ao ciclo infinito. 6. [0,8 v.] kill: Página 5 de 8

A. Função que permite terminar um outro processo. B. Só termina um processo se o signal for SIGKILL de outro modo é ignorada. C. Se o processo destinatário tratar o signal e se este não for SIGKILL não mata o processo. D. Só serve para enviar o SIGKILL e o SIGINT a outro processo. 7. [0,8 v.] Qual é o resultado deste programa? A. O programa coloca dois processos em execução que nunca terminam. B. O programa termina depois do processo pai receber o 1º signal. C. O programa não é determinista; depende do escalonamento. D. O processo pai nunca termina mas o filho pode terminar se o kill retornar um erro. Justifique a sua opção. Página 6 de 8

Grupo IV [5 valores] 1. Considere uma arquitectura elementar de gestão de memória paginada, com endereçamento virtual de 31 bits e páginas de 4 Kbytes. Considere um processo, P1, cuja tabela de páginas está presente em memória primária, começando no endereço real 0x60050000, e que o seu conteúdo é o seguinte: Página Presente Protecção Base 0 0 RW 0x00001 1 1 R 0x00001 2 0 R 0x00001 3 1 RW 0x00002 4 1 RW 0x00000 5 0 E 0x00000 Considere um outro processo, P2, cuja tabela de páginas também está presente em memória primária, começando no endereço real 0x80000010, e que o seu conteúdo é o seguinte: Página Presente Protecção Base 0 0 R 0x00001 1 0 R 0x00001 2 0 R 0x00001 3 0 W 0x00002 4 0 W 0x00000 1.1. [0,8 v.] A página virtual 3 de P1 e a página virtual 3 de P2 têm o mesmo valor Base nas respectivas tabelas de páginas. Essas páginas são partilhadas entre P1 e P2? Justifique. 1.2. [0,9 v.] Assuma que P1 está em execução e que faz os seguintes acessos às seguintes posições de memória: Leitura da posição 0x00001A90 Leitura da posição 0x00003400 Escrita na posição 0x00004888 Para cada acesso, indique o respectivo endereço real. Caso não disponha de dados suficientes para calcular algum(ns) desse(s) valor(es), responda Indefinido. a. Leitura da posição 0x00001A90: b. Leitura da posição 0x00003400: c. Escrita na posição 0x00004888: 1.3. [0,9 v.] Indique, para cada endereço virtual traduzido na alínea anterior, se essa tradução implicou a passagem ao modo núcleo. Justifique. Página 7 de 8

1.4. [1,2 v.] Considere apenas os acessos para os quais conseguiu identificar, na alínea 1.1, o seu endereço real (i.e. ignore os acessos que identificou como indefinidos ). Indique qual o estado das seguintes estruturas hardware, imediatamente após os acessos considerados anteriormente. Assuma que a TLB estava vazia antes dos acessos. BTP: LTP: TLB: 1.5. [1,2 v.] Assuma que o gestor de processos coloca P2 em execução. Indique o estado das seguintes estruturas hardware após P2 ganhar o processador. Para cada estrutura cujo estado mude em relação à alínea anterior, justifique a necessidade dessa alteração. BTP: LTP: TLB: Justificação: Página 8 de 8