Algoritmo para carga dinâmica de tarefas em processadores heterogêneos

Tamanho: px
Começar a partir da página:

Download "Algoritmo para carga dinâmica de tarefas em processadores heterogêneos"

Transcrição

1 Algoritmo para carga dinâmica de tarefas em processadores heterogêneos Daniel Barcelos Emilena Specht Resumo Este artigo apresenta uma versão do algoritmo threshold accepting (TA) para escalonamento de tarefas em processadores heterogêneos. O TA foi implementado em software e hardware, e ambas versões foram comparadas em termos de área, potência, energia e desempenho. A fim de validar o funcionamento do TA, foi desenvolvido um software em Java que simula a alocação de tarefas, com custos de desempenho, energia ou potência previamente conhecidos, em dois processadores FemtoJava. Resultados mostram que a versão do TA em software é mais de 200 vezes mais dispendiosa do que o TA em hardware, tanto em termos de desempenho quanto em área e energia. Em sua funcionalidade, a execução com escalonamento por TA se aproxima da execução por escalonamento estático, com variações que não ultrapassam 4%. Introdução As limitações de consumo e área existentes nos sistemas embarcados tornam necessárias novas soluções nesse âmbito. Com o surgimento de circuitos e plataformas multi-processadas, novas abordagens foram criadas. Porém, quando se trata de processadores heterogêneos, ainda não existe uma solução definitiva para o problema de utilizar os processadores presentes da melhor maneira possível. Em sistemas SMP (Simetric Multi- Processing) a tarefa de escalonamento pode se dar pelos algoritmos convencionais, já que todos os processadores possuem o mesmo poder de processamento. Basicamente, assume-se que existe apenas um único processador com uma vazão de processamento multiplicada pelo número de núcleos existentes. Caso os processadores sejam heterogêneos, a análise se torna mais complicada. Cada processador pode realizar determinadas tarefas de maneira mais eficiente se comparado aos demais. Em compensação, podem existir tarefas que, se executadas em um processador não indicado, se tornem extremamente dispendiosas em termos de tempo e/ou energia. Esse artigo apresenta uma proposta de solução para o segundo caso exposto. Tal método é baseado em um algoritmo estocástico, o Accepting (TA). São apresentados resultados de simulações onde métricas de desempenho, energia e potência foram consideradas, em casos particulares. O cenário de simulação supõe dois processadores com o mesmo conjunto de instruções, porém organizações diferentes. Os processadores utilizados nas análises são do tipo FemtoJava [6]. Para a obtenção das métricas de custo das tarefas utilizadas como benchmarks foi utilizado o estimador de potência Caco-PS [7][9]. Accepting O algoritmo Accepting (TA) é uma variação do Simulated Annealing (SA) [][2] proposto por Dueck e Scheuer [3] em 990. Analogamente ao SA, o TA faz uso do conhecimento do comportamento das moléculas ao serem congeladas, mas faz uma simplificação no sentido de substituir a curva exponencial de aceitação por um threshold decrescente a uma razão constante. Uma versão estendida do TA foi proposta por Hu et al. e é denominada Old Bachelor Acceptance [4]. Figura Funcionamento do TA

2 O princípio de operação do TA é mostrado na Figura. A partir de uma solução inicial qualquer ele provoca pequenas perturbações em busca de melhores soluções. A cada iteração, o algoritmo escolhe de forma aleatória um processador para executar uma determinada tarefa. Em dois casos específicos a nova solução é aceita: caso ela seja melhor que a anterior e caso ela seja pior, mas esteja dentro do intervalo de aceitação, limitado superiormente pelo threshold. A próxima iteração assumirá um threshold menor e assim sucessivamente. Dessa maneira, soluções piores que as atuais são cada vez menos aceitas e, se a diminuição do threshold a cada iteração for infinitesimal, a solução ótima é encontrada, obviamente para isso seria necessário um tempo de computação infinito. Este trabalho não utiliza o TA a fim de encontrar uma solução ótima, mas aproveita o fato do TA provocar perturbações para obter uma solução aceitável. Isto porque, aplicando ao caso da alocação de tarefas, uma solução conhecida seria a solução ótima estática, o conjunto da melhor solução para cada tarefa individualmente, considerando uma determinada métrica. Mas esta solução não leva em consideração a ocupação dos processadores, por exemplo, que pode fazer com que a solução ótima estática não seja a melhor solução para uma execução em um dado instante de tempo. Uma desvantagem do TA é considerar apenas uma métrica para alocar as tarefas. Seria possível promover um estudo para determinar uma forma de contemplar mais de um dado simultaneamente (número limite de ciclos para executar um número x de tarefas, considerando ainda a eficiência energética, por exemplo), mas essa abordagem foge do escopo deste trabalho. TA em Hardware vs. TA em Software Independentemente do tipo de implementação, é importante que um escalonador de tarefas não consuma muitos recursos. Caso este seja realizado via software e o processador em que execute seja também utilizado para computar as demais tarefas, quanto menor for a fatia de processamento por ele consumida, melhor. Ainda rodando em software, mas em um processador dedicado, espera-se que ele consuma o menos possível de outros recursos como área, energia e potência. A decisão por realizar o escalonamento em hardware, apesar da maior complexidade do projeto e menor flexibilidade, provém de uma eventual grande vantagem na relação custobenefício que essa última solução leva em relação às anteriormente mencionadas. Os gráficos de desempenho, energia, potência e área das soluções implementadas são apresentados na Figura 2. A fins de comparação, no cálculo de desempenho e consumo de energia do algoritmo em hardware e software foi considerado o pior caso, em que o TA executa o número máximo de iterações (200). Figura 2 Comparação das soluções implementadas Como não há uma implementação do FemtoJava VLIW disponível em VDHL, a área ocupada pela solução VLIW não foi calculada, mas presume-se que ela seja ainda superior à solução utilizando o Pipeline. Para o cálculo da potência do algoritmo em hardware, a ferramenta Leonardo Spectrum[5] extraiu o esquemático dos arquivos VHDL do TA, e a partir dos esquemáticos foi estimado o número de chaveamentos, considerando que a taxa de chaveamentos é de 50%. As soluções em software assumem processadores dedicados exclusivamente ao escalonamento. Adotou-se essa estratégia devido ao fato do tempo de execução do TA no pior caso ser superior ao tempo de execução de qualquer uma das outras tarefas usadas como benchmarks, o que inviabiliza a execução do TA em um processador que não seja dedicado. Todas as implementações consideram que o escalonamento será realizado considerando apenas dois processadores heterogêneos e que até 255 tarefas poderão existir ao mesmo tempo.

