Sistemas operacionais online

Disponível somente no TrabalhosFeitos
  • Páginas : 11 (2541 palavras )
  • Download(s) : 0
  • Publicado : 23 de setembro de 2012
Ler documento completo
Amostra do texto
Infra-Estrutura de Software
Processos, Threads, Concorrência e Escalonamento

Tópicos
• • • • • Processos Threads Concorrência Comunicação interprocesso Escalonamento

Criação de Processos
Principais eventos que levam à criação de processos 1. Início do sistema 2. Execução de chamada ao sistema de criação de processos 3. Solicitação do usuário para criar um novo processo 4. Início de umjob em lote

Término de Processos
Condições que levam ao término de processos 1. Saída normal (voluntária) – programado 2. Saída por erro (voluntária) – programado 3. Erro fatal (involuntário) 4. Cancelamento por um outro processo (involuntário)

Estados de Processos

• Possíveis estados de processos
– em execução – bloqueado – pronto

Camadas de Processos

• Camada mais inferior deum SO estruturado por processos
– trata interrupções, escalonamento

• Acima daquela camada estão os processos sequenciais

Escalonamento de processos
• Quando um ou mais processos estão prontos para serem executados, o sistema operacional deve decidir qual deles vai ser executado primeiro • A parte do sistema operacional responsável por essa decisão é chamada escalonador, e o algoritmousado para tal é chamado de algoritmo de escalonamento • Para que um processo não execute tempo demais, praticamente todos os computadores possuem um mecanismo de relógio (clock) que causa uma interrupção, periodicamente

Implementação de Processos (1)

Campos da entrada de uma tabela de processos

Múltiplos processos

Implementação de Processos (2)

Esqueleto do que o nível mais baixodo SO faz quando ocorre uma interrupção

Threads O Modelo de Thread (1)

(a) Três processos, cada um com um thread (b) Um processo com três threads

Threads: Motivação Concorrência
• Problemas:
– Programas que precisam de mais poder computacional – Dificuldade de implementação de CPUs mais rápidas

• Solução:
– Construção de computadores capazes de executar várias tarefassimultaneamente

Problemas com Concorrência
• Não-determinismo
– x = 1 || x = 2
• Qual o valor de “x” após a sua execução?

• Dependência de Velocidade
– [[ f(); x = 1 ]] || [[ g(); x = 2 ]] – O valor final de x depende de qual das funções, f () e g(), terminar primeiro

• Starvation
– Processo de baixa prioridade precisa de um recurso que nunca é fornecido a ele...
Hermano P. Moura

Problemascom Concorrência (cont.)
• Deadlock
• Um sistema de bibliotecas só fornece o “nada consta” para alunos matriculados e o sistema de matricula só matricula os alunos perante a apresentação do “nada consta”

– Definição: dois processos bloqueiam a sua execução pois um precisa de um recurso bloqueado pelo outro processo Conceitos: starvation e deadlock
Hermano P. Moura

O Modelo de Thread (2)compartilhados

privados

O Modelo de Thread (3)

Cada thread tem sua própria pilha

Uso de Thread (1)

Um processador de texto com três threads

Uso de Thread (2)

Um servidor web com múltiplos threads vs um serviço Web com múltiplos servidores (mais adiante – módulo II)

Implementação de Threads de Usuário

Um pacote de threads de usuário

Implementação de Threads deNúcleo

Um pacote de threads gerenciado pelo núcleo

Implementações Híbridas

Multiplexação de threads de usuário sobre threads de núcleo

Criação de um novo thread quando chega uma mensagem

Concorrência
Próxima aula…

Comunicação Interprocesso
Condições de Disputa/Corrida

Dois processos querem ter acesso simultaneamente à memória compartilhada

Regiões Críticas (1)
•Quatro condições necessárias para prover exclusão mútua:
– Nunca dois processos simultaneamente em uma região crítica – Não se pode considerar velocidades ou números de CPUs – Nenhum processo executando fora de sua região crítica pode bloquear outros processos – Nenhum processo deve esperar eternamente para entrar em sua região crítica

Regiões Críticas (2)

Exclusão mútua usando regiões...
tracking img