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
|
|
- Patrícia Galindo do Amaral
- 8 Há anos
- Visualizações:
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 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 maisOrganizaçã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 maisCapacidade = 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 maisComparativo 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 maisProcessos 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 maisImagem 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 maisA 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 maisUnidade 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 maisCurso 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 maisO 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 maisMemó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 maisBACHARELADO 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 maisParalelismo. 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 maisLP 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 maisExperimentos 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 maisSistema 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 maisSistemas 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 maisHardware (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 maisArquiteturas 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 maisSistemas 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 maisINSTITUTO 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 maisMá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 maisAuditoria 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 maisImplementando 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 maisSistema 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 maisTais 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 maisProcessamento 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 maisBARRAMENTO 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 mais7 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 maisTecnologia 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 maisMinisté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 maisARQUITETURA 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 maisNotas 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 maisSistemas 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 maisInformá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 maisSistemas 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 maisOrientaçã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 maisFundamentos 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 maisProcessadores 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 maisEscalonamento 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 maisTé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 maisCENTRAL 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 maisCá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 maisMulti-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 maisCISC 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 mais6 - 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 maisIntroduçã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 maisAula 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 maisSistemas 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 maisPlaca 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 maisIntroduçã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 maisNotas 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 maisPARANÁ 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 maisGuilherme 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 maisSistemas 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 mais28/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 maisDadas 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 maisArquitetura 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 mais3. 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 maisSistemas 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 maisArquitetura 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 maisProgramaçã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 maisAULA4: 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 maisAlgoritmos 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 maisARQUITETURA 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 maisEsta 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 maisEverson 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 mais29/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 maisComputadores 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 maisARRAYS. 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 mais1.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 maisCapí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 mais10 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 maisBusca. 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 maisIFPE. 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 maisProf. 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 maisCapí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 maisIntroduçã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 maisFACULDADE 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 maisArquitetura 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 maisTrabalho 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 maisHardware 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 maisGRÁ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 maisIntroduçã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 maisFundamentos 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 maisAULA 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 maisSistemas 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 maisO 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 mais5 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 maisO 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 maisTRABALHO 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 maisSISTEMAS 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 maisNa 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 maisSISTEMAS 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 mais1. 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 maisSistemas 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 maisProgramaçã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