3 Simulação do TA Para avaliar a utilidade do TA no escalonamento de tarefas, foi simulada uma rede com dois processadores FemtoJava e 5 tarefas independentes umas das outras que deveriam ser executadas. As tarefas são benchmarks de tamanhos variáveis e propósitos diferentes, que utilizam diferentes instruções. A granularidade do paralelismo é grossa, ou seja, as tarefas não são divididas, e para cada tarefa há um processo. Uma vez que o processo inicia sua execução em um processador, o mesmo não é interrompido até o fim da computação da tarefa. Dois estudos de caso foram desenvolvidos: o primeiro utiliza um processador FemtoJava pipeline e um FemtoJava multiciclo para compor a rede, enquanto o segundo estudo de caso contempla a execução das tarefas em um FemtoJava pipeline e um FemtoJava VLIW com 2 instruções por palavra. O TA escalona as tarefas com base em seu custo em ciclos, potência média dinâmica e energia dinâmica para cada versão do FemtoJava utilizada na rede. Tais dados, para 3 tarefas, foram obtidos previamente pelo grupo através da ferramenta CACO-PS [8]. As duas tarefas restantes, cujos custos também foram obtidos através do CACO-PS, são o próprio TA em software e o algoritmo pseudo-aleatório que é utilizado pelo TA. Os benchmarks e seus custos em ciclos para cada versão do FemtoJava são apresentados na Tabela. Tabela para executar cada tarefa Multiciclo Pipeline VLIW Sin - Cordic Sin - Table Sort - Bubble Sort - Select Sort - Insert Sort - Quick Search - Binary Seach - Sequencial IMDCT IMDCT u IMDCT u IMDCT u Floating Point Sums Random TA média O multiciclo é o processador que mais consome ciclos para executar cada uma das tarefas, já que executa apenas uma instrução por vez. O pipeline é mais eficiente que o multiciclo para todas as tarefas, e o VLIW, por sua vez, mais eficiente que o pipeline, já que é capaz de extrair paralelismo das tarefas em nível de instrução e executar em média mais de uma operação por ciclo. A Tabela 2 apresenta os benchmarks e seus respectivos consumo de energia (em chaveamentos) em cada processador FemtoJava. Tabela 2 - consumida por cada tarefa (CG) Multiciclo Pipeline VLIW Sin - Cordic Sin - Table Sort - Bubble Sort - Select Sort - Insert Sort - Quick Search - Binary Seach Seq IMDCT IMDCT u IMDCT u IMDCT u Float. P. Sums Random TA média O multiciclo é o processador com maior consumo de energia para todas tarefas. Isto é devido ao fato da pilha do multiciclo ser implementada na memória RAM, enquanto a pilha dos outros processadores é implementada em banco de registradores. Como em síntese o VLIW é uma composição de dois ou mais pipelines em um processador, era esperado que o consumo de energia do VLIW fosse maior do que o do pipeline. No entanto, a versão do VLIW utilizada aplica uma técnica de reutilização de acessos à memória [8], reduzindo a energia a ponto de, em algumas tarefas, ser inferior à energia consumida no pipeline. Tabela 3 - Potência consumida por cada tarefa Potência (CG/ciclo) Multiciclo Pipeline VLIW Sin - Cordic Sin - Table Sort - Bubble Sort - Select Sort - Insert Sort - Quick Search - Binary Seach - Sequencial IMDCT IMDCT u IMDCT u IMDCT u Floating Point Sums Random TA média

4 A Tabela 3 mostra as tarefas e seu consumos de potência média (em chaveamentos por ciclo) para cada processador. Para as tarefas em questão, o VLIW é o processador mais dispendioso em potência. A diferença de consumo entre o pipeline e o multiciclo em geral é baixa, também devido à desvantagem do multiciclo em relação à implementação da pilha. Para cada estudo de caso, a simulação foi feita em três etapas. A primeira considera que apenas o custo em ciclos de cada tarefa é conhecido a priori. Neste caso, o escalonamento estático consideraria o custo em ciclos como fator determinante para a alocação de uma tarefa para um processador, e a mesma métrica (ciclos) é adotada pelo TA. Para obter os resultados, o simulador usa os outros dados das tarefas (energia e potência) para comparar a execução das tarefas usando TA e sem usar TA. Analogamente, as etapas 2 e 3 consideram, respectivamente, energia e potência como dados conhecidos, e conseqüentemente, métricas que serão usadas pelo TA. Na simulação, é admitido um instante de tempo t, em que dois processadores estão desocupados, e há 5 tarefas que devem rodar nestes processadores, independentemente da ordem. O simulador não considera que as tarefas possam ter deadline ou ser dependentes umas das outras. Cada vez que um processador é desocupado, o TA é executado e aloca para aquele processador uma das 5 tarefas que ainda não tenha sido executada, desde que a solução desta tarefa corresponda ao processador desocupado (o que será conhecido após o teste do threshold). Caso não encontre uma solução imediatamente, o TA escolhe aleatoriamente outra tarefa, até a exaustão de possibilidades para aquele processador. A simulação termina quando todas as 5 tarefas foram executadas. Para facilitar a simulação, é considerado que ambos processadores rodam à mesma freqüência. Como o TA decide aleatoriamente a ordem de execução das tarefas, cada etapa é simulada 253 vezes, e a semente do algoritmo pseudoaleatório é modificada. Isto permite explorar mais possibilidades na ordem de execução das tarefas, e não tornar a simulação tendenciosa. Para os resultados, é considerado o valor médio das simulações. O custo do TA não foi considerado na simulação. Portanto, é necessário considerar que uma implementação do TA em hardware seria utilizada no ambiente simulado. Como a simulação não considera o custo do TA (seja em ciclos, potência ou energia), simular uma execução sem TA é o mesmo que simular uma execução com TA onde o threshold é igual a zero. Resultados A simulação obteve resultados na comparação entre a execução de um ambiente com escalonamento dinâmico (TA) e de um ambiente com escalonamento estático, que considera que as tarefas devem executar apenas no processador para o qual apresentam menor custo segundo a métrica em questão. A solução estática corresponde às seqüências em que o threshold é igual a zero. O threshold é calculado com base na tarefa de maior custo segundo a métrica préestabelecida. Por exemplo, quando o ambiente é composto por um pipeline e um multiciclo, e a métrica a ser analisada é número de ciclos, a tarefa TA é a que tem maior custo (74.00 ciclos no multiciclo). Um threshold igual a 5 representa 5% de 74.00, ou seja, ciclos. Este será o valor inicial usado pelo TA na determinação das soluções, para este caso. Um threshold igual a 0 representa 0% de ciclos, e assim respectivamente. No primeiro estudo de caso (em que foram utilizados um processador FemtoJava multiciclo e um FemtoJava pipeline), os resultados da Tabela 4 foram obtidos em uma execução que considera como métrica número de ciclos. Tabela 4 Resultado de uma execução multiciclo+pipeline que considera ciclos como métrica A solução em um escalonamento estático seria determinar que todas as 5 tarefas executassem no pipeline, como é possível verificar na Tabela. Tendo o multiciclo disponível, o TA usa o threshold para alocar ao multiciclo algumas tarefas que estariam esperando para executar no pipeline. Quanto maior o threshold, maior o número de tarefas para as quais o multiciclo também é considerado uma solução. Pelo aproveitamento do multiciclo, de forma geral o sistema ganha em desempenho. O ganho não é muito alto porque poucas tarefas conseguem efetivamente rodar no multiciclo, já que o pipeline é muito mais eficiente em tempo e consegue ficar logo desocupado. Há perda em energia, porque o consumo de energia aumenta quando as tarefas rodam no multiciclo. A Figura 3 mostra o gráfico correspondente à Tabela 4, com os valores normalizados para a solução estática.

