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

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

Evolução Arquitetural e Microprogramação

Apresentações semelhantes


Apresentação em tema: "Evolução Arquitetural e Microprogramação"— Transcrição da apresentação:

1 Evolução Arquitetural e Microprogramação
ARQUITETURA DE COMPUTADORES II Evolução Arquitetural e Microprogramação Prof. César Augusto M. Marcon

2 Índice 1. Evolução das Arquiteturas 2. Multiprogramação

3 Evolução das Arquiteturas
Memória S CPU E Arquitetura Tradicional Uma única unidade ativa Memória S CPU E Unidades de E/S autônomas Multiprogramação Memória S CPU E L2 L1 Hierarquia de Memória Acelerar alimentação da CPU

4 Evolução das Arquiteturas
Pipeline Separa memória de dados e instruções Pipe de instrução (superescalar) Pipe de dados (máquinas vetoriais) S E F D W CPU Memória L2 L1 Diversas técnicas arquiteturais

5 Considerações Processamento paralelo implica várias unidades simultaneamente ativas Processador é uma unidade ativa, mas não a única Partes autônomas dentro do processador, como ULAs Sistemas autônomos fora do processador, como unidades de E/S Processamento paralelo pode também existir em máquinas com apenas um processador

6 Índice 1. Evolução das Arquiteturas 2. Multiprogramação

7 Multiprogramação Conceito Habilitador Funcionalidade Paralelismos
Técnica para executar simultaneamente vários processos Habilitador Unidades de E/S se tornaram ativas  Executam operações de forma autônoma liberando processador para outras tarefas Funcionalidade SO intercala CPU e E/S entre diferentes processos Quando técnica é bem aplicada dá impressão de paralelismo espacial Paralelismos Processamento paralelo espacial entre CPU e unidades de E/S Processamento paralelo temporal entre diferentes processos Objetivos Aumentar taxa de utilização do processador  mantê-lo ocupado maior parte do tempo Aumentar chance do SO encontrar processo pronto para rodar (que não esteja esperando por E/S)

8 Multiprogramação Exemplo de multiprogramação considerando CPU e E/S unidades autônomas P1 P2 P3 c1 c2 c3 i1 o1 i2 o2 i3 o3 c1 i1 o1 P1 c2 Devido a CPU operar em paralelo com E/S i2 o2 P2 c3 Ganho de tempo i3 o3 P3 c1 c2 c3 CPU i1 i2 o1 i3 o2 o3 E/S

9 Multiprogramação A redução do tempo total de execução de aplicações depende de técnicas a serem aplicadas, tais como: Escalonamento com time-sharing para a execução das tarefas Alteração da ordem de chegada das tarefas Múltiplas unidades de E/S

10 Multiprogramação Compartilhamento Temporal (Time Sharing)
Funcionalidade Processos são executados em fatias de tempo (time-slices) Ao termino da fatia, novos processos são escalonados Processo preemptado vai para final da fila de pronto Vantagens Consegue atender todos processos Tempo de resposta aceitável para aplicações não críticas Evita que processos CPU bound tomem conta do processador Compromissos Time-slice muito pequeno  muita troca de processos  alto custo para o sistema por causa do salvamento de contexto Achar time-slice que seja bom compromisso entre qualidade e custo

11 Multiprogramação Alteração da Ordem de Chegada
Alteração da ordem de chegada de tarefas é atribuição do escalonador Escalonamento Normalmente executado por um SO Depende das necessidades da aplicação e características da arquitetura alvo e SO Algoritmos de escalonamento FIFO (First In First Out) Primeiro a chegar é o primeiro a ser atendido RR (Round-Robin) Todo processo executa uma fatia de tempo (time-slice) e depois é escalonado o próximo Processos são executados como uma FIFO, enquanto não terminarem SJF (Smallest Job First) Tarefas mais rápidas executadas primeiro Evita que processos demorados elevem tempo de atendimento dos demais RM (Rate Monotonic) Tarefas que tem menor período são atendidas antes EDF (Earliest deadline First) Tarefas que tem deadline mais perto são atendidas antes Escalonamento dinâmico Utilizado com tarefas de tempo real ... Considerações de Alteração de Ordem de Chegada e Time-slice Time-slices muito grande fazem comportamento do sistema parecer com FIFO, time-slices muito pequenos parecem com SJF (Smallest Job First)

12 Multiprogramação Alteração da Ordem de Chegada
Exemplo de escalonamento RM (tarefas periódicas) Aplicação  cj. de tarefas  = {1, 2} Tarefas  = (período, computação) Exemplo  = {(5, 1), (7, 3)} Fator de utilização U = 1 / / 7 = 0.63 < ln 2  escalonável por RM

13 Multiprogramação Alteração da Ordem de Chegada
Exemplos de escalonamento RM e EDF  = {(5, 2), (7, 4)} : U = 2 / / 7 = 34 / 35 = 0.97 0.97 > ln 2  não escalonável por RM  tarefa perde deadline 0.97 < 1  escalonável por EDF

14 Multiprogramação Utilização de Múltiplas Unidades de E/S
Objetivo Aumentar desempenho geral do sistema pela redução do gargalo de entrada e saída de informações Como alcançar Aumentando número de unidades de E/S que participam do processamento paralelo Conseqüência Escalonador pode tratar vários pedidos de E/S simultaneamente Aumento do Speed-Up (fator de aceleração) Redução do tempo de execução de vários processos

15 Multiprogramação Aplicando as otimizações vistas
Alteração da ordem de chegada Múltiplas unidades E/S Escalonamento com time-sharing P1 P2 P3 c1 c2 c3 i1 o1 i2 o2 i3 o3 c1 i1 o1 P1 c2 i2 o2 P2 Devido a CPU operar em paralelo com E/S c3 i3 o3 P3 Ganho de tempo c2 c2 i2 o2 P2 c3 c3 c3 i3 o3 P3 c1 c1 Ganho de tempo i1 o1 P1 Devido aos itens I, II e III

16 Exercícios Dada uma aplicação composta por 2 tarefas (T0 e T1), sendo estas tarefas caracterizadas (em ns) em uma arquitetura alvo hipotética conforme tabela abaixo, faça um gráfico que mostre o uso da CPU e de uma entrada e saída Verifique se a aplicação caracterizada acima é escalonável por Rate Monotonic (RM). Faça o mesmo para Earliest deadline First (EDF). Considere os seguintes dados a mais: Utilize as técnicas aprendidas em multiprogramação para obter redução do tempo de execução global do sistema descrito, sendo estas: time-sharing múltiplas entradas e saídas alteração da ordem de chegada Dados para os exercícios Sistema operacional com time-slice de 1ns Troca de contexto com tempo desprezível Processador com 2 unidades de entrada e saída Tarefas Instante de chegada Entrada de dados Computação Saída de dados Período / Deadline T0 2 3 10 T1 1 4 8

17 Resposta de Exercícios

18 Resposta de Exercícios

19 Exercícios Como a multiprogramação acelera a execução de um grupo de programas mesmo em uma máquina com apenas um processador? Comente a afirmação: - ”A replicação de unidades de entrada e saída é um paralelismo em nível de aplicação” Mostre algumas técnicas que podem ser utilizadas para melhorar o uso da CPU com multiprogramação. Mostre também as conseqüências do uso destas técnicas Qual o grande problema da otimização tipo time sharing com time-slices muito pequenos? E com time-slices muito grandes?

20 Exercícios (ENADE ) No projeto de sistemas de tempo real, normalmente são atribuídas prioridades às tarefas. Escalonadores orientados à preempção por prioridade são utilizados para ordenar a execução de tarefas de modo a atender seus requisitos temporais. Inversão de prioridade é o termo utilizado para descrever a situação na qual a execução de uma tarefa de mais alta prioridade é suspensa em benefício de uma tarefa de menor prioridade. A inversão de prioridade pode ocorrer quando tarefas com diferentes prioridades necessitam utilizar um mesmo recurso simultaneamente. A duração desta inversão pode ser longa o suficiente para causar a perda do deadline das tarefas suspensas. Protocolos de sincronização em tempo real auxiliam limitando e minimizando a inversão de prioridades. Considere o conjunto de três tarefas com as seguintes características: T1 tem prioridade 1 (mais alta), custo de execução total de 6 ut (unidades de tempo) e instante de chegada t1 = 6. A partir de seu início, após executar durante 1 ut, essa tarefa necessita do recurso compartilhado R1 durante 2 ut. Para concluir, utiliza o recurso compartilhado R2 durante 2 ut finais. T2 tem prioridade 2, custo de execução total de 8 ut e instante de chegada t2 = 3. A partir de seu início, após executar durante 2 ut, a tarefa necessita do recurso compartilhado R2 durante 2 ut. T3 tem prioridade 3 (mais baixa), custo total de execução de 12 ut e instante de chegada t3 = 0. A partir de seu início, após executar durante 2 ut, essa tarefa necessita do recurso compartilhado R1 durante 2 ut. A partir dessas informações, desenhe a(s) linha(s) de tempo(s) para que um escalonamento dessas três tarefas em um único processador seja possível, utilizando-se o protocolo de herança de prioridade. Neste protocolo, enquanto uma tarefa de maior prioridade necessitar usar um recurso compartilhado com uma tarefa de menor prioridade, a tarefa de menor prioridade herda a prioridade da tarefa de mais alta prioridade.

21 Resposta de Exercícios
No momento em que a tarefa T1 inicia, o recurso R2 está sendo usado pela tarefa T2, portanto bloqueado, e o recurso R1 está sendo usado pela tarefa T3, bloqueado também. Quando T1 requisita o recurso R1, fica bloqueada, pois R1 está em uso por T3. Com o protocolo de herança de prioridade, a tarefa T3 herda a prioridade de T1. Com isso, ganha o processador, pois passa a ter prioridade maior que T2. Desta forma, conclui o uso do recurso R1 e o libera. A tarefa T3 retorna à sua prioridade original e a tarefa T1 ganha o processador (pois é a de maior prioridade). Com isso, adquire, utiliza e libera o recurso R1 e continua a execução até solicitar o recurso R2, que está bloqueado pela tarefa T2. A tarefa T2 herda a prioridade de T1, conclui o uso do recurso R2 e o libera, retornando à sua prioridade original. Com isso, novamente a tarefa T1 ganha o processador e passa agora a utilizar o recurso R2, e depois o libera.

22 Exercícios Qual a importância do escalonamento de tarefas na multiprogramação, em relação ao tempo de execução global? Em relação à execução de programas de tempo real? Mostre alguns algoritmos de escalonamento para aplicações de tempo real e a sua funcionalidade

23 Resposta de Exercícios
Qual a importância do escalonamento de tarefas na multiprogramação, em relação ao tempo de execução global? Em relação à execução de programas de tempo real? Caso alguma tarefa não esteja utilizando a CPU, ela pode ser preemptada, sendo escalonada uma nova tarefa, de forma que a CPU fique sempre ocupada. Desta forma, o tempo de execução global tende a reduzir. Sistemas de tempo real se beneficiam do escalonamento possibilitando que tarefas de tempo real tenham privilégio de uso da CPU conforme seus deadlines. Mostre alguns algoritmos de escalonamento para aplicações de tempo real e a sua funcionalidade Rate-monotonic (RM): escalonamento estático. Tarefas com menor período são priorizadas pelo escalonador. Earliest deadline first (EDF): escalonamento dinâmico. Tarefas com o deadline mais próximo são priorizadas pelo escalonador.

24 Exercícios Utilize as técnicas aprendidas em multiprogramação para obter redução do tempo de execução global do sistema descrito, sendo estas: time-sharing múltiplas entradas e saídas alteração da ordem de chegada Dados para os exercícios Sistema operacional com time-slice de 1ns Troca de contexto com tempo desprezível Processador com 2 unidades de entrada e saída Característica das tarefas frente à arquitetura alvo, considerando os tempos em ns Tarefas Instante de chegada Entrada de dados Computação Saída de dados Período / Deadline T0 3 1 4 10 T1 2 9 T2 12 Faça um gráfico sem aplicar as técnicas Faça um gráfico para a aplicação de cada técnica Faça agora um gráfico que utilize as 3 técnicas conjuntas Verifique se a aplicação é escalonável por rate monotonic e por EDF Faça um gráfico comparando escalonamentos round-robin, rate monotonic e EDF, tendo os recursos disponíveis acima


Carregar ppt "Evolução Arquitetural e Microprogramação"

Apresentações semelhantes


Anúncios Google