PARALELIZAÇÃO DE APLICAÇÕES NA ARQUITETURA CUDA: UM ESTUDO SOBRE VETORES 1

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

Download "PARALELIZAÇÃO DE APLICAÇÕES NA ARQUITETURA CUDA: UM ESTUDO SOBRE VETORES 1"

Transcrição

1 PARALELIZAÇÃO DE APLICAÇÕES NA ARQUITETURA CUDA: UM ESTUDO SOBRE VETORES 1 DUTRA, Evandro Rogério Fruhling 2 ; VARINI, Andre Luis 2 ; CANAL, Ana Paula 2 1 Trabalho de Iniciação Científica _UNIFRA 2 Ciência da Computação do Centro Universitário Franciscano (UNIFRA), Santa Maria, RS, Brasil tissao_dutra@hotmail.com; andre.varini@hotmail.com; apc@unifra.br RESUMO Nos primórdios da computação a programação para GPU - Graphics Processing Unit era considerada muito complexa e por este motivo inviável. A fabricante de placas gráficas NVIDIA foi pioneira no desenvolvimento de uma arquitetura que facilitasse a programação de GPU s para propósitos gerais e não apenas para o processamento de imagens como antigamente, essa arquitetura foi denominada Compute Unified Device Architecture - CUDA. Desde então pesquisas vem sendo feitas sobre a utilização desta arquitetura para aplicações de propósitos gerais. O objetivo do trabalho foi estudar o funcionamento da CUDA e a linguagem de programação utilizada por ela e realizar um estudo de caso. Por meio da compreensão e experimentação prática dos conceitos da arquitetura CUDA, foi implementado o algoritmo paralelo de soma de vetores e observado seu desempenho executando na GPU e na CPU Central Processing Unit. Conclui-se que a GPU permite obter desempenho no processamento deste tipo de operações. Palavras-chave: GPU - Graphics Processing Unit; Algoritmo paralelo; Álgebra Linear. 1. INTRODUÇÃO Nos primórdios da computação a GPU - Graphics Processing Unit, popularmente conhecida como placa de vídeo, era usada como um processador auxiliar apenas para o processamento de imagens, e a programação para ela era considera complexa e inviável, pois exigia que o programador tivesse conhecimento aprofundado em linguagens de baixo nível e sobre o hardware do dispositivo que desejava programar (YANO, 2010). No decorrer dos tempos, houve uma crescente necessidade de poder de processamento, pensando nessa necessidade a fabricante de GPU s NVIDIA foi pioneira no desenvolvimento de uma arquitetura que possibilitasse a programação da GPU para propósitos gerias, e não mais exclusivamente para o processamento de imagens como antigamente. Essa nova arquitetura criada foi denominada CUDA - Compute Unified Device Architecture (PINTO, 2011). Com CUDA é possível programar a GPU para aplicativos que não estejam exclusivamente ligados à processamento de imagens, como por exemplo, aplicativos comerciais onde são realizadas ordenação de valores, cálculo de finanças, dentre outros. O objetivo deste trabalho foi estudar o funcionamento da CUDA, a linguagem de programação utilizada por ela e, a partir disto, realizar um estudo de caso, por meio da implementação do algoritmo paralelo de soma de vetores para execução na GPU e na CPU 1

2 Central Processing Unit. Assim, inicialmente neste artigo, é caracterizada a arquitetura CUDA considerando o gerenciamento de threads, gerência de memórias, kernel e variáveis e funções específicas para execução. Após, é descrita a implementação do algoritmo de soma de vetores neste ambiente, bem como os resultados obtidos e as conclusões do trabalho. 2. ARQUITETURA CUDA CUDA - Compute Unified Device Architecture é uma arquitetura desenvolvida para GPU - Graphics Processing Unit da Nvidia que torna possível seu uso para propósitos gerais. A arquitetura permite que o programador desenvolva algoritmos que executam parte de suas instruções no dispositivo (processador da placa de vídeo), tornando assim a execução paralela. CUDA utiliza uma linguagem de alto nível que é uma extensão da linguagem de programação C padrão, adicionando uma biblioteca especifica com funções que auxiliam o programador. Mesmo assim, ainda é necessário que o programador tenha um conhecimento básico sobre a arquitetura do computador e da GPU, para ter condições de projetar e implementar os algoritmos paralelos que executem na CPU - Central Processing Unit e na GPU (PILLA, 2009), (PINTO,2011) A arquitetura CUDA é constituída por Streaming Multiprocessors (SM) e Scalar Processors (SP), que podem também ser chamados de Multiprocessadores e Núcleos de processamento. Cada multiprocessador é formado por um grupo de núcleos de processamento, em outras palavras, um numero n de núcleos encapsulados formam um multiprocessador. Cada multiprocessador executa de forma independente e paralela em relação aos demais. Os multiprocessadores possuem uma arquitetura chamada de SIMT - Single Instruction, Multiple Thread, onde todos os núcleos de um mesmo grupo executam a mesma instrução de forma paralela. Um exemplo é quando uma função com o qualificador global for chamada, todos os núcleos de um mesmo multiprocessador, irão executar em paralelo as instruções dessa função (IKEDA, 2011), (PILLA, 2009), (PINTO,2011). 2.1 Gerenciamento de Threads CUDA segue o conceito básico de grade (grid) e blocos (blocks). Uma grade apresenta uma estrutura abstrata em forma de matriz, onde cada posição dessa matriz contém um bloco diferente. Cada bloco é formado por um número pré-definido de threads que são também organizadas em forma de matriz. A grade (grid) pode ter sua estrutura abstrata interna em forma de matriz unidimensional ou bidimensional. Os blocos (blocks) apresentam uma estrutura interna em forma de matriz, mas que também podem ser organizadas de forma tridimensional, onde cada posição contém uma thread diferente. As 2

3 dimensões da grade e dos blocos são definidas pelo programador na criação de um novo kernel. Todos os blocos apresentam o mesmo número de threads. A Figura 1 ilustra uma grade formada por 6 blocos, organizada de forma bidimensional com dimensão 2x3 e cada bloco contém 12 threads organizadas internamente com dimensão 3x4. (IKEDA, 2011) Figura 1: Organização da grade e dos blocos de um kernel. (NVIDIA, 2012) Cada bloco é mapeado a um multiprocessador de forma automática pelo dispositivo, o número de blocos é independente do número de multiprocessadores existentes no dispositivo. As threads de cada bloco são organizadas consecutivamente em pequenos grupos denominados warp. Na Figura 2, é ilustrado um modelo de GPU que contém um número n de multiprocessadores (SM) cada um deles contendo 8 núcleos de processamento (SP). Se fossem criados blocos de 32 threads cada um, elas seriam divididas em pequenos grupos de 4 threads, cada grupo seria atribuído a um núcleo diferente. O número de threads por bloco é independente do número de núcleos (SP), mas cada modelo de GPU possui um número máximo suportado (PILLA, 2009), (IKEDA, 2011). Figura 2: Mapeamento das threads para os núcleos de processamento.(pilla, 2009) 2.2 Gerência de Memórias A GPU possui seu próprio conjunto interno de memórias, que é separado das memórias da CPU. Assim, o fluxo de execução de um algoritmo sempre segue os seguintes 3

4 passos: os dados a serem processados pelo dispositivo são criados e inicializados na CPU, depois são copiados da memória principal do computador para a memória global do dispositivo, após o processamento, os dados são novamente copiados para a memória principal do computador. Essas operações podem ser realizadas com as funções cudamemcpy e cudamalloc disponíveis na biblioteca runtime do CUDA (PILLA, 2009). Segundo Pilla (2009), a GPU possui memória dos seguintes tipos: memória local, memória global, memória de constantes e memória de texturas. Cada multiprocessador (SM) possui internamente memórias de alta velocidade com tamanho reduzido em Kbytes, que são dos seguintes tipos: registradores de 32 bits, memória compartilhada, cache de constantes e cache de texturas. A Figura 3 ilustra essa hierarquia de memória. Cada núcleo de processamento (SP) possui seus próprios registradores, que são alocados às threads que estão executando concorrentemente. Todos os núcleos de um mesmo multiprocessador podem acessar a memória compartilhada e efetuar operações de leitura e escrita. As caches de constantes e de texturas de um multiprocessador servem para dar agilidade ao processamento, pois as memórias responsáveis por esses tipos de armazenamentos se encontram na memória global do dispositivo, dessa forma os núcleos conseguem diminuir número de acessos às memórias externas ao multiprocessador. A memória global pode ser acessada por todos os núcleos de todos os multiprocessadores e sofrer operações de leitura e escrita. Existe uma memória local que é dividida e alocada para as threads, cada uma com seu próprio espaço de memória para realizar operações de leitura e escrita (PILLA, 2009). Figura 3: Hierarquia de memórias (PILLA, 2009). 2.3 Kernel O kernel pode ser definido como a parte paralela do código onde as threads são mapeadas aos multiprocessadores do dispositivo (GPU). Funções com o qualificador _global_ são denominadas kernel. Para um novo kernel ser criado, devem ser especificadas as dimensões, da grade (grid) e dos blocos (blocks), com a sintaxe <<<, >>>. A Figura 4 ilustra um exemplo de criação de um novo kernel. 4

5 Na linha 9 do código exemplo da Figura 4, a nova sintaxe é inserida entre o nome da função e a lista de parâmetros. Dois parâmetros devem ser passados: o primeiro diz respeito às dimensões da grade e o segundo diz respeito à dimensão dos blocos. A grade pode ser organizada de forma unidimensional e bidimensional e as threads de um bloco podem ser organizadas de forma tridimensional. No exemplo, a grade foi definida com o valor inteiro 1 e os blocos com o valor 40, ou seja, será criada uma grade contendo apenas 1 bloco e este bloco contem 40 threads, ambos organizados de forma unidimensional. Em outras palavras a dimensão da grade nada mais é que o número de blocos que serão criados, e as dimensões do bloco são o número de threads que cada bloco terá. Como só é possível a passagem de dois valores como parâmetros na sintaxe, para organização da grade e dos blocos em mais de uma dimensão, é necessário o uso de variáveis do tipo dim3 (YANO, 2010), (ROCHA, FILHO, 2010), (RIBEIRO, 2011). Figura 4: Criação de um novo kernel 2.4 Variáveis dim3, Variáveis Built-in, qualificadores de função e de variáveis Varáveis dim 3 são usadas para definição de dimensões, onde dim3 é uma estrutura já definida na linguagem CUDA, que apresenta o seguinte modelo: typedef struct { int x, y, z } dim3; onde, x representa o número de colunas, y o número de linhas e z o número de dimensões. Variáveis do tipo dim3 são comumente utilizadas para a definição de um novo kernel com mais de uma dimensão, e podem ser declaradas da seguinte forma: dim3 dimensaobloco (4,2,1); Na declaração da variável dimensaobloco são passados parâmetros atribuídos respectivamente para x, y e z. Caso não for especificado os valores de x, y e z, eles ficam com os valores padrão (1,1,1) (RIBEIRO, 2011), (NVIDIA, 2012), (IKEDA, 2011). Variáveis Built-in são variáveis pré-definidas pela linguagem e não podem ter seus valores modificados, são válidas somente em funções que executam na GPU. Elas permitem obter as dimensões da grade e dos blocos e também o índice das threads e dos blocos. Segundo NVIDIA (2012), as variáveis desse tipo são: griddim (variável do tipo 5

6 dim3 que contém as dimensões da grade); blockdim (variável do tipo dim3 que contém as dimensões do bloco); blockidx (variável do tipo uint3 que contém o índice do bloco na grade); threadidx (variável do tipo uint3 que contém o índice da thread no bloco); warpsize (variável do tipo int que contém o número de threads do warp). Conforme a estrutura do kernel ilustrado na Figura 1, a dimensão da grade é 2 linhas por 3 colunas então griddim.x = 3, griddim.y = 2. Todos os blocos apresentam as dimensões de 3 linhas por 4 colunas, então blockdim.x = 4, blockdim.y = 3. Em muitos casos é necessário para a resolução de um problema a obtenção do índice de determinado bloco ou thread, por exemplo a thread (3, 1) da grade (1, 1), os índices da thread seriam threadidx.x = 3, threadidx.y = 1, já os índices desse bloco seriam, blockid.x = 1, blockid.y = 1 (NVIDIA, 2012). Quando uma função é declarada, o programador deve especificar quem poderá chamar essa função e onde ela irá executar suas instruções. Essas permissões são denominadas de qualificadores do tipo de função. Existem três tipos de qualificadores do tipo de função: global, host e device : global : a função é chamada pelo host (CPU) mas suas instruções são executadas no device (GPU). Alguns pontos importantes são:o retorno deve ser sempre do tipo void; não suporta numero de argumentos variável; não é permitida a declaração de variáveis estáticas; não suporta recursão; quando uma função com esse qualificador for chamada, deve ser criado um novo kernel especificando as dimensões da grade e as dimensões de cada bloco. host : a função só pode ser chamada pelo host. Uma função com esse tipo de qualificador se torna uma função comum da linguagem C e suas instruções obviamente são executadas no host, e não pode ser chamada por funções que tem permissão device. device : a função é chamada e executada somente pelo device. Funções com qualificador host não podem fazer chamadas a ela. Alguns pontos importantes são: podem retornar valores, mas o endereço da função não pode ser obtido; não suporta recursão; não pode conter inicialização de variáveis estáticas em sua implementação; não suporta número variável de argumentos. Todas as funções declaradas no programa devem conter o seguinte protótipo: <tipo_de_permissão><tipo_do_retorno><nome_da_função>(lista_de_parame tros); caso o tipo de permissão não for especificado na função o compilador irá assumir que a permissão é do tipo host (IKEDA, 2011), (NVIDIA, 2012). Qualificadores do tipo de variáveis servem para especificar em qual das memórias do dispositivo a variável será alocada. Existem três qualificadores de tipos de variáveis, device, constant e shared. 6

7 device : a variável reside na memória global do dispositivo, tem o tempo de vida da aplicação e pode ser acessada por todas as threads de uma grade e pela CPU. constant : a variável reside na memória constante do dispositivo, seu tempo de vida e permissões de acesso são iguais aos do device. shared : a variável reside na memória compartilhada, pode ser acessada apenas pelas threads de um mesmo bloco, e o seu tempo de vida é o mesmo do bloco. Variáveis que não recebem esse qualificador são alocadas na memória local do dispositivo (IKEDA, 2011), (NVIDIA, 2012). 3. METODOLOGIA O presente trabalho foi desenvolvido por meio de uma revisão bibliográfica sobre as placas gráficas GPU Graphics Processing Unit, da NVIDIA e a arquitetura CUDA. Para o desenvolvimento do algoritmo, foi realizada revisão bibliográfica sobre as operações de álgebra linear com matrizes e vetores. Para o desenvolvimento foi instalado SDK Software Development Kit CUDA para Windows 64 bits, juntamente com a linguagem de programação C. A implementação foi desenvolvida e a execução paralela do algoritmo foi realizada em um computador com processador AMD Phenom(tm) II X Ghz, 2GB de memória RAM, e com uma placa gráfica Nvidia GeForce 9500 GT que possui 32 núcleos de processamento divididos em 2 multiprocessadores e 512 MB de memória. Para observar o desempenho, foram utilizadas medidas de tempo de execução do algoritmo. Como estudo de caso, apenas o algoritmo de soma de vetores é descrito, uma vez que os demais algoritmos paralelos de operações de álgebra linear encontram-se em fase de implementação. 4. RESULTADOS E DISCUSSÕES A soma de dois vetores é uma operação de álgebra linear. Esta operação requer que os dois vetores tenham o mesmo número de posições porque todas as posições do primeiro vetor serão somadas com as posições correspondentes do segundo, resultando em um terceiro vetor, do mesmo tamanho. Por exemplo, dado dois vetores e, a soma deles é feita da seguinte forma,, como pode ser observado o terceiro vetor irá conter o resultado da soma das posições correspondentes de e. A soma de dois vetores é comutativa, ou seja,. Foi implementado o algoritmo que efetua a soma de dois vetores de forma paralela, com o objetivo de validar o estudo realizado sobre CUDA e GPU. A Figura 5 ilustra parte da implementação do algoritmo. É necessária a criação de vários ponteiros, uns apontando 7

8 para a memória da CPU e outros para memória da GPU. A convenção da NVIDIA foi utilizada para identificar os tipos de ponteiros: antecedendo o nome do ponteiro colocam-se as palavras host para ponteiros na memória da CPU e device para ponteiros na memória da GPU, favorecendo a legibilidade do código. Isto pode ser observado na linhas 11 e 17. Figura 5: Implementação do algoritmo soma de vetores O algoritmo segue os seguintes passos: primeiramente é alocado espaço para os vetores na memória da CPU (host) (linhas 11, 12, 13); é alocado espaço no dispositivo para os três vetores e aqueles que serão somados são copiados da memória host para a memória do device (linhas 17 a 26); são definidos os parâmetros para a criação de um novo kernel com um cálculo proposto pela NVIDIA para criar um número de blocos, de forma a melhorar a distribuição de threads (linhas 28, 29); o kernel é criado e o processamento inicia 8

9 (linha 33); após o termino do processamento apenas o resultado da soma é copiado da memória do device para a memória do host (linha 40). Nas linhas 1 a 6 a função que realiza a soma dos vetores de forma paralela, obtém o identificador único de cada thread. Cada thread realiza a soma de duas posições equivalentes, por exemplo, se o identificador de thread for igual a 0, ela irá somar a posição 0 dos vetores, e assim sucessivamente para cada uma das n threads criadas, e como podem ser criadas mais threads do que o número total de posições dos vetores, existe um teste que evita a soma de posições inexistentes (linha 4). Para testar o desempenho do algoritmo desenvolvido, foi medido o tempo de execução do kernel soma_vetores, o ponto paralelo do código. Conforme a Figura 5, os tempos inicial e final são capturados, nas linhas 35 e 36. Os resultados obtidos foram satisfatórios para a operação da soma de vetores. Para vetores com , , e posições, o tempo no processamento de todos eles foi igual a zero milissegundos, pois foi medido somente o tempo de processamento da soma na GPU. Primeiramente, este tempo foi questionado, pois se esperava valores maiores, então para testar a validade do resultado, foram gerados vetores de tamanho , e e as medidas de tempo de execução realizadas a partir da inicialização dos dados. Os resultados obtidos neste teste estão no gráfico da Figura 6. Como a inicialização dos vetores se deu na CPU, isto influenciou no tempo de execução, fazendo com que a GPU levasse um pouco mais de tempo de processamento comparada à CPU. Conclui-se que, para problemas mais simples como a soma de vetores, a placa gráfica permite também um processamento rápido. Figura 6: Tempo de execução do algoritmo soma de vetores 5. CONCLUSÃO A partir do trabalho desenvolvido, considerou-se que os resultados foram satisfatórios, pois a GPU efetua o processamento das operações de forma rápida, 9

10 aproximando-se dos valores da CPU. Um dos grandes desafios encontrados na programação para GPU é a paralelização dos algoritmos que consiste em encontrar estratégias de implementá-los de forma que todos os núcleos de processamento executem a mesma instrução, sobre dados diferentes, já que os multiprocessadores executam suas instruções em SIMT, e tudo isso, visando a melhor utilização dos recursos e obtenção de desempenho. Pretende-se continuar o estudo da arquitetura CUDA, implementando em paralelo as demais operações de álgebra linear. REFERÊNCIAS IKEDA, Patricia Akemi. Um estudo do uso eficiente de programas em placas gráficas Dissertação. Instituto de Matemática e Estatística, Universidade de São Paulo, São Paulo NVIDIA CUDA C Programming Guide version 4.2. Disponível em ide.pdf. Acessado em Abril de PILLA, Laércio L. Análise de Desempenho da Arquitetura CUDA Utilizando os NAS Parallel Trabalho de Conclusão (Graduação em Ciência da Computação). Instituto de Informática, Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre PINTO, Vinícius G. Ambientes de Programação Paralela Híbrida Dissertação. Programa de Pós-Graduação em Computação, Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, RIBEIRO, Ítalo Mendes da Silva. Paralelização em GPU da Segmentação Vascular com Extração de Centerlines por Height Ridges Dissertação (Programa de Pós-graduação em Sistemas e Computação). Departamento de Informática e Matemática Aplicada, Universidade Federal do Rio Grande do Norte (UFRN), Natal ROCHA, Kassiane de Almeida Pretti, FILHO, Luciano José Varejão Fassarella. Introdução ao CUDA utilizando métodos numéricos Trabalho de Conclusão de Curso. Centro Universitário Vila Velha, Vila Velha YANO, Luís Gustavo Abe. Avaliação e comparação de desempenho utilizando tecnologia CUDA Trabalho de Conclusão (Graduação em Ciência da Computação). Instituto de Biociências, Letras e Ciências Exatas, Universidade Estadual Paulista Júlio de Mesquita Filho, São José do Rio Preto - SP

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD.

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD. AULA4: PROCESSADORES 1. OBJETIVO Figura 1 Processadores Intel e AMD. Conhecer as funcionalidades dos processadores nos computadores trabalhando suas principais características e aplicações. 2. INTRODUÇÃO

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Cálculo Aproximado do número PI utilizando Programação Paralela

Cálculo Aproximado do número PI utilizando Programação Paralela Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Cálculo Aproximado do número PI utilizando Programação Paralela Grupo 17 Raphael Ferras Renan Pagaiane Yule Vaz SSC-0143 Programação

Leia mais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

Leia mais

Análises Geração RI (representação intermediária) Código Intermediário

Análises Geração RI (representação intermediária) Código Intermediário Front-end Análises Geração RI (representação intermediária) Código Intermediário Back-End Geração de código de máquina Sistema Operacional? Conjunto de Instruções do processador? Ambiente de Execução O

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais

Processamento de Dados

Processamento de Dados Processamento de Dados Execução de Programas Os computadores não entendem nada além de comandos, dados e endereços escritos em linguagem binária, também chamada de linguagem de baixo nível. Ela utiliza

Leia mais

Sistema Operacional Correção - Exercício de Revisão

Sistema Operacional Correção - Exercício de Revisão Prof. Kleber Rovai 1º TSI 22/03/2012 Sistema Operacional Correção - Exercício de Revisão 1. Como seria utilizar um computador sem um sistema operacional? Quais são suas duas principais funções? Não funcionaria.

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 2.1 CONCEITO DE BIT O computador só pode identificar a informação através de sua elementar e restrita capacidade de distinguir entre dois estados: 0

Leia mais

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização Básica B de (Parte V, Complementar)

Leia mais

Disciplina: Introdução à Informática Profª Érica Barcelos

Disciplina: Introdução à Informática Profª Érica Barcelos Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação 36 5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS 5.1 - Os Programas de Avaliação Programas de avaliação convencionais foram utilizados para análise de diversas configurações da arquitetura. Estes programas

Leia mais

Comparativo de desempenho do Pervasive PSQL v11

Comparativo de desempenho do Pervasive PSQL v11 Comparativo de desempenho do Pervasive PSQL v11 Um artigo Pervasive PSQL Setembro de 2010 Conteúdo Resumo executivo... 3 O impacto das novas arquiteturas de hardware nos aplicativos... 3 O projeto do Pervasive

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I Guilherme Pina Cardim Relatório de Sistemas Operacionais I Presidente Prudente - SP, Brasil 30 de junho de 2010 Guilherme Pina Cardim Relatório de Sistemas Operacionais I Pesquisa para descobrir as diferenças

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 6.7 Operações com as Memórias: Já sabemos, conforme anteriormente citado, que é possível realizar duas operações em uma memória: Escrita (write) armazenar informações na memória; Leitura (read) recuperar

Leia mais

Experimentos com a memória cache do CPU

Experimentos com a memória cache do CPU Experimentos com a memória cache do CPU Alberto Bueno Júnior & Andre Henrique Serafim Casimiro Setembro de 2010 1 Contents 1 Introdução 3 2 Desvendando o cache 3 2.1 Para que serve o cache?.....................

Leia mais

CISC RISC Introdução A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Tecnologia da Informação. Prof Odilon Zappe Jr

Tecnologia da Informação. Prof Odilon Zappe Jr Tecnologia da Informação Prof Odilon Zappe Jr Conceitos básicos de informática O que é informática? Informática pode ser considerada como significando informação automática, ou seja, a utilização de métodos

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Conceito de Computador Um computador digital é

Leia mais

Estruturas do Sistema de Computação

Estruturas do Sistema de Computação Estruturas do Sistema de Computação Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Estruturas do Sistema de

Leia mais

Placa de vídeo em CUDA

Placa de vídeo em CUDA Placa de vídeo em CUDA Matheus Costa Leone de Souza Krystian Aparacido Resumo Quando você tem um cálculo que possa ser grande demais para você realizar a mão, a primeira solução que lhe vem a cabeça é

Leia mais

4 Implementação e Resultados Experimentais

4 Implementação e Resultados Experimentais 4 Implementação e Resultados Experimentais Com o objetivo de fazer a criação automática de visões materializadas, ou seja, prover uma solução on-the-fly para o problema de seleção de visões materializadas,

Leia mais

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente: Trabalho elaborado por: Carlos Palma nº5608 Curso de Eng. Informática Linguagens de Programação C Sharp University Data Processing (C Sharp Universidade de Processamento de Dados) Docente: José Jasnau

Leia mais

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR Curso Engenharia Informática Ano letivo 2012-2013 Unidade Curricular Arquitectura de Computadores ECTS 6 Regime Obrigatório Ano 2º Semestre 2ºsem Horas de trabalho globais Docente (s) Luis Figueiredo Total

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA

REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA Andréa Willa Rodrigues Villarim (Voluntário) Marcelo Pereira Rufino (Bolsista) Larissa Aguiar (Bolsista) Nady Rocha

Leia mais

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes Sistemas Operacionais e Introdução à Programação Vetores e matrizes 1 Matrizes Cada elemento de uma matriz é referenciado indicando-se sua posição dentro da matriz. Na Matemática, matrizes são arranjos

Leia mais

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

Leia mais

Gerenciamento de Memória

Gerenciamento de Memória Gerenciamento de Memória Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto Faculdade de Tecnologia de Americana Centro Paula Souza Tópicos Introdução Alocação Contígua

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

AULA 5 Sistemas Operacionais

AULA 5 Sistemas Operacionais AULA 5 Sistemas Operacionais Disciplina: Introdução à Informática Professora: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Partições Formatação Fragmentação Gerenciamento

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerenciamento de Memória Norton Trevisan Roman Marcelo Morandini Jó Ueyama Apostila baseada nos trabalhos de Kalinka Castelo Branco, Antônio Carlos Sementille, Paula Prata e nas transparências

Leia mais

