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

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

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

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) 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

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

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

Algoritmo 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 mais

Fundamentos de Sistemas Operacionais

Fundamentos 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 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

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas 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 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

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sincronizaçã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 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

Fundamentos de Sistemas Operacionais

Fundamentos 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 mais

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas 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 mais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. 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 mais

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. 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 mais

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Arquitetura 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 mais

Implementação da Especificação de Tempo Real Java para o EPOS

Implementaçã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 mais

Fundamentos de Sistemas Operacionais

Fundamentos 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 mais

Concorrência em Processos

Concorrê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 mais

A Linguagem Java no contexto de Sistemas de Tempo Real

A 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 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

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

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

INTRODUÇÃ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 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

Ferramentas para Programação em Processadores Multi-Core

Ferramentas 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 mais

Fundamentos de Sistemas Operacionais. Threads. Prof. Edwar Saliba Júnior Março de Unidade Threads

Fundamentos 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 mais

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

ENGENHARIA 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 mais

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.

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. 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 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

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

Sistemas de Informação. Sistemas Operacionais

Sistemas 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 mais

ENADE 2011 SISTEMAS OPERACIONAIS

ENADE 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 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

Sistemas Embarcados. Prof. Dr. Fábio Rodrigues de la Rocha. (Apresentação) 1 / 45

Sistemas 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 mais

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

LabSO 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 mais

PLANEJAMENTO 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 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 mais

Processos. Adão de Melo Neto

Processos. 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 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

Unidade 2. Processos Threads Concorrência em Java

Unidade 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 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

Variância dos Tempos de Resposta

Variâ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 mais

SISTEMAS OPERACIONAIS

SISTEMAS 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 mais

Fundamentos de Sistemas Operacionais

Fundamentos 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 mais

1 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? 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 mais

Métodos de Sincronização

Mé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 mais

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Processos 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 mais

Programação Concorrente

Programaçã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 mais

Comunicação entre Processos

Comunicaçã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 mais

Sistema Operacional Para Avaliação Gerência de Memória

Sistema 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 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

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

14/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 mais

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Thread. 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 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

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

Sincronização e comunicação entre processos

Sincronizaçã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 mais

Modelo de Von Neumann

Modelo 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 mais

Comunicação entre processos (2)

Comunicaçã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 mais

Sistemas Operacionais Aula 7

Sistemas 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 mais

INE 5645 Programação Paralela e Distribuída

INE 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 mais

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

LabSO 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 mais

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Arquitetura 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 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

Carlos Eduardo Batista Centro de Informática - UFPB

Carlos 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 mais

Davidson Rodrigo Boccardo

Davidson 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 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

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Notas 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 mais

Gerência de Recursos. Gerência do Processador

Gerê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 mais

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

AULA 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 mais

Sistemas Operacionais

Sistemas 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 mais

Sistemas Operacionais de Tempo Real. Prof. Andre Luis Meneses Silva

Sistemas 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 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

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

AULA 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 mais

Algoritmos de escalonamento

Algoritmos 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 mais

Sistemas Operacionais. Conceitos de Hardware

Sistemas 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 mais

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java

PROGRAMAÇÃ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 mais

Exclusão Mútua (mutex)

Exclusã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 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 II: PROCESSOS E THREADS SUMÁRIO 6. THREAD: 6.1 Introdução; 6.2 Ambiente Monothread; 6.3 Ambiente Multithread; 6.4 Arquitetura

Leia mais

Fundamentos de Sistemas Operacionais

Fundamentos 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 mais

Sincronização e comunicação entre entidades de processamento. Mutex Volnys Bernal 1. Tópicos. Exclusão Mútua (mutex) Exclusão Mútua (Mutex)

Sincronizaçã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 mais

Té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 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 mais

Microcontroladores. Rafael Silva de Lima https://sites.google.com/site/pensante91/

Microcontroladores. 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 mais

Sistemas Operacionais Aula 3

Sistemas 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 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

Sistemas Distribuídos Aula 3

Sistemas 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 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

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

Aula 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 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 mais

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas 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 mais

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistemas 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 mais

Sistemas Distribuídos Aula 7

Sistemas 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 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

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

Threads. Agenda. Threads. Processo. Processo. Processo. Processo. (c) Volnys B. Bernal Versão de 22/3/2012

Threads. 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 mais

Exploraçã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 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 mais

LINGUAGENS LÓGICAS E PROGRAMAÇÃO CONCORRENTE

LINGUAGENS 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 mais

CONCURSO 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

CONCURSO 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 mais

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Sistemas 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 mais

Características Linux - CentOS

Caracterí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 mais

Fundamentos de Sistemas Operacionais

Fundamentos 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 mais

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

Redes 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