curso: análise e desenvolvimento de sistemas · curso: análise e desenvolvimento de sistemas....
TRANSCRIPT
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
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
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
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
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 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
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
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ç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
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
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