240 likes | 348 Views
ARQUITETURA DE COMPUTADORES II. Evolução Arquitetural e Microprogramação. Prof. César Augusto M. Marcon. Índice. 1. Evolução das Arquiteturas. 2. Multiprogramação. L1. L2. CPU. CPU. CPU. E. E. E. S. S. S. Memória. Memória. Memória. Evolução das Arquiteturas.
E N D
ARQUITETURA DE COMPUTADORES II Evolução Arquitetural e Microprogramação Prof. César Augusto M. Marcon
Índice 1. Evolução das Arquiteturas 2. Multiprogramação
L1 L2 CPU CPU CPU E E E S S S Memória Memória Memória Evolução das Arquiteturas • Arquitetura Tradicional • Uma única unidade ativa • Unidades de E/S autônomas • Multiprogramação • Hierarquia de Memória • Acelerar alimentação da CPU
CPU E S L1 L2 Memória F D E W F D E W F D E W Evolução das Arquiteturas • Pipeline • Separa memória de dados e instruções • Pipe de instrução (superescalar) • Pipe de dados (máquinas vetoriais) • Diversas técnicas arquiteturais
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
Índice 1. Evolução das Arquiteturas 2. Multiprogramação
Multiprogramação • Conceito • 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)
c1 c2 c2 c3 c3 c1 c2 c3 c1 Multiprogramação • Exemplo de multiprogramação considerando CPU e E/S unidades autônomas P1 P2 P3 i1 o1 i2 o2 i3 o3 i1 o1 P1 Devido a CPU operar em paralelo com E/S i2 o2 P2 Ganho de tempo i3 o3 P3 CPU i1 i2 o1 i3 o2 o3 E/S
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
MultiprogramaçãoCompartilhamento 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 boundtomem 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
MultiprogramaçãoAlteraçã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)
MultiprogramaçãoAlteração da Ordem de Chegada Exemplo de escalonamento RM (tarefas periódicas) • Fator de utilização • Aplicação cj. de tarefas = {1, 2} • Tarefas = (período, computação) • Exemplo • = {(5, 1), (7, 3)} U = 1 / 5 + 3 / 7 = 0.63 < ln 2 escalonável por RM
MultiprogramaçãoAlteração da Ordem de Chegada = {(5, 2), (7, 4)} : U = 2 / 5 + 4 / 7 = 34 / 35 = 0.97 Exemplos de escalonamento RM e EDF 0.97 > ln 2 não escalonável por RM tarefa perde deadline 0.97 < 1 escalonável por EDF
MultiprogramaçãoUtilizaçã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
c1 c2 c2 c3 c3 c1 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 i1 o1 i2 o2 i3 o3 i1 o1 P1 i2 o2 Devido a CPU operar em paralelo com E/S P2 i3 o3 Ganho de tempo P3 c2 c2 i2 o2 P2 c3 c3 c3 i3 o3 P3 c1 c1 Ganho de tempo o1 i1 P1 Devido aos itens I, II e III
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
Resposta de Exercícios Exercício 1
Resposta de Exercícios Exercício 2
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?
Exercícios • (ENADE 2008 - 59)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.
Resposta de Exercícios • Resposta: • 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.
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
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.
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 • 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