Curso: Análise e Desenvolvimento de Sistemas · Curso: Análise e Desenvolvimento de Sistemas....

66
Disciplina: Sistemas Operacionais Parte – 2: Sistemas Multiprocessos, Características dos Multiprocessadores,Sistemas de Clusters, Operações básica do Sistema Operacional, Gerencia de processos Prof. Wagner Santos C. de Jesus [email protected] Curso: Análise e Desenvolvimento de Sistemas

Transcript of Curso: Análise e Desenvolvimento de Sistemas · Curso: Análise e Desenvolvimento de Sistemas....

Disciplina: Sistemas Operacionais

Parte – 2: Sistemas Multiprocessos, Características dos Multiprocessadores,Sistemas de Clusters, Operações básica do

Sistema Operacional, Gerencia de processos

Prof. Wagner Santos C. de [email protected]

Curso: Análise e Desenvolvimento de Sistemas

SistemasMultiprocessados

2

Hierarquia dos SO (Multiprocessados)

Sistemas Multiprocessados

Fortemente Acoplados

Fracamente Acoplados

3

Sistemas Multiprocessados

Sistemas conhecidos como Sistemas paralelos ouSistemas fortemente acoplados. Esses sistemaspossuem mais de um processador em perfeitacomunicação.

4

Sistemas Multiprocessados possuem três vantagens principais:

• Maior vazão (Throughput)• Economia de escala• Maior confiabilidade

Maior VazãoCom aumento do número de processadoresespera-se realizar mais trabalho em menostempo.

5https://www.youtube.com/watch?v=9H5bs7-fwnI

Processador-2Processador-1Tarefa

T = N/2

SO

Economia de escala

Os sistemas multiprocessados podem custarmenos do que múltiplos sistemas de processadorúnico equivalente, porque:

• Compartilham periféricos.• Armazenamentos em massa.• Fonte de Alimentação.• Compartilhamento de disco.

6

Maior Confiabilidade

Processadores assumem tarefa de outro, caso hajanecessidade de paralização de algum deles.

Esse conceito é denominado de degradação controlada.

7

Características dos Multiprocessadores

8

Hierarquia dos SO (Multiprocessados)

Sistemas Multiprocessados

Fortemente Acoplados

Sistemas Simétricos

Sistemas Assimétricos

Fracamente Acoplados

Sistemas Operacionais de

Rede

Sistemas Operacionais Distribuídos

9

Características

• Multiprocessamento Simétrico (Symmetric Multi-Processing ).

• Multiprocessamento Assimétrico (Asymmetric Multi-Processing)

10

Multiprocessamento Simétrico (SMP)

11

CPU0Registradores

cache

CPU1Registradores

cache

CPU2Registradores

cache

memória

Ocorre em um sistema computacional com vários processadores com memória compartilhada sob controle de um único sistema operacional.

Arquitetura de Multiprocessamento Simétrico

MultiprocessamentoAssimétrico (AMP)

12

Nos sistemas de multiprocessamento assimétrico, os processadoresnão são tratados igualmente e existe um processador que é o mestree controla o sistema, que fica distribuindo tarefas para cadaprocessador escravo.

CPU0Registradores

CacheMestre

CPU1Registradores

CacheEscravo

CPU2Registradores

CacheEscravo

Tipos de Arquiteturas

• UMA – (Uniforme Memory Access)• NUMA – (Non-Uniforme Memory Access)

13

Memória

CPU0,CPU1

Conceito UMA

O acesso uniforme à memória ( UMA ) é uma arquiteturade memória compartilhada usada em computadoresparalelos. Todos os processadores do modelo UMAcompartilham a memória física uniformemente.

14

CPU-0 CPU-1 CPU-2

Memória

Acesso Uniforme

NUMAVem a ser uma arquitetura para projeto memória principal decomputadores multiprocessados. Nesta arquitetura o acessoà memória executado pelos processadores é não uniforme, oque significa que cada processador terá uma latênciadiferente ao acessar a memória principal e compartilhada docomputador.

