4
Linguagens de Programação
UNIABEU
3
Linguagens de Programação
UNIABEU
9
Linguagens de Programação
UNIABEU
1
Linguagens de Programação
UNIABEU
10
Linguagens de Programação
UNIABEU
9
Linguagens de Programação
UNIABEU
1
Linguagens de Programação
UNIABEU
2
Linguagens de Programação
UNIABEU
1
Linguagens de Programação
UNIABEU
1
Linguagens de Programação
UNIABEU
Texto de pré-visualização
Ministério da Ciência Tecnologia e Ensino Superior UC 21111 Sistemas Operativos 02 de julho de 2019 INSTRUÇÕES Leia estas instruções na totalidade antes de iniciar a resolução do teste O enunciado do teste é constituído por 2 grupos de questões tem 4 páginas e termina com a palavra FIM Se o seu exemplar não estiver completo ou nele se vericar qualquer outra deciência por favor dirijase ao professor vigilante O teste deve ser resolvido na sua totalidade em folhas de respostas Nas respostas tenha a preocupação de utilizar uma letra legível Todas as respostas devem ser escritas unicamente com caneta azul ou preta O teste é SEM CONSULTA Todos os elementos necessários à resolução são fornecidos no enunciado Não é permitido utilizar máquina de calcular As cotações são indicadas por grupo e nas próprias questões Nas questões de escrita de programas a sua correção terá em conta crité rios de prociência e compreensibilidade do código legibilidade indentação estrutura comentários e explicação geral O não cumprimento das instruções implica a anulação das respetivas questões O tempo de realização do teste é de 150 minutos Grupo I 12 valores 11 12 Uma das principais funções de um SO é a gestão de recursos de um sistema complexo constituído por muitas partes Explique porquê Dê exemplos de gestão espacial e de gestão temporal 12 12 Em que geração de SO foi introduzida a técnica de spooling 13 12 Explique porque razão em UNIX a criação de um subprocesso diferente do processo pai é uma operação efectuada em dois passos 14 12 Indique justicando as três razões principais da existência de tarefas 15 12 Observe o seguinte programa com dois processos pseudocodigo semaforo recurso1 recurso2 void processoAvoid downrecurso1 downrecurso2 utilizarambososrecursos uprecurso2 uprecurso1 void processoBvoid downrecurso2 downrecurso1 utilizarambososrecursos uprecurso1 uprecurso2 Este programa pode potencialmente levar a uma situação de impasse dea dlock Justique 16 12 Explique os conceitos de recursos preemptíveis e não preemptíveis Dê um exemplo de cada 17 12 Considere um sistema com memória virtual mononível O espaço de endereçamento virtual é de 20 bits e a dimensão da página virtual é de 2KB Quantas entradas tem a Tabela de Páginas 18 12 Explique em que consiste o problema da paginação excessiva trashing e em que condições ocorre 19 12 O que é uma ligação simbólica 110 12 De um ponto de vista genérico quais são as principais responsabilidades do SO relativamente a dispositivos de entradasaída IO 2 Grupo II 8 valores 21 3 Escreva um programa em linguagem C padrão que crie uma hierarquia de processos em árvore como mostra a gura Cada processo deve imprimir na saída padrão uma mensagem do tipo Processo X onde X signica A B ou C conforme o caso Cada processo deve esperar que os seus processos lhos directos terminem antes dele próprio terminar O programa não necessita de testar erros nas chamadas às funções 22 5 Escreva um programa multitarefa em linguagem C segundo a norma POSIX que determine o valor máximo dos elementos de um vector int x de dimensão int nx O vector e a sua dimensão constituem variáveis globais ao programa e admitese que foram devidamente inicializados A tarefa principal deve criar duas subtarefas em que cada uma em paralelo ou em pseudoparalelismo analiza metade do vector x A tarefa principal deve esperar que ambas as tarefas terminem e depois deve imprimir o resultado nal e terminar Nota planeie cuidadosamente como é dividido o trabalho entre as subtarefas e como é efectuada a sincronização e a comunicação da informação necessária à resolução do problema entre as três tarefas 3 Formulário include stdlibh int systemchar string include systypesh include unistdh pidt forkvoid pidt getpidvoid pidt getppidvoid include unistdh unsigned int sleepunsigned int seconds extern char environ int execlchar path char arg int execlpchar file char arg int execlechar path char arg char envp int execvchar path char argv int execvpchar file char argv int execvechar path char argv char envp include systypesh include syswaith pidt waitint status include pthreadh int pthreadcreatepthreadt thread pthreadattrt attr void startroutinevoid void arg int pthreadattrinitpthreadattrt attr int pthreadattrsetdetachstatepthreadattrt attr int detachstate define PTHREADCREATEDETACHED define PTHREADCREATEJOINABLE int pthreadjoinpthreadt thread void valueptr int pthreadmutexinitpthreadmutext mutex pthreadmutexattrt attr int pthreadmutexlockpthreadmutext mutex int pthreadmutexunlockpthreadmutext mutex int pthreadmutexdestroypthreadmutext mutex FIM 4
4
Linguagens de Programação
UNIABEU
3
Linguagens de Programação
UNIABEU
9
Linguagens de Programação
UNIABEU
1
Linguagens de Programação
UNIABEU
10
Linguagens de Programação
UNIABEU
9
Linguagens de Programação
UNIABEU
1
Linguagens de Programação
UNIABEU
2
Linguagens de Programação
UNIABEU
1
Linguagens de Programação
UNIABEU
1
Linguagens de Programação
UNIABEU
Texto de pré-visualização
Ministério da Ciência Tecnologia e Ensino Superior UC 21111 Sistemas Operativos 02 de julho de 2019 INSTRUÇÕES Leia estas instruções na totalidade antes de iniciar a resolução do teste O enunciado do teste é constituído por 2 grupos de questões tem 4 páginas e termina com a palavra FIM Se o seu exemplar não estiver completo ou nele se vericar qualquer outra deciência por favor dirijase ao professor vigilante O teste deve ser resolvido na sua totalidade em folhas de respostas Nas respostas tenha a preocupação de utilizar uma letra legível Todas as respostas devem ser escritas unicamente com caneta azul ou preta O teste é SEM CONSULTA Todos os elementos necessários à resolução são fornecidos no enunciado Não é permitido utilizar máquina de calcular As cotações são indicadas por grupo e nas próprias questões Nas questões de escrita de programas a sua correção terá em conta crité rios de prociência e compreensibilidade do código legibilidade indentação estrutura comentários e explicação geral O não cumprimento das instruções implica a anulação das respetivas questões O tempo de realização do teste é de 150 minutos Grupo I 12 valores 11 12 Uma das principais funções de um SO é a gestão de recursos de um sistema complexo constituído por muitas partes Explique porquê Dê exemplos de gestão espacial e de gestão temporal 12 12 Em que geração de SO foi introduzida a técnica de spooling 13 12 Explique porque razão em UNIX a criação de um subprocesso diferente do processo pai é uma operação efectuada em dois passos 14 12 Indique justicando as três razões principais da existência de tarefas 15 12 Observe o seguinte programa com dois processos pseudocodigo semaforo recurso1 recurso2 void processoAvoid downrecurso1 downrecurso2 utilizarambososrecursos uprecurso2 uprecurso1 void processoBvoid downrecurso2 downrecurso1 utilizarambososrecursos uprecurso1 uprecurso2 Este programa pode potencialmente levar a uma situação de impasse dea dlock Justique 16 12 Explique os conceitos de recursos preemptíveis e não preemptíveis Dê um exemplo de cada 17 12 Considere um sistema com memória virtual mononível O espaço de endereçamento virtual é de 20 bits e a dimensão da página virtual é de 2KB Quantas entradas tem a Tabela de Páginas 18 12 Explique em que consiste o problema da paginação excessiva trashing e em que condições ocorre 19 12 O que é uma ligação simbólica 110 12 De um ponto de vista genérico quais são as principais responsabilidades do SO relativamente a dispositivos de entradasaída IO 2 Grupo II 8 valores 21 3 Escreva um programa em linguagem C padrão que crie uma hierarquia de processos em árvore como mostra a gura Cada processo deve imprimir na saída padrão uma mensagem do tipo Processo X onde X signica A B ou C conforme o caso Cada processo deve esperar que os seus processos lhos directos terminem antes dele próprio terminar O programa não necessita de testar erros nas chamadas às funções 22 5 Escreva um programa multitarefa em linguagem C segundo a norma POSIX que determine o valor máximo dos elementos de um vector int x de dimensão int nx O vector e a sua dimensão constituem variáveis globais ao programa e admitese que foram devidamente inicializados A tarefa principal deve criar duas subtarefas em que cada uma em paralelo ou em pseudoparalelismo analiza metade do vector x A tarefa principal deve esperar que ambas as tarefas terminem e depois deve imprimir o resultado nal e terminar Nota planeie cuidadosamente como é dividido o trabalho entre as subtarefas e como é efectuada a sincronização e a comunicação da informação necessária à resolução do problema entre as três tarefas 3 Formulário include stdlibh int systemchar string include systypesh include unistdh pidt forkvoid pidt getpidvoid pidt getppidvoid include unistdh unsigned int sleepunsigned int seconds extern char environ int execlchar path char arg int execlpchar file char arg int execlechar path char arg char envp int execvchar path char argv int execvpchar file char argv int execvechar path char argv char envp include systypesh include syswaith pidt waitint status include pthreadh int pthreadcreatepthreadt thread pthreadattrt attr void startroutinevoid void arg int pthreadattrinitpthreadattrt attr int pthreadattrsetdetachstatepthreadattrt attr int detachstate define PTHREADCREATEDETACHED define PTHREADCREATEJOINABLE int pthreadjoinpthreadt thread void valueptr int pthreadmutexinitpthreadmutext mutex pthreadmutexattrt attr int pthreadmutexlockpthreadmutext mutex int pthreadmutexunlockpthreadmutext mutex int pthreadmutexdestroypthreadmutext mutex FIM 4