Você está na página 1de 33

1

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS


Instituto de Informática e Ciências Exatas
Cursos: Engenharia de Computação e Sistemas de Informação
Sistemas Operacionais (SO) - Professor: Paulo Amaral

LISTA DE EXERCÍCIOS 1 - TEORIA 1/2019: VERSÃO 10/02/19


OBS: ENTREGAR SOMENTE O QUE FOR SOLICITADO DURANTE A AULA

Conceitos básicos, processos e threads

Parte I : Conceitos básicos


Ex1: (PROVAS de RECUPERAÇÂO SO 2002 a 2012)
Descreva detalhadamente, mostrando quando são aplicadas, as exceções e as interrupções de
hardware e software.

Ex2: (PROVA 1 SO de 2001 a 2016 - exemplo)


Relacione a “coluna 1” com a única e melhor alternativa correspondente da “coluna 2”.
Coluna 1:
1) Multiprogramação
2) Sistemas de tempo compartilhado
3) Interpretador de comandos
4) Instrução(ões) executada(s) no modo núcleo
5) Sistema(s) Multicomputador(es)
6) Grid(s) Computing
7) Máquina(s) virtual(ais)
8) Interrupção(ões) de hardware
9) Exceção(ões)
10) Instrução(ões) executada(s) no modo usuário
11) Interrupção(ões) de software
12) Sistema(s) Multiprocessador(es)

Coluna 2:
( ) a) Melhora a utilização da UCP pois permite a troca de um trabalho para outro, quando por
exemplo um trabalho está esperando por uma operação de entrada.
( ) b) Usuário(s) pode(m) usar o computador ao mesmo tempo de modo interativo, pois o tempo de
troca entre usuário(s) é pequeno e o(s) usuário(s) têm a impressão que o computador está a sua
disposição.
( ) c) Prompt de comando do Windows, PowerShell e Shell do UNIX.
( ) d) Processadores tem memória privada, mas pode(m) ser organizado(s) em cluster(s).
( ) e) Divisão por zero, overflow, instrução inválida, falta de página, etc.
( ) f) Desabilitar interrupções e alterar o horário do relógio.
( ) g) Processadores compartilham a mesma memória física.
( ) h) Gerada(o) por evento assíncrono externo, possibilitando o escalonamento de processos.
( ) i) Possibilita a execução de um código binário Java independentemente da plataforma.
( ) j) Usada para implementar as chamadas de sistema (trap) ao SO.
( ) k) Ambiente para o compartilhamento e agregação de recursos geograficamente distribuídos.
( ) l) Ler o horário do relógio e passar do modo usuário para o modo núcleo (supervisor: kernel).
2

Ex3: (Questão 42 - ENADE 2005 – CC e EC)


Duas possibilidades para a construção de sistemas com múltiplos processadores são: processadores
idênticos com um único espaço de endereçamento interligados por um barramento único (SMP); e
máquinas monoprocessadas conectadas por uma rede (cluster). Com relação a esses sistemas,
assinale a opção correta.
A) A comunicação entre processadores de um cluster é, potencialmente, muito mais rápida que a
comunicação entre processadores de um sistema SMP, pois redes atuais possuem taxa de
transmissão da ordem de gigabits/s, enquanto as melhores memórias operam somente com
freqüências da ordem de centenas de megahertz.
B) Comunicação entre processos pode ser implementada de forma muito mais eficiente em um
cluster que em um sistema SMP, pois, nesse último, todos os processos precisam compartilhar os
mesmos dispositivos de entrada e saída.
C) Em um sistema SMP, é mais simples substituir um processador defeituoso, pois, em um cluster,
toda a rede de comunicação deve ser desabilitada para que a troca seja efetuada sem prejudicar a
troca de mensagens entre os processos.
D) Alocação de memória para processos é muito mais simples em um cluster, pois cada
processador executa um único processo na sua memória exclusiva e, dessa forma, não existe o
problema de distribuição de processos no espaço de endereçamento único da máquina SMP.
E) Em um cluster, o custo da escalabilidade é muito menor, pois, para a interconexão entre as
máquinas, podem ser utilizados equipamentos comuns usados em uma rede local de computadores,
ao passo que um sistema SMP exige conexões extras no barramento e gabinetes especiais

Ex4: (Questão 15 - ENADE 2008 - TECNOLOGIA EM ANÁLISE DE SISTEMAS)


O conceito de máquina virtual (MV) foi usado na década de 70 do século passado no sistema
operacional IBM System 370.
Atualmente, centros de dados (datacenters) usam MVs para migrar tarefas entre servidores
conectados em rede e, assim, equilibrar carga de processamento. Além disso, plataformas atuais de
desenvolvimento de software empregam MVs (Java, .NET). Uma MV pode ser construída para
emular um processador ou um computador completo. Um código desenvolvido para uma máquina
real pode ser executado de forma transparente em uma MV. Com relação a essas informações,
assinale a opção correta.
A) O conceito de transparência mencionado indica que a MV permite que um aplicativo acesse
diretamente o hardware da máquina.
B) Uma das vantagens mais significativas de uma MV é a economia de carga de CPU e de memória
RAM na execução de um aplicativo.
C) Uma MV oferece maior controle de segurança, uma vez que aplicativos são executados em um
ambiente controlado.
D) Para emular uma CPU dual-core, uma MV deve ser instalada e executada em um computador
com CPU dual-core.
E) Como uma MV não é uma máquina real, um sistema operacional nela executado fica
automaticamente imune a vírus.

Ex5: (Questão 22 - ENADE 2008 – Ciência da Computação)


Qual tipo de software tradutor deve ser utilizado para programas em geral, quando a velocidade de
execução é uma exigência de alta prioridade?
(A) compiladores. (B) interpretadores. (C) tradutores híbridos.
(D) macroprocessadores. (E) interpretadores de macroinstruções.
3

Ex6: (Questão 18 - ENADE 2011 – COMPUTAÇÃO)


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 executável também
funciona corretamente no sistema computacional de sua loja (sistema B). Considerando a situação
relatada, analise as
afi rmações a seguir.
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 afirma 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.

Ex8: (Questão 38 - MGS2007 - ANALISTA DE SISTEMAS - esppconcursos)


Em um Sistema Operacional, a camada mais baixa de interface com o hardware chama-se:
(A) Física (B) Kernel (C) Shell (D) Monolítica

Ex9: (ANALISTA DE SISTEMAS PETROBRAS 2007 – CESPE )


Marque, para cada item: da questão, no campo designado com o código C, caso julgue o item
CERTO; ou o com o código E, caso julgue o item ERRADO. Deixe em branco quando não
souber, pois as respostas erradas receberão pontuação negativa.
( ) A) Nos processadores que suportam um modo de operação protegido, um programa executado
nesse modo tipicamente pode executar instruções não disponíveis no modo usuário. Há
processadores nos quais a mudança entre modos pode ocorrer executando-se uma chamada de
sistema (system call).(Questão 60 ANALISTA DE SISTEMAS INFRA-ESTRUTURA )
( ) B) Há processadores em que interrupções podem ser mascaráveis (maskable) ou não
mascaráveis; as interrupções não mascaráveis são desabilitadas pelos programas, por exemplo,
antes da execução de sequências de instruções que não possam ser interrompidas.
(Questão 63 ANALISTA DE SISTEMAS )
( ) C) Existem processadores nos quais programas podem ser executados em diferentes modos de
operação. Nesses processadores, aplicações dos usuários são tipicamente executadas em modo
usuário, enquanto núcleos de sistemas operacionais são tipicamente executados em modo protegido.
(Questão 63a ANALISTA DE SISTEMAS )
( ) D) Em uma mudança de contexto, para que um processo possa ser futuramente executado a
partir de onde estava quando foi interrompido, um sistema operacional poderá armazenar dados
sobre o contexto do processo, sendo parte desse contexto composto por dados nos registradores do
processador. (Questão 70a ANALISTA DE SISTEMAS )
4

Ex10: (Questão 56 – Prova 2- ATRFB 2012 – INFORMÁTICA _ESAF )


A virtualização é a tecnologia central de um Data Center e, basicamente, transforma um servidor
físico em vários servidores virtuais. De maneira simples, isto é realizado por meio da camada de
virtualização que entrega para o sistema operacional convidado um conjunto de instruções de
máquina equivalente ao processador físico. A camada de virtualização de servidores mais conhecida
é o:
(A) Virtual Supervisor. (B) Mega Supervisor. (C) Megavisor. (D) Opervisor. (E) Hypervisor.

Ex11: (Questão 57 – Prova 2- ATRFB2012 – INFORMÁTICA _ESAF )


Computação em Nuvem é um conjunto de recursos virtuais facilmente utilizáveis, tais como
hardware, software, plataformas de desenvolvimento e serviços. Esses recursos podem ser
dinamicamente reconfigurados para se ajustarem a uma carga de trabalho variável, permitindo a
otimização do seu uso. O modelo de implantação em que a infraestrutura é uma composição de duas
ou mais nuvens que continuam a ser entidades únicas, porém conectadas, é a nuvem
(A) Híbrida. (B) Comunitária. (C) Pública com IaaS. (D) Pública com PaaS. (E) Compartilhada.

Ex12: (questão 21 -Analista de Sistemas - Informática e Redes- MI-CENAD -ESAF 2012 )


São categorias dos programas utilitários padrão do Linux:
(A) comandos para extensão de diretórios para arquivos, filtros de linha, processamento de texto,
administração de rede.
(B) comandos para manipulação de arquivos e diretórios, filtros, processamento de texto,
administração de sistema.
(C) comandos para manutenção de programas utilitários, manipuladores de diretórios,
armazenamento de texto, administração de sistema.
(D) comandos para manipulação do sistema operacional, filtros, processamento de imagens,
auditoria de sistema.
(E) instruções para manipulação de strings, filtros no domínio da frequência, processamento de
texto, operadores de sistema.

Ex13: (questão 22 -Analista de Sistemas - Informática e Redes- MI-CENAD -ESAF 2012 )


