Buscar

Gabarito Exercicios A1 - Sistemas Operacionais

Prévia do material em texto

1. Considerando o código abaixo: 
 
public class Consumidor extends Thread { 
 private int idConsumidor; 
 private Buffer pilha; 
 private int totalConsumir; 
 
 public Consumidor(int id, Buffer p, int totalConsumir) { 
 idConsumidor = id; 
 pilha = p; 
 this.totalConsumir = totalConsumir; 
 } 
 
 public void run() { 
 for (int i = 0; i < totalConsumir; i++) { 
 pilha.get(idConsumidor); 
 } 
 } 
} 
public class Produtor extends Thread { 
 private int idProdutor; 
 private Buffer pilha; 
 private int producaoTotal; 
 
 public Produtor(int id, Buffer p, int producaoTotal) { 
 idProdutor = id; 
 pilha = p; 
 this.producaoTotal = producaoTotal; 
 } 
 
 public void run() { 
 for (int i = 0; i < producaoTotal; i++) { 
 pilha.set(idProdutor, i); 
 } 
 } 
} 
 
 
 
 
 
 
 
 
 
 
public class Buffer { 
 
 private int conteudo; 
 private boolean disponivel; 
 
 public synchronized void set(int idProdutor, int valor) { 
 while (disponivel == true) { 
 try { 
 wait(); 
 } catch (Exception e) { 
 e.printStackTrace(); 
 } 
 } 
 conteudo = valor; 
 disponivel = true; 
 notifyAll(); 
 } 
 
 public synchronized int get(int idConsumidor) { 
 while (disponivel == false) { 
 try { 
 wait(); 
 } catch (Exception e) { 
 e.printStackTrace(); 
 } 
 } 
 disponivel = false; 
 notifyAll(); 
 return conteudo; 
 } 
} 
public static void main(String[] args) { 
 Buffer bufferCompartilhado = new Buffer(); 
 Produtor produtor1 = new Produtor(1, bufferCompartilhado, 5); 
 Produtor produtor2 = new Produtor(2, bufferCompartilhado, 5); 
 Consumidor consumidor1 = new Consumidor(1, bufferCompartilhado, 2); 
 Consumidor consumidor2 = new Consumidor(2, bufferCompartilhado, 8); 
 produtor1.start(); 
 consumidor1.start(); 
 produtor2.start(); 
 consumidor2.start(); 
} 
Responda as seguintes questões: 
a) Qual a estratégia utilizada? Esquematize a arquitetura descrita no programa 
(0,5) 
R: Produtor/Consumidor com sincronização condicional 
Desenhar o esquema de produtor/consumidor - 
b) Para quais tipos de problemas você utilizaria essa estratégia? Quais motivos 
da utilização dessa estratégia? (1,5) 
R: Em problemas de compartilhamento de recursos: vários processos 
concorrem pelo mesmo recurso. Deve ser implementada a exclusão mútua, ou 
seja, exclusividade do acesso ao recurso compartilhado. Em outras palavras, 
são acessos concorrentes, onde um processo para executar depende da 
execução de outro processo antecipadamente. Como no caso do 
produtor/consumidor. Onde o processo que irá consumir os elementos do 
buffer somente poderá acessar o buffer se houver elementos neste. No outro 
lado o processo que produz os elementos, não pode produzir com o buffer 
cheio. Caso o processo tente executar uma leitura com o buffer vazio, será 
gerado um erro. Caso tente produzir um elemento com a fila cheia, será gerado 
um erro. 
c) Simule a execução do problema para um elemento produzido por cada Thread. 
(2,0) 
2. O CEO da sua empresa ficou muito preocupado com o ataque cibernético 
ocorrido na semana passada. Ele leu muito sobre o assunto e alguns artigos 
descrevendo que o sistema operacional Linux é melhor que o sistema operacional 
Windows devido a sua menor vulnerabilidade ao ataque cibernético. No entanto, ele 
quer uma apresentação detalhando o que é um sistema operacional, arquitetura e 
funções. O que você colocaria nessa apresentação? Indicar o que pode ser afetado 
com um vírus instalado em um sistema operacional. (2,5) 
 
R: O sistema operacional tem como objetivo funcionar como uma interface entre o 
usuário e o computador, tornando sua utilização mais simples, rápida e segura. 
Facilidade de acesso aos recursos do sistema Compartilhamento de recursos de 
forma organizada e protegida. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Algumas funções: 
Principais funções do kernel: 
• Tratamento de interrupções e exceções; 
• Criação e eliminação de processos e threads; 
• Sincronização e comunicação entre processos e threads; 
• Escalonamento e controle dos processos e threads; 
• Gerência de memória; 
• Gerência do sistema de arquivos; 
• Gerência de dispositivos de E/S; 
• Suporte a redes locais e distribuídas; 
• Contabilização do uso do sistema; 
• Auditoria e segurança do sistema. 
 
