Lista Concorrência - Exceções - UNIOESTE

Propaganda
TRABALHO DE CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO
Prof. Jorge Habib Hanna El Khouri
Aluno: _____________
Turma: 2º A
UNIOESTE
CONCORRÊNCIA
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Quais são os três níveis de concorrência nos programas?
Qual nível de concorrência de programa é melhor suportado por computadores SIMD?
Qual nível de concorrência de programa é melhor suportado por computadores
MIMD?
O que é o thread de controle de um programa?
Defina 𝑡𝑎𝑟𝑒𝑓𝑎, 𝑡𝑎𝑟𝑒𝑓𝑎 𝑑𝑖𝑠𝑗𝑢𝑛𝑡𝑎, 𝑠𝑖𝑛𝑐𝑟𝑜𝑛𝑖𝑧𝑎çã𝑜, 𝑠𝑖𝑛𝑐𝑟𝑜𝑛𝑖𝑧𝑎çã𝑜 𝑑𝑒 𝑐𝑜𝑚𝑝𝑒𝑡𝑖çã𝑜 e
𝑐𝑜𝑜𝑝𝑒𝑟𝑎çã𝑜, 𝑙𝑖𝑣𝑒𝑛𝑒𝑠𝑠 e 𝑑𝑒𝑎𝑑𝑙𝑜𝑐𝑘.
Quais tipos de tarefa não exigem nenhum tipo de sincronização?
Quais são as questões de projeto referentes ao suporte de linguagem para
concorrência?
Descreva as ações das operações de espera (wait) e de liberação (release) para
semáforos.
O que é um semáforo binário? O que é um de contagem?
Quais são os principais problemas decorrentes do uso de semáforos para fornecer
sincronização?
Qual vantagem os monitores têm sobre os semáforos?
Especificamente, qual unidade de programa Java pode rodar concorrentemente com o
método principal em um programa aplicativo?
O que o método 𝑠𝑙𝑒𝑒𝑝 Java faz?
O que o método 𝑦𝑖𝑒𝑙𝑑 Java faz?
Quais são as duas construções Java que podem ser sincronizadas?
Quais métodos Java são usados para suportar sincronização de cooperação?
Explique porque o Java inclui a interface 𝑅𝑢𝑛𝑛𝑎𝑏𝑙𝑒.
Qual é a melhor ação que um sistema pode desenvolver quando um deadlock é
detectado?
Espera ocupada (𝑏𝑢𝑠𝑦 𝑤𝑎𝑖𝑡𝑖𝑛𝑔) é um método por meio do qual uma tarefa espera que
determinado evento verifique continuamente se esse evento ocorre. Qual é o problema
com essa abordagem?
No exemplo do produtor-consumidor, suponhamos que substituímos incorretamente a
𝑟𝑒𝑙𝑒𝑎𝑠𝑒 (𝑎𝑐𝑐𝑒𝑠𝑠) do processo consumidor por 𝑤𝑎𝑖𝑡 (𝑎𝑐𝑐𝑒𝑠𝑠). Qual seria o resultado
desse erro na execução do sistema?
Suponhamos que duas tarefas, A e B, devam usar a variável compartilhada
TAM_BUF. A tarefa A adiciona 2 a TAM_BUF, e a tarefa B subtrai 1 dela.
Suponhamos que tais operações aritméticas sejam feitas pelo processo em três etapas:
buscar o valor atual, realizar a operação aritmética e colocar de volta o novo valor. Na
ausência de sincronização de competição, quais sequências de eventos são possíveis e
quais valores resultam dessas operações? Suponhamos que o valor inicial de
TAM_BUF seja 6.
EXCEÇÕES
22.
23.
Defina exceção, manipulador de exceções, levantamento de uma exceção, desativação
de uma exceção e exceção incorporada.
Quais são as questões de projeto relativas à manipulação de exceções?
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
O que se quer dizer por uma exceção estar vinculada a um manipulador de exceções?
Qual é o problema com a vinculação de exceções a manipuladores da PL/I?
Qual é o nome de todos os manipuladores de exceção do C++?
Como as exceções podem ser explicitamente geradas em C++?
Como as exceções são vinculadas a manipuladores em C++?
Como um manipulador de exceções pode ser escrito em C++ de maneira que manipule
qualquer exceção?
Para onde vai o controle de execução quando um manipulador de exceções do C++
encerra sua execução?
O C++ inclui exceções incorporadas?
Qual é a classe-raiz de todas as classes de exceção Java?
Qual é a classe-pai da maioria das classes de exceção Java definidas pelo usuário?
Como um manipulador de exceções pode ser escrito em Java de maneira que manipule
qualquer exceção.
Qual é a diferença entre uma especificação throw C++ e uma classe throws Java?
Como se pode desativar uma exceção Java?
Qual é o propósito da cláusula Java finally?
Em livros didáticos sobre as linguagens de programação PL/I e Ada, pesquise os
conjuntos respectivos de exceções incorporadas. Faça uma avaliação comparativa das
duas, considerando sua inteireza como sua flexibilidade.
Em linguagens sem facilidades de manipulação de exceções, é comum que a maioria
dos subprogramas inclua um parâmetro “error”, que pode ser fixado em algum valor
que representa “OK” ou algum outro valor que representa “erro de procedimento”.
Quais vantagens uma facilidade de manipulação de exceções linguísticas como a Ada
tem sobre esse método?
Compare as facilidades de manipulação de exceções do C++ com as da Java. Qual
projeto, em sua opinião, é o mais flexível? Qual deles possibilita escrever programas
mais confiáveis?
SEBESTA, Robert W. Conceitos de Linguagens de Programação. 4ed. Porto Alegre:
Bookman, 2000. 624 pág.
Download