As camadas de um sistema Linux são:
(A) usuário, servidor utilitário padrão, biblioteca padrão, shell Linux, software.
(B) usuário, programas utilitários padrão, biblioteca padrão, sistema operacional Linux, hardware.
(C) interface, programas operacionais padrão, biblioteca DDL, sistema operacional Linux,
hardware.
(D) administrador, servidores e clientes, arquivo padrão, sistema operacional DMS, hardware.
(E) usuário, programas utilitários verificadores, biblioteca da aplicação, arquitetura Linux, software.

Ex14: (questão 54 - Analista de Finanças e Controle - Gestão em Infraestrutura de TI - ESAF


2012)
São formas de instalação de programas no Linux:
(A) usar um operador para instalar pacotes próprios da edição em uso. Usar programas com
instaladores próprios, destinados a funcionar em várias distribuições. Instalar o programa a partir do
código-objeto.
(B) usar um gerenciador para instalar pacotes próprios da distribuição em uso. Usar programas com
instaladores próprios, destinados a funcionar em várias distribuições. Instalar o programa a partir do
código-fonte.
(C) usar um gerenciador para excluir a distribuição em uso. Usar programas com instaladores
proprietários, destinados a funcionar em uma única distribuição.Instalar o programa a partir do
código-fonte.
5

(D) usar um gerenciador para instalar pacotes próprios da edição em uso. Usar programas com
instaladores proprietários, destinados a restringir a quantidade de distribuições. Instalar o programa
a partir do códigofonte.
(E) usar um gerenciador para instalar pacotes próprios da distribuição em uso. Usar programas com
um instalador genérico, destinados a funcionar em distribuições de mineração de dados. Instalar o
programa a partir do código-objeto.

Ex15: (questão 58 - Analista de Finanças e Controle - Gestão em Infraestrutura de TI - ESAF


2012)
A tecnologia de virtualização permite que um único computador:
(A) hospede apenas uma única máquina virtual, com diferentes sistemas operacionais.
(B) hospede múltiplas máquinas virtuais, desde que cada uma tenha o mesmo sistema operacional.
(C) hospede até duas máquinas virtuais de particionamento, apenas tendo cada uma o mesmo
sistema operacional.
(D) hospede múltiplas máquinas virtuais, cada uma com seu próprio sistema operacional.
(E) hospede apenas múltiplas máquinas virtuais de compartilhamento de compilação, cada uma com
seu próprio sistema operacional de mesmo desempenho.

Ex16: (questão 15 -Analista de Sistemas - Informática e Redes- MI-CENAD -ESAF 2012)


Em relação à organização e arquitetura de computadores,é correto afirmar que:
(A) os registradores são dispositivos com a função principal de armazenar dados permanentemente.
(B) os registradores funcionam como uma memória de baixa velocidade interna do processador,
porém com elevada capacidade de armazenamento.
(C) a sincronização de todas as funções do processador é realizada através do sinal de keyboard.
(D) os registradores funcionam como programas de alta velocidade e elevada capacidade de
armazenamento.
(E) a sincronização de todas as funções do processador é realizada através do sinal de clock.

Ex17: (questão 60 -Analista de Sistemas - Informática e Redes- INFORMÁTICA BÁSICA


MI-CENAD -ESAF 2012)
A estrutura do núcleo do Linux contém os componentes:
(A) E/S, Gerenciador de periféricos, Gerenciador de programa.
(B) Gerenciador de TCP/IP, Gerenciador de memória virtual, Gerenciador de processo.
(C) E/S, Gerenciador de memória, Gerenciador de processo.
(D) E/S, Gerenciador de sinais, Gerenciador de escalonamento de CPU.
(E) Gerenciador de sistema operacional, Gerenciador de memória principal, Gerenciador de
processador.

Ex18: (questão 53 -Analista de Sistemas - Informática e Redes- Sistemas de Computação -


MI-CENAD -ESAF 2012)
Em relação a arquiteturas de sistemas operacionais, é correto afirmar que:
(A) a arquitetura de máquina conceitual possui um nível intermediário entre o programa objeto e o
programa fonte, denominado gerência de programas conceituais.
(B) a arquitetura microkernel permite que os servidores tenham acesso direto a todos os
componentes do sistema.
(C) a arquitetura de máquina virtual possui um nível intermediário entre o hardware e o dataware,
denominado gerência de virtualização integrada.
(D) a arquitetura microservers permite que os servidores não tenham acesso direto a determinados
clientes do sistema.
6

(E) na arquitetura em camadas, cada camada oferece um conjunto de funções que podem ser
utilizadas apenas pelas camadas superiores.

Ex19: (questão 24 -Analista de Sistemas - Informática e Redes- MI-CENAD -ESAF 2012)


No sistema operacional MS Windows, o
(A) NTDPL é um programa que faz a interface entre as aplicações que utilizam o subsistema de
DPLS e o compilador.
(B) Executivo é a parte do núcleo totalmente dependente do hardware.
(C) Hardware Balance Local (HBL) é uma biblioteca que engloba a parte do código do sistema
independente do hardware.
(D) NTDMS é uma biblioteca do sistema que interpreta as aplicações DMS do executivo.
(E) Hardware Abstraction Layer (HAL) é uma biblioteca que engloba a parte do código do
sistema dependente do hardware.

Ex20: (questão 57 -Analista de Sistemas - Informática e Redes- MI-CENAD -ESAF 2012)


Software Livre é o software disponibilizado, gratuitamente ou comercializado, com as seguintes
premissas:
(A)liberdade de instalação; plena utilização; acesso ao código objeto; possibilidade de modificações
aperfeiçoamentos da orientação a objetos para necessidades específicas; distribuição da forma
original ou modificada, com ou sem custos.
(B) liberdade de instalação; plena utilização; acesso ao código fonte; possibilidade de modificações/
aperfeiçoamentos para necessidades específicas; distribuição da forma original ou modificada, com
ou sem custos.
(C) instalação sob licença; utilização em áreas autorizadas; acesso ao código fonte; possibilidade de
modificações/aperfeiçoamentos para necessidades específicas; distribuição da forma original ou
modificada, com ou sem custos.
(D) liberdade de instalação; plena utilização; acesso ao código objeto; impossibilidade de modifi
cações/aperfeiçoamentos para necessidades específicas; distribuição da forma original ou
modificada, com ou sem custos.
(E) Instalação sob licença; plena utilização; acesso ao código objeto; possibilidade de modifi
cações/aperfeiçoamentos para necessidades específicas; impossibilidade de distribuição da forma
original ou modificada.

Ex21: (questão 14 -Analista de Sistemas - Informática e Redes- MI-CENAD -ESAF 2012)


O software livre atende à liberdade
(A) de estudar como o programa funciona e adaptá-lo para suas necessidades.
(B) de modificar o programa, desde que essas modificações não sejam liberadas para a
comunidade.
(C) para executar o programa apenas para propósitos autorizados pelo autor do programa.
(D) de estudar como o programa funciona unicamente sem realização de adaptações.
(E) para qualquer usuário excluir o programa do acesso público.

Ex22: (Questão 39a - MGS2007 - ANALISTA DE SISTEMAS - esppconcursos)


Qual é o tipo de processamento que melhor representa o uso de um browser na internet?
(A) distribuído. (B) cliente/servidor. (C) centralizado. (D) descentralizado
Ex23: (questão 17 -Analista de Sistemas - Informática e Redes- MI-CENAD -ESAF 2012)
Na arquitetura Microkernel
A) permite-se isolar as funções do sistema operacional por diversos processos servidores pequenos
e dedicados a serviços específicos.
B) o sistema operacional passa a ser de difícil manutenção.
7

C) nunca há necessidade de acesso direto ao hardware, como operações de entrada/saída.


D) permite-se agrupar as funções do sistema operacional por diversos processos clientes
pequenos e dedicados a servidores espontâneos.
E) confere-se escalabilidade reduzida ao sistema operacional

Ex24: (Questão 32 – ANALISTA JUNIOR IE PETROBRAS 2010 CESGRANRIO)


Considere as assertivas abaixo, referentes a arquiteturas de computadores de alto desempenho.
I - Computadores com processamento pipeline dividem a execução de instruções em várias partes,
cada qual tratada por um hardware dedicado exclusivamente a ela.
II - Um processador matricial é composto por um grande número de processadores idênticos, os
quais executam a mesma sequência de instruções sobre diferentes conjuntos de dados.
III - Processadores vetoriais são arquiteturas do tipo SIMD e o acesso aos dados, nesse tipo de
organização, pode ser orientado à memória onde o elemento vetorial recebe os dados e os armazena,
ou orientado a registradores, que possuem capacidade para receber os N elementos de um vetor, e o
processamento acontece de registrador para registrador. É correto o que se afirma em
(A) II, apenas. (B) I e II, apenas. (C) I e III, apenas. (D) II e III, apenas. (E) I, II e III.

Ex25: (Cap 1 SOMTB2ed)


Quais são as duas principais funções de um SO?

Ex26: (Cap 1 SOMTB3ed e Cap1 SOJava7ed)


O que é multiprogramação? O que significa compartilhamento de tempo? Quais são as vantagens e
desvantagens destas técnicas?

Ex27: O que significa processamento em lotes em Sistemas Operacionais?

Ex28: (PROVAS de RECUPERAÇÃO DE AOC 2005 a 2011)


Qual é a diferença entre tradução, compilação, montagem e interpretação? Cite exemplos de
compiladores, montadores e interpretadores.

Ex29: ( Cap1 SOMTB3ed)


a) O que é a técnica de spooling? Quais são as vantagens e desvantagens desta técnica?
b) O que é a técnica de buffering? Quais são as vantagens e desvantagens desta técnica?

Ex30: (Cap 3 - SOJava7ed)


Qual é a finalidade do interpretador de comandos?

Ex31: (Cap1 SOMTB3ed e Cap 3 SOJava6ed)


Qual é a finalidade das chamadas do sistema?

Ex32: (Cap 1 SOJava7ed e Cap1 – SDTB)


Qual é a diferença entre multiprocessador e multicomputador?
Descreva os seguintes conceitos relacionados com o paralelismo no nível do processador:
multiprocessadores e multicomputadores (Sistemas em rede, sistemas distribuídos, clusters e grids)

