A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin

Apresentações semelhantes


Apresentação em tema: "Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin"— Transcrição da apresentação:

1 Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin

2 Sumário 1 – Resumo Aula 1 2 – Processos e Threads

3 2 – Histórico SOs. Tipos de SO
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.

4 3 – Comunicação Interprocessos 4 – Problemas Clássicos de IPC
Resumo Aula 2 1 – Processos 2 – Threads 3 – Comunicação Interprocessos 4 – Problemas Clássicos de IPC 5 – Escalonamento

5 Resumo Aula 2 Processos

6 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.

7 Processo Organizacional: Sequencia de Passos para obter um resultado.
Processos e Threads Processo Organizacional: Sequencia de Passos para obter um resultado.

8 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.

9 Diferença entre Processo e Programa
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.

10 Exemplo Processo em Execução
Processos e Threads Exemplo Processo em Execução Ok!! Já anotei todos os ingredientes!  Agora mãos à obra! Analogia: Carregando dados na memória.

11 Exemplo Processo em Execução
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.

12 Exemplo Processo em Execução
Processos e Threads Exemplo Processo em Execução Ok... Misturando ovos, acucar e batendo.... Analogia: Processo em execução.

13 Exemplo 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.

14 Exemplo Processo em Execução
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.

15 Processos e Threads Criação de Processos Quatro eventos principais: 1 – Início do sistema 2 – 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.

16 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 argumentos 3 – Erro fatal (involuntário) Ex: Div/zero 4 – Cancelamento por outro processo (involuntário) Ex: Kill.

17 Hierarquia de Processos
Processos e Threads Hierarquia de Processos Reprodução Assexuada - Matou o pai, morrem os filhos. - Diferente entre Windows e Unix.

18 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)

19 Processos e Threads Transição dos Estados Em Execução 1 2 3 Bloqueado Pronto 4 Transições 1 – O processo bloqueia aguardando alguma entrada 2 – O escalonador seleciona outro processo 3 – O escalonador seleciona este processo 4 – A entrada torna-se disponível

20 Processos e Threads O escalonador

21 Processos e Threads O escalonador Processos 1 ... N-2 N-1 Escalonador

22 A tabela de processos Processos e Threads Gerenciamento de Processos
Gerenciamento de Memória Gerenciamento de Arquivos Registradores Ponteiro para o segmento de código Diretório-Raiz Contador de Programa Ponteiro para o segmento de dados Diretório de Trabalho Palavra de estado do programa Ponteiro para o segmento de pilha Descritores de arquivos Prioridade Identificador (ID) do Usuário Parâmetros de Escalonamento Identificador (ID) do grupo Processo Pai

23 A Tabela de Processos Processos e Threads Parei Aqui!!
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!!

24 Resumo Aula 2 Threads

25 Conceitos de Threads 1 – Processos leves. 2 – Linha de execução.
Processos e Threads Conceitos de Threads 1 – Processos leves. 2 – Linha de execução. Processo Thread

26 Processos e Threads MultiThread Processo Threads

27 Ex: Processamento de um Processo MT
Processos e Threads Ex: Processamento de um Processo MT Audio Imagem Posição

28 Ex: Processamento de um Processo MT
Processos e Threads Ex: Processamento de um Processo MT

29 Processos e Threads Conceitos de Threads Threads compartilham o mesmo espaço de endereçamento e outros recursos alocados pelos processos.

30 Implementação de Threads
Processos e Threads Implementação de Threads Threads em modo usuário Threads em modo núcleo

31 Threads em nível usuário
Processos e Threads Threads em nível usuário Processo Thread Processo Thread Núcleo Núcleo Espaço do Usuário Espaço do Núcleo Tabela de Processos Sistema Supervisor Tabela de Threads Tabela de Threads Tabela de Processos

32 Comunicação Interprocessos
Resumo Aula 2 Comunicação Interprocessos IPC

33 Comunicação Interprocessos
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

34 Condições de Disputa Processos e Threads ... 4 Abc 5 Prog.c 6 Prog.n 7
Diretorio de Spool Processo A out = 4 ... 4 Abc 5 Prog.c 6 Prog.n 7 in = 7 Processo B

35 Condições de Disputa Processos e Threads ... 4 Abc 5 Prog.c 6 Prog.n 7
Diretorio de Spool Processo A out = 4 ... 4 Abc 5 Prog.c 6 Prog.n 7 Processo A in = 7 Processo B

36 Condições de Disputa Processos e Threads ... 4 Abc 5 Prog.c 6 Prog.n 7
Diretorio de Spool Processo A out = 4 ... 4 Abc 5 Prog.c 6 Prog.n 7 Processo B in = 8 Processo B