15

CPU-0 CPU-1 CPU-2

Memória

A0 A1A2

Acesso não Uniforme

CPU – Múltiplos Núcleos

Multicore – São CPU´s que inluem vários processadoresem um único chip.Ganho de eficiência maior do que em múltiplos chipsisolados.

16

Núcleo0 CPURegistradores

cache

Núcleo1 CPU1Registradores

cache

memória

Um dual Core com dois núcleos colocados no mesmo chip

Sistemas em Clusters

17

Conceito de Cluster

Como os sistemas multiprocessados, os sistemas emcluster reúnem diversas CPUs para realizar um trabalhode computação. No entanto os sistemas em clusterdiferem dos sistemas multiprocessados porque sãocompostos de dois ou mais sistemas individuais.

18

Observação

Normalmente cluster são conectados de maneirarígida por intermédio de Redes Locais (LANs). Ouinterconexões mais rápidas InfiniBand.

19

Computação de alta performance.

Estrutura geral de umSistema em Clusters

20

Computador Computador Computadorinterconexão interconexão

Sistema de Armazenamento

em rede

Estrutura do sistema Operacional usando Multiprogramação

21

Diagrama de memória para sistema Multiprogramação

22

Sistema Operacional

Tarefa 1

Tarefa 2

Tarefa 3

Tarefa 4

Banco de Dados de Tarefa

Esse pool de tarefas consiste em todos os processos queresidem no disco, aguardando a alocação da memóriaprincipal.

23

Sistema de Armazenamento

Tarefas

Tempo Compartilhado (Time Sharing)

Exige um computador interativo, que providencie acomunicação direta entre o usuário e o SistemaOperacional.

Tempo de resposta curto de aproximadamente umSegundo.

24

Operações básica do Sistema Operacional

25

Operações do Sistema

Um sistema operacional ficará silencioso esperandoque um evento aconteça, Isso pode ser realizado pelaocorrência de uma interrupção ou trap (Exceção) é ainterrupção gerada pelo software informando um erro.

26

try // Experimentar Instruções a serem executadas

catch (Exception exceção)Notificação de erro

end

Operação no modo dual

No mínimo precisamos de dois modos de operaçãoseparados:

Modo Kernel - (Modo Supervisor) bit(0).Modo Sistema (Usuário) - (Modo privilegiado) bit(1).

27

Transição de modo usuáriopara modo kernel.

28

Processo do Usuário

Processo de usuário executando Chamada do Sistema Retorno de chamada

Kernel

Executa Chamadas do sistema

trapbit de modo = 0

retornobit de modo = 1

Trap (Laço)

Temporizador

Como garantia de que um programa do usuário, não entreem loop infinito o Sistema Operacional ativa um temporizador(Timer), que leva uma contagem de tempo de 1000milissegundos equivalente a 1 segundo, o Sistemaoperacional define um contador e começa a decrementartoda vez que o relógio toca até que seja zerado, devolvendoo controle ao usuário.

29Disponível: Processo.cpp

Gerencia de processos

30

Processo

Vem a ser uma entidade ativa reconhecida por um SistemaOperacional. Um programa é uma entidade passiva.

31

Processo-1

Processo-2

Processo-3

Programa-1

Programa-2

Programa-3

Olhar Gerenciador de Tarefas

Processo

• Um processo vem a ser um programa emexecução;

• Em um processo é incluída a atividade docontador de programas;

• Conteúdo dos registradores de processos;• Pilha de processos (stack).

32

O sistema operacional é responsável pelas seguintesatividades, em conjunto com a gerência de processos.

• Escalonar processos e threads nas CPUs.• Criar e remover os processos de usuários e de sistema.• Suspender e retornar os processos.• Prover mecanismos para sincronismo de processos.• Prover mecanismos para a comunicação entre processos.