Ex33: (Questão 41 - ANALISTA DE SISTEMAS DPSP 2015 – FCC)


O processador é um circuito integrado encarregado do processamento de dados do computador. Os
computadores da linha PC podem usar processadores da linha IA32 (Intel Architecture, 32 bits)
também chamada popularmente de
(A) x64.
8

(B) x32.
(C) x80.
(D) x84.
(E) x86.

Ex34: (Questão 45 - ANALISTA DE SISTEMAS DPSP 2015 – FCC)


Na plataforma .Net, como a máquina virtual deve trabalhar com diversas linguagens de
programação diferentes, a Common Language Runtime − CLR não pode executar diretamente o
código do C#, sendo assim, ela precisa executar uma linguagem comum a todas as linguagens de
programação da plataforma, chamada Common
(A) Infrastructure − CLI.
(B) Level Language − CLL.
(C) Bytecode Language − CBL.
(D) Intermediate Language − CIL.
(E) Interpreted Language − CIL.

Ex35: (ANALISTA E DESENVOLVIMENTO DE SISTEMAS BACEN 2013 – CESPE )


Marque, para cada item: da questão, no campo designado com o código C, caso julgue o item
CERTO; ou o com o código E, caso julgue o item ERRADO. Deixe em branco quando não
souber, pois as respostas erradas receberão pontuação negativa.
( ) A) Um programa em linguagem de alto nível deve ser compilado para se transformar em
linguagem de montagem e, posteriormente, montado para se transformar em linguagem de máquina.
(Questão 52)
( ) B) Para que um programa possa ser executado, suas instruções precisam ser mapeadas para
endereços absolutos e carregadas na memória. (Questão 54)
( ) C) Na computação paralela, todos os processadores estão presentes no mesmo circuito
integrado, enquanto, na computação distribuída, cada processador encontra-se geograficamente
separado por longas distancias. (Questão 57)
( ) D) No projeto de aplicações para dispositivos moveis, devem ser considerados, entre outros
aspectos, as características dos dispositivos de hardware para os quais a aplicação está sendo
desenvolvida e o consumo de energia gerado por cada recurso do sistema, visando-se a economia de
bateria. (Questão 87)

Ex36: (Questão 41 - ANALISTA DE SISTEMAS MPES 2013 – VUNESP)


Dentro do conceito de organização de computadores, a UCP (Unidade Central de Processamento)
desempenha um papel fundamental, sendo composta por diversas partes. Em particular, a Unidade
de Controle é a parte da UCP responsável por
(A) armazenar resultados temporários.
(B) indicar a próxima instrução a ser buscada na memória, para execução.
(C) buscar instruções na memória principal e determinar o tipo dessas instruções.
(D) armazenar o código da instrução que está sendo correntemente executado.
(E) realizar operações como adição e subtração sobre os valores presentes nas suas entradas.

Ex37: (Ex1.12 SOMTB4ed e Ex1.8 SOJava6ed))


Das instruções a seguir, quais só podem ser executadas em modo núcleo?
(A) Desabilitar interrupções.
(B) Ler o valor do relógio da hora do dia (time_of_day).
(C) Configurar o valor do relógio da hora do dia (time_of_day).
9

(D) Mudar o mapa de memória.


(E) Definir o valor do temporizador (timer).
(F) Apagar a memória.
(G) Passar do modo usuário para o modo monitor (kernel).
(H) Acessar dispositivo de E/S.

Ex38: (Questão 14 - ENADE 2014 – Sistemas de Informação)


A tabela abaixo apresenta o ranking das 20 linguagens de programação mais populares.
Considerando a classificação das linguagens de programação apresentada na tabela, avalie as
afirmações a seguir.
I. O ranking é liderado por uma linguagem de terceira geração e de paradigma funcional.
II. Linguagens com licença livre têm participação inferior a 20%, se somados os percentuais de
popularidade.
III. É maior, no ranking, a participação de linguagens que utilizam o paradigma orientado a objetos
que a das linguagens que utilizam os demais paradigmas.
É correto o que se afirma em
(A) II, apenas. (B) III, apenas. (C) I e II, apenas. (D) I e III, apenas. (E) I, II e III.
Jul 2014 Jul 2013 Change Programming Language Ratings Change

1 1 C 17.145% -0,48%

2 2 Java 15.688% -0,22%

3 3 Objective-C 10.294% +0,05%

4 4 C++ 5.520% -3,23%

5 7 /\ (Visual) Basic 4.341% +0,01%

6 6 cn 4.051% -2.16%

7 5 PHP 2.916% -4.27%

8 8 Python 2.656% -1.38%

9 10 /\ JavaScript 1.806% -0,04%

10 12 Transact-SQL 1.759% +0,19%

11 9 Perl 1.627% -0,52%

12 13 /\ Visual Basic .NET 1.495% +0,24%

13 37 F# 1.093% +0,86%

14 11 Ruby 1.072% -0,51%


V
15 45 ActionScript 1.067% +0,86%

16 Swift 1.054% +1,05%


-
17 17 Delphi/Object Pascal 1.031% +0,34%

18 15 Lisp 0,829% -0,04%


V
19 18 MATLAB 0,781% +0,10%
V
10

Ex39: (Questão 13 - ENADE 2014 – Sistemas de Informação)


Na figura 1, abaixo, está representado, esquematicamente, um processo de tradução de um
programa (arquivo fonte) em um código binário. Esse processo de compilação clássica é utilizado
em compiladores como os das linguagens C e Pascal.

Na figura 2, abaixo, está representado, esquematicamente, um processo de tradução de um


programa (arquivo fonte) em um código intermediário. Esse processo híbrido é utilizado em
compiladores como os das linguagens Java e C#.

Considerando que, em ambos os processos, o código binário é o que será executado pelo
computador, e que a execução de dois programas gerados, cada qual por um dos processos
apresentados, ocorre em situações equivalentes, avalie as afirmações a seguir.

I. Há portabilidade para a execução de ambos os programas gerados em cada processo.

II. Na execução do programa gerado por meio do processo híbrido, o consumo de memória é
maior que na execução pelo processo de compilação clássica.

III. O desempenho na execução do programa gerado pelo processo de compilação clássica é


melhor que na execução pelo processo híbrido.

É correto o que se afirma em


(A) I, apenas. (B) III, apenas. (C) I e II, apenas. (D) II e III, apenas. (E) I, II e III

Ex40: (Questão 16 - ENADE 2014 – Sistemas de Informação)


A virtualização de servidores, acompanhada de solução para Gerenciamento Eletrônico de
Documentos (GED), trouxe uma série de benefícios para as escolas de uma instituição: acumulados
ao longo de 50 anos, os prontuários dos estudantes passaram a ser acessados em tempo real, as
atividades pedagógicas realizadas em ambiente mais sólido e o gerenciamento centralizado do
ambiente passou a permitir que a equipe da instituição se concentre em tarefas estratégicas. No
médio prazo, a meta da instituição é virtualizar toda a infraestrutura de servidores e eliminar o uso
de papel nos processos, trocando documentos em papel por documentos eletrônicos armazenados
nos servidores virtuais e acessíveis em qualquer unidade da rede de escolas. Computerworld.
Virtualização: quatro casos de sucesso no Brasil. Disponível em: <http://cio.com.br>. Acesso
em: 29 jul. 2014 (adaptado).
11

Em relação ao estudo de caso mencionado acima, avalie as asserções a seguir e a relação proposta
entre elas.

I. A tecnologia de virtualização de servidores está proporcionando diversos benefícios para as


organizações, como redução de custos e de downtíme e melhoria no desempenho, na
segurança e no gerenciamento da infraestrutura de Tecnologia da Informação (Tl). No
entanto, sozinha, a virtualização não é suficiente para permitir que as organizações se
concentrem em tarefas estratégicas.

PORQUE

II. A virtualização, se associada a outras tecnologias atuais como GED, Cloud Computing e
Grid Computing, possibilita que as organizações foquem no negócio, eliminando os riscos
associados à área de Tl.

A respeito dessas asserções, assinale a opção correta.


(A) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.
(B) 0 As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.
(C) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
(D) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
(E) As asserções I e II são proposições falsas.

Ex41: (Cap 3 - SOJava6ed)


Quais são as principais vantagens da técnica de microkernel para o projeto do sistema?

Ex42: (Cap1 - SOJava6ed)


Qual é a principal dificuldade que um programador precisa contornar na escrita de um sistema
operacional para um ambiente de tempo real?

Ex43: (Cap2 SOJava6ed)


Algumas CPUs oferecem mais de dois modos de operação. Quais são os dois usos possíveis desses
modos múltiplos

Ex44: (Cap2 SOJava6ed)


Como a distinção entre o modo kernel (núcleo, monitor ou supervisor) e o modo usuário funciona
como uma forma rudimentar de sistema de proteção (segurança)?
12

Ex45: (Questão 22 - ENADE 2017– Sistemas de Informação)


A tendência atual de desenvolver aplicações que possam ser utilizadas em nuvem otimiza o
desempenho de máquinas locais, munidas de poucos recursos computacionais, em uma rede e
garante a possibilidade desses computadores utilizarem outros recursos computacionais de maior
desempenho, bem como a inserção de novos hosts neste ambiente computacional, sem
comprometimento do sistema como um todo.
Esse cenário pressupõe a utilização de sistema operacional com
a) arquitetura monolítica.
b) arquiteturas em camadas.
c) arquitetura monocamadas.
d) arquiteturas cliente-servidor.
e) arquiteturas de máquinas virtuais.

Ex46: (Questão 31 - ENADE 2017– Sistemas de Informação)


