TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Programação Concorrente

Monografias: Programação Concorrente. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  11/1/2015  •  1.338 Palavras (6 Páginas)  •  910 Visualizações

Página 1 de 6

Respostas

Problema 1: Quais as principais razões (motivações) para se usar programação concorrente?

Melhorar o desempenho das aplicações seriais, aproveitar hardware com múltiplos processadores, atender a vários usuários simultaneamente, aumentar a disponibilidade de serviço para o usuário, implementar programas paralelos complexos.

Problema 2: Quais os benefícios que programas concorrentes oferecem sobre programas seqüenciais?

Programas concorrentes são mais eficientes, pois executam processos concorrentemente.

Problema 3: Quais são os estados de um processo? Explique cada um deles.

Executável, pronto para executar; Executando, rodando(usando CPU); Bloqueado, esperando informações para continuar; Suspenso, escalonado para outro processo.

Problema 4: Quais as diferenças entre um processo e um thread?

Os threads são mais leves de serem criadas, a troca de contexto é mais suave e facilita o compartilhamento de memória. Threads são partes do processo.

Problema 5: Quais as principais propriedades de programação concorrente?

Segurança (Safety): o programa nunca entra em um estado errado; Vivacidade(liveness): em algum momento o programa vai para outro estado; Correção parcial: se o programa terminar, o resultado está correto. Término: o programa termina; Ausência de deadlock: nunca todos os processos estarão bloqueados; Correção total: o programa sempre termina e produz o resultado correto.

Problema 6: Comente a relação entre as propriedades de segurança (security) e vivacidade (liveness) em um sistema concorrente.

Melhor a segurança implica em reduzir a vivacidade e vice versa. Para a segurança é melhor não receber uma informação errada, para a vivacidade é melhor uma informação imprecisa do que nada.

Problema 7: Como você pode verificar manualmente uma propriedade de segurança?

Existem 3 estratégias: imutabilidade: evitar mudanças de estado(statless), sincronização e contenção: garantir acesso exclusivo dinamicamente e estruturalmente.

Problema 8: Quais são as principais falhas de vivacidade? Explique

Contenção: starvation, não executa pq outro thread tomou recurso; Dormência: um thread não pronto falha ao tentar passar para esse estado; Deadlock:thread tentam acessar travas sincronizadas necessárias para continuar seu processamento sem sucesso; Termino prematuro: um thread é parado ou encerrado prematuramente.

Problema 9: Cite cinco serviços oferecidos por um Sistema Operacional.

Gerenciamento de processos, da memória principal, dos sistemas de i/o, sistema de segurança e implementação de sistema de arquivos.

Problema 10: O que são System Calls? Cite alguns exemplos.

São uma interface entre o processo e o sistema operacional. Inicia ou finaliza processo, altera atributos dos processos, sinalização de concorrência, abre ou fecha arquivo, lê relógio do sistema

Problema 11: Descreva as principais arquiteturas de sistemas operacionais.

Nucleo monolítico ou monobloco: o núcleo consiste em um único processo executando numa memória protegida executando as principais funções. Micronucleo ou modelo cliente servidor o núcleo consiste de funções mínimas são executadas no espaço do usuário como serviços, os programas são clientes.

Problema 12: Quais são as ações tomadas pelo kernel do sistema operacional para realizar a troca de contexto entre processos?

Quando CPU troca processo em execução por outro, SO deve salvar o estado (contexto de execução) do processo anterior e carregar nos registradores da máquina o estado (guardado) do próximo processo.

Problema 13: Explique a solução de Peterson.

A solução de Peterson diz que antes do processo entrar em sua região crítica ele chama uma função identificando-se como processo que deseja estar na região crítica. Se estiver liberado, ele entra! Caso contrario, aguarda que outra função permita sua entrada lá.

Problema 14: O que são Semáforos? Mostre um exemplo de acesso a região critica usando semáforo.

Um semáforo é uma variável de sincronização que pode ter valores inteiros não-negativos com duas operações definidas. Uma operação que espera o semáforo ficar positivo e a seguir decrementa-o de 1 e uma operação que incrementa o semáforo de 1.

Problema 15: Mostre uma solução de produtor-consumidor com buffer limitado usando semáforo.

Problema 16: Quais os principais algoritmos de escalonamento? Explique cada um deles. Quais poderão causar 'starvation'?

Problema 17: Qual é a diferença entre simultaneidade e paralelismo?

Um programa simultâneo tem múltiplos fluxos (threads) de controle. Estes fluxos podem ser executados como processos paralelos.

Problema 18: Quais as formas de se implementar o paralelismo de processos? Explique.

Problema 19: Quais as maneiras que processos concorrentes podem se comunicar e sincronizar?

Problema 20: Quais são as três técnicas de sincronização? Explique e dê um exemplo.

Problema 21: Para que serve a Espera Ocupada? Explique seu funcionamento. Exemplifique um exemplo de uso?

Problema 22: Para que serve o semáforo? Explique o seu funcionamento. Qual as vantagens do semáforo comparado com espera ocupada ?

Problema 23: Para que serve o monitor? Explique o seu funcionamento.

Problema 24: Como você pode implementar um semáforo com monitores?

Problema 25: Como você implementa monitores usando semáforos?

Problema 26: Explique as formas de passar mensagem síncrona e assíncrona.

CAP 06

Problema 37: Que tipos de problemas de vivacidade

...

Baixar como (para membros premium)  txt (9.6 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com