Definimos um sistema distribuído como aquele no qual os componentes de hard- ware ou software, localizados em computadores interligados em rede, comunicam-se e coordenam suas ações apenas enviando mensagens entre si. ... Os computadores conectados por meio de uma rede podem estar separados por qual- quer distância.
Como as linhas de execução partilham o espaço de endereçamento a comunicação entre elas é mais rápida. O tempo gasto para troca de linha de execução é menor, em parte por que não há necessidade de troca de espaço de endereçamento.
Os threads possuem vantagens e desvantagens ao dividir um programa em vários processos. Uma das vantagens é que isso facilita o desenvolvimento, visto que torna possível elaborar e criar o programa em módulos, experimentando-os isoladamente no lugar de escrever em um único bloco de código.
Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre Threads de um mesmo processo? Resposta = A vantagem é permitir o compartilhamento de dados entre os threads de maneira mais rápida e eficiente.
Quais os benefícios do uso de threads em ambientes cliente-servidor? ... A arquitetura microkernel utiliza processos para implementar funções relativas ao kernel do sistema operacional, sendo que esses processos são utilizados como servidores quando algum cliente necessita de algum serviço do sistema.
A maior vantagem de implementar threads no espaço do usuário é que elas são escalonadas pelo programador, tendo a grande vantagem de cada processo usar um algoritmo de escalonamento que melhor se adapte a situação, o sistema operacional neste tipo de thread não faz o escalonamento, em geral ele não sabe que elas ...
Threads são implementadas internamente na memória principal através de uma estrutura de dados chamada bloco de controle de thread ( Thread control block - TCB ). O TCB armazena mais algumas informações relacionadas ao thread como prioridade, estado de execução e bits de estado.
Em um ambiente de múltiplos threads (multithread), não é necessário haver vários processos para se implementar aplicações concorrentes. No ambiente multithread, cada processo pode responder a várias solicitações concorrentemente ou mesmo simultaneamente, se houver mais de um processador.
Em um ambiente Monothread, uma aplicação é composta por códigos que são executados sequencialmente, de acordo com repetições, desvios, funções e procedimentos, onde a utilização de concorrência é efetuada através da implementação de processos independentes e subprocessos, caso exista essa necessidade, causando um maior ...
A sincronia de processos permite gerenciar o acesso concorrente a recursos do sistema operacional de forma controlada por parte dos processos, de maneira que um recurso não seja modificado em simultâneo, ou que os processos não fiquem em espera que o recurso seja libertado.
Segundo Machado e Maia (2013), os mecanismos que garantem a comunicação entre processos concorrentes e o acesso a recursos compartilhados são chamados de sincronização. Em sistemas multitarefas, são mecanismos fundamentais para garantir a confiabilidade na execução de aplicações concorrentes.
Em ciência da computação, semáforo é uma variável especial protegida (ou tipo abstrato de dados) que tem como função o controle de acesso a recursos compartilhados (por exemplo, um espaço de armazenamento) num ambiente multitarefa.
O monitor consiste de um conjunto de procedimentos para permitir a manipulação de um recurso compartilhado, uma trava de exclusão mútua, as variáveis associadas ao recurso e uma invariante que define as premissas para evitar disputa de recursos.
Exclusão mútua (também conhecida pelo acrônimo mutex para mutual exclusion, o termo em inglês) é uma técnica usada em programação concorrente para evitar que dois processos ou threads tenham acesso simultaneamente a um recurso compartilhado, acesso esse denominado por seção crítica.
Uma condição de corrida ocorre quando dois threads acessam uma variável compartilhada ao mesmo tempo. O primeiro segmento lê a variável, e o segundo thread lê o mesmo valor da variável.
Em programação concorrente, uma região crítica - também conhecida por seção crítica ou secção crítica - é uma área de código de um algoritmo que acessa um recurso compartilhado que não pode ser acedido concorrentemente por mais de uma linha de execução.
Espera ocupada é um modelo de programação paralela caracterizado por testes repetidos de um condição que impedem o progresso de um processo e que só pode ser alterada por outro processo.
Busy wait = espera ativa ou espera ocupada. Basicamente o que essas soluções fazem é: Quando um processo quer entrar na sua R.C. ele verifica se a entrada é permitida. Se não for, ele espera em um laço (improdutivo) até que o acesso seja liberado.
5º Qual o problema com a solução que desabilita as interrupções para implementar a exclusão mútua? ... R: Deadlock é a situação em que um processo aguarda por um recurso que nunca estará disponível; Normalmente, consequência de compartilhamento de recursos em processos concorrentes onde a exclusão mútua é exigida.
Para que uma solução para o problema da exclusão mútua possa ser considerada correta, entre outras coisas, ela não deve permitir: Que um processo entre várias vezes em sua região crítica. ... Que um processo demore demais dentro de sua região crítica. Que os processos envolvidos tenham variáveis compartilhadas.
Deadlock é a situação em que um processo aguarda por um recurso que nunca estará disponível ou um evento que não ocorrerá. Para que ocorra a situação de deadlock, quatro condições são necessárias simultaneamente: exclusão mútua: cada recurso só pode estar alocado a um único processo em um determinado…
Como as primitivas sleep e wakeup resolvem problemas de acesso concorrente em regiões críticas? As primeiras tentativas de resolver o problema de race condition utilizavam espera ocupada, i.e., os processos ficavam em estado de espera até que fossem habilitados a utilizar uma região crítica.
3. Alternância Estrita: Solução que obriga que a região crítica seja dada a um dos processos por vez, em uma alternância estrita. ... Problemas: requer precisão na alternância entre dois processos e o número de acessos de cada processo deve ser igual ao do outro.
Existem quatro condições para a ocorrência de deadlock:
Uma maneira de evitar deadlocks é impedir que ao menos uma das condições para sua existência ocorra: