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

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

Multiprogramação Deixar uma máquina Linux rodando.

Apresentações semelhantes


Apresentação em tema: "Multiprogramação Deixar uma máquina Linux rodando."— Transcrição da apresentação:

1 Multiprogramação Deixar uma máquina Linux rodando

2 Multiprogramação Técnica que possibilita a melhor utilização do hardware e nos dá a visão de simultaneidade na execução dos processos da máquina

3 Torna eficiente o aproveitamento dos recursos do computador
MULTIPROGRAMAÇÃO Torna eficiente o aproveitamento dos recursos do computador Execução "simultânea" de processos Diversos programas são mantidos na memória

4 TERMINAL - TOP Utilitário que apresenta dados sobre os processos em execução

5 GUI – Gerenciador de Tarefas (Windows)
Utilitário que apresenta dados sobre os processos em execução

6 CONCEITOS NECESSÁRIOS

7 Proteção entre processos
MULTIPROGRAMAÇÃO Processo Interrupção Proteção entre processos

8 1. PROCESSO

9 Entidade dinâmica que altera seu estado a medida que sua execução avança

10 Processo e Programa Processo != Programa

11 Programa é uma entidade estática que trata-se apenas de um conjunto de instruções

12 PROCESSO - CONCEITO (1/2)
Abstração que representa um programa em execução Diferentes instâncias Um programa pode ter várias instâncias (processos) em execução 1 Programa pode ter várias execuções (processos) com valores de execução diferentes

13 PROCESSO - CONCEITO (2/2)
Forma pela qual o Sistema Operacional "enxerga" um programa e possibilita sua execução Processos executam: Programas de usuários Programas do S.O. (deamons)

14 Experimente no TiaoMacale3 ou outro Linux
# Lista processos ps aux # Parâmetro -e apresenta processos sem vínculo com o terminal - Deamons ps -e

15 Experimente no TiaoMacale3 ou outro Linux
O utilitário top também pode ser utilizado para visualizar os processos em execução # Lista processos em execução top # Filtrando as colunas a serem apresentadas no Linux basta pressionar a tecla “F”, para setar o filtro de exibição. Teste!

16 PROCESSOS Linux Em execução

17 Atividade no TiaoMacale3
Analise o manual, faça testes, e identifique a diferença entre o PR e NI do top. # Inicializando o processo com valor de prioridade # O valor do nice deve estar entre -20 e 19 nice -n <prioridade> <nome do processo>

18 Atividade no TiaoMacale3
Eventualmente tem-se alguns processos com prioridade rt. Investigue e identifique o que significa.

19 PROCESSO - CICLO DE VIDA

20 Ciclo de vida Criação Momento da execução ("click") Execução
Todo o ciclo de execução do processo Término Finalização do processo

21 Experimente no TiaoMacale3
Procure no manual do utilitário top os parâmetros corretos e liste apenas o nome do processo, seu id e seu estado. # Listar manual man top

22 Chamada de sistema - fork
CRIAÇÃO Momento da execução Chamada de sistema - fork Pode estar associada a uma sessão de trabalho Ex: login:usuario+senha→shell (processo) Identificado por um número único (PID)

23 Experimente no TiaoMacale3
Procure no manual do utilitário top os parâmetros corretos e liste apenas o nome do processo, seu id, seu estado e quem é seu processo pai. # Listar manual man top

24 Experimente no TiaoMacale3
Execute o top e procure as informações de quem são os pais dos processos em execução. Caso não encontre, procure no 'F' por alternativas.

25 TERMINAL - TOP Linux PPID representa o Parent Process ID Note que o PID 1 é o processo init, o processo "pai de todos"

26 Vamos testar mais uns parâmetros para o utilitário top

27 Experimente no TiaoMacale3 e identifique as funcionalidades
top -d 1 top -d 5 top -n 2 top -n 7 top -u root

28 Experimente no TiaoMacale3
# Define o tempo de atualização top -d 1 top -d 5 # Limite o número de atualizações top -n 2 top -n 7 # Lista os processos de um usuário top -u root

29 Ciclo de E/S (entrada e saída) Espera por conclusão de algum evento
EXECUÇÃO (1/3) 2 ciclos básicos Ciclo de processador Espera por CPU Ciclo de E/S (entrada e saída) Espera por conclusão de algum evento

30 CPU → E/S: Chamada de sistema E/S → Ocorrência de evento (interrupção)
EXECUÇÃO (2/3) O primeiro ciclo é sempre de processador (CPU) Trocas de ciclos CPU → E/S: Chamada de sistema E/S → Ocorrência de evento (interrupção)

31 Ciclo de CPU > ciclo de E/S I/O bound
EXECUÇÃO (3/3) Classificação de processos CPU bound Ciclo de CPU > ciclo de E/S I/O bound Ciclo de E/S > ciclo de CPU

32 Final de instruções (normal) Por erro
TÉRMINO Final de instruções (normal) Por erro Proteção, aritmético, E/S, tentativa de execução de instrução inválida, falta de memória, exceder tempo limite Intervenção de outros processos (kill - taskkill) Log off de usuário