5 ,02,05,0, , Figura 3 - Execução em um sistema multiciclo+pipeline que considera ciclos como métrica Em uma segunda etapa da simulação de um ambiente multiciclo + pipeline, foi considerado como métrica o consumo de energia. Neste caso, seguindo a Tabela 2, a solução estática novamente consideraria o pipeline para todas as tarefas. O resultado desta simulação encontra-se na Tabela 5. Tabela 5 - Resultado de uma execução multiciclo+pipeline que considera energia como métrica Mesmo dispondo do multiciclo, não é possível economizar em energia aproveitando a ociosidade de um processador que tem um consumo maior. Neste caso, a análise procura verificar se a perda em energia foi significativa, se comparada ao ganho em ciclos. A Figura 4 mostra o gráfico correspondente à Tabela 5, com os valores normalizados para a solução estática. Infelizmente, a perda em energia é considerável se comparada ao ganho em ciclos. Isso deve-se ao fato do multiciclo ser muito lento e consumir muito em relação ao pipeline. Se for desejável tomar a energia como métrica, mesmo sujeito a sofrer penalidades em ciclos, é porque o desempenho não representa tanto. Neste caso, é mais vantajoso utilizar escalonamento estático do que escalonamento com TA. A última etapa da simulação de um ambiente multiciclo + pipeline considera como métrica o consumo de potência. Neste caso, seguindo a Tabela 3, a solução estática consideraria a execução no pipeline para 8 tarefas, e a execução no multiciclo para as restantes. O resultado desta simulação encontrase na Tabela 6. Tabela 6 - Resultado de uma execução multiciclo+pipeline que considera potência como métrica Neste caso, o fato do multiciclo ser extremamente lento e consumir muita energia ao mesmo tempo auxiliou o TA a tomar uma decisão benéfica, tanto para ciclos quanto para energia. Isto porque um escalonamento estático não considera a disponibilidade dos processadores. Como o pipeline é mais ágil, o TA alocou mais tarefas para o pipeline, já que a diferença de potência entre o pipeline e o multiciclo é pequena para a maioria das tarefas. Assim sendo, foi possível ganhar tanto em energia (pipeline é mais econômico) quanto em ciclos. A Figura 5 mostra o gráfico correspondente à Tabela 6, com os valores normalizados para a solução estática.,02,05,0, ,975 0, Figura 4 - Execução em um sistema multiciclo+pipeline que considera energia como métrica,0 0,97 0,96 0, Figura 5 - Execução em um sistema multiciclo+pipeline que considera potência como métrica

6 Usar potência média como métrica pode não gerar boas soluções, principalmente em um ambiente onde dois processadores co-existam. A dissipação neste caso é estimada considerando que os dois processadores estarão executando ao mesmo tempo, e o sistema deve estar devidamente equipado para esta situação. O esforço para reduzir o consumo de energia passa a ser mais significativo do que o esforço para reduzir potência. A potência está diretamente relacionada à energia, mas baixa potência pode não significar baixo consumo em energia, e sim, maior tempo de execução. No entanto, há situações em que é melhor utilizar a potência média como métrica do que não utilizar métrica alguma, como em tarefas em que o tempo de execução não é conhecido (tarefas que interagem com usuários, por exemplo). A princípio imaginava-se que as organizações do FemtoJava multiciclo e pipeline fossem antagônicas: a primeira mais lenta, mas econônica em energia e potência; a segunda com maior desempenho, e por outro lado com alto consumo de energia e potência. Como esta comparação não pôde ser aplicada às versões utilizadas, foi feito um novo estudo de caso, considerando as versões FemtoJava VLIW e pipeline. Apesar do FemtoJava VLIW ser baseado em uma versão low-power do FemtoJava [8], a comparação é mais justa pois o VLIW sempre ganha em ciclos e sempre perde em potência. Começando pela primeira etapa da simulação, a Tabela 7 mostra os resultados da execução das 5 tarefas para um sistema composto por um processador FemtoJava pipeline e FemtoJava VLIW, considerando como métrica o número de ciclos. Tabela 7 - Resultado de uma execução VLIW+pipeline que considera ciclos como métrica Um escalonador estático colocaria todas as tarefas para rodar no VLIW neste caso, como é possível verificar na Tabela. Pelo mesmo motivo que no estudo de caso multiciclo + pipeline, o número total de ciclos para uma execução com TA diminuiu se comparado ao da solução estática, pelo simples aproveitamento do pipeline para algumas tarefas. O consumo em energia sofre um pequeno aumento para um threshold mais alto, pois o TA passa a alocar tarefas como IMDCTu, IMDCTu2 e IMDCTu3 ao pipeline, onde o consumo de energia é maior para estas tarefas. A Figura 6 mostra o gráfico correspondente à Tabela 7, com os valores normalizados para a solução estática.,0 0,97 0,96 0,95 0, Figura 6 - Execução em um sistema VLIW+pipeline que considera ciclos como métrica Na segunda etapa do estudo de caso pepeline + VLIW, foi considerado como métrica para o escalonamento das tarefas o consumo de energia. Com relação à energia, o consumo para algumas tarefas é menor no pipeline, enquanto poara outras é menor no VLIW. Os resultados da simulação para este caso são apresentados na Tabela 8. Tabela 8 - Resultado de uma execução VLIW+pipeline que considera energia como métrica Já era esperado que a solução do TA fosse pior em energia se comparada à solução estática, mas a surpresa foi obter piora também no desempenho. Vale lembrar que o número de ciclos é obtido pelo cálculo da média de ciclos gastos para executar as tarefas em todas as simulações. Em algumas simulações, a escolha de tarefas pelo TA foi mais vantajosa, a ponto de resultar em uma execução recorde de ciclos. Por outro lado, outras simulações foram prejudicadas pela ordem de escolha das tarefas para os processadores, o que provocou o aumento da média do número de ciclos por execução, fazendo com que esta superasse o número de ciclos em uma execução que usa escalonamento estático. Um exemplo disto é alocar as tarefas IMDCTu, IMDCTu2 e IMDCTu3 ao pipeline, onde tanto o consumo de energia quanto o número de ciclos para execução é maior para estas tarefas. A Figura 7 mostra o gráfico correspondente à Tabela 8, com os valores normalizados para a solução estática.

