Implementação de Mecanismo de Sincronização entre Threads para a Plataforma FemtoJava
|
|
- Francisca Morais Esteves
- 6 Há anos
- Visualizações:
Transcrição
1 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 RS {rkaandrade@inf.ufrgs.br} Resumo A exploração do paralelismo é uma das formas de aumentar o desempenho podendo-se até economizar energia. Uma das abordagens possíveis é a exploração do paralelismo ao nível de threads. Entretanto, o uso de threads pode inserir inconsistências, caso recursos compartilhados sejam acessados simultaneamente. Neste contexto se insere este trabalho, cujo objetivo está em alterar a arquitetura do femtojava, através da adição de uma nova instrução que permita o obter sincronização entre múltiplas threads. Palavras-chave: Sincronização, FemtoJava, Multi-threads, Escalonamento. 1 Introdução Uma das linhas de pesquisa do Laboratório de Sistemas Embarcados (LSE) situa-se em torno do micro-controlador FemtoJava, o qual é baseado numa máquina de pilha e que executa nativamente um subconjunto dos bytecodes Java. Diversos trabalhos têm sido realizados em torno deste micro-controlador, tais como a implementação de diferentes variações organizacionais e arquiteturais, como versões multiciclo, pipeline e VLIW; de um escalonador; e de um garbage collector. Estes trabalhos vêm permitindo o uso dos almejados recursos de orientação a objetos. Entretanto, à medida que a capacidade computacional do sistema aumenta a tendência é que ocorra também um crescimento da área do dispositivo e do consumo de energia. A exploração do paralelismo é uma das formas de aumentar o desempenho podendo-se até economizar energia. Atualmente, a granularidade do paralelismo é mais explorada ao nível de instruções (ILP). Porém, além de possuir uma capacidade finita, essa abordagem não se consegue extrair um grau desejável de paralelismo em determinados domínios de aplicações. Dessa forma, uma tendência é explorar paralelismo ao nível de threads (TLP).
2 Threads compartilham o mesmo espaço de endereçamento com o processo pai e com os demais threads, executam em um único processador sem troca de contexto e fazem um melhor uso de recursos. Entretanto, o uso de threads executando de forma concorrente pode inserir inconsistências, caso recursos compartilhados sejam acessados simultaneamente. Para evitar isso, o acesso a esses recursos deve ser sincronizado, de forma a garantir que determinadas partes do código, as seções críticas, sejam executadas por no máximo uma thread de cada vez. Neste contexto se insere este trabalho, cujo objetivo está em alterar a arquitetura do FemtoJava, através da adição de uma nova instrução, a synchronized, que permita obter sincronização entre múltiplas threads. Essa instrução consiste de sincronizar o acesso a uma determinada seção crítica compartilhada entre as threads executadas por um mesmo processador FemtoJava Multiciclo. Na Seção 2 são apresentados conceitos relacionados ao trabalho, uma breve descrição do FemtoJava e a especificação da instrução de sincronização em Java. Na seção 3 são discutidos detalhes da implementação realizada neste trabalho. E por fim, na seção 4 e 5 são discutidos os resultados, conclusões e trabalhos futuros. 2 Conceitos 2.1 O femtojava Multiciclo O processador FemtoJava [1] é um microcontrolador baseado em operações de pilha e que executa bytecodes Java. O Femtojava caracteriza-se por executar um conjunto reduzido de instruções Java e possuir uma arquitetura Harvard. Este processador foi projetado especificamente para a utilização em sistemas embarcados. Possui algumas características interessantes, tal como o tamanho da parte de controle ser diretamente proporcional ao número de instruções utilizadas. Ou seja, a partir de uma ferramenta disponível, o bytecode Java gerado é analisado e a parte de controle suporta apenas aquelas instruções que são utilizadas pela aplicação [6]. Vale ressaltar que, para a implementação de aplicações utilizando threads, aplicações alvo deste trabalho, foi necessário prever o uso da API de tempo-real [4]. Esta API permite a expressão de elementos comuns em sistemas de tempo-real como tarefas,
3 escalonadores, temporizadores, threads, dentre outros. A sua concepção foi baseada na Real-Time Specification for Java RTSJ ([8] e [9]). Para gerar aplicações a serem executadas pelo FemtoJava, foi utilizada a ferramenta SASHIMI (System as Software and Hardware in Microcontrollers) [6]. O SASHIMI é um ambiente para o projeto de aplicações embarcadas e geração de microcontroladores Java. Para este trabalho no qual há apenas simulação, foram utilizados apenas os arquivos correspondentes a RAM e a ROM do FemtoJava também gerados pela ferramenta. A simulação do FemtoJava foi realizada no ambiente CACO-PS (Cycle-Accurate Configurable Power Simulator) [3]. O simulador utiliza uma descrição arquitetural do microcontrolador, avaliando a potência consumida de cada bloco funcional que é ativado a cada ciclo de relógio durante a execução de todas as instruções de uma dada aplicação. 2.2 Sincronização A maior parte dos programas multi-threads necessitam que as threads se comuniquem de forma a sincronizar suas ações. Para isso, a linguagem Java provê locks. Os locks são objetos compartilhados, através do qual é possível coordenar o acesso simultâneo entre threads a um determinado recurso, chamada seção crítica, impedindo assim que sejam inseridas inconsistências durante a execução da aplicação. Para isso, cada thread precisa adquirir um lock antes de usar o recurso e liberá-lo após executar a seção crítica. A isso dá-se o nome de exclusão mútua. Mesmo quando a thread que possui o lock for interrompida, nenhuma outra thread poderá adquiri-lo até que a primeira volte a utilizar o processador, termine a tarefa e libere o lock para outra thread. Java explicita operações de exclusão mútua em bytecodes. Os bytecodes monitorenter e monitorexit são utilizados para esta tarefa, assim um trecho de código fonte como o do ilustrado na Figura 1 após a compilação é transformado nos bytecodes ilustrado na Figura synchronized (lockx) { //instruções java; } Figura 1 - Código fonte Java
4 Figura 2 Bytecodes Java 3 O Mecanismo de Sincronização no FemtoJava Esse trabalho consistiu em adicionar a instrução synchronized ao conjunto de instruções do micro-controlador femtojava. Para isso, foi necessária a implementação de um componente, o MonitorLock, o qual ficou responsável pelo gerenciamento do acesso das threads à seção crítica. A implementação deste mecanismo deu-se conforme ilustrado na Figura 3. Um buffer circular de dimensões fixas mantém uma lista dos objetos de lock que estão sendo utilizados num dado instante e as respectivas threads que estão disputando aquele determinado lock para acessar a seção crítica. As referências destacadas simbolizam o endereço das threads que estão liberadas. As demais referências correspondem a threads que estão aguardando a liberação do lock. MonitorLock Obj de Lock Ref lockx Ref locky Ref lockz Threads que disputam o Lock Ref ThreadA Ref ThreadB Ref ThreadC Ref ThreadY Ref ThreadK Ref ThreadD Ref ThreadC Código da ThreadC... synchronized (lockx) { //instruções java; } Figura 3 Coube a este componente, ainda, manter um mecanismo de notificação ao escalonador, informando-lhe quando uma determinada thread deveria ser bloqueada à medida que as mesmas tentassem acessar a seção crítica, porém o lock pertencesse à outra
5 thread ou desbloqueadas quando uma thread que detém o lock terminasse de executar a seção crítica. Quando uma thread tiver de ser bloqueada, o componente emite um sinal ao timer, notificando-o de que o escalonador deve interromper a thread que está sendo executada. Deve-se deixar claro que a interrupção ocorrerá somente após o término da instrução que está sendo executada, no caso, monitorenter, garantindo que não haverá inconsistências nos estados das threads. Adicionalmente, a thread passa para o estado bloqueada, o que lhe impede de ser escalonada. De forma análoga ocorre quando uma thread libera o lock, ou seja, executa um monitorexit. Neste caso não é necessário emitir interrupção, visto que a thread poderá continuar sua execução até que finalize seu time-slice (fatia de tempo para execução). Porém, faz-se necessário que a thread seguinte da fila seja desbloqueada, possibilitando que o escalonador saiba que aquela thread poderá ser executada. Esse mecanismo está de acordo com a especificação da API de tempo-real, a qual introduz um espaço de memória das threads destinado a informar quando a mesma está bloqueada ou não. Esse espaço de memória é destinado ao escalonador, que só escalona threads não bloqueadas. Outra abordagem cogitada para o tratamento da sincronização previa a inclusão apenas a thread detentora do lock no buffer. Com isso haveria um ganho quanto a área. Porém, essa implementação implicaria em threads desbloqueadas, executando uma espera ocupada, utilizando o processador para realizar comparações e chamadas para verificar a liberação do lock. Devido a esse problema, essa abordagem foi descartada. Vale lembrar que, devido ao FemtoJava ser uma máquina de pilha, os valores referentes aos endereços da thread e do lock são obtidos a partir do topo da pilha. Contudo, segundo a especificação Java, o valor do endereço da thread executada não está no topo da pilha. Por isso foi necessário introduzir o bytecode aload_0 antes dos bytecodes monitorenter e monitorexit do código da ROM gerada a partir da aplicação Java, a fim de que o valor referente ao endereço da thread na memória fosse empilhado e posteriormente consumido durante a execução das intruções. Esta alteração foi realizada na especificação do ambiente Sashimi. A interface do componente implementado ficou conforme mostrado na Figura 4. Os sinais de entrada sig_a_out e sig_b_out correspondem aos valores contidos no topo da
6 pilha, ou seja, a referência para o lock e para a thread que está sendo executada. Os demais sinais de entrada foram inseridos para permitir a manutenção do contexto quando não houvesse necessidade de emitir nenhuma interrupção (sig_tf0) ou escrita (sig_ram_rw = 1) do conteúdo sig_b_in na memória no endereço sig_mar_out. Sig_a_out Sig_b_out sig_tf0_t sig_mar_out_t sig_ram_rw_t sig_b_in_ MonitorLock 2 word_ctrl sig_tf0 sig_mar_out sig_ram_rw sig_b_in Figura 4 O desenvolvimento deste componente seguiu as seguintes etapas: implementação do componente na linguagem C; implementação de aplicações teste com a ferramenta Sashimi; adição do componente e simulação do femtojava na ferramenta CACO-PS. 4 Resultados Com a adição deste componente ao micro-controlador femtojava, obteve-se um mecanismo de sincronização entre threads, garantindo resultados consistentes após a execução das mesmas. O componente foi validado por meio da simulação utilizando uma aplicação Produtor x Consumidor, implementada utilizando as classes e as interfaces da API de tempo-real. A instrução adicionada teve uma latência de 9 ciclos de clock. Esse número é justificado pelos ciclos necessários para efetuar o incremento do PC, o acesso à memória para atualizar o estado das threads e pela atualização da pilha.
7 5 Conclusões e trabalhos futuros Neste trabalho foi descrito o mecanismo implementado para obter sincronização entre threads na plataforma FemtoJava. Esse mecanismo permitirá a exploração de paralelismo no nível de threads nas aplicações desenvolvidas para esta plataforma. Vale ressaltar que todas as instruções executadas no FemtoJava Multiciclo são atômica. Com isso, garante-se que nenhuma das instruções será interrompida pelo durante sua execução, o que poderia ocasionar em inconsistências. Como possíveis trabalhos futuros, propõe-se a implementação do componente em VHDL e extração de mais resultados. Sugere-se ainda a implementação de um mecanismo que torne a inserção de timers parametrizável. Isso se faz necessário devido ao fato de as aplicações que utilizam a API de tempo-real apresentarem um dos timers exclusivo para o escalonador, restando apenas mais um timer para a aplicação. Referências bibliográficas [1]. Making Java Work for Microcontroller Applications, Sérgio Akira Ito, Luigi Carro, Ricardo Pezzuol Jacobi. [2]. S. A. Ito, L. Carro, R. P. Jacobi. Making Java Work for Microcontroller Applications, IEEE Design & Test of Computers, vol. 18, n. 5, 2001, pp [3] A.C.Beck Filho, F.R.Wagner, L.Carro. CACO-PS: A General Purpose Cycle-Accurate Configurable Power Simulator. In: SBCCI'03 16th Symposium on Integrated Circuits and Systems Design. São Paulo, Brazil, September [4]. Optimizing Real-time Embebed Systems Development Using a RTSJ-based API, D. Mulchandani, Java for Embedded Systems, IEEE Internet Computing, vol. 2, no. 3, May/June 1998, pp [5]. Sérgio Akira Ito, Luigi Carro, Ricardo Pezzuol Jacobi. System Design Based on Single Language and Single-Chip Java ASIP Microcontroller.Design Automation and Test in Europe. Proceedings, Paris, France: IEEE Computer Society Press, p [6]. Manual do Sashimi, versão janeiro [7]. Manual do CACO-PS, versão janeiro [8] G.Bollella, J. Gosling, B. Brosgol. The Real-Time Specification for Java Disponível em:
8 [9] Sun Microsystems. The Real-Time Java Platform Disponível em:
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 maisEstudo 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 maisAlgoritmo para carga dinâmica de tarefas em processadores heterogêneos
Algoritmo para carga dinâmica de tarefas em processadores heterogêneos Daniel Barcelos danielb@inf.ufrgs.br Emilena Specht emilenas@inf.ufrgs.br Resumo Este artigo apresenta uma versão do algoritmo threshold
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 5: Exclusão Mútua Diego Passos Última Aula Programação Concorrente Programas compostos por mais de um processo ou thread. Pode trazer benefícios: Simplificar o
Leia maisAVALIAÇÃ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 maisSistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca
Sistemas Operacionais Processos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Processo Conceito: Um programa em execução 1. Ao digitar hello, os caracteres
Leia maisSistemas 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 maisSincronização e Comunicação entre Processos. Adão de Melo Neto
Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.
Leia maisESTUDO 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 maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.
Leia maisSistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia
Sistemas Operacionais BSI / UAB 2013 Hélio Crestana Guardia Visão do SO SO: camada de software, executado diretamente sobre o hardware (físico ou virtual) Permite que hardware seja usado de forma eficiente
Leia maisProcesso. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software
Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições
Leia maisProcesso. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software
Processo Um programa em execução Gerência de Processos Contexto de Processo Conjunto de Informações para gerenciamento de processo CPU: Registradores Memória: Posições em uso E/S: Estado das requisições
Leia maisArquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura
Leia maisImplementação da Especificação de Tempo Real Java para o EPOS
UNIVERSIDADE FEDERAL DE SANTA CATARINA Curso de Ciências da Computação Implementação da Especificação de Tempo Real Java para o EPOS ANDERSON LUIS ZAPELLO Florianópolis, julho de 2005 ANDERSON LUIS ZAPELLO
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:
Leia maisConcorrência em Processos
Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação
Leia maisA Linguagem Java no contexto de Sistemas de Tempo Real
A Linguagem Java no contexto de Sistemas de Tempo Real Alunos: Hugo Tácito Azevedo de Sena 200318314 Ricardo Alexandre da Rocha Dias - 200618318 Sumário Objetivos Importância dos sistemas embutidos e de
Leia maisPROCESSADORES 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 maisSistemas 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 maisINTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13
INTRODUÇÃO AOS SISTEMAS OPERACIONAIS outubro/2013 SEMANA 13 Conceitos sobre s. Visão geral, s de usuário e de, modelos de multiing, ciclo de vida. Exemplos nos sistemas operacionais. 1 - Introdução Thread
Leia maisSSC0611 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 maisFerramentas para Programação em Processadores Multi-Core
Ferramentas para Programação em Processadores Multi-Core Prof. Dr. Departamento de Informática Universidade Federal de Pelotas Sumário Introdução Arquiteturas multi-core Ferramentas de programação Prática
Leia maisFundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads
Threads Prof. Edwar Saliba Júnior Março de 2007 1 Definição Partes de um processo que compartilham mesmo espaço de endereçamento Sub-rotina de um programa executada paralelamente ao programa chamador (execução
Leia maisENGENHARIA DE SISTEMAS MICROPROCESSADOS
ENGENHARIA DE SISTEMAS MICROPROCESSADOS Prof. Pierre Vilar Dantas Turma: 0040-A Horário: 4N Aula 01-26/07/2017 Plano de ensino Professor www.linkedin.com/in/pierredantas/ TÓPICOS Conceitos gerais. Evolução
Leia maisSistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 06 Processos 2 1 Processos A gerência de um ambiente multiprogramável é
Leia maisArquitetura 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 maisDescrevendo 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 maisSistemas de Informação. Sistemas Operacionais
Sistemas de Informação Sistemas Operacionais PROCESSOS E THREADS PARTE I SUMÁRIO 2. PROCESSO: 2.1 Introdução; 2.2 Estrutura do Processo; 2.3 Estados do Processo; 2.4 Mudanças de Estado do Processo; 2.5
Leia maisENADE 2011 SISTEMAS OPERACIONAIS
ENADE 2011 SISTEMAS OPERACIONAIS SOs: conteúdos comuns Gerência de processos/processador Comunicação Concorrência e Sinc. de Processos Gerenciamento de Memória Alocação de Recursos e Deadlocks Sistemas
Leia maisEstudo 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 maisSistemas Embarcados. Prof. Dr. Fábio Rodrigues de la Rocha. (Apresentação) 1 / 45
Sistemas Embarcados Apresentação Prof. Dr. Fábio Rodrigues de la Rocha (Apresentação) 1 / 45 Sumário Sobre o que trata a disciplina? (Apresentação) 2 / 45 Sumário Sobre o que trata a disciplina? Página
Leia maisLabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?
LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar
Leia maisPLANEJAMENTO DAS DISCIPLINAS DE SISTEMAS DIGITAIS NA EC3. Workshop de Graduação do PCS Prof. Edson S. Gomi 31 de julho de 2018
PLANEJAMENTO DAS DISCIPLINAS DE SISTEMAS DIGITAIS NA EC3 Workshop de Graduação do PCS Prof. Edson S. Gomi 31 de julho de 2018 Disciplina PréRequisito Semestral Quadrimestral PCS3115 Sistemas Digitais I
Leia maisProcessos. Adão de Melo Neto
Processos Adão de Melo Neto 1 Processos Introdução Para se poder controlar o uso concorrente (ao mesmo tempo) do processador, da memória e dos dispositivos de E/S, um programa deve sempre estar sempre
Leia maisMicroarquiteturas 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 maisUnidade 2. Processos Threads Concorrência em Java
Unidade 2 Programação Concorrente Processos Threads Concorrência em Java Processos Definição Um programa em execução em uma máquina. Identificado pelo seu PID (Process Identifier). A unidade de processamento
Leia maisSistemas 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 maisVariância dos Tempos de Resposta
Variância dos Tempos de Resposta Rômulo Silva de Oliveira ebook Kindle, 2018 www.romulosilvadeoliveira.eng.br/livrotemporeal Outubro/2018 1 Introdução Fontes da Variância do Tempo de Resposta Variância
Leia maisSISTEMAS OPERACIONAIS
SISTEMAS OPERACIONAIS Conteúdo Introdução ao S.O Gerenciamento de processos. Gerenciamento de memória. Dispositivos de Entrada/Saída. Sistemas de arquivos. Gerenciamento de processos Processos Um processo
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 7: Implementação de Processos e Threads Diego Passos Revisão Programação Concorrente e Multiprogramação SOs modernos permitem diversos processos em memória. Cada
Leia mais1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?
1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU? 2 O que é ambiente de execução? 3 Qual a finalidade da PCB? 4 Quais os componentes básicos da PCB? 5 Quais os 3 grupos de elemento
Leia maisMétodos de Sincronização
Métodos de Sincronização Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Maio, 2017 1 / 31 Sumário 1 Sistemas multiprogramáveis 2 Mecanismos de sincronização
Leia maisProcessos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
Leia maisProgramação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
Leia maisComunicação entre Processos
Programação Paralela e Distribuída Ordenação e Sincronização Prof. Msc. Marcelo Iury de Sousa Oliveira marceloiury@gmail.com http://sites.google.com/site/marceloiury/ Comunicação entre Processos Processos
Leia maisSistema Operacional Para Avaliação Gerência de Memória
SOPA Versão 1.1 18/04/2012 Sistema Operacional Para Avaliação - Definição O trabalho proposto é a implementação de um simulador de Sistema Operacional com programação concorrente para uma MÁ-QUINA. O processador
Leia maisSistemas 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 mais14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo
Conceito de processo Os computadores executam várias operações ao mesmo tempo. - Compilar um programa; - Enviar um arquivo para a impressora; - Exibir uma página web; - Reproduzir músicas; - Receber mensagens
Leia maisThread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41
Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: leonardbarreto@gmail.com.br fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread
Leia maisUNIDADE 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 maisTermos 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 maisSincronização e comunicação entre processos
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Sincronização e comunicação entre processos Em um sistema multiprogramável com
Leia maisModelo de Von Neumann
1 Modelo de Von Neumann Memória UC ALU Entrada Saída ACC 2 Arquitetura de Von Neumann 3 O Computador 4 Processador Microprocessadores São processadores contidos em um único encapsulamento (CI). Microcontroladores
Leia maisComunicação entre processos (2)
Comunicação entre processos (2) Pedro Cruz EEL770 Sistemas Operacionais Lembretes Proposta de trabalho Enviar para cruz@gta.ufrj.br Prazo: dia 02 de abril 2 Aula passada Comunicação entre processos é útil
Leia maisSistemas Operacionais Aula 7
Sistemas Operacionais Aula 7 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Leia maisINE 5645 Programação Paralela e Distribuída
INE 5645 Programação Paralela e Distribuída Prof. João Bosco M. Sobral INE - UFSC bosco@inf.ufsc.br Urian K. Bardemaker PPGCC - INE - UFSC uriank@gmail.com Unidade 2 Programação Concorrente Processos Threads
Leia maisLabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...
LabSO Gerência de Processos Retrospectiva da aula passada... AULA 4 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Na aula passada... Processos Estados do processo
Leia maisArquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)
Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado) Capítulo 3 Concorrência Agenda Introdução Interrupções e exceções Operações de Entrada/Saída Buffering
Leia maisIntroduçã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 maisCarlos Eduardo Batista Centro de Informática - UFPB
Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação Arquitetura de computadores modernos Desafios da programação concorrente Definição de concorrência Correr junto Disputa por
Leia maisDavidson Rodrigo Boccardo
Fundamentos em Sistemas de Computação Davidson Rodrigo Boccardo flitzdavidson@gmail.com Componentes de um SO Gerenciamento de Processos Sistema de Arquivos Gerenciamento de Entrada/Saída Gerenciamento
Leia maisSistemas 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 maisNotas da Aula 7 - Fundamentos de Sistemas Operacionais
Notas da Aula 7 - Fundamentos de Sistemas Operacionais 1. Organização de um Processo em Memória Quando um processo é criado, o SO aloca uma porção da memória física da máquina para a criação do espaço
Leia maisGerência de Recursos. Gerência do Processador
Gerência de Recursos Gerência do Processador Escalonamento Não-Preemptivos e Preemptivos Preempção - possibilidade de o SO interromper um processo em execução e substituí-lo por um outro. O Escalonamento
Leia maisAULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação PROGRAMAÇÃO PARALELA
Leia maisSistemas Operacionais
Introdução Inst tituto de Info ormátic ca - UF FRGS Sistemas Operacionais i Multithreading Aula 04 Necessidade de executar atividades concorrentes, porém cooperantes ou que compartilhem dados endereçamento
Leia maisSistemas Operacionais de Tempo Real. Prof. Andre Luis Meneses Silva
Sistemas Operacionais de Tempo Real Prof. Andre Luis Meneses Silva andreluis.ms@gmail.com O que é um Sistema Operacional? Provê um ambiente para execução de programas. Abstração de processos para multitarefa/
Leia maisSSC0640 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 maisAULA 03: FUNCIONAMENTO DE UM COMPUTADOR
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?
Leia maisAlgoritmos de escalonamento
Algoritmos de escalonamento Escalonamento de Processos Sistemas Interativos Algoritmos para Sistemas Interativos: First-Come-First-Served (FIFO) Round-Robin; Prioridade; Múltiplas Filas; Utilizam escalonamento
Leia maisSistemas Operacionais. Conceitos de Hardware
Sistemas Operacionais Conceitos de Hardware Sumário 1. Introdução 7. RISC e CISC 2. Processador 1. Operações de Processamento 2. Unidade de Controle 3. Ciclos de uma Instrução 3. Memória 1. Memória Principal
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java
Aula 12 - Threads e Concorrência em Java Conteúdo Programático desta aula Aplicar os conceitos e threads, processos concorrentes e sincronização em pequenos programas. Aplicar e verificar os conceitos
Leia maisExclusão Mútua (mutex)
2004-2017 Volnys Bernal 1 Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Tópicos Exclusão Mútua (Mutex)
Leia maisRedes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 6. THREAD: 6.1 Introdução; 6.2 Ambiente Monothread; 6.3 Ambiente Multithread; 6.4 Arquitetura
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 5 Gerenciamento de Processos Prof. Belarmino Execução de Processos Já vimos que o processador executa os processos entregando uma fatia de tempo (time slice) para
Leia maisSincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)
2004-2013 Volnys Bernal 1 2004-2013 Volnys Bernal 2 Tópicos Exclusão Mútua (mutex) Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Exclusão Mútua () Objetivo, utilidade, requisitos
Leia maisTécnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos 10º ano
Técnico de Gestão e Programação de Sistemas Informáticos Sistemas Operativos 10º ano Introdução aos Sistemas Embebidos Vivemos num mundo onde o software desempenha um papel crítico Mas a maior parte deste
Leia maisMicrocontroladores. Rafael Silva de Lima https://sites.google.com/site/pensante91/
Microcontroladores Rafael Silva de Lima rafael_silvadelima@yahoo.com.br https://sites.google.com/site/pensante91/ CETTPS Centro de Ensino Técnico e Profissionalizante Curso Técnico em Automação/ Eletrotécnica
Leia maisSistemas Operacionais Aula 3
Sistemas Operacionais Aula 3 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Leia maisRedes 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 maisSistemas Distribuídos Aula 3
Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor
Leia maisINTRODUÇÃ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 maisSistemas 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 maisAula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela
Aula 6: Comunicação entre processos Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela (-- motivação --) Processos em execução no sistema operacional podem ser: Independentes:
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Fundamentos Paradigma do produtor-consumidor Sincronização de Processos Produtor while (count == BUFFER_SIZE) ; //no-op //adiciona
Leia maisSistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional
Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional ARQUITETURA E IMPLEMENTAÇÃO Pacote de Threads Conjunto de rotinas disponíveis para que uma aplicação utilize as facilidades dos threads.
Leia maisSistemas Distribuídos Aula 7
Sistemas Distribuídos Aula 7 Aula passada Atomicidade Test-and-set Locks revisitado Semáforos Dois problemas Aula de hoje Limitação dos semáforos Monitores Variáveis de condição Semântica do signal Sincronização
Leia maisUniversidade 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 maisAlgoritmos 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 maisThreads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012
1 2005-2009 Volnys Bernal 1 2005-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Interface de threads Interfaces de threads de usuário x threads de núcleo
Leia maisExploração do Espaço de Projeto em Hw/Sw Co-design de Sistemas Tempo-Real Embarcados Orientados a Objetos: o Objeto Escalonador
Exploração do Espaço de Projeto em Hw/Sw Co-design de Sistemas Tempo-Real Embarcados Orientados a Objetos: o Objeto Escalonador Elias Teodoro Silva Jr 1,4, Marco A. Wehrmeister 1, Fabiano C. Carvalho 1,
Leia maisLINGUAGENS LÓGICAS E PROGRAMAÇÃO CONCORRENTE
LINGUAGENS LÓGICAS E PROGRAMAÇÃO CONCORRENTE Adriana Nery Programação lógica Paradigma Predicados Dedutiva) baseado no Cálculo de (Lógica Matemática Exemplo: Zé Carioca é um papagaio. Todo papagaio é uma
Leia maisCONCURSO PÚBLICO PARA PROVIMENTO DE CARGO EFETIVO PROFESSOR DE ENSINO BÁSICO, TÉCNICO E TECNOLÓGICO Edital 20/2015 Campus Rio Pomba FOLHA DE PROVA
Tema 01: CONCORRÊNCIA ENTRE PROCESSOS Descreva os problemas que podem existir entre os processos concorrentes e os mecanismos para solução desses problemas utilizados por Sistemas Operacionais atuais.
Leia maisSistemas Operacionais. Prof. Fabio Augusto Oliveira
Sistemas Operacionais Prof. Fabio Augusto Oliveira Threads Um processo representa uma sequência de instruções única, executada paralelamente a outra seqüências de instruções. Um thread é uma maneira de
Leia maisCaracterísticas Linux - CentOS
FACULDADE DE TECNOLOGIA SENAC GOIÁS Sistemas Operacionais Leandro Soares, Rodrigo Mascarenhas, Pedro Henrique, Jonatas Edward Características Linux - CentOS Lucília Ribeiro GOIÂNIA, 2015 Leandro Soares,
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 1: Introdução e Conceitos Diego Passos Informações Básicas Horário: terças e quintas, 16h. Salas: 442/235 Contato: Por e-mail: dpassos@ic.uff.br Pela página: http://www.midiacom.uff.br/~diego/sisop/
Leia maisRedes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período
Redes de Computadores INF201 - Fundamentos de Sistemas Operacionais - 2º Período PARTE II: PROCESSOS E THREADS SUMÁRIO 5. PROCESSO: 5.1 Introdução; 5.2 Estrutura do Processo; 5.3 Estados do Processo; 5.4
Leia mais