Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sobre um posto de gasolina: O arquivo de estoque pode ser gravado de forma inconsistente. Se um caixa já tiver executado o passo 1 e 2 e ainda não tiver executado o passo 3 e outro caixa executar o passo 1, esse segundo caixa irá fazer uma leitura do arquivo de estoque desatualizado (desconsiderando o caixa 1). Dessa forma, quando o segundo caixa fizer a gravação, a operação realizada pelo primeiro caixa terá sido ignorada. Existem diferentes formas de implementar a concorrência dentro de uma aplicação. Quais as diferenças entre estas três implementações (processos independentes, subprocessos e threads)? Nos processos independentes não existe vínculo do processo criado com seu criador. Os subprocessos são criados dentro de uma estrutura hierárquica, conhecida como processo pai e processo filho, existindo assim uma dependência. Os threads possuem seu próprio contexto de hardware, porém podem compartilhar o contexto de software e o espaço de endereçamento. Todas estão corretas Arquivos têm como características: Persistência, Compartilhamento e Estrutura. Persistência: arquivos são armazenados em discos e não desaparecem ao término da sessão. Compartilhamento: arquivos podem ser compartilhados em processos diferentes. Estrutura: Possuem uma organização interna em função do tipo de informação que armazena. Operações básicas: Criação, Gravação, Leitura e Exclusão. Criação: operação de escrita em disco com a criação do arquivo. Gravação: operação de escrita em disco dos dados do arquivo. Leitura: operação responsável pelo leitura dos dados no disco. Exclusão: operação responsável pela retirada dos dados no disco. Exemplos de atributos: nome, tipo, localização, tamanho, proteção, usuário e data e hora. Haverá um problema de sincronização entre as threads. Uma das soluções para este problema seria executar criar threads apenas para instruções que atribuem valores as variáveis “A” e “C”. A atribuição de valores às variáveis “B”, “C” e “X” devem ficar fora dos threads. Em ambientes monothread, o processo é ao mesmo tempo a unidade de alocação de recursos e a unidade de escalonamento. Já em ambientes multithread, a unidade de alocação de recursos é o processo e o thread a unidade de escalonamento.
Compartilhar