Veja abaixo um exemplo de um endereço IP de 32 bits: 10000011 01101011 00010000 11001000

Veja abaixo um exemplo de um endereço IP de 32 bits: 10000011 01101011 00010000 11001000 4 Camada de Rede: O papel da camada de rede é transportar pacotes de um hospedeiro remetente a um hospedeiro destinatário. Para fazê-lo, duas importantes funções da camada de rede podem ser identificadas:

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 1 PONTEIROS Prof. Yandre Maldonado e Gomes da Costa PONTEIROS Prof. Yandre Maldonado - 2 Ponteiro é uma variável que possui o endereço de outra variável; É um poderoso recurso

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Programação Concorrente Processos e Threads

Programação Concorrente Processos e Threads Programação Concorrente Processos e Threads Prof. Eduardo Alchieri Processos O conceito mais central em qualquer sistema operacional é o processo Uma abstração de um programa em execução Um programa por

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1 Introdução à Organização e Arquitetura de Computadores Prof. Leonardo Barreto Campos 1 Sumário Introdução; Evolução dos Computadores; Considerações da Arquitetura de von Neumann; Execução de uma instrução

Leia mais

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014. Faculdade de Tecnologia SENAC Goiás Disciplina: Gerenciamento de Rede de Computadores : Goiânia, 16 de novembro de 2014. Faculdade de Tecnologia SENAC Goiás Professor: Marissol Martins Alunos: Edy Laus,

Leia mais

Organização de Computadores Hardware

Organização de Computadores Hardware Organização de Computadores Hardware Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Computador Ferramenta

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software O que é a engenharia de software É um conjunto integrado de métodos e ferramentas utilizadas para especificar, projetar, implementar e manter um sistema. Método É uma prescrição

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Processo de Controle das Reposições da loja

Processo de Controle das Reposições da loja Processo de Controle das Reposições da loja Getway 2015 Processo de Reposição de Mercadorias Manual Processo de Reposição de Mercadorias. O processo de reposição de mercadorias para o Profit foi definido

Leia mais

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. Unidade aritmética e lógica - Executa operações aritméticas (cálculos);

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. Centro de Emprego e Formação Profissional da Guarda Curso: Técnico de Informática Sistemas (EFA-S4A)-NS Trabalho Realizado Por: Igor_Saraiva nº 7 Com

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas de Computação O sistema operacional precisa garantir a operação correta do sistema de computação. Operação

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10 Índice 1. A Organização do Computador - Continuação...3 1.1. Memória Primária - II... 3 1.1.1. Memória cache... 3 1.2. Memória Secundária... 3 1.2.1. Hierarquias de

Leia mais

Escalonamento no Linux e no Windows NT/2000/XP

Escalonamento no Linux e no Windows NT/2000/XP Escalonamento no Linux e no Windows NT/2000/XP 1 Escalonamento no Linux Os requisitos do escalonador do Linux eram: Apresentar boa performance em programas interativos, mesmo com carga elevada; Distribuir

Leia mais

CPU Unidade Central de Processamento. História e progresso

CPU Unidade Central de Processamento. História e progresso CPU Unidade Central de Processamento História e progresso O microprocessador, ou CPU, como é mais conhecido, é o cérebro do computador e é ele que executa todos os cálculos e processamentos necessários,

Leia mais

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores SISTEMAS OPERACIONAIS Maquinas Virtuais e Emuladores Plano de Aula Máquinas virtuais Emuladores Propriedades Benefícios Futuro Sistemas de Computadores Os sistemas de computadores são projetados com basicamente

Leia mais

Introdução aos Computadores

Introdução aos Computadores Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas

Leia mais

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais Laboratório de Sistemas Operacionais Aula 1 Flávia Maristela (flavia@flaviamaristela.com) Tudo o que já vimos antes... Introdução

Leia mais

Hardware de Computadores

Hardware de Computadores Placa Mãe Hardware de Computadores Introdução Placa-mãe, também denominada mainboard ou motherboard, é uma placa de circuito impresso eletrônico. É considerado o elemento mais importante de um computador,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA 8 CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA A porta paralela, também conhecida por printer port ou Centronics e a porta serial (RS-232) são interfaces bastante comuns que, apesar de estarem praticamente

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Orientação a Objetos

Orientação a Objetos Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.

Leia mais

Contil Informática. Curso Técnico em Informática Processadores Core

Contil Informática. Curso Técnico em Informática Processadores Core Contil Informática Curso Técnico em Informática Processadores Core Quais as diferenças entre os processadores Intel Core i3, i5 e i7? A tecnologia avançada na área de hardware possibilita um avanço desenfreado

Leia mais

