1 Padrões de Implementação em Processamento de Imagens. 2 Resumo. 4 Computação paralela. 1.1 Relátório final para PIBIC/CNPq

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

Download "1 Padrões de Implementação em Processamento de Imagens. 2 Resumo. 4 Computação paralela. 1.1 Relátório final para PIBIC/CNPq"

Transcrição

1 1 Padrões de Implementação em Processamento de Imagens 1.1 Relátório final para PIBIC/CNPq Victor M. de A. Oliveira, Rubens Campos Machado Centro de Tecnologia da Informação Renato Archer CTI Divisão de Robótica e Visão Computacional Rod. Pedro I, km 143, Campinas SP rubens.campos.machado@gmail.com; victormatheus@gmail.com 2 Resumo Neste trabalho implementamos alguns filtros de processamento de imagens de modo a explorar o potencial de novas arquiteturas paralelas como multi-core e GPU. Fazemos uma análise comparativa de algoritmos de acordo com 3 categorias: Pontual, Local e Global. No fim, criamos uma biblioteca open-source com os algoritmos. 3 Introdução Nas últimas décadas acostumamo-nos a tirar proveito de um aumento constante na velocidade de processamento dos computadores. A cada novo modelo de processador, os programas se tornavam automaticamente mais rápidos, viabilizando a incorporação de novas funcionalidades. Nos dias atuais, porém, assistimos a uma saturação desse crescimento. O poder computacional passou a crescer através da utilização de dois ou mais processadores (ou núcleos de processamento). O efeito no desempenho dos programas, contudo, não é mais automático. Os programas precisam ser projetados para tirar proveito dos múltiplos elementos de processamento. Nesse contexto, o nosso trabalho consistiu em paralelizar e otimizar 2 filtros de processamento de imagens muito utilizados e cujos resultados podem ser estendidos para uma ampla classe de outros filtros: Filtro pontual: Threshold Filtro global: Abertura de área com a Max-Tree 4 Computação paralela Computação paralela é uma forma de computação em que várias operações são realizadas simultaneamente. A vantagem desse tipo de computação sobre a computação serial (aquela em que apenas uma operação é executada por vez) é que é possível diminuir o tempo de execução de alguns algoritmos permitindo que partes independentes dele sejam executadas ao mesmo tempo, por outro lado, qualquer computação paralela pode ser simulada em um 1

2 modelo serial, uma vez que é possível intercalar todas as operações paralelas e executá-las sequencialmente. O aumento de desempenho de um algoritmo executado paralelamente em relação à sua versão sequencial é limitado superiormente pela Lei de Amdahl, que diz: 1 A = (1 P ) + P S (1) Em que P é a proporção da computação que é se beneficia do paralelismo e S, a quantidade de paralelismo. Temos a melhor situação quando P = 1, isto é, a computação é completamente paralela (também chamada de embarrassingly parallel na literatura). Algoritmos com essa propriedade são facilmente paralelizáveis, como veremos adiante neste trabalho. Figure 1: Previsão com P = 30% - Podemos ver que em determinado momento, não vale mais a pena aumentar a quantidade de paralelismo do algoritmo, pois o custo da parte sequencial dele se sobrepõe ao resto. 5 Arquiteturas paralelas Devido à exaustão do modelo tradicional de computação sequencial, tem surgido diversas arquiteturas paralelas e distribuidas, podemos citar dentre elas: Processadores Multi-core. ex: Intel Dual/Quad Core, AMD Opteron/Phenom GPGPU (Unidade de processamento gráfico de propósito geral). ex: NVidia Geforce/Tesla, AMD Firestream Cluster. ex: Beowulf Computação em grade (grid computing). ex: Rede BOINC Neste trabalho só fizemos experimentos com as arquiteturas multi-core e gpgpu. 2

3 Figure 2: Esquema de alguns processadores multi-core da intel, além do cache dentro de cada core, existe um segundo nível de cache ligando os núcleos entre si. 5.1 Multi-core Processadores multi-core são aqueles que possuem mais de uma unidade de processamento (CPU), portanto, são capazes de realizar computação paralela, pois as tarefas atribuidas a cada núcleo (core) do sistema serão executadas em paralelo. A maioria dos sistemas multi-core encontrados atualmente se baseia em uma arquitetura SMP (multiprocessamento simétrico). Assim, são um conjunto de processadores idênticos se comunicam através de uma memória compartilhada, atualmente existem no mercado processadores com até 8 núcleos, mas já existem protótipos com até 80 núcleos ( que devem se tornar comuns em pouco tempo. Na taxonomia de Flynn ( os sistemas multi-core se encaixam na categoria MIMD (multiple instruction, multiple data), uma vez que cada núcleo pode executar suas instruções independentemente das dos outros e operar sobre conjuntos de dados distintos (veremos que no caso da GPU, isso não acontece). 5.2 GPGPU GPGPU significa Unidade de Processamento Gráfico de Propósito Geral, ou seja, hardware dedicado ao processamento gráfico, como renderização, mas que pode ser utilizado para realizar computação genérica. As GPG- PUs tem sido utilizadas com sucesso em diversas áreas como: Bioinformática, criptografia, visão computacional, entre outros. O poder computacional das GPUs vem aumentando drasticamente, por outro lado, são mais complexas de programar, como veremos adiante. Um outro problema é a falta de padrões no mercado, um código escrito para um modelo de GPU não funciona em modelos de outra empresa e nem pode ser executado em uma CPU. No momento em que esse artigo é escrito, existe uma iniciativa de se criar uma linguagem padrão para programação das diferentes GPUs chamada OpenCL ( mas os drivers e compiladores não estavam ainda disponíveis ao público geral. 3

4 6 Threshold O Threshold (Limiarização) é uma técnica muito simples de segmentação de imagens, os pixels são classificados como objeto ou como fundo baseado na comparação da sua intensidade de brilho com um determinado valor limiar. A definição de threshold que usaremos nesse trabalho é: 0, se Î(P ) > Limiar Ĵ(P ) = 1, caso contrario (2) A entrada é uma imagem nível de cinza Î e a saída será uma imagem binária Ĵ. O algoritmo para realizar essa operação em paralelo é simples: Threshold: entrada: Î = (D, Vi) - imagem nível de cinza saída: Ĵ = (D, Vj) - imagem binária Para todo P em D faça em paralelo: se Vi(P) > Limiar: Vj(P) = 0 senão: Vj(P) = 1 Claramente, esse algoritmo se aproveita de todo o paralelismo disponível no sistema (i.e. embarrassingly parallel ). Por exemplo, se duplicarmos a capacidade de paralelismo do sistema, dobrando o número de processadores, teremos teoricamente a metade do tempo de execução em relação ao tempo anterior. 6.1 Implementação - Multicore Fizemos a implementação desse algoritmo em um ambiente multi-core e em GPU. Na versão multi-core utlizamos a biblioteca pthreads em um processador Intel Xeon X3220 de 4 núcleos, cada um 2.4Ghz, e 64 bits. typedef unsigned char uchar; #include <stdlib.h> #include <pthread.h> typedef struct _threshold_arg { uchar* in; uchar* out; uchar t; int start; int end; threshold_arg; static void* threshold_func(void *arg) { const threshold_arg* t = (threshold_arg*)arg; const int s = t->start; const int e = t->end; const uchar threshold = t->t; uchar* in = t->in; 4

5 uchar* out = t->out; uint i; for(i=s; i < e; i++) { out[i] = (in[i] > threshold)? 0 : 1; return NULL; void threshold_(int DIM1, int DIM2, uchar* in, uchar threshold, int n) { pthread_t* thread = (pthread_t*)malloc(sizeof(pthread_t)*n); threshold_arg* arg = (threshold_arg*)malloc(sizeof(threshold_arg)*n); int size = DIM1*DIM2; int load = size/n; int i; for(i=0; i<n; i++) { arg[i].start = load*i; arg[i].end = load*(i+1); arg[i].in = in; arg[i].out = in; arg[i].t = threshold; arg[i-1].end += size % n; for(i=0; i<n; i++) { pthread_create(&thread[i], NULL, threshold_func, &arg[i]); for(i=0; i<n; i++) { pthread_join(thread[i], NULL); free(thread); free(arg); 6.2 Implementação - GPU Neste trabalho utilizamos uma GPU NVidia Geforce 8400GS através da linguagem CUDA, que é uma linguagem C com algumas primitivas de paralelismo adicionadas na sintaxe, e os drivers, bibliotecas e o compilador distribuidos pelo fabricante. Embora a linguagem CUDA seja parecida com a linguagem C, a arquitetura de uma GPU é bastante diferente da arquitetura de uma CPU. Enquanto que as CPUs multi-core possuem uma arquitetura MIMD, a GPU se aproxima mais de uma arquitetura SIMD (Single Instruction, Multiple Data), ou seja, uma única operação é realizada sobre um conjunto extenso de dados em paralelo. Na implementação multi-core, aplicamos uma função threshold em um conjunto de dados. Para realizar o paralelismo, criamos novas funções que possuem como domínio partes dos dados de entrada e criamos threads com o objetivo de executar cada função, ou seja, pensamos na função no momento em que exploramos o paralelismo, isso é chamado de paralelismo nas taferas (task paralellism). Na GPU, ocorre algo diferente, como existe um número grande de processadores de baixa capacidade, nesse ambiente é mais natural definir o paralelismo em torno dos dados, ou seja, é definida uma operação que será executada em pedaços dos dados de entrada. Essa função é aplicada em paralelo nos dados pelos diversos 5

6 processadores existentes. Não nos importamos com o número de processadores, apenas com o que é feito nos dados, isso é chamado de paralelismo nos dados (data paralellism). As GPUs NVidia possuem um conjunto de multiprocessadores, cada um deles com vários cores. A computação é divida pelo programador em Blocos, cada bloco possui de 128 a 512 threads, um multiprocessador carrega um bloco e o executa em paralelo com seus núcleos de uma forma SIMD, portanto, existe uma mistura de 2 tipos de arquitetura, dentro de um bloco, que é SIMD e entre blocos, que é MIMD, uma vez que diferentes processadores não precisam executar a mesma instrução no mesmo instante. No entanto, uma análise interessante é que dentro de um mesmo bloco, se algumas threads tentam escrever em uma mesma posição de memória ao mesmo tempo, a arquitetura garante que qualquer uma delas vai conseguir escrever com sucesso, além disso, existe uma instrução de sincronização entre as threads em um bloco. Com esses dados, podemos dizer que dentro do bloco, a GPU segue uma modelo PRAM Arbitrário Assíncrono (Syntesis of parallel algorithms), porém, entre blocos não há um modo trivial de garantir a sincronização. As funções que são executadas em paralelo são chamadas Kernels, aqui está nossa primeira tentativa de kernel para o algoritmo de threshold: global void threshold1(uchar* in, uchar* out, uchar threshold, int width, int height) { const int x = blockdim.x * blockidx.x + threadidx.x; const int y = blockdim.y * blockidx.y + threadidx.y; if (x < width && y < height) { out[width*y+x] = (in[width*y+x] > threshold)? 0 : 1; Veja que existe um modo de indexação entre os threads e os blocos. Como estamos lidando com imagens, é mais natural usar uma indexação bidimensional, assim cada thread com índice (x,y) processa o pixel (x,y). Entretanto, esse kernel é ineficiente pois a GPU possui modos de endereçamento de 32,64 e 128 bits. Mas nossa imagem é composta de 8 bits (tamanho de um char), estamos desperdiçando acessos a memória, uma vez que utilizando endereçamento 32 bits poderíamos conseguir 4 pixels em um único acesso à memória principal. Portanto, a partir de agora utilizaremos uma imagem com 4 canais: global void threshold2(rgba8* in, RGBA8* out, uchar threshold, int width, int height) { const int x = blockdim.x * blockidx.x + threadidx.x; const int y = blockdim.y * blockidx.y + threadidx.y; const int off = width*y+x; if (x < width && y < height) { RGBA8 k = in[off]; RGBA8 o; o.r = (k.r > threshold)? 0 : 1; o.g = (k.g > threshold)? 0 : 1; o.b = (k.b > threshold)? 0 : 1; o.a = (k.a > threshold)? 0 : 1; out[off] = o; A terceira otimização que fizemos é alinhar cada linha da imagem na memória, assim a GPU consegue fazer vários acessos à memória simultaneamente. Para isso, utilizamos as funções cudamallocpitch e cudamemcpy2d para a alocação da imagem e transferência dos dados para a placa. 6.3 Resultados e comparações Temos os seguintes resultados (em milisegundos) para o programa multi-core: 1024KB 4096KB 16384KB 40000KB 65536KB 1 thread(s) continued on next page 6

7 1024KB 4096KB 16384KB 40000KB 65536KB 2 thread(s) thread(s) thread(s) thread(s) Podemos ver na figura 2.a que o tempo de execução do algoritmo de threshold para multi-core diminui conforme o número de threads aumenta e vai ocupando os núcleos disponíveis, até chegar a algo entre 2 e 3 vezes mais rápido que a versão sequencial (i.e. aquela com apenas uma thread). A pergunta que ocorre é por que não se chega a uma performance 4 vezes maior, que seria o limite teórico previsto pelo Lei de Amdahl, uma vez que existem 4 núcleos disponíveis na máquina. Isso ocorre porque a divisão de trabalho em threads tem um custo (overhead). O gerenciamento de threads pelo sistema operacional consome ciclos de processamento, podemos ver na figura 2.b que se o número de threads aumenta muito, o custo de gerenciamento chega a ultrapassar o próprio custo de processamento do algoritmo. Além disso, há outros fatores como: A arquitetura multi-core às vezes possui gargalos no acesso à memória principal por mais de um processador ao mesmo tempo; o sistema operacional pode não balencear equilibradamente os threads nos núcleos fazendo com que processadores fiquem ociosos, entre outras causas. Na nossa implementação para GPU comparamos os tempos (em milisegundos) das otimizações feitas: KB 900KB 1024KB 4096KB 15625KB 40000KB versão versão versão Podemos ver que há um grande impacto na performance da versão 1 para a versão 2 quando alinhamos o tipo dos dados em 32 bits. Da versão 2 para a 3 vemos que houve uma grande melhora nas imagens cujas dimensões não atendiam às condições para o alinhamento de memória. Uma preocupação inicial com o uso da GPU era o quanto a transferência de dados da memória principal para a memória do dispositivo iria influenciar no tempo de execução. Na nossa implementação não houve muitos problemas quanto a isso, no caso de 40000KB a transferência custou 0.63ms, o que corresponde a 1% do tempo de processamento do kernel. Mesmo com as otimizações feitas aqui vemos que a GPU não conseguiu superar os resultados da versão multicore. Isso, em parte, pode ser explicado porque a GPU que utilizamos tem apenas 2 multiprocessadores, enquanto que há modelos mais atuais no mercado que chegam às centenas. No entanto, um aspecto positivo é que enquanto a GPU está realizando trabalho a CPU fica ociosa, podendo ser utilizada para outros propósitos, o que é uma vantagem em aplicações interativas, em que a velocidade de resposta ao usuário (e não de processamento) é o fator mais importante. 7 Max-Tree A abertura de área faz parte de uma classe de filtros morfológicos chamados filtros conexos. São chamados assim porque tem a propriedade de nunca inserir novas arestas nas imagens. Nesse contexto, a Max-tree é uma estrutura de dados que agiliza a aplicação de alguns filtros conexos sobre uma imagem, sendo muito útil em visualização, onde é comum se aplicar vários filtros até se obter as características desejadas de uma imagem. 7

8 image original imagem com abertura de área - as regiões da imagem marcadas tinham área in Nesse trabalho procuramos criar um algoritmo para construção da Max-Tree que fosse eficiente nas arquiteturas multi-core disponíveis. Nos baseamos no algoritmo de Salembier (CITAÇÃO) e de Meijster (CITAÇÃO) para criar uma versão híbrida dos dois que se aproveita tanto da capacidade de paralelismo do ambiente multi-core do algoritmo de Meijster quanto da localidade no cache, presente no algoritmo de Salembier. 7.1 Algoritmo de Salembier A construção da Max-Tree consiste em estabelecer uma relação de inclusão entre as regiões da imagem com mesmo brilho (componente conexa). O algoritmo de Salembier funciona utilizando uma fila hieráquica de pixels. Essa fila tem como objetivo permitir a inundação de áreas de mesmo nível de cinza, durante a inundação de uma área podem acontecer as seguintes situações: Encontra-se um pixel na região de vizinhança que possui nível de cinza menor que o pixel que está sendo avaliado Encontra-se um pixel na região de vizinhança que possui nível de cinza maior que o pixel que está sendo avaliado Na primeira situação, não há nada de diferente a fazer, basta inserir o pixel na fila ordenada, ele será o próximo a ser avaliado na fila. Na segunda, o pixel é inserido na fila e é feita uma chamada recursiva de inundação para o pixel com nível de cinza maior; ao fim, é estabelecidade a relação de antecessor entre as regiões (maior -> menor). O processo começa com o pixel de menor valor, assim é garantido que todas as regiões serão inundadas e farão parte da Max-Tree A = (3)

9 Exemplo de Max-Tree gerada pelo algoritmo de salembier a partir da imagem A. Cada nó representa uma componente conexa. 7.2 Algoritmo de Meijster O algoritmo de Meijster funciona utilizando um estrutura de conjuntos disjuntos (em oposição a uma fila, como o método de Salembier). Cada pixel (nó da estrutura) aponta para um antecessor que ou pertence a mesma componente conexa que ele, ou à componente do nível de cinza imediatamente inferior. Esses nós que apontam para uma outra componente correspondem a um nó da Max-Tree, pois guardam as informações (ex: área) da componente conexa de que fazem parte. O algoritmo funciona unindo um pixel com os da sua vizinhança, mas respeitando as componentes conexas, ou seja, quando há um merge em duas estruturas de conjuntos, em vez de simplesmente unir as raízes, como acontece no algoritmo original de Tarjan, a união é feita nível a nível. 9

10 Exemplo de Max-Tree gerada pelo algoritmo de meijster a partir da imagem A. Os nós de nível (que correspondem aos nós da Ma 7.3 Algoritmo Híbrido Nossa versão do algoritmo é uma implementação paralela (multithreaded) da construção de uma MaxTree. A idéia básica é dividir a imagem em determinado número de fatias e processar cada fatia em uma thread. Os resultados são, então, costurados dois a dois. Para o processamento inicial de cada fatia utilizamos um algoritmo de inundação baseado no de Salembier. Para a costura das árvores resultantes do processamento anterior utilizamos um algoritmo de Union-Find. O desenvolvimento desse algoritmo é motivado pelo fato de que o algoritmo de Salembier é bastante rápido em um ambiente sequencial, pois a sua fila hierárquica percorre a memória de uma maneira linear, o que faz um bom aproveitamento da memória cache, diferente do algoritmo de Union-Find, cuja estrutura de apontadores faz com que o acesso seja muito mais aleatório. No entanto, o algoritmo de Salembier não permite o paralelismo. Nossa abordagem foi alterar o algoritmo de Salembier para criar uma estrutura de apontadores utilizável pelo algoritmo de Union-Find. Assim, cada thread executa o algoritmo de Salembier em uma fatia da imagem, e em seguida, as fatias são unidas por Union-Find. A figura seguinte ilustra o processo para o caso em que dividimos a imagem em 4 fatias. 10

11 7.4 Implementação e resultados Todas as nossas implementações paralelas foram feitas em C++ utilizando a biblioteca pthreads, os testes foram feitos em computador com um processador Intel Xeon X3220 de 4 núcleos, cada um 2.4Ghz de 64 bits. Caso de teste 1 min média max Salembier Meijster Union-Find+Salembier Caso de teste 2 min média max Salembier Meijster Union-Find+Salembier

12 Caso de teste 1 Caso de teste Conclusão Vemos que a nossa abordagem tem bons resultados. Mesmo no caso binário, em que o algoritmo de Salembier tem vantagem pois utiliza inundação, nosso algoritmo tem resultado equivalente. Como usa threads, o algoritmo é capaz de utilizar o poder de processamento paralelo dessas novas arquiteturas. 8 Biblioteca de processamento de imagens Nome da biblioteca algoritmos que estão implementados nela local onde encontrar o source 9 Referências References [1] E. Dougherty and R. Lotufo. Hands-on Morphological Image Processing. SPIE, [2] A. Meijster and M. H. F. Wilkinson, A comparison of algorithms for connected set openings and closings, IEEE Trans. Patt. Anal. Mach. Intell., 24 (4), pp , 2002 [3] P. Salembier and A. Oliveras and L. Garrido. Anti-extensive Connected Operators for Image and Sequence Processing. IEEE Transactions on Image Processing; 7: , [4] Compute Unified Device Architecture (CUDA) Programming Guide. NVIDIA, [5] Reif, J. H Synthesis of Parallel Algorithms. 1st. Morgan Kaufmann Publishers Inc. 12

13 Figure 3: Processamento na GPU NVidia: As threads são 13 agrupadas em blocos que por sua vez são executados em paralelo em um multiprocessador.

14 (2.a) (2.b) Figure 4: (2.a) Tempo de execução - 20 threads; (2.b) Tempo de execução threads 14

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

PARALELIZAÇÃO DE APLICAÇÕES NA ARQUITETURA CUDA: UM ESTUDO SOBRE VETORES 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

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

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

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

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

Imagem retirada de documentações de treinamentos oficiais INTEL

Imagem retirada de documentações de treinamentos oficiais INTEL O que é Hyper-Threading (HT)? Hyper-Threading (HT) é uma tecnologia existe nos processadores que visa explorar com mais eficiência o uso da CPU, o grande foco desta tecnologia é evitar ociosidade de processamento

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

Unidade 13: Paralelismo:

Unidade 13: Paralelismo: Arquitetura e Organização de Computadores 1 Unidade 13: Paralelismo: SMP e Processamento Vetorial Prof. Daniel Caetano Objetivo: Apresentar os conceitos fundamentais da arquitetura SMP e alguns detalhes

Leia mais

Curso de Instalação e Gestão de Redes Informáticas

Curso de Instalação e Gestão de Redes Informáticas ESCOLA PROFISSIONAL VASCONCELLOS LEBRE Curso de Instalação e Gestão de Redes Informáticas PROCESSADORES DE 64 BITS X PROCESSADORES DE 32 BITS José Vitor Nogueira Santos FT2-0749 Mealhada, 2009 Introduçã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

Memórias Prof. Galvez Gonçalves

Memórias Prof. Galvez Gonçalves Arquitetura e Organização de Computadores 1 s Prof. Galvez Gonçalves Objetivo: Compreender os tipos de memória e como elas são acionadas nos sistemas computacionais modernos. INTRODUÇÃO Nas aulas anteriores

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

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas: Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; - pesquisa em fusão de energia; - diagnóstico médico; - simulações

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

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

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

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

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

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

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

Máquinas Multiníveis

Máquinas Multiníveis Infra-Estrutura de Hardware Máquinas Multiníveis Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Classificação de arquiteturas Tendências da tecnologia Família Pentium

Leia mais

Auditoria de senhas em hardware paralelo com o John the Ripper O impacto das tecnologias de processamento paralelo na quebra de senhas

Auditoria de senhas em hardware paralelo com o John the Ripper O impacto das tecnologias de processamento paralelo na quebra de senhas Auditoria de senhas em hardware paralelo com o John the Ripper O impacto das tecnologias de processamento paralelo na quebra de senhas Claudio André claudio.andre@correios.net.br Motivação Seu computador

Leia mais

Implementando plugins para o ImageJ

Implementando plugins para o ImageJ UNIVERSIDADE FEDERAL DE MINAS GERAIS INSTITUTO DE CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO NÚCLEO DE PROCESSAMENTO DIGITAL DE IMAGENS (NPDI) Tutorial Implementando plugins para o ImageJ Flávio

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

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

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

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

7 Processamento Paralelo

7 Processamento Paralelo 7 Processamento Paralelo Yes, of course, who has time? Who has time? But then if we do not ever take time, how can we ever have time? (The Matrix) 7.1 Introdução Classificação de Sistemas Paralelos Diversas

Leia mais

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Tecnologia PCI express. Introdução. Tecnologia PCI Express Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade

Leia mais

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul QUESTÃO: 29 Além da alternativa a estar correta a alternativa e também pode ser compreendida como correta. Segundo a definição de diversos autores, a gerência de falhas, detecta, isola, notifica e corrige

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais Notas da Aula 4 - Fundamentos de Sistemas Operacionais 1. Threads Threads são linhas de execução dentro de um processo. Quando um processo é criado, ele tem uma única linha de execução, ou thread. Esta

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I UFRJ IM - DCC Sistemas Operacionais I Unidade II - Threads 24/04/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Threads Processos Threads Conceituação Descrição e Imagem de uma Thread Tipos de thread

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. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 02 - Estrutura dos Sistemas Operacionais. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 02 - Estrutura dos Sistemas Operacionais Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

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

Fundamentos de Hardware

Fundamentos de Hardware Fundamentos de Hardware Curso Técnico em Informática SUMÁRIO PROCESSADOR... 3 CLOCK... 4 PROCESSADORES COM 2 OU MAIS NÚCLEOS... 5 NÚCLEOS FÍSICOS E LÓGICOS... 6 PRINCIPAIS FABRICANTES E MODELOS... 6 PROCESSADORES

Leia mais

Processadores clock, bits, memória cachê e múltiplos núcleos

Processadores clock, bits, memória cachê e múltiplos núcleos Processadores clock, bits, memória cachê e múltiplos núcleos Introdução Os processadores (ou CPUs, de Central Processing Unit) são chips responsáveis pela execução de cálculos, decisões lógicas e instruções

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

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

CENTRAL PRCESSING UNIT

CENTRAL PRCESSING UNIT Processador O processador, também chamado de CPU ( CENTRAL PRCESSING UNIT) é o componente de hardware responsável por processar dados e transformar em informação. Ele também transmite estas informações

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

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores Multi-processamento Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores Arquitecturas MIMD de memória distribuída Massive Parallel Computers Sistemas distribuídos Ainda

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

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

Introdução às arquiteturas paralelas e taxonomia de Flynn

Introdução às arquiteturas paralelas e taxonomia de Flynn Introdução às arquiteturas paralelas e taxonomia de Flynn OBJETIVO: definir computação paralela; o modelo de computação paralela desempenhada por computadores paralelos; e exemplos de uso da arquitetura

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

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

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

Introdução aos Sistemas

Introdução aos Sistemas Introdução Introdução aos Sistemas Operacionais 1 2 3... n Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Compilador Editor de texto Browser Programas

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

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

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

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

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

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

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França Arquitetura NUMA 1 Daniel de Angelis Cordeiro INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França 6 de Outubro de 2010 1 Baseado em slides feitos por Christiane Pousa

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

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SISTEMAS COM MÚLTIPLOS PROCESSADORES LIVRO TEXTO: CAPÍTULO 13, PÁGINA 243 Prof. Pedro Luís Antonelli Anhanguera Educacional INTRODUÇÃO Arquiteturas que possuem duas ou mais CPUs interligadas

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

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

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

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano 2012-1

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano 2012-1 ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES Prof. Dr. Daniel Caetano 2012-1 Lembretes Compreender o funcionamento da Arquitetura Superpipeline Compreender

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

Everson Scherrer Borges João Paulo de Brito Gonçalves

Everson Scherrer Borges João Paulo de Brito Gonçalves Everson Scherrer Borges João Paulo de Brito Gonçalves 1 Tipos de Sistemas Operacionais Os tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolução do hardware e das

Leia mais

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução; Em 1993, foi lançada a primeira versão do processador Pentium, que operava a 60 MHz Além do uso otimizado da memória cache (tecnologia já amadurecida) e da multiplicação do clock, o Pentium passou a utilizar

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

1.2 Tipos de Sistemas Operacionais

1.2 Tipos de Sistemas Operacionais 1.2 Tipos de Operacionais Tipos de Operacionais Monoprogramáveis/ Monotarefa Multiprogramáveis/ Multitarefa Com Múltiplos Processadores 1.2.1 Monoprogramáveis/Monotarefa Os primeiros sistemas operacionais

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

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

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

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

Prof. Rafael Gross. rafael.gross@fatec.sp.gov.br

Prof. Rafael Gross. rafael.gross@fatec.sp.gov.br Prof. Rafael Gross rafael.gross@fatec.sp.gov.br Todo protocolo define um tipo de endereçamento para identificar o computador e a rede. O IP tem um endereço de 32 bits, este endereço traz o ID (identificador)

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

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

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

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

Trabalho de Fundamentos da Computação Gráfica

Trabalho de Fundamentos da Computação Gráfica Trabalho de Fundamentos da Computação Gráfica Melhorias para o Ray Tracing 1. Níveis de pré-visualização 2. Paralelização com Buckets (na CPU) 3. Anti-aliasing (Supersampling) 4. Passes a. Mapa de Profundidade

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

GRÁFICOS Exemplos de jogos 2D (com simulação do 3D)

GRÁFICOS Exemplos de jogos 2D (com simulação do 3D) Femur Online GRÁFICOS Exemplos de jogos 2D (com simulação do 3D) Como resultado de buscas na internet, tendo como base os jogos 2D mais famosos do mundo, obtive como resultado três tipos diferentes de

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

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Professor: João Fábio de Oliveira jfabio@amprnet.org.br (41) 9911-3030 Objetivo: Apresentar o que são os Sistemas Operacionais, seu funcionamento, o que eles fazem,

Leia mais

AULA 1. Informática Básica. Gustavo Leitão. gustavo.leitao@ifrn.edu.br. Disciplina: Professor: Email:

AULA 1. Informática Básica. Gustavo Leitão. gustavo.leitao@ifrn.edu.br. Disciplina: Professor: Email: AULA 1 Disciplina: Informática Básica Professor: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Estudo de caso Empresa do ramo de seguros Presidência RH Financeiro Vendas e Marketing TI CRM Riscos Introdução

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 1 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

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

5 Entrada e Saída de Dados:

5 Entrada e Saída de Dados: 5 Entrada e Saída de Dados: 5.1 - Arquitetura de Entrada e Saída: O sistema de entrada e saída de dados é o responsável pela ligação do sistema computacional com o mundo externo. Através de dispositivos

Leia mais

O quê um Processador e qual a sua função?

O quê um Processador e qual a sua função? O quê um Processador e qual a sua função? O processador é um chip de silício responsável pela execução das tarefas atribuídas ao computador. Os processadores (ou CPUs, de Central Processing Unit) são responsáveis

Leia mais

TRABALHO COM GRANDES MONTAGENS

TRABALHO COM GRANDES MONTAGENS Texto Técnico 005/2013 TRABALHO COM GRANDES MONTAGENS Parte 05 0 Vamos finalizar o tema Trabalho com Grandes Montagens apresentando os melhores recursos e configurações de hardware para otimizar a abertura

Leia mais

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN SISTEMAS OPERACIONAIS Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN 2.0 - INTRODUÇÃO Os tipos de sistemas operacionais e sua evolução estão intimamente relacionados com a evolução do hardware

Leia mais

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. Data: 14/8 Página 1 de 9 Primeiros passos Introdução Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. No tutorial anterior, mostramos como

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

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

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

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução à gestão de memória Programação de Sistemas Gestão de memória : 1/16 Introdução (1) A memória central de um computador é escassa. [1981] IBM PC lançado com 64KB na motherboard,

Leia mais