7 ,025,02,05,0, Figura 7 - Execução em um sistema VLIW+pipeline que considera energia como métrica Considerando a potência como métrica para escalonamento, o VLIW perde para o pipeline em todas as tarefas, como mostra a Tabela 3. Por isso, alocar tarefas também ao VLIW aumenta o desempenho e pode ainda reduzir o consumo de energia, já que algumas tarefas consomem menos no VLIW do que no pipeline. Os resultados da simulação para este caso são apresentados na Tabela 9. Tabela 9 - Resultado de uma execução VLIW+pipeline que considera potência como métrica A Figura 8 mostra o gráfico correspondente à Tabela 9, com os valores normalizados para a solução estática., ,975 0, Figura 8 - Execução em um sistema VLIW+pipeline que considera potência como métrica O custo do TA não foi considerado na simulação. Considerando que uma versão em hardware do TA fosse utilizada, a penalidade em ciclos considerando todas as 5 execuções do TA no contexto da simulação (uma execução para cada tarefa) seria: TA ciclos = (5*5)* 0,5 = 3 ciclos Onde 5 é o número de tarefas, 5 é o número médio de iterações em cada execução do TA (que representam o número de ciclos necessários para execução do TA em hardware) e 0,5 é a probabilidade do processador para o qual o TA escolheu uma tarefa ser o desocupado. Podese considerar esta probabilidade porque o TA pode executar ainda antes de um processador liberar. Pela comparação com o número total de ciclos de cada execução, que pelos logs do simulador teve valor mínimo de ciclos, optou-se por desprezar os ciclos consumidos pelo TA. O consumo do TA em energia é igual a: TA energia = 3* 3.40= CG Onde 3 é o número de ciclos e 3.40 é a potência do TA em hardware em CG/ciclo. Também foi optado por desprezar o consumo do TA em energia, uma vez que o número mínimo de CGs apresentado em uma execução foi de Conclusões e Trabalhos Futuros O TA é uma opção para o escalonamento de tarefas em redes com processadores heterogêneos, mas uma solução não muito indicada, principalmente se for para executar em software. Os melhores resultados (ganho em ciclos e energia) foram obtidos quando a métrica considerada é potência. Mesmo assim, para qualquer resultado, a utilização do TA não implica em uma diferença de mais de 4% se comparada à utilização de escalonamento estático. De uma forma geral, os resultados de uma execução que utiliza o TA são extremamente ligados à arquitetura e organização dos processadores que compõem a rede. É necessário ressaltar que a aplicação do TA para o problema de alocação de tarefas não foi adequada. Seria mais interessante fazer com que o TA efetivamente encontrasse uma solução ótima para um conjunto de tarefas, por exemplo, solução para execução total em um número mínimo de ciclos. De qualquer forma, o trabalho cumpriu a proposta inicial e apresentou resultados; uma nova abordagem para o TA no contexto de redes heterogêneas pode ser uma proposta de trabalhos futuros. Trabalhos futuros também incluem estender as implementações e o ambiente de simulação do TA para mais de dois processadores e considerar que instruções de uma mesma tarefa podem ser executadas em processadores diferentes. Entre as contribuições do trabalho estão o acréscimo de dois novos benchmarks para o FemtoJava (TA e Random) e a implementação de versões do TA em hardware e software, que podem vir a ser utilizadas em outros trabalhos.

8 Referências Bibliográficas [] V. Cerny, 985. Thermodynamical Approach to the Traveling Salesman Problem: an Efficient Simulation Algorithm. Journal of Optimization Theory and Applications 45(), 4-5. [2] S. Kirkpatrick, C. D. Gelatt, Jr. and M. Vecchi, 983. Optimization by Simulated Annealing. Science 220(4598), [3] G. Dueck and T. Scheuer, 990. Accepting: A General Purpose Optimization Algorithm Appearing Superior to Simulated Annealing. Journal of Computational Physics 90, [4] T. C. Hu, A. B. Khang and C. W. A. Tsao, 995. Old bachelor acceptance. A new class of non-monotone threshold accepting methods. ORSA Journal on Computing 7, 47. [5] Mentor Graphics. Leonardo Spectrum Level 3. versão 2005b.24. [6] S.A. Ito, L. Carro, R.P. Jacobi. Making Java work for microcontroller applications. Design & Test of Computers, IEEE Volume 8, Issue 5, Sept.-Oct. 200 Page(s): [7] A. C. S. Beck, et al. CACO-PS: a general purpose cycle-accurate configurable power simulator. Integrated Circuits and Systems Design, SBCCI Proceedings. 6th Symposium on 8- Sept Page(s): [8] A. C. S. Beck. Carro, L. Um processador Java VLIW com baixo consumo de potência para sistemas embarcados. Iberchip [9] A. C. S. Beck. Carro, L. Uso da Técnica VLIW para Aumento de Performance e Redução do Consumo de Potência em Sistemas Embarcados Baseados em Java. Dissertação apresentada como requisito parcial para a obtenção do grau de Mestre em Ciência da Computação. UFRGS, Porto Alegre, jul

Estudo do impacto de consumo de potência e desempenho na inserção de um Array Reconfigurável na arquitetura Femtojava Multiciclo

Estudo do impacto de consumo de potência e desempenho na inserção de um Array Reconfigurável na arquitetura Femtojava Multiciclo Estudo do impacto de consumo de potência e desempenho na inserção de um Array Reconfigurável na arquitetura Femtojava Mateus Beck Rutzig mbrutzig@inf.ufrgs.br OUTLINE 1. Conceitos 1.1.Sistemas Embarcados

Leia mais

Implementação de Mecanismo de Sincronização entre Threads para a Plataforma FemtoJava

Implementação de Mecanismo de Sincronização entre Threads para a Plataforma FemtoJava Implementação de Mecanismo de Sincronização entre Threads para a Plataforma FemtoJava Rita Kalile Almeida Andrade UFRGS - Universidade Federal do Rio Grande do Sul Instituto de Informática Porto Alegre

Leia mais

Microcontrolador FemtoJava Pipeline (Low Power)

Microcontrolador FemtoJava Pipeline (Low Power) Microcontrolador FemtoJava Pipeline (Low Power) UFRGS Programa de Pós graduação em Computação CMP 237 Arquitetura e Organização de Processadores Prof. Dr. Flávio Rech Wagner Aluno: Paulo Roberto Miranda

Leia mais

Arquitetura de Computadores. Processamento Paralelo

Arquitetura de Computadores. Processamento Paralelo Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple

Leia mais

Análise empírica de algoritmos de ordenação

Análise empírica de algoritmos de ordenação Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:

Leia mais

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho Ciência da Computação Arq. e Org. de Computadores Avaliando e Compreendendo o Desempenho O Que Veremos Avaliando e compreendendo o desempenho: Introdução Definindo desempenho Medindo o desempenho e seus

Leia mais

Arquiteturas Paralelas

Arquiteturas Paralelas ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Arquiteturas Paralelas Medidas de desempenho Alexandre Amory Edson Moreno Índice 2 1. Introdução 2. Medidas de Desempenho Introdução 3 Aumento de desempenho dos

Leia mais

Estudo do impacto de consumo de potência e desempenho na inserção de um Array Reconfigurável na arquitetura Femtojava Multiciclo

Estudo do impacto de consumo de potência e desempenho na inserção de um Array Reconfigurável na arquitetura Femtojava Multiciclo Estudo do impacto de consumo de potência e desempenho na inserção de um Array Reconfigurável na arquitetura Femtojava Mateus Beck Rutzig Universidade Federal do Rio Grande do Sul Instituto de Informática

Leia mais

6 ESCALONAMENTO DE CPU

6 ESCALONAMENTO DE CPU 6 ESCALONAMENTO DE CPU O escalonamento de CPU é ponto chave da multiprogramação. Ela permite que haja mais de um processo em execução ao mesmo tempo. Em ambientes com um único processador, o escalonador

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 17ª Aula Paralelismos nível de tarefas Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Paralelismo no nível de tarefas Paralelismo a nível de thread (TLP Thread-Level

Leia mais

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais. Gerência de Processador Sistemas Operacionais Gerência de Processador Sumário 1. Introdução 2. Funções Básicas do Escalonamento 3. Critérios de Escalonamento 4. Escalonamento 1. Não-Preemptivo 2. Preemptivo 5. Políticas de Escalonamento

Leia mais

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Pensando em Paralelo Pensar em paralelo é uma tarefa que exige disciplina

Leia mais

Algoritmos Computacionais

Algoritmos Computacionais UNIDADE 1 Processador e instruções Memórias Dispositivos de Entrada e Saída Software ARQUITETURA BÁSICA UCP Unidade central de processamento MEM Memória E/S Dispositivos de entrada e saída UCP UNIDADE

Leia mais

6 Estudos de Casos Porta Lógica OU de 4 Entradas

6 Estudos de Casos Porta Lógica OU de 4 Entradas 6 Estudos de Casos Com o objetivo de avaliar a síntese automática de circuitos de QCA usando técnicas de Hardware Evolucionário (EHW), alguns circuitos foram sintetizados e serão apresentados a seguir.

Leia mais

6 Estudo de Casos: Valor da Opção de Investimento em Informação por Aproximação com Números Fuzzy 6.1. Introdução

6 Estudo de Casos: Valor da Opção de Investimento em Informação por Aproximação com Números Fuzzy 6.1. Introdução 6 Estudo de Casos: Valor da Opção de Investimento em Informação por Aproximação com Números Fuzzy 6.1. Introdução Este capítulo apresenta o segundo estudo de casos, no qual também são empregados números

Leia mais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Gerenciamento de Memória Idealmente, o que todo programador deseja é dispor de

Leia mais

Sistemas Operacionais. Escalonamento de processos

Sistemas Operacionais. Escalonamento de processos Sistemas Operacionais Escalonamento de processos 1 Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas

Leia mais

Aula 1: Apresentação do Curso

Aula 1: Apresentação do Curso Aula 1: Apresentação do Curso Fernanda Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Fernanda Passos (UFF) Apresentação do Curso FAC 1 / 30 Estrutura da Disciplina

Leia mais

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register PROCESSADORES Um computador digital consiste em um sistema interconectado de processadores, memória e dispositivos de entrada e saída. A CPU é o cérebro do computador. Sua função é executar programas armazenados

Leia mais

Aula 1: Apresentação do Curso

Aula 1: Apresentação do Curso Aula 1: Apresentação do Curso Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Apresentação do Curso FAC 1 / 30 Estrutura da Disciplina Diego

Leia mais

Escalonamento de Aplicações BoT em Ambiente de Nuvem

Escalonamento de Aplicações BoT em Ambiente de Nuvem Escalonamento de Aplicações BoT em Ambiente de Nuvem Maicon Ança dos Santos 1 Fernando Angelin 1 Gerson Geraldo H. Cavalheiro 1 1 Universidade Federal de Pelotas {madsantos,fangelin,gerson.cavalheiro}@inf.ufpel.edu.br

Leia mais

Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis

Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis Álamo G. Silva, Leonardo A. Casillo Departamento de Ciências Exatas e Naturais Universidade Federal Rural do Semi- Árido

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador LICENCIATURA EM COMPUTAÇÃO Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador SANTO AMARO 2012 JEANDERVAL SANTOS DO CARMO RESENHA Resenha do quarto capítulo: Gerencia

Leia mais

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, euzebioprogramacao@gmail.com 2 29520-000, victor3ifes@gmail.com

Leia mais

Introdução à Computação: Sistemas de Computação

Introdução à Computação: Sistemas de Computação Introdução à Computação: Sistemas de Computação Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Inserindo Testabilidade no FemtoJava

Inserindo Testabilidade no FemtoJava Inserindo Testabilidade no FemtoJava Arquitetura e Organização de Processadores Prof. Dr. Flávio Rech Wagner Ricardo Miotto Redin, Rubens Cesar Belusso {rmredin,rcbelusso}@inf.ufrgs.br Roteiro Introdução

Leia mais

01 Análise de Algoritmos (parte 2) SCC201/501 - Introdução à Ciência de Computação II

01 Análise de Algoritmos (parte 2) SCC201/501 - Introdução à Ciência de Computação II 01 Análise de Algoritmos (parte 2) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir

Leia mais

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador 1 Introdução 1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador possa resolver problemas de forma automática

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Slides adaptados de Prof. Dr. Marcos José Santana, Prof. Dra. Regina Helena Carlucci Santana e Sarita Mazzini Bruschi baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES Adão de Melo Neto 1 INTRODUÇÃO Desde 1950, houveram poucas inovações significativas nas áreas de arquitetura e organização de computadores. As principais

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 19: Memória Virtual: Introdução Diego Passos Última Aula Paginação Método de gerenciamento de memória mais usado hoje. Espaço de endereçamento de um processo é

Leia mais

Infraestrutura de Hardware. Desempenho

Infraestrutura de Hardware. Desempenho Infraestrutura de Hardware Desempenho Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo HW? Qual é a interface entre

Leia mais

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES Tecnologia da informação e comunicação UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES CICLO DE INSTRUÇÕES OU DE EXECUÇÃO Arquitetura de computadores 2 CICLO DE EXECUÇÃO No inicio de cada ciclo de instrução,

Leia mais

Preliminares. Profa. Sheila Morais de Almeida. agosto

Preliminares. Profa. Sheila Morais de Almeida. agosto Preliminares Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2016 Algoritmos Definição - Skiena Algoritmo é a ideia por trás dos programas de computador. É aquilo que permanece igual se o programa

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Prof. Fabio Augusto Oliveira Processos O processador é projetado apenas para executar instruções, não sendo capaz de distinguir qual programa se encontra em execução. A gerência de

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C Simulated Annealing (2//7). C2 Busca Tabu (22//7). C3 Colônia de Formigas

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais. Prof. André Y. Kusumoto Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Conceitos Básicos Escalonamento de CPU O objetivo da multiprogramação é ter sempre algum processo em execução para maximizar a

Leia mais

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Notas da Aula 11 - Fundamentos de Sistemas Operacionais Notas da Aula 11 - Fundamentos de Sistemas Operacionais 1. Escalonamento de Tempo Real Em sistemas de tempo real, o objetivo principal do escalonador é garantir que todos os processos sejam executados

Leia mais

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE III: GERÊNCIA DE RECURSOS SUMÁRIO 8. GERÊNCIA DO PROCESSADOR: 8.1 Introdução; 8.2 Funções Básicas; 8.3 Critérios de Escalonamento;

Leia mais

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS 1/18 ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS Algoritmos 2/18 Algoritmos Algoritmo - sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador)

Leia mais

Complexidade de algoritmos Notação Big-O

Complexidade de algoritmos Notação Big-O Complexidade de algoritmos Notação Big-O Prof. Byron Leite Prof. Tiago Massoni Engenharia da Computação Poli - UPE Motivação O projeto de algoritmos é influenciado pelo estudo de seus comportamentos Problema

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Análise e Projeto de Algoritmos junho - 2018 1 / 40 Este material é preparado

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 8: Escalonamento Diego Passos Última Aula Implementação de Processos e Threads Bloco descritor de processo. Informações de gerência do processo. Contexto. Informações

Leia mais

Termos Gerais Paralelismo, Desempenho Palavras-Chave Chip Multiprocessing, Paralelismo em Nível de Thread, Processador Java

Termos Gerais Paralelismo, Desempenho Palavras-Chave Chip Multiprocessing, Paralelismo em Nível de Thread, Processador Java Utilização do Barramento CoreConnect para Implementação de CMP com Processadores Java Rodrigo Bittencourt Motta Universidade Federal do Rio Grande do Sul Instituto de Informática - Av. Bento Gonçalves,

Leia mais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais DCA-108 Sistemas Operacionais Capítulo 2 Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Multiprogramação Luiz Affonso Guedes 1 Luiz Affonso Guedes 2 Conteúdo Caracterização de um SO Moderno

Leia mais

Introdução a Sistemas Operacionais. Adão de Melo Neto

Introdução a Sistemas Operacionais. Adão de Melo Neto Introdução a Sistemas Operacionais Adão de Melo Neto 41 Definição de SO Sistema Operacional É um conjunto de rotinas (programa) executado pelo processador que controla o funcionamento do computador como

Leia mais

Linear para o Problema de Escalonamento de Workflows em Múltiplos Provedores de Nuvem

Linear para o Problema de Escalonamento de Workflows em Múltiplos Provedores de Nuvem Discretização do Tempo na Utilização de Programação Linear para o Problema de Escalonamento de Workflows em Múltiplos Provedores de Nuvem Thiago A. L. Genez, Luiz F. Bittencourt, Edmundo R. M. Madeira

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais ESCALONAMENTO DE PROCESSOS Processos e Recursos Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que executam no sistema. A questão

Leia mais

7. Introdução à Complexidade de Algoritmos

7. Introdução à Complexidade de Algoritmos 7. Introdução à Complexidade de Algoritmos Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 7. Introdução à Complexidade de Algoritmos Estruturas de Dados 1 / 1 Análise de Algoritmos

Leia mais

BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade

BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 1Q-2016 1 1995 2015 2 Custo de um algoritmo e funções de complexidade Introdução

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Clodoaldo A. Moraes Lima 1 int a; p1 ( ) { int b; int *c; a = b +1; c = malloc (sizeof(int));... } int main ( ) {... } Pilha O que é memória? Pilha Dados Texto Endereço Max

Leia mais

ESTUDO SOBRE O IMPACTO DOS PROCESSADORES HOSPEDEIROS SPARC V8 E NIOS II NO DESEMPENHO DA ARQUITETURA RECONFIGURÁVEL HÍBRIDA RoSA

ESTUDO SOBRE O IMPACTO DOS PROCESSADORES HOSPEDEIROS SPARC V8 E NIOS II NO DESEMPENHO DA ARQUITETURA RECONFIGURÁVEL HÍBRIDA RoSA ESTUDO SOBRE O IMPACTO DOS PROCESSADORES HOSPEDEIROS SPARC V8 E NIOS II NO DESEMPENHO DA ARQUITETURA RECONFIGURÁVEL HÍBRIDA RoSA Alba S. B. Lopes Departamento de Informática e Matemática Aplicada da UFRN

Leia mais

Desempenho. Sistemas de Computação

Desempenho. Sistemas de Computação Desempenho Definição Medidas de desempenho utilizadas Tempo de resposta ou tempo de execução: tempo decorrido entre o início da execução de um programa e o seu final Quantidade de trabalho realizada em

Leia mais

SSC546 -Avaliação de Desempenho de Sistemas

SSC546 -Avaliação de Desempenho de Sistemas Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC546 -Avaliação de Desempenho de Sistemas Parte 1 -Aula 2 Sarita Mazzini Bruschi Material

Leia mais

Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global

Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global GERÊNCIA DE RECURSOS Escalonamento Global Além de prover comunicação, recursos de acesso a rede, memória compartilhada, sistemas de arquivos distribuídos, um sistema operacional distribuído tem que poder

Leia mais

Sistemas Operacionais

Sistemas Operacionais Brainstormig Sistemas Operacionais Processos e multiprogramação Aula 2 Quais são os componentes de um programa? Como podemos representar um programa em execução? Onde ele inicia a executar? Como se mapeia

Leia mais

Implementação de um escalonador de processos em GPU

Implementação de um escalonador de processos em GPU Implementação de um escalonador de processos em GPU Guilherme Martins guilhermemartins@usp.br 6 de abril de 2017 Guilherme Martins (guilhermemartins@usp.br) Implementação de um escalonador de processos

Leia mais

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva Universidade Federal do Rio de Janeiro Pós-Graduação em Informática Microarquiteturas de Alto Desempenho Introdução Introdução Bibliografia: Computer Architecture: A Quantitative Approach. John L. Hennesy,

Leia mais

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1) Aula Passada Processos (Aula 6) Escalonamento de Processos O SO gerencia os recursos do sistema de computação em benefício dos processos Para isso, mantem estruturas de controles Tabelas (memória, I/O,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais 04 Processos Introdução Um sistema de computação quase sempre tem mais atividades a executar que o número de processadores disponíveis. Diferentes tarefas têm necessidades distintas

Leia mais

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

PROCESSOS. Sistemas Operacionais. Vinícius Pádua PROCESSOS Sistemas Operacionais Processo Conceito mais importante em SO SO também é um processo Multiprogramação Relembrando Execução simultânea de vários processos CPU salta de processo em processo Ilusão

Leia mais

Otimização de Sistemas Hidrotérmicos por Enxame de Partículas: Uma Abordagem Orientada a Objetos

Otimização de Sistemas Hidrotérmicos por Enxame de Partículas: Uma Abordagem Orientada a Objetos Otimização de Sistemas Hidrotérmicos por Enxame de Partículas: Uma Abordagem Orientada a Objetos Gelson da Cruz JUNIOR 2, Cassio Dener Noronha VINHAL 3 Lauro Ramon GOMIDES 1, Gelson da Cruz JUNIOR 2, Cassio

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução

Leia mais

Complexidade de Tempo e Espaço

Complexidade de Tempo e Espaço Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando

Leia mais

Descrevendo o Microcontrolador FemtoJava Pipeline em ArchC

Descrevendo o Microcontrolador FemtoJava Pipeline em ArchC Descrevendo o Microcontrolador FemtoJava Pipeline em ArchC UFRGS Programa de Pós graduação em Computação CMP 237 Arquitetura e Organização de Processadores Prof. Dr. Flávio Rech Wagner¹ Aluno: Dieison

Leia mais

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL INTRODUÇÃO À TECNOLOGIA DA ORGANIZAÇÃO COMPUTACIONAL PROFESSOR CARLOS MUNIZ ORGANIZAÇÃO DE UM COMPUTADOR TÍPICO Memória: Armazena dados e programas Processador (CPU - Central Processing Unit): Executa

Leia mais

SSC510 Arquitetura de Computadores. 6ª aula

SSC510 Arquitetura de Computadores. 6ª aula SSC510 Arquitetura de Computadores 6ª aula PARALELISMO EM NÍVEL DE PROCESSOS PROFA. SARITA MAZZINI BRUSCHI Tipos de Paralelismo Instrução (granulosidade fina) Paralelismo entre as instruções Arquiteturas

Leia mais

Teoria da Computação Aula 9 Noções de Complexidade

Teoria da Computação Aula 9 Noções de Complexidade Teoria da Computação Aula 9 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Análise de um Algoritmo em particular Qual é o custo de usar um dado algoritmo para resolver um

Leia mais

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução Introdução Gerência de Memória (Aula 18) Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será

Leia mais

Sistemas Multiprogramáveis/Multitarefa

Sistemas Multiprogramáveis/Multitarefa Sistemas Multiprogramáveis/Multitarefa - Programas submetidos são armazenados em fitas/discos onde são executado sequencialmente -A UCP pode processar seqüencialmente cada job (tarefa), diminuindo o tempo

Leia mais

Equivalência de Fluxos e Modelagem Hierárquica. Profa. Jussara M. Almeida 1 o Semestre de 2014

Equivalência de Fluxos e Modelagem Hierárquica. Profa. Jussara M. Almeida 1 o Semestre de 2014 Equivalência de Fluxos e Modelagem Hierárquica Profa. Jussara M. Almeida 1 o Semestre de 2014 Modelagem Hierárquica Modelos mais sofisticados que podem incluir detalhes adicionais do sistema sendo representado

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais GERÊNCIA da MEMÓRIA MACHADO/MAIA: CAPÍTULO 09 Prof. Pedro Luís Antonelli Anhanguera Educacional Gerenciamento da Memória Programas precisam ser trazidos para a memória para serem

Leia mais

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO DE ARQUIVOS GRANDES Para arquivos binários, é possível implementar o

Leia mais

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues

Faculdade de Computação 3 a Prova de Arquitetura e Organização de Computadores 2 Parte I Prof. Cláudio C. Rodrigues Faculdade de Computação 3 a Prova de Parte I Prof. Cláudio C. Rodrigues Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Nome: Matrícula: Valor: 15 Problemas: P1. Qual o

Leia mais

FERRAMENTA DE PROFILING PARA PROCESSADORES SCHNEIDER, R. C. 1, NEVES, B. S. 1

FERRAMENTA DE PROFILING PARA PROCESSADORES SCHNEIDER, R. C. 1, NEVES, B. S. 1 FERRAMENTA DE PROFILING PARA PROCESSADORES SCHNEIDER, R. C. 1, NEVES, B. S. 1 1 Universidade Federal do Pampa (UNIPAMPA) Bagé RS Brasil RESUMO O aumento da complexidade dos processadores e de suas etapas

Leia mais

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela Arquitetura de Computadores Paralelos Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela Por que estudar Computação Paralela e Distribuída? Os computadores sequenciais

Leia mais

Monitorando o Consumo Energético de Aplicações Concorrentes com Arduino

Monitorando o Consumo Energético de Aplicações Concorrentes com Arduino Monitorando o Consumo Energético de Aplicações Concorrentes com Arduino Bruno Giacobo Pinto Lucas Mendonça da Silva Xavier Gerson G. H. Cavalheiro Laboratory of Ubiquitous and Parallel Systems Universidade

Leia mais

Arquiteturas RISC e CISC. Adão de Melo Neto

Arquiteturas RISC e CISC. Adão de Melo Neto Arquiteturas RISC e CISC Adão de Melo Neto 1 Arquitetura RISC Arquitetura RISC. É um das inovações mais importantes e interessantes. RISC significa uma arquitetura com um conjunto reduzido de instruções

Leia mais

Infra-Estrutura de Software. Escalonamento

Infra-Estrutura de Software. Escalonamento Infra-Estrutura de Software Escalonamento Processos Concorrentes O Modelo de Multiprogramação Multiprogramação de quatro programas Modelo conceitual de 4 processos sequenciais, independentes Somente um

Leia mais

Aula 02: Custos de um algoritmo e funções de complexidade

Aula 02: Custos de um algoritmo e funções de complexidade MCTA028 Programação Estruturada Aula 02: Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-20106 1 Linguagem C: Tipos de dados 2 Linguagem C: Tipos

Leia mais

AVALIAÇÃO DE DESEMPENHO EM UMA NOC DE UMA APLICAÇÃO DISTRIBUÍDA UTILIZANDO UM MIDDLEWARE JAVA

AVALIAÇÃO DE DESEMPENHO EM UMA NOC DE UMA APLICAÇÃO DISTRIBUÍDA UTILIZANDO UM MIDDLEWARE JAVA AVALIAÇÃO DE DESEMPENHO EM UMA NOC DE UMA APLICAÇÃO DISTRIBUÍDA UTILIZANDO UM MIDDLEWARE JAVA Gustavo Siebra Lopes 1, Elias Teodoro da Silva Jr 2 1 Graduando em Engenharia de Telecomunicações - IFCE. Bolsistas

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Aula 10: Escalonadores Preemptivos Diego Passos Última Aula Escalonadores Não-Preemptivos Escalonadores não-preemptivos agem: Quando um processo requisita E/S. Quando

Leia mais

7 Desempenho dos Algoritmos de uma Classe de Usuários em Relação à Distribuição que Representa o Tempo de Permanência do Usuário na Célula

7 Desempenho dos Algoritmos de uma Classe de Usuários em Relação à Distribuição que Representa o Tempo de Permanência do Usuário na Célula 7 Desempenho dos Algoritmos de uma Classe de Usuários em Relação à Distribuição que Representa o Tempo de Permanência do Usuário na Célula Neste capítulo os sete algoritmos de controle de admissão propostos

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 11ª Aula Threads Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados no livro

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 8 Suporte do sistema operacional slide 1 Objetivos e funções Conveniência: Tornar o computador mais fácil de usar. Eficiência:

Leia mais

Escalonamento de Processos Uniprocessador

Escalonamento de Processos Uniprocessador Sistemas Operacionais Escalonamento de Processos Uniprocessador Capítulo 9 IC - UFF 1 Objetivos do Escalonamento É a chave de multiprogramação eficiente deve ser transparente ao usuário Esolher processos

Leia mais

ANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa

ANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa ANÁLISE DE ALGORITMOS: PARTE 1 Prof. André Backes Algoritmos 2 Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa Precisamos escrever o seu algoritmo Um algoritmo

Leia mais

Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global

Gerência de recursos - escalonamento global. GERÊNCIA DE RECURSOS Escalonamento Global. Gerência de recursos - escalonamento global GERÊNCIA DE RECURSOS Escalonamento Global Além de prover comunicação, recursos de acesso a rede, memória compartilhada, sistemas de arquivos distribuídos, um sistema operacional distribuído tem que poder

Leia mais

Parte I Multiprocessamento

Parte I Multiprocessamento Sistemas Operacionais I Estrutura dos SO Prof. Gregorio Perez gregorio@uninove.br 2004 Parte I Multiprocessamento Roteiro 1 Multiprocessadores em Sistemas Fortemente Acoplados 1.1 1.2 1.3 Processamento

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES RCM00014 Haswell wafer ARQUITETURA DE COMPUTADORES Prof. Luciano Bertini Site: http://www.professores.uff.br/lbertini/ Objetivos do Curso Entendimento mais aprofundado do funcionamento

Leia mais

Avaliação de Desempenho de Sistemas Discretos

Avaliação de Desempenho de Sistemas Discretos Modelos Avaliação de Desempenho de Sistemas Discretos Parte II: Modelagem de Sistemas Modelo é uma abstração de um sistema real Apenas as características importantes para a avaliação devem ser consideradas

Leia mais

Avaliação de Desempenho de Sistemas Discretos

Avaliação de Desempenho de Sistemas Discretos Avaliação de Desempenho de Sistemas Discretos Parte II: Modelagem de Sistemas Professor: Reinaldo Gomes reinaldo@computacao.ufcg.edu.br Modelos Modelo é uma abstração de um sistema real Apenas as características

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Sistemas Operacionais Gerência do processador (Escalonamento) Aula 05 Objetivos de um sistema operacional são: Eficiência: relação entre o uso efetivo de um recurso e a quantidade desse recurso

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Eduardo Ferreira dos Santos Engenharia de Computação Centro Universitário de Brasília UniCEUB Abril, 2016 1 / 20 Sumário 1 Estrutura dos Sistemas Operacionais 2 System Calls 2 / 20

Leia mais

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

Algoritmos e Estruturas de Dados II. Trabalho Prático 2 Algoritmos e Estruturas de Dados II Entrega: 01/10/09 Devolução: 22/10/08 Trabalho individual Prof. Jussara Marques de Almeida Trabalho Prático 2 Simulação é uma técnica muito utilizada para avaliação

Leia mais

Teoria da Computação Aula 8 Noções de Complexidade

Teoria da Computação Aula 8 Noções de Complexidade Teoria da Computação Aula 8 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Motivação: Por que estudar algoritmos? Perguntas: - Por que estudar algoritmos se os computadores

Leia mais

Code Compression for Embedded Systems

Code Compression for Embedded Systems Daniel Stefani Marcon, Thiago Nunes Kehl 30 de maio de 2008 1 2 3 4 Sistemas Embarcados os sistemas embarcados são dispositivos invisíveis se limitam a executar bem uma única tarefa basicamente qualquer

Leia mais

Microarquiteturas Avançadas

Microarquiteturas Avançadas Universidade Federal do Rio de Janeiro Arquitetura de Computadores I Microarquiteturas Avançadas Gabriel P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com

Leia mais