33

Pilha de Processo

34

pilha

heap

Dados

texto

máx

0

A memória é alocadadinamicamente durante otempo de execução doprocesso.

heap - pilha

Pilha Processos(stack)

Contém:

Dados (Temporários);- Parâmetros de métodos;- Endereços de retorno de variáveis- Seção de dados (Variáveis Globais);

35

Estados de um processoNo momento que um processo é executado, ele muda deestado. O estado de um processo é definido em parte pelaatividade atual desse processo. Estados de um processo:

Novo (New) – Processo está sendo criado.Executando (Running) – As instruções estão sendoexecutadas.Esperando (Waiting) – O processo está esperando algumevento (como Termino de E/S ou recebimento de um sinal).Pronto (Ready) – O processo está esperando para seratribuído a um processador.Terminado(Terminated). O processo terminou suaexecução.

36

Diagrama de estado doProcesso

37

Novo (New)

Pronto(Ready)

Executando(Running)

Terminado(Terminated)

Esperando(Waiting)

Interrupção

Despacho do escalonador

SaídaAdmitido

Espera por E/S ou eventoTérmino de E/S ou evento

Bloco de Controle de Processo (PCB)

38

Estado do processo

Número do processo

Contador de programa

Registradores

Limites de Memória

Listas de arquivos abertos

...

Estado do processo. O estadopode ser novo, pronto, executando,esperando, interrompido...

Contador de programa. Indica oendereço da próxima instrução aser executada para esse processo.

Registradores da CPU . Osregistradores variam em quantidadee tipo, dependendo da arquiteturado computador.

Função do PCBServe como o repositório para quaisquerinformações que possam variar de um processopara outro.

39

Ocioso

Executando

Ocioso

Processo P0 Sistema Operacional Processo P1

Interrupção ou chamada de sistema

Salva estado no PCB0

Ocioso recarrega estado no PCB1

.

.

.

Interrupção ou chamada de sistema

Salva estado no PCB1

Restaura estado no PCB0

Executando

Executando

Threads

Um processo é umprograma que executauma única Thread.

Exemplo:

Quando um processo estáexecutando um programade processamento detextos, o usuário nãopoderá digitar caracteres eexecutar o corretorortográfico.

40

Gerência de Memória

41

Memória Principal

42

Funcionamento da Memória

43

Organização Lógica da Memória Principal para um microprocessador de 8 bits

Disponível: Alocm.cpp

Conceito de Memória Principal

A memória principal consiste em uma grande sequencia dewords ou bytes, cada uma com seu próprio endereço.

A CPU captura dados instruções da memória de acordo comvalor do contador de programa. Essas instruções podemocasionar no carregamento adicional e o armazenamentoem endereço específicos da memória.

44

Memória Principal

45

Unidade Logica e

Aritmética

Unidade Central de Processamento - CPU

Controle

Memória

EntradaSaída

Mundo Externo

Para Mundo Externo

Interação da Memória com o Hardware

• Existem Instruções de máquina que pegam endereçode memória como argumentos.

• Nenhuma Instrução de máquina pode capturarendereços de disco.

• Se os dados não estiverem na memória, terão que sermovidos para a mesma, antes que a CPU façaqualquer operação.

46

Registradores da CPU

Os registradores internos da CPU são acessíveisem geral, em um ciclo do relógio (clock) da CPU.

47

O Sistema Operacional é responsável pelas seguintes atividades relacionadas com gerencia de

memória

• Registrar quais partes da memória estão sendo usadasatualmente e por quem.

• Decidir quais processos (ou parte deles) e dados devemser colocados e retirados da memória.

• Alocar e desalocar espaço de memória conforme anecessidade.

48Disponível: Alocm2.cpp

Acesso a memória (Processo)

Primeiro precisa-se garantir que cada processo tenha umespaço de memória separado, e para isso precisamos dacapacidade de determinar o intervalo de endereços válidos.