ALP Algoritmos e Programação. . Linguagens para Computadores

ALP Algoritmos e Programação. . Linguagens para Computadores ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 1 Linguagens para Computadores. Linguagem binária: Dispositivos

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2

MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2 MEMÓRIA CONCEITO Bit- 0 1 Essência de um sistema chamado BIESTÁVEL Ex: Lâmpada 0 apagada 1 acesa 0 e 1 únicos elementos do sistema de numeração de base 2 A que se destina a memória: Armazenamento das instruções

Leia mais

LÓGICA DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO Todos direitos reservados. Proibida a reprodução, mesmo parcial, por qualquer processo mecânico, eletrônico, reprográfico, etc., sem a autorização, por escrito, do(s) autor(es) e da editora. LÓGICA DE

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Sistemas Operacionais Gerência de Dispositivos

Sistemas Operacionais Gerência de Dispositivos Universidade Estadual de Mato Grosso do Sul UEMS Curso de Licenciatura em Computação Sistemas Operacionais Gerência de Dispositivos Prof. José Gonçalves Dias Neto profneto_ti@hotmail.com Introdução A gerência

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Marcelo Lobosco DCC/UFJF Avaliando e Compreendendo o Desempenho Aula 09 Agenda Avaliando e Compreendendo o Desempenho Introdução Definindo Desempenho Medindo o Desempenho Desempenho

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 04 Introdução a Análise de Algoritmos humberto@bcc.unifal-mg.edu.br Última aula Fundamentos de Matemática Exercícios: Somatórios; Logaritmos

Leia mais

Técnicas de Manutenção de Computadores

Técnicas de Manutenção de Computadores Técnicas de Manutenção de Computadores Professor: Luiz Claudio Ferreira de Souza Processadores É indispensável em qualquer computador, tem a função de gerenciamento, controlando todas as informações de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 5 Estrutura de Sistemas de Computação Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução Arquitetura e Organização de Computadores Capítulo 0 - Introdução POR QUE ESTUDAR ARQUITETURA DE COMPUTADORES? 2 https://www.cis.upenn.edu/~milom/cis501-fall12/ Entender para onde os computadores estão

Leia mais

Arquitetura e Programação de GPU. Leandro Zanotto RA: 001962 Anselmo Ferreira RA: 023169 Marcelo Matsumoto RA: 085973

Arquitetura e Programação de GPU. Leandro Zanotto RA: 001962 Anselmo Ferreira RA: 023169 Marcelo Matsumoto RA: 085973 Arquitetura e Programação de GPU Leandro Zanotto RA: 001962 Anselmo Ferreira RA: 023169 Marcelo Matsumoto RA: 085973 Agenda Primeiras Placas de Vídeo Primeira GPU Arquitetura da GPU NVIDIA Arquitetura

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Web site. Objetivos gerais. Introdução. http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados. Profa. Patrícia Dockhorn Costa

Web site. Objetivos gerais. Introdução. http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados. Profa. Patrícia Dockhorn Costa Web site http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados Estruturas de Dados Aula 1: Introdução e conceitos básicos Profa. Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br 01/03/2010

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

7 Processos. 7.1 Introdução

7 Processos. 7.1 Introdução 1 7 Processos 7.1 Introdução O conceito de processo é a base para a implementação de um sistema multiprogramável. O processador é projetado apenas para executar instruções, não se importando com qual programa

Leia mais

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET 1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com

Leia mais

Desenvolvimento de um Simulador de Gerenciamento de Memória

Desenvolvimento de um Simulador de Gerenciamento de Memória Desenvolvimento de um Simulador de Gerenciamento de Memória Ricardo Mendes do Nascimento. Ciência da Computação Universidade Regional Integrada do Alto Uruguai e das Missões (URI) Santo Ângelo RS Brasil

Leia mais

Processos. Adão de Melo Neto

Processos. Adão de Melo Neto Processos Adão de Melo Neto 1 EXECUTE O SEGUINTE Baixa a aula dos dias 20 MAR 15 e 08 MAI 15 e salve no computador. Feche o browser Inicialize o vmware player e inicialize a máquina virtual ubuntu Inicialize

Leia mais

Gerência de Memória RAM em Computadores com Mais de 4GB O sistema Windows x86 (32bits) não tem capacidade de reconhecer, fisicamente, mais que 3,X GB de RAM, a não ser que seja ativado, manualmente, o

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 3.1 EXECUÇÃO DAS INSTRUÇÕES A UCP tem duas seções: Unidade de Controle Unidade Lógica e Aritmética Um programa se caracteriza por: uma série de instruções

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais