You are on page 1of 1

Universidade Federal do Maranhão

Coordenação do Curso de Engenharia da Computação


Disciplina: Sistemas de Tempo Real
Prof.: Luis Claudio

Lista de exercícios – 1ª Prova (Teórica)

Com base nos conteúdos apresentados sob a temática Revisão de Programação Concorrente,
responda as questões a seguir.

1) Por que razão, em computação, faz-se necessário executar vários programas simultaneamente?

2) Quais as categorias de concorrência encontradas na computação?

3) Qual a diferença entre processos e threads?

4) Que tipo de problema pode ocorrer quando há concorrência entre dois processos e eles estão
alterando o valor de uma mesma variável?

5) Defina deadlock e starvation.

6) Explique como várias threads conseguem acessar um mesmo dado compartilhado em um programa.

7) O que é região crítica? O que é exclusão mútua?

8) Quais os tipos de sincronização empregadas para gerir a ordem com que as tarefas são executadas?

9) O que é escalonamento e quais os estados que uma tarefa pode assumir durante sua execução?

10) Um dos principais problemas quando se trabalha com programação concorrente é o indeterminismo.
Defina indeterminismo e como este problema pode afetar variáveis compartilhadas durante a execução de
tarefas concorrentes.

11) Que questões devem ser avaliadas durante o projeto de programas concorrentes? Cite pelo menos
três?

12) Defina “espera ocupada” e como pode ser empregada no problema produtor-consumidor.

13) O que são semáforos em programação concorrente? Quais operações atômicas os semáforos
implementam? Quais os tipos de semáforos empregados em programação concorrente?

14) (CESGRANRIO, 2012 - Petrobrás) Os semáforos são usados em programação concorrente para evitar
que dois ou mais processos acessem sua seção crítica simultaneamente. Assim, os semáforos são usados
para garantir:
a) os pipes, que funcionam ligando a saída de um processo com a entrada de outro.
b) a exclusão mútua, onde cada processo deverá sinalizar imediatamente antes e, imediatamente após,
usar um recurso comum a ambos.
c) o PID, a identificação única de cada processo.
d) que não haverá deadlock, ou seja, quando um processo espera indefinidamente por um recurso de outro.
e) que a máquina virtual gerencie os processos do Sistema Operacional e o hardware da máquina
corretamente.

You might also like