A cloud computing (computação em nuvem) tem o objetivo de fornecer recursos de hardware e
software sob demanda a partir de servidores interligados pela internet, seguindo o princípio da
computação em grid (grade). Uma arquitetura em grid é descrita por meio das quatro camadas a
seguir.
• Rede: executa a comunicação e se utiliza da parte física;
• Recursos: formada pelos servidores de armazenamento e/ou processamento;
• Middleware: formada pelo software responsável pela troca de informações;
• Ferramentas e aplicações: representada pelos aplicativos.
De acordo com o texto, avalie as afirmações a seguir.
I. A camada de ferramentas e aplicações é responsável pela negociação das transações de dados no
grid.
II. A camada middleware é responsável pela interconectividade e comunicação entre os membros
do grid.
III. A camada de rede é reponsável pela concectividade entre os diferentes membros do grid.
IV. A camada de recursos é responsável pela segurança dos dados nas aplicações do grid.
É correto apenas o que se afirma em
(A) I e II. (B) II e III. (C) III e IV. (D) I e II e IV. (E) I, III e IV.

Exercício 47 (Questão 26 - ENADE 2017– EC)


Estruturas de dados, tais como filas e pilhas, são utilizadas em diversas aplicações para automação
industrial por meio de linguagens de programação textuais. O texto estruturado (ST) é uma das
opções de linguagem de programação definidas pela norma IEC 61131-3. O trecho de código a
seguir foi implementado nesse contexto.

#define MAX 1000


struct eventos {
char ocorrência[200]; char dataHora[50];
Instruct eventos eve[MAX]; int inicio = 0; int fim = 0;
int processaEvento (struct eventos *recuperado) { if (inicio == fim) { return - 1;
I
else {
inicio++;
copiaEvento (recuperado, eve[inicio - 1] ) ; return 0;
13

int insereEvento (struct eventos *novo if (fim == MAX) { return -1;


}
else {
copiaEvento (eve [fim], novo) ; f im+ + ; return 0;

É correto afirmar que a estrutura de dados e a funcionalidade desse código tratam-se de


A) uma fila que processa primeiro os eventos mais antigos.
B) uma pilha que processa primeiro os eventos mais antigos.
C) uma pilha que processa primeiro os eventos mais recentes.
D) uma pilha que processa os eventos na ordem escolhida pelo operador.
E) uma fila que processa os eventos de acordo com seu respectivo grau de prioridade

Ex48: (Questão 34 - ENADE 2017– Sistemas de Informação)


No contexto de arquitetura e organização de computadores, o termo/cluster é usado para designar
um grupo de computadores interconectados, trabalhando como um recurso de computação
unificado. Cada computador pertencente ao cluster é usualmente denominado nó. Clusters
costumam ser utilizados em ambientes corporativos, sendo particularmente adequados para
aplicações baseadas em servidores. (STALLINGS, W. Arquitetura e organização de computadores.
8. ed. São Paulo: Prentice Hall, 2010 (adaptado).
Considerando as informações apresentadas, avalie as afirmações a seguir.
I. Uma falha em um nó de um cluster implica em perda total de serviço.
II. A interligação entre os nós de um cluster realiza-se por meio de um barramento de controle.
III. A escalabilidade de um cluster é maior do que a de um processador com múltiplos núcleos.
IV. A relação custo/desempenho de um cluster é melhor do que a de uma única máquina de grande
porte.
É correto apenas o que se afirma em
a) I e III. b ) l I e IV. c ) III e IV. d) I, II e III. e) I, II e IV.

Ex49: (Questão 35 - ENADE 2017– Sistemas de Informação)


O coordenador geral de um comité olímpico solicitou a implementação de um aplicativo que
permita o registro dos recordes dos atletas à medida que forem sendo quebrados, mantendo a ordem
cronológica dos acontecimentos, e possibilitando a leitura dos dados a partir dos mais recentes.
Considerando os requisitos do aplicativo, a estrutura de dados mais adequada para a solução a ser
implementada é
a) o deque: tipo especial de lista encadeada, que permite a inserção e a remoção em qualquer das
duas extremidades da fila e que deve possuir um nó com a informação (recorde) e dois apontadores,
respectivamente, para os nós próximo e anterior.
b) a fila: tipo especial de lista encadeada, tal que o primeiro objeto a ser inserido na fila é o primeiro
a ser lido; nesse mecanismo, conhecido como estrutura FIFO (First In - First Out), a inserção e a
remoção são feitas em extremidades contrárias e a estrutura deve possuir um nó com a informação
(recorde) e um apontador, respectivamente, para o próximo nó.
c) a pilha: tipo especial de lista encadeada, na qual o último objeto a ser inserido na fila é o primeiro
a ser lido; nesse mecanismo, conhecido como estrutura LIFO (Last In - First Out), a inserção e a
remoção são feitas na mesma extremidade e a estrutura deve possuir um nó com a informação
(recorde) e um apontador para o próximo nó.
d) a fila invertida: tipo especial de lista encadeada, tal que o primeiro objeto a ser inserido na fila é
o primeiro a ser lido; nesse mecanismo, conhecido como estrutura FIFO (First In - First Out), a
inserção e a remoção são feitas em extremidades contrárias e a estrutura deve possuir um nó com a
informação (recorde) e um apontador, respectivamente, para o nó anterior.
14

e) a lista circular: tipo especial de lista encadeada, na qual o último elemento tem como próximo o
primeiro elemento da lista, formando um ciclo, não havendo diferença entre primeiro e último, e a
estrutura deve possuir um nó com a informação (recorde) e um apontador, respectivamente, para o
próximo nó.

Ex50: (Questão 29 - ENADE 2017– EC)


A computação verde refere-se ao uso ambientalmente responsável de computadores e recursos
relacionados. Essas práticas incluem a implementação da eficiência energética em CPUs, servidores
e periféricos, bem como o consumo reduzido de recursos e a destinação adequada de lixo
eletrônico.(HARRIS, J. G. Computing and green IT best practices on régulations and industry initiatives, virtualization,
power management, materiais recycling and telecommuting. London: Emereo Pty Ltd, 2008 (adaptado).
Nesse contexto, avalie as asserções a seguir e a relação proposta entre elas.
I. Embora a virtualização contribua para a computação verde, o projeto e a gerência de uma
arquitetura virtualizada apresentam problemas.
PORQUE
II. Da virtualização podem decorrer problemas de segurança a partir de vulnerabilidades no
hospedeiro, além de potencialmente haver maior desgaste das máquinas servidoras e, portanto,
maior custo de manutenção.
A respeito dessas asserções, assinale a opção correta.
A ) A s asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.
B ) A s asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.
C) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
D) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
E ) A s asserções I e II são proposições falsas.

Ex51: (Questão discursiva 03 - ENADE CC 2017 )


Listas lineares armazenam uma coleção de elementos. A seguir, é apresentada a declaração de uma
lista simplesmente encadeada.
struct ListaEncadeada {
int dado;
struct ListaEncadeada *proximo;
};
Para imprimir os seus elementos da cauda para a cabeça (do final para o início) de forma eficiente,
um algoritmo pode ser escrito da seguinte forma:
void mostrar(struct ListaEncadeada *lista) {
if (lista != NULL) {
mostrar(lista->proximo);
printf("%d ", lista->dado);
}
}
Com base no algoritmo apresentado, faça o que se pede nos itens a seguir.
a) Apresente a classe de complexidade do algoritmo, usando a notação 0. (valor: 3,0 pontos)
b) Considerando que já existe implementada uma estrutura de dados do tipo pilha de inteiros - com
as operações de empilhar, desempilhar e verificar pilha vazia - reescreva o algoritmo de forma não
recursiva, mantendo a mesma complexidade. Seu algoritmo pode ser escrito em português
estruturado ou em alguma linguagem de programação, como C, Java ou Pascal, (valor: 7,0 pontos)
15

Ex52: (Questão 18 ENADE TAS 2017)


As redes de computadores estão por toda parte. A internet é uma delas, assim como as várias redes
das quais ela é composta, que compartilham recursos por meio de Sistemas Distribuídos. Como o
número de dispositivos tem crescido exponencialmente, em vez de paralelizar tarefas em várias
máquinas, tornou-se cada vez mais importante empregar sistemas distribuídos, comunicando e
coordenando dispositivos e, assim, contribuindo para o cotidiano de empresas, governos e demais
instituições.(COULOURIS, G. et al. Sistemas Distribuídos: conceitos e projeto, 5. ed. Porto Alegre:
Bookman, 2013 (adaptado)).
Nesse contexto, assinale a opção que apresenta exemplos atuais de sistemas distribuídos.
A) Pesquisa na web, jogos on-line, E-Commerce e o banco de dados das agências bancárias.
B) Jogos on-line, E-Commerce, pesquisa no Windows e e-mails.
C) E-Commerce, jogos em mídia física, pesquisa no Windows e redes sociais.
D) Pesquisa na web, jogos em mídia física, E-Commerce e e-mails.
E) Pesquisa no Windows, pesquisa na web, jogos on-line e o banco de dados das agências bancárias.

Ex53: (Questão 27- ENADE TGTI 2017 )


A virtualização permite que um único computador hospede diversas máquinas virtuais, cada uma
com seu próprio sistema operacional. Essa técnica ganhou importância e conhecimento público a
partir da década de 1990 e, atualmente, vem sendo utilizada para resolver diversos tipos de
problemas.
Considerando os diversos aspectos a serem observados na utilização da virtualização, avalie as
afirmações a seguir.
I. Um sistema operacional executado em uma máquina virtual utiliza um subconjunto da memória
disponível na máquina real.
II. Uma das aplicações da virtualização é a disponibilização de múltiplos sistemas operacionais
para teste de software.
III. Um sistema operacional executado em uma máquina virtual apresenta um desempenho superior
ao que alcançaria quando executado diretamente na mesma máquina real.
É correto o que se afirma em
A) I, apenas. B) III, apenas. C) I e II, apenas. D) II e III, apenas. E) I, II e III.

Ex54: (Questão 10 ENADE TRC 2017 )