Pelas funções apresentadas no kernel, o vírus pode apagar os arquivos, 
criptografar os arquivos, etc. 
 
 
3. O Diretor de TI da organização está alocando orçamento para investir em 
novos servidores na organização. Porém ele está em dúvida se compra servidores 
com um processador ou multiprocessadores, pois os servidores multiprocessadores 
Hardware 
Rotinas do 
Sistema Operacional 
Aplicações Utilitários Linguagem de 
comandos 
Núcle
o 
têm o custo muito maior que os servidores octacore previstos inicialmente no 
orçamento. Ele pediu para você apresentar quais as vantagens do servidor 
multiprocessador e em quais situações na organização haverá um ganho real com 
esses servidores. A arquitetura da organização possui o seguinte desenho com um 
acesso massivo aos servidores de banco de dados e às bases de dados: (2,0) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
R: A vantagem é a distribuição das consultas em diversos servidores. Cada 
processador do servidor pode ficar responsável por executar as consultas para uma 
base de dados diferente. Conseguindo paralelismo na execução das consultas. 
 
 
4. Uma antiga empresa de desenvolvimento de software resolveu atualizar toda 
sua infraestrutura computacional adquirindo um sistema operacional multitarefa, 
processadores multi-core (múltiplos núcleos) e o uso de uma linguagem de 
programação com suporte a threads. 
 O sistema operacional multitarefa de um computador é capaz de executar vários 
processos (programas) em paralelo. Considerando esses processos implementados 
com mais de uma thread (multi-threads), analise as afirmações abaixo. (0,5) 
I. Os ciclos de vida de processos e threads são idênticos. 
II. Threads de diferentes processos compartilham memória. 
III. Somente processadores multi-core são capazes de executar programas multi-
threads. 
IV. Em sistemas operacionais multitarefa, threads podem migrar de um processo para 
outro. 
É correto apenas o que se afirma em 
A I. 
B II. 
C I e III. 
D I e IV. 
E II e IV. 
Servidor de 
Banco de 
Dados 
Servidor de 
Aplicação 
Servidor de 
Banco de 
Dados 
BD1 
BD2 
BD3 
BD4 
BD5 
BD6 
 
 
5. Um vendedor de artigos de pesca obteve com um amigo o código executável 
(já compilado) de um programa que gerencia vendas e faz o controle de estoque, com 
o intuito de usá-lo em sua loja. Segundo o seu amigo, o referido programa foi 
compilado em seu sistema computacional pessoal (sistema A) e funciona 
corretamente. O vendedor constatou que o programa excecutável também funciona 
corretamente no sistema computacional de sua loja (sistema B). Considerando a 
situação relatada, analise as afirmações a seguir. (0,5) 
I. Os computadores poderiam ter quantidades diferentes de núcleos (cores). 
II. As chamadas ao sistema (system call) do sistema operacional no sistema A devem 
ser compatíveis com as do sistema B. 
III. O conjunto de instruções do sistema A poderia ser diferente do conjunto de 
instruções do sistema B. 
IV. Se os registradores do sistema A forem de 64 bits, os registradores do sistema B 
poderiam ser de 32 bits. 
É correto o que se afi rma em 
A III, apenas. 
B I e II, apenas. 
C III e IV, apenas. 
D I, II e IV, apenas. 
E I, II, III e IV. 
 
 
QUESTÃO 19 
 
6. Processadores atuais incluem mecanismos para o tratamento de situações 
especiais, conhecidas como interrupções. Em uma interrupção, o fluxo normal de 
instruções é interrompido para quea causa da interrupção seja tratada. Com relação a 
esse assunto, assinale a opção correta. (0,5) 
A Controladores de entrada e saída geram interrupções de forma síncrona à execução 
do processador, para que nenhuma instrução fique incompleta devido à ocorrência 
da interrupção. 
B Quando uma interrupção ocorre, o próprio processador salva todo o seu contexto 
atual, tais como registradores de dados e endereço e códigos de condição, para que 
esse mesmo contexto possa ser restaurado pela rotina de atendimento da interrupção. 
C O processador pode auto-interromper-se para tratar exceções de execução, tais 
como um erro em uma operação aritmética, uma tentativa de execução de instrução 
ilegal ou uma falha de página em memória virtual. 
D Rotinas de tratamento de interrupção devem ser executadas com o mecanismo de 
interrupção inibido, pois esse tipo de rotina não permite aninhamento. 
E O uso de interrupção para realizar entrada ou saída de dados somente é eficiente 
quando o periférico trata grandes quantidades de dados, como é o caso de discos 
magnéticos e discos ópticos. Para periféricos com pouco volume de dados, como 
teclados e mouses, o uso de interrupção é ineficiente.

Continue navegando