49

Sistema Operacional

Processo

Processo

Processo

0

256000

300040

420940

880000

1024000

300040

120900

Limite

base

Registrador de base e um de limiteEndereço lógico.

Proteção de endereço de Hardware com registradores de base e limite

50

CPU ≥

base base + limite

<

memória

Interceptação para monitor do sistema operacional – Erro de endereçamento

endereço sim

não

sim

não

Registradores de base e limite

Os registradores de base e limite só podem ser carregadospelo sistema operacional por intermédio de uma instruçãoprivilegiada especial. Isso porque instruções privilegiadassó podem ser executada no modo Kernel (Galvin, 2016).

51

Kernel

SOInstrução

Associação de endereços de

Processos

52Gerencia de Processos

Associação de endereçosEm geral, um programa reside em um disco como umarquivo executável binário. Para se executado, precisa sertrazido para a memória e acrescentado no interior de umprocesso.

53

Fila-Disco

Processo-3

Processo-2

Processo-1

Fila-Memória

Processo-0

Processo-4

Processo-5

:

SistemaOperacional

Fila de entrada

Processamento de um programa do usuário em múltiplas etapas

54

Programafonte

Compilador ouAssembler.

Módulo objeto

linkeditor

Módulo carga

loader

ImagemBinária namemória

Outros módulos objetos

Biblioteca do

Sistema

Biblioteca do Sistema Dinâmica

Tempo de Compilação

Tempo de Carga

Tempo de execução(runtime)

Associação de Instruçõesa um endereço de Memória

• Tempo de compilação • Tempo de Carga (DLL, Dinamic Link

Linguage)• Tempo de execução (Runtime)

55

Espaço de endereços Lógicos e Físicos

56

Endereço Lógico

Um endereço gerado pela CPU édenominado endereço Lógico.

Um endereço visto pela Unidade dememória é considerado um endereçoFísico.

57

Endereços Virtuais

Em tempo de execução de compilador e carga, geramendereços Físicos e Lógicos, no que diz respeito aocompilador essa tarefa é denominada de endereços virtuais.

O mapeamento em tempo de execução dos endereçosvirtuais para físicos é por um dispositivo de hardwaredenominado Unidade de Gerencia de Memória (Memory –Management Unit - MMU).

58

Relocação dinâmica usando um registradorde relocação

59

CPU

Registrador de relocação

+

14000Endereço

lógico

346

Memória

Endereço Físico

14346

MMU

Escalonamento de Processos

60

Objetivo Multiprogramação

Encontra-se em ter, algum processo em execução o tempotodo, para melhorar a utilização da CPU.

Objetivo do compartilhamento de tempo é alternar a CPUentre os processos com tanta frequência que os usuáriospossam interagir com cada programa.

61

Escalonador de Processos

Seleciona um processo disponível a partir de umconjunto de processos disponíveis.

62

head

tail

Cabeçalho da fila

prontofila Registradores

::

Head – CabeçalhoTail - Cabo

PCB1

Estrutura de dado de um Processo

63

headtail

Cabeçalho da fila

prontofila PID CPU Memória Disco

PCB (Bloco de controle de Processo )

Identificador de Processo

Fila de ProcessoO processo pode emitir uma requisição de E/S e depois sercolocado em uma fila de E/S.

O processo pode criar um novo subprocesso e esperarpelo término do subprocesso.

64

65

head

tail

Cabeçalho da fila

prontofila Registradores

::

Registradores

::

head

tail

MagFitaUnidade 1 Registradores

::

Registradores

::

PCB7PCB2

PCB3PCB10

RepresentaçãoEscalonamento de Processo

Uma representação comum do escalonamento de processos é um diagrama de fila.

66

Fila de pronto CPU

Requisição de E/S

Fatia de tempo expirada

Gera um filho

Espera uma interrupção

Fila de E/SE/S

Filho é executado

Ocorre Interrupção