A virtualização, tecnologia que provê uma abstração dos recursos físicos e lógicos, permite que instâncias de
um sistema operacional sejam executadas em hardware virtual, suportadas por um hipervisor que gerência o
acesso aos recursos do hardware físico. (STALLINGS, W.; BROWN, L. Segurança de
computadores: princípios e práticas. 2. ed. Rio de Janeiro: Elsevier, 2014 (adaptado)).
Considerando que, para a elaboração e implantação de projetos lógicos e físicos, a virtualização é considerada
na manutenção, administração, segurança e gerenciamento de serviços de redes de computadores em um
datacenter, avalie as afirmações a seguir.
I. A virtualização faz com que um único recurso de hardware suporte várias instâncias simultâneas de
sistemas, ou que vários recursos de hardware suportem uma instância única de sistema.
II. Na virtualização, um drive de disco pode ser particionado e apresentado como vários drives de disco para
um sistema computacional.
III. Na virtualização, vários drives de disco podem ser concatenados e apresentados como um único drive de
disco para um sistema computacional.
É correto o que se afirma em
A) I, apenas. B) III, apenas. C) I e II, apenas. D) II e III, apenas. E) I, II e III.
16

Ex55: (Questão 33 ENADE TRC 2017)


Um erro comum que se observa nas abordagens da Internet das Coisas (Internet of Things - loT) é o
desenvolvimento de um produto sem uma visão clara de geração de valor. É comum os desenvolvedores não
terem a clareza do real valor a ser gerado aos usuários finais, concebendo um produto sem o seu valor
agregado. Nesse sentido, para abertura de negócios inovadores, é essencial compreender o surgimento de
novos negócios baseados em loT e como esta revolução criará oportunidades. (Disponível em:
<http://www.convergenciadigital.com.br>. Acesso em: 27 jul. 2017 (adaptado).
Com base nesse contexto, avalie as afirmações a seguir.
I. Para que a loT possa agregar valor aos negócios, é necessário considerar questões relacionadas a problemas
da interoperabilidade de plataformas.
II. O loT permite uma independência da infraestrutura de telecomunicação e os seus projetos exigem o uso de
novas tecnologias, como as impressoras 3D.
III. A tríade composta pela criação de novos mercados digitais, gestão de risco e melhorias de eficiência é a
chave para a transformação dos modelos de negócios atuais a partir da revolução da loT.
É correto o que se afirma em
A) I, apenas. B) II, apenas. C) I e III, apenas, D) II e III, apenas. E) I, II e III.

Ex56: (Questão 35 ENADE TRC 2017)


A principal causa de ineficiência energética nos datacenters é a baixa taxa de utilização média dos
recursos. Apesar de os recursos serem provisionados para lidar com as cargas máximas teóricas, é
improvável que todos os servidores de um datacenter em larga escala sejam totalmente utilizados
simultaneamente.( BELOGLAZOV, A.; BUYYA, R.; LEE, Y. C; ZOMAYA. A. A taxonomy and
survey of energy-efficient data centers and cloud computing.In: MILEKOWITZ, M. V. (Ed.).
Advances in computers, v. 82. Amsterdam: Elsevier, p. 47-111, 2011 (adaptado).
Considerando o texto apresentado e o conceito de virtualização, avalie as asserções a seguir e a
relação proposta entre elas.
I. A virtualização possibilita a concentração de máquinas virtuais no datacenter e, assim, contribui
efetivamente para a implementação de uma estratégia de maior eficiência energética.
PORQUE
II. A virtualização permite alocar cargas de trabalho na mínima quantidade tecnicamente admissível
de recursos físicos e, assim, mantê-los com a maior taxa de utilização possível. A respeito dessas
asserções, assinale a opção correta.
A) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.
B) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.
C) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
D) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
E) As asserções I e II são proposições falsas

Ex57: (Questão 19 ENADE TDAS 2017)


Conceitualmente, cada processo tem sua própria CPU [Central Processing Unit) virtual. É claro
que, na realidade, a CPU troca a execução, a todo momento, de um processo para outro, mas, para
entender esse sistema, é muito mais fácil pensar em um conjunto de processos sendo executados
(pseudo) paralelamente do que tentar controlar o modo como a CPU faz esses chaveamentos.
(TANENBAUM, A. S. Sistemas operacionais modernos. 3. ed. São Paulo: Person, 2010 (adaptado).
De acordo com o exposto, o conceito descrito denomina-se
A) thread.
B) multiprocessador.
C) multiprogramação.
D) processo monothread.
E) máquina de estados finitos.
17

II: Processos e threads


Ex1: (PROVA 1 SO de 2001 a 2014, exercícios MOD I 2015 a 2017 )
Na solução desta questão somente serão consideradas e pontuadas as respostas que
apresentarem todos os cálculos necessários.

A tabela abaixo mostra os processos na fila de pronto para serem executadas por um processador.

Processos Tempo de UCP Tempo de Prioridade


Chegada

A 7 2 2

B 4 3 1

C 12 1 3

D 11 3 2

a) Com um diagrama de Gantt ilustre a execução destas tarefas usando os algoritmos de


escalonamento FIFO (Primeiro a Entrar/Primeiro a Sair), SJF (MP: Menor Primeiro), SRTF (menor
tempo restante primeiro), por Prioridade (considere os casos: preemptivo, não-preemptivo e as
prioridades (Unix e Windows)) e Round-Robin (AC: Alocação Circular com Q = 6). Considere em
todos os casos TC = 2 (tempo para troca de contexto). Utilize primeiro o tempo de chegada e depois a
ordem alfabética dos processos para desempatar.

b) Calcular o tempo de processamento médio (TPM) ou de turnaround (JTT: retorno), o tempo de


espera médio (TEM) e o tempo de resposta médio (TRM) para cada algoritmo especificado no item
anterior.

c) De todos os escalonamentos listados acima, quais deles que geralmente resultam no:
- Tempo de resposta médio (TRM) mínimo.
- Tempo de espera médio (TEM) mínimo.
- Tempo de processamento médio (TPM/JTT) mínimo.
- Maior Tempo de processamento médio (TPM/JTT).

Ex2: (Questão 19 - ENADE 2008 – COMPUTAÇÃO)


Uma alternativa para o aumento de desempenho de sistemas computacionais é o uso de
processadores com múltiplos núcleos, chamados multicores. Nesses sistemas, cada núcleo,
normalmente, tem as funcionalidades completas de um processador, sendo comuns atualmente,
configurações com 2, 4 ou mais núcleos. Com relação ao uso de processadores multicores, e
sabendo que threads são estruturas de execução associadas a um processo, que compartilham suas
áreas de código e dados, mas mantêm contextos independentes, analise as seguintes asserções.
Ao dividirem suas atividades em múltiplos threads que podem ser executadas paralelamente,
aplicações podem se beneficiar mais efetivamente dos diversos núcleos dos processadores
multicores

Porque
18

o sistema operacional nos processadores multicores pode alocar os núcleos existentes para executar
simultaneamente diversas sequências de código, sobrepondo suas execuções e, normalmente,
reduzindo o tempo de resposta das aplicações às quais estão associadas.

Acerca dessas asserções, assinale a opção correta.


(A) As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da
primeira.
(B) As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da
primeira.
(C) A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa.
(D) A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira.
(E) Tanto a primeira quanto a segunda asserções são proposições falsas.

Ex3: (Questão 29 - ENADE 2011 – COMPUTAÇÃO)


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.
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.

Ex4: (Questão 54 – TRE-PB2007 - Programador de Sistemas - FCC)


Um usuário de computador realiza os seus trabalhos diretamente no sistema operacional Unix, por
meio
(A) do shell. (B) de um processo. (C) de um diretório. (D) de uma sessão. (E) do kernel.

Ex5: (Questão 59 - TJMG2007 - ADMINISTRADOR DE BANCO DE DADOS - FUNDEP)


Considerando-se o escalonamento de processos em sistemas operacionais, é INCORRETO afirmar
(A) que a suspensão de um processo em um instante arbitrário, para que outro passe a executar,
pode levar a uma condição de corrida.
(B) que, no escalonamento por prioridade, as prioridades dos processos são definidas de forma
estática.
(C) que o escalonamento preemptivo permite suspender temporariamente um processo.
(D) que o escalonador, que usa a política round robin, mantém uma lista de processos prontos para
executar.

Ex6: (ANALISTA DE SISTEMAS PETROBRAS 2007 – CESPE)


Marque, para cada item: da questão, no campo designado com o código C, caso julgue o item
CERTO; ou o com o código E, caso julgue o item ERRADO. Deixe em branco quando não
souber, pois as respostas erradas receberão pontuação negativa.
19

( ) A) Ao ser executado, um processo pode passar por diferentes estados. Por exemplo, há
sistemas operacionais em que um processo pode estar sendo executado, estar aguardando a
ocorrência de algum evento ou estar pronto para ser executado. Para cada estado, há sistemas
operacionais que mantêm uma lista com blocos de controle dos processos no estado. (Questão 65
ANALISTA DE SISTEMAS)
( ) B) Em uma mudança de contexto, para que um processo possa ser futuramente executado a
partir de onde estava quando foi interrompido, um sistema operacional poderá armazenar dados
sobre o contexto do processo, sendo parte desse contexto composto por dados nos registradores do
processador. (Questão 70a ANALISTA DE SISTEMAS)
( ) C) Um sistema operacional pode implementar o escalonamento round-robin, mantendo uma
fila de processos prontos para execução. Uma vez posto em execução, um processo tipicamente
poderá liberar o processador voluntariamente ou ter a sua execução interrompida ao final de um
intervalo de tempo. (Questão 66b ANALISTA DE SISTEMAS)
( ) D) Em alguns algoritmos de escalonamento de processos classificados como round robin com
multilevel feedback, as prioridades dos processos são periodicamente calculadas e os processos são
movidos entre listas que representam as prioridades. Há implementações desses algoritmos nas
quais os processos podem influenciar as suas prioridades. (Questão 69a ANALISTA DE
SISTEMAS)

Ex7: (questão 60 -TRF 2 Analista Judiciário - Especialidade Informática)


O núcleo Unix mantém as estruturas tabela de processos e estrutura do usuário, sendo que, nesta
última estão contidas informações referentes:
(A) às miscelâneas.
(B) à imagem da memória.
(C) aos sinais ignorados, capturados, bloqueados e entregues.
(D) aos parâmetros de escalonamento.
(E) aos registradores da máquina.

Ex8: (questão 19 - Analista de Sistemas - Informática e Redes- MI-CENAD -ESAF 2012 )


No sistema operacional MS Windows,
(A) no estado pronto, o thread está sendo executado.
(B) são escalonados apenas processos para execução, e não threads.
(C) no estado transição, o thread aguarda que suas páginas gravadas em disco sejam lidas para a
memória principal.
(D) threads também são implementados como objetos, sendo representados por uma estrutura
chamada ETHROUGH.
(E) threads são implementados em modos measure e key.

Ex9: (Questão 37 - TJMG2007 - ANALISTA DE SISTEMAS - FUNDEP)


Assinale a alternativa CORRETA, considerando o gerenciamento de processos em sistemas
operacionais.
A) O bloco de controle de processos armazena informações sobre o usuário responsável por um
determinado processo.
B) O escalonador de processos é uma rotina responsável por carregar na memória do computador os
processos para execução, controlando o grau de multiprogramação.
C) Os processos filhos criados não podem fazer uso de recursos externos àqueles já usados pelo
processo pai.
D) Um fluxo de execução ou thread pode ser considerado um agrupamento de vários processos
tradicionais.
20

Ex10: (Questão 40 - MGS2007 - ANALISTA DE SISTEMAS - esppconcursos)


São os possíveis estados de um processo em um Sistema Operacional:
(A) novo, em execução, em espera, pronto e terminado.
(B) entrada, processamento e saída.
(C) velho, parado, rodando, ocioso e fantasma.
(D) inicial, intermediário, em processamento e finalizado

Ex11:
Descreva o processo de carga (booting) para os sistemas Linux e MS Windows.

Ex12: (Cap1 – SOMTB3ed)


Por que é necessária uma tabela de processos em sistemas de tempo compartilhado?

Ex13: (Ex3.7 – SOJava8ed)


Escreva as ações tomadas por um kernel para fazer a troca de contexto entre processos.

Ex14: (Ex5.2 – SOJava8ed)


Defina a diferença entre escalonamento preemptivo e não-preemptivo.

Ex 15:
Quais são as principais diferenças entre threads e processos? Em que circunstâncias um tipo é mais
adequado do que o outro?

Ex16: (Ex4.3 SOJava8ed)


Descreva as ações tomadas por um kernel para trocar contexto entre threads de kernel.

Ex17: (Ex2.18 SOMTB4ed Ex4.2 SOJava8ed)


Quais são as diferenças entre os threads em nível de usuário e os threads em nível de kernel? Sob
quais circunstâncias um tipo é melhor que o outro?

Ex18: (Questão 1 - Lista 1 SD ©MTOV)


Descreva as principais diferenças entre programas paralelos, multithread e distribuídos.

Ex19: (Questão 17- ENADE 2014 – Sistemas de Informação)


Os estados que um processo alcança podem ser modelados por meio do diagrama exibido a seguir.
No diagrama de estados apresentado, as transições causadas pelo escalonador de processos são

TANENBAUM, A. S. Sistemas Operacionais Modernos. 3 ed.

São Paulo: Pearson do Brasil: 2010 (adaptado).


( A ) 1 e 2 . ( B ) 1 e 3. ( C ) 1 e 4. ( D ) 2 e 3. (E) 2 e 4.
21

Ex20: (Questão 19- ENADE 2014 – Sistemas de Informação)


Um analista de sistemas usa um computador para executar apenas 2 tipos de operações:
processamento lógico/aritmético e acesso a disco.
O computador é um servidor com apenas um processador de um núcleo (core). Além do sistema
operacional multitarefa e dos processos do sistema, tal servidor serializa os acessos a disco e é
usado para executar apenas os programas que o analista solicita. O analista trabalha com dois tipos
de programas: aqueles que realizam em torno de 100% de operações lógicas/aritméticas (quantidade
desprezível de acesso a disco), denominados cpu-bound, e aqueles que executam em torno de 70%
de acesso a disco e 30% de operações lógicas/aritméticas, denominados io-bound. Certa vez, o
analista executou alguns programas isoladamente e mediu os tempos de execução de cada um. Os
dados obtidos foram registrados na tabela I. Em seguida, ele combinou programas e os submeteu
simultaneamente em grupos. O s resultados foram registrados na tabela II.

Tabela I

Programa Tipo Tempo de Execução (ut)

P01 CPU-BOUND 20

P02 CPU-BOUND 40

P03 CPU-BOUND 60

P04 IO-BOUND 50

P05 IO-BOUND 100

P06 IO-BOUND 150

Tabela II

Grupo Tempo de Execução (ut)

1: P01+ P02+ P03 123

2: P04+ P05+ P06 210

3: P03+ P05+ P06 160

4: Todos 306

Dias depois, revendo as tabelas, ele teve dúvida quanto à correção dos tempos anotados. Considere
ut = unidade de tempo.
Com relação a essa situação, avalie as afirmações a seguir.
22

I. É possível que o tempo total do grupo 4 seja 306 ut.


II. O tempo total do grupo 1 deveria ser, no mínimo, de 100 ut.
III. O tempo total do grupo 2 deveria ser, no mínimo, de 300 ut.
IV. O tempo total do grupo 3 deveria estar acima de 175 e abaixo de 310 ut.
É correto o que se afirma em:
( A ) I I I , a p e n a s . ( B ) I e II, a p e n a s . ( C ) I e IV, a p e n a s . 1 ( D ) II, III, IV a p e n a s .
(E) I, II, III e IV.

Ex21: (Questão 27 - ENADE 2011 – Computação)


Um dos problemas clássicos da computação científica é a multiplicação de matrizes. Assuma que
foram declaradas e inicializadas três matrizes quadradas de ponto flutuante, a, b e c, cujos índices
variam entre 0 e n - 1. O seguinte trecho de código pode ser usado para multiplicar matrizes de
forma sequencial:
1. for [i = 0 to n - 1] {
2. for [j = 0 to n - 1] {
3. c[i, j] = 0.0;
4. for [k = 0 to n - 1]
5. c[i, j] = c[i, j] + a[i, k] * b[k, j];
6. }
7. }
O objetivo é paralelizar esse código para que o tempo de execução seja reduzido em uma máquina
com múltiplos processadores e memória compartilhada. Suponha que o comando “co” seja usado
para definição de comandos concorrentes, da seguinte forma: “co [i = 0 to n - 1] { x; y; z;}”
cria n processos concorrentes, cada um executando sequencialmente uma instância dos comandos x,
y, z contidos no bloco.
Avalie as seguintes afirmações sobre o problema.
I. Esse problema é exemplo do que se chama “embaraçosamente paralelo”, porque pode ser
decomposto em um conjunto de várias operações menores que podem ser executadas
independentemente.
II. O programa produziria resultados corretos e em tempo menor do que o sequencial, trocando-se o
“for” na linha 1 por um “co”.
III. O programa produziria resultados corretos e em tempo menor do que o sequencial, trocando-se
o “for” na linha 2 por um “co”.
IV. O programa produziria resultados corretos e em tempo menor do que o sequencial, trocando-se
ambos “for”, nas linhas 1 e 2, por “co”.
É correto o que se afirma em:
(A) I, II e III, apenas.
(B) I, II e IV, apenas.
(C) I, III e IV, apenas.
(D) II, III e IV, apenas.
(E) I, II, III, IV.
23

Ex22: (Questão 20 - ENADE 2014 – Ciência da Computação)

Um processo tem um ou mais fluxos de execução, normalmente denominados apenas por threads.

TANENBAUM, A. D. Sistemas operacionais modernos. 3. ed. São Paulo: Pearson Prentice Hall, 2010 (adaptado).

A partir das figuras 1 e 2 apresentadas, avalie as afirmações a seguir.


I. Tanto na figura 1 quanto na figura 2, existem três threads que utilizam o mesmo espaço de
endereçamento.
II. Tanto na figura 1 quanto na figura 2, existem três threads que utilizam três espaços de
endereçamento distintos.
III. Na figura 2, existe um processo com um único espaço de endereçamento e três threads de
controle.
IV. Na figura l, existem três processos tradicionais, cada qual tem seu espaço de endereçamento e
uma única thread de controle.
V. As threads permitem que várias execuções ocorram no mesmo ambiente de processo de forma
independente uma das outras.
É correto apenas o que se afirma em
(A) I, II e III.
(B) I, II e IV.
(C) I, III e V.
(D) II, IV e V.
(E) III, IV e V.

Ex23: (Questão 45 - ANALISTA DE SISTEMAS MPES 2013 – VUNESP)


O algoritmo de escalonamento que atribui um tempo durante o qual o processador poderá ser
utilizado por um processo é denominado
(A) Cooperativo.
(B) First In First Out.
(C) Round Robin.
(D) Shortest Job First.
(E) Multiplexado.

Ex24: (Questão 46 - ANALISTA DE SISTEMAS MPES 2013 – VUNESP)


Alguns sistemas operacionais fornecem suporte a threads. Estas, quando comparadas aos processos,
(A) consomem um menor tempo para a sua criação e escalonamento.
(B) não podem criar outra thread.
(C) não podem se replicar.
(D) não podem voluntariamente desistir do uso da UCP (Unidade Central de Processamento).
(E) são mais difíceis de serem criadas.
24

Ex25: (Questão 48 – modificada ANALISTA DE SISTEMAS MPES 2013 – VUNESP)


O recurso que pode ser encontrado em diversas versões do sistema operacional Windows que se
destina a limitar um aplicativo a ser executado apenas em determinado núcleo do processador do
computador, é denominado
(A) Afinidade com o Processador.
(B) Alocação Dinâmica.
(C) Gerenciador de Núcleo.
(D) Gerenciador de Tarefas.
(E) Gerenciador do Processador.

Ex26: (Questão 50 – modificada ANALISTA DE SISTEMAS MPES 2013 – VUNESP)


Em um computador com o sistema operacional Windows Vista, um programa está causando
problemas e, devido a isso, deseja-se desabilitá-lo temporariamente. Uma das maneiras de se fazer
isso é iniciar o computador no Modo
(A) de Correção.
(B) de Desabilitação.
(C) de Segurança.
(D) Hibernar.
(E) Suspender.

