O documento discute técnicas de sincronização entre processos e threads, incluindo regiões críticas, exclusão mútua, semáforos, monitores e o problema dos leitores e escritores. Aborda modelos de processos e threads, escalonamento, condições de corrida e como evitá-las através de mecanismos de sincronização.
4. Criação de processos
Eventos que causam a criação de processos:
• Inicialização de sistema.
• Execução de uma chamada de sistema de criação de
processo por um processo em execução.
• Requisição do usuário para criar um novo processo.
• Inicialização de uma tarefa em lotes.
5. Término de processos
Eventos que causam o término de um processo:
• Saída normal (voluntária).
• Saída por erro (voluntária).
• Erro fatal (involuntário).
• Cancelamento por outro processo (involuntário).
26. Demais problemas a ser considerado
• Bibliotecas não reentrantes
• Soluções
• Reescrever a biblioteca
• Utilizar bloqueadores (locker)
• Gerenciamento de pilhas
33. Escalonamento em sistemas interativos
• Escalonamento por chaveamento
circular.
• Escalonamento por prioridades.
• Filas mútiplas.
• Próximo processo mais curto.
• Escalonamento garantido.
• Escalonamento por loteria.
• Escalonamento por fração justa.
38. Escalonamento Windows Server
1. Conceitos básicos:
• Trabalho
Relaciona as cotas e limites de recursos como:
o Número máximo de processos
o Tempo total de CPU disponível para cada processo
o Quantidade máxima de memória
Impõe restrições aos processos, como:
o Não permitir que o processo obtenha privilégio de administrador, mesmo com a senha
correta
• Processo
Recipiente de recursos
Contém um ID único
Lista de manipuladores
Ficha de acesso
Possui uma ou mais threads
Não possuem estados
39. Escalonamento Windows Server
• Thread
Base para o sistema de escalonamento
Possuem estados
Mais threads podem ser criadas dinamicamente através de
chamadas ao sistema
Possui um ID, no mesmo espaço de IDs do processo
Possui duas pilhas:
o Modo usuário
o Modo núcleo
Pode ter uma ficha de acesso que sobreporá a ficha de seu
processo
Uma thread pode transferir sua ficha de acesso a outras threads
servidoras
Além dos threads de usuário, existem as threads daemons que
executam somente no espaço de núcleo e não possuem processo
pai
40. Escalonamento Windows Server
1. Filamentos
• Também conhecida como thread de usuário (mundo Unix)
• Processos leves
• Escalonamento no espaço de usuário, pelo programa que o criou
42. Escalonamento Windows Server
1. Escalonamento baseado em prioridades
2. Todo processo, ao ser criado, recebe uma prioridade base
• Tempo real
• Alta
• Acima do normal
• Normal
• Abaixo do normal
• Ociosa
3. Toda thread por sua vez também possui uma prioridade base ao ser criada
• Tempo crítico
• Mais alta
• Acima do normal
• Normal
• Abaixo do normal
• Mais baixa
• ociosa
44. Escalonamento Windows Server
1. Prioridades de 16 a 31 pertencem a processos do sistema
2. As prioridades de processos do sistema são chamadas de tempo
real, mas não há garantia de atendimento em um tempo especificado
3. Prioridade de 1 a 15 pertencem a processos de usuário
4. Prioridade 0 é dada ao thread ocioso, responsável por zerar as
páginas de memória para o gerenciador de memória
5. Thread ocioso executa apenas quando o sistema está ocioso
47. Escalonamento Windows Server
1. O escalonamento ocorre quando:
• O thread bloqueia em um semáforo, mutex, evento E/S...
• O thread sinaliza um objeto (up no semáforo)
• O quantum do thread em execução expira
• Uma operação de E/S termina
• Uma espera temporizada expira
2. Regras do escalonamento:
• Nenhuma mudança de prioridade para threads do sistema
é permitida
• Uma thread de usuário nunca será promovida a uma
48. Escalonamento Windows Server
• A prioridade de um thread de usuário aumenta quando:
Operação de E/S termina
o 1 unidade para disco
o 2 unidades para porta serial
o 6 unidades para o teclado
o 8 unidades para a placa de som
Ao sair de um semáforo, mutex ou outro evento
o 2 unidades para processos de primeiro plano
o 1 unidade para processos de segundo plano
Um processo de GUI desperta
o 2 unidades para processos de primeiro plano
o 1 unidade para processos de segundo plano
48
49. Escalonamento Windows Server
• A prioridade de um thread de usuário diminui quando:
Quando um thread ocupa todo o seu quantum
• Promoções emergenciais ocorrem quando:
Uma thread fica muito tempo sem executar (promovido para
prioridade 15)
Depois de 2 quantuns, essa prioridade é retirada
abruptamente, voltando para a prioridade original
• Os quantum adotados são:
Windows Vista, XP, 2000 professional = 20 ms
Windows 2003 server monoprocessado = 120 ms
Windows 2003 server multiprocessado = quantum depende da
frequência do clock
53. Regiões críticas
Condições necessárias para evitar condições de corridas:
• Dois processos não podem estar simultaneamente dentro de suas regiões
críticas.
• Nada pode ser afirmado sobre a velocidade ou sobre o número de CPUs.
• Nenhum processo sendo executado fora de sua região crítica pode bloquear
outros processos.
• Nenhum processo deve esperar eternamente para entrar em sua região
crítica.
55. Exclusão mútua com espera ociosa
Propostas para obtenção de exclusão mútua:
• Desabilitando interrupções.
• Variáveis do tipo trava.
• Chaveamento obrigatório.
• Solução de Peterson.
• A instrução TSL.