610 likes | 708 Views
Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin. Sumário 1 – Resumo Aula 1 2 – Processos e Threads. Resumo Aula 1. 1 – O que é um SO. 2 – Histórico SOs. Tipos de SO 3 – Revisão sobre Hardware de Computadores 4 – Conceitos sobre SO. 5 – Chamadas ao sistema.
E N D
Disciplina: Sistema OperacionalProfessor: Luciano Ricardi Scorsin
Sumário1 – Resumo Aula 1 2 – Processos e Threads
Resumo Aula 1 1 – O que é um SO. 2 – Histórico SOs. Tipos de SO 3 – Revisão sobre Hardware de Computadores 4 – Conceitos sobre SO. 5 – Chamadas ao sistema. 6 – Estruturas dos SOs.
Resumo Aula 2 1 – Processos 2 – Threads 3 – Comunicação Interprocessos 4 – Problemas Clássicos de IPC 5 – Escalonamento
Resumo Aula 2 Processos
Processos e Threads Processo Judicial:Processo, em direito, é um modo de proceder, uma seqüência de atos que visam produzir um resultado e, no contexto jurídico, estão previstos em leis ou outros dispositivos vigentes. Etimologicamente, tem o sentido de marcha para frente, avanço, progresso, desenvolvimento.
Processos e Threads Processo Organizacional:Sequencia de Passos para obter um resultado.
Processos e Threads Processo Computacional:Processo é um programa que permanece em execução, utilizando recursos do computador (CPU, Memória, E/S), executando tarefas, até que sua meta seja atingida.
Processos e Threads Diferença entre Processo e Programa Programa:Algoritmo criado para desempenhar alguma tarefa específica. Analogia: Receita de Bolo Processo:Programa em execução. Utilizando o algoritmo criado o processo aloca recursos computacionais para atingir o objetivo do algoritmo.Analogia: Confeiteiro usando todos os recursos de uma cozinha e ingredientes para criar o bolo.
Processos e Threads Exemplo Processo em Execução Ok!! Já anotei todos os ingredientes! Agora mãos à obra! Analogia: Carregando dados na memória.
Processos e Threads Exemplo Processo em Execução Hmmm no meio da receita minha filha chegou reclamando que foi picada por uma abelha. Anotei onde parei e vou ajudá-la! Analogia: Processo registra na memória onde parou.
Processos e Threads Exemplo Processo em Execução Ok... Misturando ovos, acucar e batendo.... Analogia: Processo em execução.
Processos e Threads Exemplo Processo em Execução Ops!!! Picada de abelha na minha fihinha!! Bem, tive que parar de fazer o bolo para ajudar minha filha!! Ok! Filhinha tratada! Vamos voltar a fazer o bolo? Analogia: Alternancia de processos.
Processos e Threads Exemplo Processo em Execução Onde eu estava mesmo? Ah!! Ainda bem que anotei onde eu estava! Posso continuar de onde parei! Vou finalizar este bolo lindo! Analogia: Retornar o processo de onde parou a partir dos dados registrados na memória.
Processos e Threads Criação de Processos Quatro eventos principais:1 – Início do sistema2 – Execução de chamada fork() a partir de processo em execução.3 – Requisição do usuário para criação de processo.4 – Início de um job em lote.
Processos e Threads Término de Processos Quatro eventos principais:1 – Saída normal (voluntária) Ex: exit()2 – Saída por erro (voluntária) Ex: Falta argumentos3 – Erro fatal (involuntário) Ex: Div/zero4 – Cancelamento por outro processo (involuntário) Ex: Kill.
Processos e Threads Hierarquia de Processos • Reprodução Assexuada- Matou o pai, morrem os filhos.- Diferente entre Windows e Unix.
Processos e Threads Estado dos Processos Tres estados principais:1 – Em execução (realmente usando a CPU naquele instante) 2 – Pronto (executável, temporariamente parado para dar lugar a outro processo)3 – Bloqueado (incapaz de executar enquanto um evento externo não ocorrer)
Processos e Threads Transição dos Estados Em Execução 2 1 3 Pronto Bloqueado 4 Transições1 – O processo bloqueia aguardando alguma entrada2 – O escalonador seleciona outro processo3 – O escalonador seleciona este processo4 – A entrada torna-se disponível
Processos e Threads O escalonador
Processos e Threads O escalonador Processos
Processos e Threads A tabela de processos
Processos e Threads A Tabela de Processos Quando parei de fazer o bolo para atender a minha filha, anotei tudo o que fiz para poder prosseguir a partir de onde parei. Parei Aqui!!
Resumo Aula 2 Threads
Processos e Threads Conceitos de Threads 1 – Processos leves. 2 – Linha de execução. Processo Thread
Processos e Threads MultiThread Processo Threads
Processos e Threads Ex: Processamento de um Processo MT Audio Imagem Posição
Processos e Threads Ex: Processamento de um Processo MT
Processos e Threads Conceitos de Threads Threads compartilham o mesmo espaço de endereçamento e outros recursos alocados pelos processos.
Processos e Threads Implementação de Threads Threads em modo usuário Threads em modo núcleo
Processos e Threads Threads em nível usuário Processo Processo Thread Thread Espaço do Usuário Espaço do Núcleo Tabela de Processos Sistema Supervisor Tabela de Threads Tabela de Processos Tabela de Threads
Resumo Aula 2 Comunicação Interprocessos IPC
Processos e Threads Comunicação Interprocessos 1 – Como um processo passa informação para outro. 2 – Garantir que dois ou mais processos não invadam uns aos outros. (Ex: Disputar o ultimo MB da memória) 3 – Sequencia adequada quando existirem dependencias. Ex: B esperar resultados de A para imprimir
Processos e Threads Condições de Disputa Diretorio de Spool Processo A out = 4 in = 7 Processo B
Processos e Threads Condições de Disputa Diretorio de Spool Processo A out = 4 in = 7 Processo B
Processos e Threads Condições de Disputa Diretorio de Spool Processo A out = 4 in = 8 Processo B
Processos e Threads Regiões Críticas REGIAO CRITICA Diretorio de Spool Processo A out = 4 in = 8 Processo B
Processos e Threads Regiões Críticas – Condições para Solução 1 – Nunca dois processos podem estar simultaneamente em suas regiões críticas. 2 – Nada pode ser afirmado sobre a velocidade ou sobre o número de CPUs. 3 – Nenhum processo executado fora de sua região crítica pode bloquear outros processos. 4 – Nenhum processo deve esperar eternamente para entrar em sua região crítica.
Processos e Threads Regiões Críticas – Exclusão Mútua com Espera Ociosa 1 – Desabilitando Interrupções 2 – Variáveis de impedimento (Lock) 3 – Alternancia obrigatória 4 – Solução de Peterson 5 – A instrução TSL TODAS consomem tempo de CPU
Processos e Threads Regiões Críticas – Dormir e Acordar Sleep e Wakeup Problema do produtor-consumidor Dados Produtor REGIAO CRITICA GRAVA count = 0 Consumidor LE
Processos e Threads Regiões Críticas – Semáforos
Processos e Threads Regiões Críticas – Semáforos S = 2
Processos e Threads Regiões Críticas – Semáforos S = 1 X
Processos e Threads Regiões Críticas – Semáforos S = 0 X X
Processos e Threads Regiões Críticas – Semáforos S = 1 X
Processos e Threads Regiões Críticas – Outros 1 – Monitores 2 – Troca de Mensagens 3 – Barreiras 4 – Mutex
Processos e Threads Problemas Clássicos de IPC 1 – O problema do Jantar dos Filósofos 2 – O problema dos Leitores e Escritores 3 – O problema do Barbeiro Sonolento
Processos e Threads O problema do Jantar dos Filósofos • Alternam entre comer e pensar. • O espaguete está tao liso que precisam de 2 garfos. • Analogia: Alocacao de recursos de E/S.
Processos e Threads O problema dos Leitores e Escritores • Escritores precisam aguardar leitores sairem. • Podem formar filas de leitores antes do Escritor. • Analogia: Banco de Dados Base de Dados
Processos e Threads O problema dos Leitores e Escritores Base de Dados