Ex27: (Questão 48 – ANALISTA DE SISTEMAS DPSP 2009 – FCC)


Os processos no sistema operacional que possuem um timer, chamado de quantum, onde todos os
processos ganham o mesmo valor de quantum para rodarem na CPU, caracterizam o escalonamento
de processos do tipo
(A) RR - Round-Robin.
(B) FIFO - First in, first out.
(C) FCFS - First come, first served.
(D) SJF - Shortest Job First.
(E) SRF - Shortest Remainig Time First.

Ex28: (Questão 58 - ANALISTA DE SISTEMAS DPSP 2015 – FCC)


Nos Sistemas Operacionais, considere:
I. Utilização de CPU - mantém a CPU ocupada pelo máximo de tempo possível.
II. Vazão -número de processos que são completados por unidade de tempo.
III. Threadout - o tempo necessário para executar um determinado processo.
IV. Througthput - tempo que um processo gasta esperando na fila de prontos.
Fazem parte dos critérios de escalonamento de processos descritos corretamente, APENAS os itens
(A) I, III e IV.
(B) II e III.
(C) III e IV.
(D) I e II.
(E) II e IV.

Ex29: (Questão 59 - ANALISTA DE SISTEMAS DPSP 2015 – FCC)


Quando dois ou mais processos têm condições de “rodar”, é o escalonador que decide, baseado em
um algoritmo de escalonamento, qual será o próximo a receber tempo de CPU. Nesse contexto,
quando há uma interrupção e suspensão temporária da execução de processos não bloqueados após
um tempo máximo fixado tem-se o que categorizamos de escalonamento
25

(A) Preemptivo.
(B) First-Come, First Served.
(C) Hood-Robin.
(D) Quantum.
(E) Não-preemptivo.

Ex30: (Questão 59 – TRE-PB2007 - Programador de Sistemas)


Para diversas partes de um programa serem executadas ao mesmo tempo, um sistema operacional
utiliza uma tecnologia de:
(A) multitarefa. (B) camadas. (C) threads. (D) particionamento. (E) multiprocessamento.
26

Parte III: Deadlocks, comunicação e sincronização de processos e threads

Ex 1: (PROVA DE RECUPERAÇÃO DE SO de 2005 a 2012)


O que é impasse ("deadlock"), quais são as condições para obtê-lo e quais são as 4 (quatro)
principais estratégias para tratar desta situação?

Ex2: (PROVA 1 de SO de 2001 a 2014)


Um sistema tem três processos A, B e C com 10 instâncias de um único tipo de recurso. A
necessidade máxima de recursos requeridos por cada processo é dado pelo vetor M = (9, 4, 7).
Determine, utilizando o algoritmo do banqueiro, se os estados de alocação recursos definidos pelos
vetores U1 = (3, 2, 2) e U2 = (4, 2, 2) representam estados seguros ou inseguros. Para tal detemine
para cada caso o valor de D (recursos disponíveis) e o vetor N (necessidades dos processos).
Justifique suas respostas mostrando uma sequência de alocações com os valores de D atualizados
que permita que todos os processos sejam concluídos ou sejam levados a uma situação de impasse
(deadlock).

Ex3: (PROVA 1 SO de 2001 a 2013)


Um sistema tem três processos nomeados por A, B e C e usa quatro tipos de recursos diferentes
nomeados por R1, R2, R3 e R4. As necessidades máximas de recursos requeridos pelos processos é
dada matriz M. O número de recursos existentes de cada tipo é dado pelo vetor E = (4, 2, 3, 1).
Determine se os estados de alocação recursos definidos pelas matrizes U1 e U2 representam estados
seguros ou inseguros. Para tal determine para caso o vetor D (recursos disponíveis) e a matriz N de
necessidades dos processos. Justifique suas respostas mostrando uma seqüência de alocações com
os vetores D (recursos disponíveis) atualizados que permita que todos os processos sejam
concluídos ou sejam levados a uma situação de impasse (deadlock).
2011 0010 1010
M = 3 0 1 1 U1 = 2 0 0 1 U2 = 2 0 0 1 N1 = N2 =
2220 0120 0120
E = [4 2 3 1] D1 = D2 = A1= ................A2=

Ex 4: (PROVA DE RECUPERAÇÃO DE SO de 2005 a 2010)


Suponha o seguinte programa concorrente:
int x= 0, y= 0, z= 0; sem lock1= 1, lock2= 1;
process foo { Process bar {
z= z+2; DOWN(lock2);
DOWN(lock1); y= y+1;
x= x+2; DOWN(lock1);
DOWN(lock2); x= x+1;
UP(lock1); UP(lock1);
y= y+2; UP(lock2);
UP(lock2); z= z+1;
} }

(a) Explique porque este programa pode originar um deadlock? Qual o valor de x, y e z durante o
deadlock?
(b) Descreva um possível escalonamento no qual este programa termina. Qual o valor de x, y e z
neste caso?
27

Ex 5: (PROVA DE RECUPERAÇÃO DE SO de 2005 a 2012)


Explique o que são monitores e semáforos, para que servem e quais são suas principais diferenças

Ex6: (PROVA 2 de SO de 2004 a 2013)


Exercício 23 (modificado) do Cap 6 pg 290 - OEC – Tanenbaum – 4ª. ed.
Preencha a tabela abaixo com os valores atualizados do semáforo e dos estados dos três processos
envolvidos: P1, P2 e P3 (utilize P = pronto, E = Execução ou B = bloqueado). Cada linha da tabela
representa o estado do sistema no tempo t, iniciando em t = 0 com todos os processos prontos e
termina em t = 1000 ms. Todos três processos executam operações up e down sobre o mesmo
semáforo (com valor inicial igual a 1(um) em t=0). Quando dois processos estiverem bloqueados e
uma operação up for executada, o processo desbloqueado será aquele cujo número for menor que o
número dos demais processos bloqueados, ou seja, P1 tem preferência sobre P2 e P3, e assim por
diante. Suponha que existem menos de 7 (sete) processos ativos no sistema e que Q (quantum, time-
slice ou intervalo de tempo) = 10 ms.
Os principais eventos causados pelos processos são:
Em t = 100 P1 executa um down
Em t = 200 P1 executa um down
Em t = 300 P2 executa um up
Em t = 400 P3 executa um down
Em t = 500 P1 executa um down
Em t = 600 P2 executa um up
Em t = 700 P2 executa um down
Em t = 800 P1 executa um up
Em t = 900 P1 executa um up

t(ms) Semáforo P1 P2 P3 JUSTIFICATIVA

100

200

300

400

500

600

700

800

900

1000
28

Ex7: (PROVA 2 de SO de 2004 a 2013)


Considere os processos A, B e C executam o mesmo código com região crítica definida através do
semáforo binário mutex (código parcial apresentado abaixo). O algoritmo de escalonamento é
circular (Round Robin). Suponha que a região crítica gaste o tempo de 1Q (um quantum) (intervalo
de tempo) para ser executada e fora da rc gaste 2Q (dois quantuns). Preencha, justificando, a
tabela a seguir com o estado de cada processo (P = Pronto; E = Execução; B = Bloqueado) em
cada intervalo de tempo até que todos os processos tenham executado dentro e fora da região
crítica, iniciando pelo processo C, depois B e A (fila de pronto). Os tempos necessários para as
operações de semáforo (down e up) são 0,01Q. Preencha também a evolução da fila de espera
associada ao semáforo e a de pronto iniciando pelo processo C, depois B e A .
// Código do Processo
semaphore mutex = 1;
void main( ){
while(TRUE) {
down(&mutex);
dentro_ da _região_crítica( ) ;
up(&mutex);
fora _da _região_crítica( ) ;
}
}

FILA DE PRONTO: C, B, A (inicia pelo processo C)


TABELA A SER PREENCHIDA (AUMENTAR A TABELA CASO SEJA NECESSÁRIO):
(ESCREVA AS JUSTIFICATIVAS AO LADO DA TABELA)
(OBS: Tabela preenchida sem as justificativas não será considerada)

Interval mute A B C JUSTIFICATIVA


o x
1
2
3
4
5 .
6
7
8
9
10
11
12
29

13
14
15
16

Ex 8: (PROVA 2 DE LAB SO EC de 2007 a 2013)


Diversos processos compartilham um recurso que possui T unidades (por exemplo, um pool de
modens). Este pool é manipulado pelas seguintes operações:
request(): requisita um recurso ao pool
release(int n): devolve n recursos para o pool
Mostre uma implementação para estas operações usando: (a) Semáforos e (b) Monitores

Ex9: (Questão 53 - ENADE 2005 – CC e EC )


Considere o problema do buffer limitado de tamanho N cujos pseudocódigos dos processos produtor
e consumidor estão mostrados na tabela abaixo. Pode-se resolver esse problema com a utilização
dos semáforos mutex, cheio e vazio, inicializados, respectivamente, com 1, 0 e N.
processo produtor
produz item
comando_a
comando_b
coloca no buffer
comando_c
comando_d

processo consumidor
comando_e
comando_f
retira do buffer
comando_g
comando_h
consome o item

A partir dessas informações, para que o problema do buffer limitado de tamanho N cujos
pseudocódigos foram apresentados possa ser resolvido a partir do uso dos semáforos mutex, cheio e
vazio, é necessário que comando_a, comando_b, comando_c, comando_d, comando_e, comando_f,
comando_g e comando_h correspondam, respectivamente, às operações
a) wait(vazio), wait(mutex), signal(mutex), signal(cheio), wait(cheio), wait(mutex), signal(mutex)
e signal(vazio).
b) wait(cheio), wait(mutex), signal(mutex), signal(vazio), wait(vazio), signal(mutex), signal(mutex)
e wait(cheio).
c) wait(mutex), wait(vazio), signal(cheio), signal(mutex), wait(mutex), wait(vazio), signal(cheio) e
signal(mutex).
d) wait(mutex), wait(vazio), signal(cheio), signal(mutex), wait(mutex), wait(cheio), signal(vazio) e
signal(mutex).
e) wait(vazio), signal(mutex), signal(cheio), wait(mutex), wait(cheio), signal(mutex), signal(vazio) e
signal(mutex).
30

