Proteção de variáveis globais Flashcards

1
Q

Qual o grande problema com as variáveis globais em threads?

A

É que pode ocorrer race condition.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são as necessidades de uma programação concorrente para ter uma consistência de dados?

A

Ter uma exclusão mútua

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que é exclusao mútua? Como pode ser feita e no que ela ajuda?

A
Exclusão mútua é permitir o acesso exclusivo de um processo à uma varíavel global. Ela ajuda nos problemas de selção crítica
Ela pode ser feita dos seguintes modos:
Desabilitar as interrupções
Variáveis especiais do tipo lock
Alternância de execução
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Propriedades seção crítica regras

A

Regra 1 – Exclusão mútua
– Dois ou mais processos não podem estar simultaneamente em uma seção crítica
• Regra 2 – Progressão
– Nenhum processo fora da seção crítica pode bloquear a execução de um outro processo
• Regra 3 – Espera limitada
– Nenhum processo deve esperar infinitamente para entrar em uma seção crítica
• Regra 4 - Processamento
– Não fazer considerações sobre o número de processadores, nem de suas velocidades relativas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ao obter exclusão mútua podemos desabilitar interrupções, qual o problema disso?

A

Desabilita as interrupções de todo o sistema operacional, não é uma boa opção
Isso só funciona bem em sistemas pequenos e dedicados

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que é MUTEX?

A

É muito utilizado para resolver problemas de seção crítica.
Tem uma variável do tipo mutex que recebe Lock e Unlock
- Ao acessar a seção critica ele ativa o Lock
- Não deseja utiliza mais a seção crítica então dá o Unlock
O bloqueio e desbloqueio é feito pelo mesmo processo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quais primitivas são necessárias no MUTEX

A

Lock e Unlock

Sleep e WakeUp (Sinalização)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que é Semaforo?

A

O semáforo é composto por um inteiro e uma fila de processos
Somente duas operaçoes são permitidas P (decrementa o valor do semáforo. Se valor zero, o processo é posto para dormir) e V ( Se o semáforo estiver com o valor zero e existir algum processo adormecido, um processo será acordado. Caso contrário, o valor do semáforo é incrementado)

Primitiva P e V são realizadas por diversos processos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Semáforo X Mutex

A

Semáforo orgraniza os processos, tem uma estrutura (fila).
Mutex deixa mais livre
MUTEX faz o bloqueio e desbloqueio de um mesmo processo
Semáforo coloca os processos em uma estrutura e gerencia esse estrutura, a primitiva P e V podem ser realizadas por diferentes processos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Problema de semáforo

A

Serialização de processos.

Tu determina uma ordem pra ele, não tem dinamicidade

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que é deadlock?

A

É quando dois ou mais processos ficam bloqueados, ficam a espera de um evento que nunca vai acontecer
Acontece muitas vezes quando há solução errada para o problema de seção crítica

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Condições para ocorrer deadlock

A

Quatro condições devem ser satisfeitas simultaneamente:
– Exclusão mútua:
• Todo recurso ou está disponível ou está atribuído a um único
processo
– Segura/espera:
• Os processos que detém um recurso podem solicitar novos recursos
– Recurso não-preemptivo:
• Um recurso concedido não pode ser retirado de um processo por
outro
– Espera circular:
• Existência de um ciclo de 2 ou mais processos cada um esperando
por um recurso já adquirido (em uso) pelo próximo processo no ciclo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

O que é seção crítica? Qual o problema com ela?

A

É a parte do código que os processos acessam uma variável global.
Garantir que quando um processo está executando a seção crítica, nenhum outro entre nela

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

CAS e TSL do mutex

A

CAS: Compare and Store
Copia o valor de uma posição de memória para um registrador interno e escreve nela o valor 1

TSL: Test and Set Lock
Lê o valor de uma posição de memória e coloca nela um valor não zero

How well did you know this?
1
Not at all
2
3
4
5
Perfectly