37 Regiões Críticas Processos e Threads ... 4 Abc 5 Prog.c 6 Prog.n 7
Diretorio de Spool REGIAO CRITICA Processo A out = 4 ... 4 Abc 5 Prog.c 6 Prog.n 7 Processo B in = 8 Processo B

38 Regiões Críticas – Condições para Solução
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.

39 Regiões Críticas – Exclusão Mútua com Espera Ociosa
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

40 Regiões Críticas – Dormir e Acordar
Processos e Threads Regiões Críticas – Dormir e Acordar Sleep e Wakeup Problema do produtor-consumidor Dados Produtor REGIAO CRITICA GRAVA 1 2 3 4 5 count = 0 Consumidor LE

41 Regiões Críticas – Semáforos
Processos e Threads Regiões Críticas – Semáforos

42 Regiões Críticas – Semáforos
Processos e Threads Regiões Críticas – Semáforos S = 2

43 Processos e Threads Regiões Críticas – Semáforos S = 1 X

44 Processos e Threads Regiões Críticas – Semáforos S = 0 X X

45 Processos e Threads Regiões Críticas – Semáforos S = 1 X

46 Regiões Críticas – Outros
Processos e Threads Regiões Críticas – Outros 1 – Monitores 2 – Troca de Mensagens 3 – Barreiras 4 – Mutex

47 Problemas Clássicos de IPC
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

48 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.

49 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

50 Processos e Threads O problema dos Leitores e Escritores Base de Dados

51 Processos e Threads O problema do Barbeiro Sonolento
Problemas aumentam conforme aumentam o numero de barbeiros. Clientes chegando simultaneamente. Analogia: Servidor Web.

52 Resumo Aula 2 Escalonamento

53 Processos e Threads O escalonador Processos 1 ... N-2 N-1 Escalonador

54 Escalonador Processos e Threads Em PCS... importante...
...em servidores... Muito mais importante!

55 1 – Quando o processo é criado 2 – Quanto o processo termina
Processos e Threads Quando escalonar 1 – Quando o processo é criado 2 – Quanto o processo termina 3 – Quando o processo bloqueia E/S 4 – Quando ocorre interrupcão de E/S

56 Tres tipos de sistemas: 1 – Lote 2 – Interativo 3 – Tempo Real
Processos e Threads Categorias 1 – Não preemptivo 2 – Preemptivo Tres tipos de sistemas: 1 – Lote 2 – Interativo 3 – Tempo Real

57 Algoritmos Clássicos de Escalonamento em Sistemas de Lote
Processos e Threads Algoritmos Clássicos de Escalonamento em Sistemas de Lote 1 – Primeiro a Chegar, Primeiro a Ser Servido (FCFS) 2 – Job mais curto primeiro (SJF) 3 – Proximo de menor tempo restante 4 – Escalonamento em tres níveis (Escalonador de admissão, CPU e memória)

58 SJF FCFS P2 = 1 P1 = 10 P3 = 3 P2 = 11 P4 = 6 P3 = 13 P5 = 11 P4 = 16
Considerando que os processos P1, P2, P3, P4 e P5 tenham tempo de burst de CPU, em milissegundos, iguais a 10, 1, 2, 3 e 5, respectivamente, se os processos chegarem na CPU simultaneamente no instante 0, o tempo de espera médio dos cinco processos, se eles forem escalonados para a CPU por meio de um algoritmo de escalonamento do tipo SJF (shortest job first), será maior do que se eles forem escalonados por um algoritm o FCFS (first come, first served), considerando a ordem de chegada P1, P2, P3, P4 e P5, e que o processo P1 tenha chegado no instante 0. SJF P2 = 1 P3 = 3 P4 = 6 P5 = 11 P1 = 21 TM = 8,4 FCFS P1 = 10 P2 = 11 P3 = 13 P4 = 16 P5 = 21 TM = 14,2

59 Algoritmos Clássicos de Escalonamento em Sistemas Interativos
Processos e Threads Algoritmos Clássicos de Escalonamento em Sistemas Interativos 1 – Escalonamento por alternancia circular (round-robin) 2 – Escalonamento por prioridades 3 – Filas múltiplas 4 – Proximo processo mais curto 5 – Escalonamento garantido (1/n) 6 – Escalonamento por loteria 7 – Escalonamento por fração justa (AEBECEDE, ABECDE)

60 Escalonamento de Threads
Processos e Threads Escalonamento de Threads Processo Thread Processo Thread Núcleo Núcleo Espaço do Usuário Espaço do Núcleo Tabela de Processos Sistema Supervisor (Escalonador) Tabela de Threads Tabela de Threads Tabela de Processos

61 Duvidas? Proxima Aula: DeadLocks e Gerenciamento de Memória


Carregar ppt "Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin"

Apresentações semelhantes


Anúncios Google