QUESTÃO 54

Ex10: (Questão 58 - TJMG2007 - ADMINISTRADOR DE BANCO DE DADOS - FUNDEP)


Considerando as condições que devem estar presentes numa solução para acesso à
região crítica, é INCORRETO afirmar que:
A) só pode haver um único processo executando dentro da região crítica.
B) um processo pode estimar a velocidade de acesso à memória em que está a região crítica.
C) um processo pode ter que esperar indefinidamente para entrar em sua região crítica .
D) um processo que executa fora da região crítica não pode bloquear outro processo.

Ex11: (Cap2 - SOMTB2ed)


O que é uma condição de disputa?

Ex12: (Cap6 - OECTB4ed)


Para possibilitar implementação de semáforos em um computador com vários processadores que
compartilham a mesma memória, os arquitetos oferecem uma instrução Test and Set Lock. A instr.
TSL x testa o endereço X. Se o seu conteúdo for zero, ele passa a ser 1, em um único e indivisível
ciclo de memória, e a próxima instr. não é executada. Se o valor armazenado em X for diferente de
zero, a instr. TSL atua como uma instrução no-op. Usando a instrução TSL é possível escrever
procedimentos lock e unlock, com as seguintes propriedades: o procedimento lock(x) verifica se o
valor de x para ver se ele está travado. Se não estiver, trava x e retorna o controle. Se x já estiver
travado, o procedimento simplesmente espera até que ele seja destravado, depois trava e retorna o
controle. O procedimento unlock libera um lock. Se todos os processos travarem a tabela de
semáforos antes de utiliza-la, somente um processo por vez pode mexer nas variáveis e nos
ponteiros, evitando assim as condições de corrida. Escreva os procedimentos lock e unlock em
linguagem de montagem.(Faça as considerações que você julgar necessárias.)

Ex13: ( Cap6 - OECTB4ed)


Mostre os valores dos ponteiros entrada e saída para um buffer circular com capacidade para 65
palavras após a execução de cada uma das operações a seguir. Considere que o valor inicial de
ambos os ponteiros é igual a 0.
a) 22 palavras são colocadas no buffer
b) 9 palavras são removidas do buffer
c) 40 palavras são colocadas no buffer
d) 17 palavras são removidas do buffer
e) 12 palavras são colocadas no buffer
f) 45 palavras são removidas do buffer
g) 8 palavras são colocadas no buffer
h) 11 palavras são removidas do buffer

Ex14: (Questão 21 - ENADE 2014 – Ciência da Computação)


O fragmento de código a seguir, escrito em Java, descreve duas implementações diferentes para um
lock. Ambas possuem um método denominado acquire e um método denominado release.

class LockA {
private int turn = 0
public void acquire(int tid) {
while (turn == (1 - tid));
}
public void release(int tid) {
turn = (1 - tid);
}
31

}
class LockB {
public void acquire() {
disablelnterrupts();
}
public void release!) {
enablelnterrupts();
}
}

Considera-se que:
- as duas implementações de lock são utilizadas por aplicações com, no máximo, duas threads;
- uma aplicação que utilizar qualquer uma destas implementações invocará o método acqui re antes
de entrar em sua seção crítica e o método release após deixar a seção crítica;
- tanto o método acqui re quanto o método release são operações atómicas nas duas implementações
de lock;
- para a implementação que requer um tid (thread id), assume-se que ele sempre será 0 ou 1;
- os métodos disablelnterrupts e enablelnterrupts são utilizados para desabilitare habilitar
respectivamente as interrupções do processador onde o código for executado. O código desses dois
métodos foi desenvolvido para ser utilizado em uma máquina com um ou dois processadores.

A partir das informações apresentadas, avalie as afirmações a seguir.


I. A implementação de LockA garante progresso.
II. A implementação de LockB garante progresso.
III. A implementação de LockA garante exclusão mútua.
IV. A implementação de LockB garante exclusão mútua.
É correto apenas o que se afirma em
(A) I e II. (B) ) II e III. (C) III e IV. (D ) I, II e IV. (E) I, III e IV.

Ex15: (Questão 61 – ANALISTA DE SISTEMAS DPSP 2009 – FCC)


Arquitetura orientada a serviço é um novo conceito, no qual cria-se um ambiente de descoberta
dinâmico e se faz o uso de Serviços Web através da rede. NÃO é uma tecnologia usada nos serviços
Web disponibilizados
(A) WSDL.
(B) XML.
(C) SOA.
(D) SOAP.
(E) UDDI.

Ex16: (Questão 31 ENADE 2017 CC)


Considere o programa a seguir, que ilustra a criação, execução e sincronização de duas threads.
#include <stdio.h>
#include <pthread.h>
int x = 0, y = 0; // Variáveis compartilhadas
void funcaol(void *threadarg){
x = 1;
... // várias instruções
if (y == 0)
32

printf("1 ");
pthread_exit(0) ;
}

void funcao2(void *threadarg){


y = 1;
... // várias instruções
if (x == 0)
printf("2 ");
pthread_exit(0) ;
}

void main() {
pthread_t tl, t2;
// Cria e dispara tl que executa funcaol
pthread_create(&tl, NULL,(void * ) funcaol, NULL);
// Cria e dispara t2 que executa funcao2
pthread_create(&t2, NULL,(void *)funcao2, NULL);
// Pai espera filho terminar
pthread_join(tl, NULL);
// Pai espera filho terminar
pthread_join(t2, NULL);
}
Ao final da execução da função mai n, será impresso
A) ambos os valores "1" e "2".
B) o valor "1", necessariamente.
C) o valor "2", necessariamente.
D) o valor "1", ou o valor "2", mas nunca ambos.
E) o valor "1", ou o valor "2", ou nenhum valor, mas nunca ambos.

Ex17: (Questão 35- ENADE 2017– CC)


Um programador inexperiente está desenvolvendo um sistema multithread que possui duas
estruturas de dados diferentes, El e E2, as quais armazenam valores inteiros. O acesso concorrente a
essas estruturas é controlado por semáforos. Durante sua execução, o sistema dispara as threads Tl
e T2 simultaneamente. A tabela a seguir possibilita uma visão em linhas gerais dos algoritmos
dessas threads.

Tl T2
Aloca El Aloca E2
Calcula a média M l dos valores de El Calcula a soma S I de todos os valores de E2
Aloca E2 Aloca El
Calcula a média M2 dos valores de E2 Calcula a soma S2 de todos os valores de E l
Calcula M3 = M1 + M2 Calcula S 3 = |S1 - S 2 |
Soma M3 em todos os valores de E2 Subtrai S2 de todos os valores de El
Libera E l Libera E2
Libera E2 Libera El
Durante a execução do referido programa, é possível que
A) não ocorra deadlock, porque a sequência de alocação dos recursos impede naturalmente o
(problema.
33

B) ocorra deadlock, que pode ser evitado se o programador tomar o cuidado de não executar
cálculos entre um pedido de alocação e outro.
C) ocorra deadlock, sendo a probabilidade dessa ocorrência tão baixa e sua consequência tão inócua
que não haverá comprometimento do programa.
D) não ocorra deadlock, desde que o programador use semáforos para controlar o acesso às
estruturas de dados, o que é suficiente para evitar o problema.
E) ocorra deadlock, que pode ser evitado se o programador tomar o cuidado de solicitar o acesso às
estruturas de dados na mesma ordem em ambas as threads.

Ex18: (Questão discursiva 04 - ENADE TGTI 2017 )


Os serviços de computação em nuvem fornecem a Tecnologia da Informação (Tl) como serviço
pela internet ou por uma rede dedicada, com entrega sob demanda e pagamento com base no uso.
Esses serviços variam de aplicativos completos e plataformas de desenvolvimento até servidores,
armazenamento e desktops virtuais.
Podem-se citar vários serviços de computação em nuvem, por exemplo, a Infraestrutura como
Serviço {Infrastructure as a Service - laaS), a Plataforma como Serviço (Platform as a Service -
PaaS) e o Software como Serviço (Software as a Service - SaaS). (Disponível em:
<https://www.brazil.emc.com>. Acesso em: 3 jul. 2017 (adaptado)).
Considere que uma empresa planeja contratar um serviço de computação em nuvem (laaS, PaaS ou
SaaS), sob demanda, que forneça servidores virtuais e permita a configuração e administração dos
sistemas operacionais necessários via internet. Considere, ainda, que a empresa necessita do
controle dos sistemas operacionais, rede e sistemas a serem instalados nos servidores virtuais.
Com base nessa situação, defina o serviço de computação em nuvem que mais se adequa a essa
empresa e explique o conceito desse serviço, (valor: 10,0 pontos

Parte IV: Lista de siglas (referências bibliográficas)


a) FSO1ed: Fundamentos de Sistemas Operacionais, 1ª. ed. , Silberschatz, Galvin, Gagne, LTC,
2013.

b) ASOM: Arquitetura de Sistemas Operacionais, 3ª., 4ª. e 5ª. ed (2013), Francis Berenger;
Machado, Maia, Luiz Paulo, LTC. 2013.

c) SOMTB3ed: TANENBAUM, Andrew S., Sistemas Operacionais Modernos, 3ª ed (2010).

d) SOMTB4ed: TANENBAUM, A. S. , Modern Operating Systems, 4th ed, Pearson, 2015..

e) SOD3ed: Sistemas operacionais, DEITEL, Harvey M.; DEITEL, Paul J.; CHOFFNES, David R,
Pearson, 3 ed, 2005.

f) SOJ7ed: Sistemas Operacionais com Java, SILBERSCHATZ, Abraham; GALVIN, Peter B.;
GAGNE., 7a. ed., Campus. 2008.

g) SOJ8ed: Sistemas Operacionais com Java, SILBERSCHATZ, Abraham; GALVIN, Peter B.;
GAGNE., 7a. ed., Campus. 2016.

h) AOCS8ed: Arquitetura e Organização de Computadores, 8ª. ed., W. Stallings.

i) OECTB: TANENBAUM, Andrew S., Organização Estruturada de Computadores, 4.a, 5a e


6ª eds.

Você também pode gostar