33 RELACIONAMENTO ENTRE PROCESSOS

34 RELACIONAMENTO ENTRE PROCESSOS (1/2)
Processos independentes Não se relacionam Grupo de processos Apresentam algum tipo de relacionamento Ex.: Afiliação (Hierarquia) Podem compartilhar recursos

35 RELACIONAMENTO ENTRE PROCESSOS (2/2)
Hierarquia de processos Criador é "pai", criado é "filho" Representação através de uma árvore Evolução dinâmica

36 Discussão! E quando um processo que tem um filho é morto? O que acontece com os filhos?

37 ESTADOS DE UM PROCESSO RC-M

38 Após criado, o processo necessita entrar em ciclo de processador
Estados de um processo Após criado, o processo necessita entrar em ciclo de processador Hipóteses: Processador não está disponível Vários processos sendo criados O que fazer? Criação de uma fila de APTOS

39 Modelo simplificado de dois estados
Fila de processos aptos Processos aguardando processador Escalonador Atribui o processador ao processo da fila Pode prevenir a monopolização do processador

40 TERMINAL - TOP Note a coluna 'S' "S" representa State, e tem como principais estados: R - Executando S - Dormindo Z - Zumbi

41 MODELO DE 5 ESTADOS

42 Executando (Running) Apto (Ready) Bloqueado (Blocked) Criação (New)
Estados de um processo Executando (Running) Apto (Ready) Bloqueado (Blocked) Criação (New) Destruição (Exit)

43 Necessidade de trabalhar com FILAS

44 Suspensão de processos (1/2)
Processador é mais rápido do que operações de E/S Possibilidade de todos os processos estarem bloqueados esperando por E/S Liberar memória ocupada por processos Swap (descarga em disco)

45 Suspensão de processos (2/2)
Pode estar em duas situações Bloqueado com processo em memória Bloqueado com processo em disco Necessidade de novos estados Bloqueado suspenso Apto suspenso

46 Por que suspender um processo?

47 Solicitação do usuário (CTRL + Z) Temporização
Razões para suspender Swapping Solicitação do usuário (CTRL + Z) Temporização

48 MODELO DE 7 ESTADOS

49

50 Vamos conhecer mais alguns utilitários que manipulam processos...

51 Experimentos # ? top& jobs fg 1

52 Experimentos # Executa o top em segundo plano top&
# Verifica processos em segundo plano jobs # Traz para primeiro plano o processo pelo ID # identificado no "jobs" fg 1

53 Experimentos Execute o editor de texto nano, e experimente sair dele com CTRL+C. Refaça o experimento e saia com CTRL+Z. top # ? CTRL+Z CTRL+C

54 Experimentos Execute o editor de texto nano, e experimente sair dele com CTRL+C. Refaça o experimento e saia com CTRL+Z. top # Joga a execução para segundo plano e libera o terminal. Com jobs o processo pode ser resgatado CTRL+Z # Interrompe a execução do processo CTRL+C

55 Experimentos Analise o manual, teste, e identifique a diferença entre o utilitário kill e killall # ? kill ? killall ?

56 Experimentos Analise o manual, teste, e identifique a diferença entre o utilitário kill e killall # Envia um sinal para o processo com o especificado PID Kill -<SIGNAL> <PID> # Envia um sinal para os processos com o nome especificado Killall -<SIGNAL> <PID>

57 Utilize kill -l para visualizar todos os sinais que podem ser enviados para o processo

58 Vamos experimentar alguns sinais
Experimentos Vamos experimentar alguns sinais

59 Experimento Execute o nano em segundo plano e depois envie um sinal de término. Execute o utilitário jobs e verifique se o processo ainda consta. nano& killall -<SIGNAL> <NAME> jobs

60 Qual o motivo do processo ainda estar vivo?
Experimento Execute o nano em segundo plano e depois envie um sinal de término nano& Killall -15 nano ou killall -SIGTERM nano jobs Qual o motivo do processo ainda estar vivo?

61 Tragam o processo para primeiro plano e observem o que acontece
Experimentos Tragam o processo para primeiro plano e observem o que acontece

62 Qual foi a diferença? Quando devo utilizar o -9?
Experimento Repita o experimento, mas agora enviando um sinal de kill (-9) nano& Killall -9 nano ou killall -SIGKILL nano jobs Qual foi a diferença? Quando devo utilizar o -9?

63 Experimento # ? pgrep -u <usuario>
Pkill <signal> -u <usuario>

64 Experimento # Lista o PID de todos os processos do usuário especificado pgrep -u <usuario> # Envia um sinal para todos os processos do usuário especificado. Experimente o -9 no user root pkill <signal> -u <usuario>

65 Atividade! Investigar utilitários básicos e utilitários para gerenciamento de arquivos

66 Preencher


Carregar ppt "Multiprogramação Deixar uma máquina Linux rodando."

Apresentações semelhantes


Anúncios Google