Aula 10 - Streams (Parte I)

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

Download "Aula 10 - Streams (Parte I)"

Transcrição

1 Disciplina de TICs 1 - Introdução a Programação em GPGPU Aula 10 - Streams (Parte I)

2 Introdução Até então foi visto como engenho de processamento paralelo massivo de dados nas GPUs pode aumentar assombrosamente o ganho em tempo quando comparado com as CPUs Contudo ainda há outro tipo de paralelismo a ser explorado Esta outra forma é semelhante as tarefas multithreads nas aplicações em CPU Ao invés de realizar a mesma função sobre vários dados de forma paralela, esta nova forma de paralelismo é realizar duas ou mais tarefas completamente diferentes ao mesmo tempo. Neste contexto, uma tarefa poderia ser qualquer número de coisas Exemplo: uma aplicação que uma thread redesenha a GUI e uma segunda thread realiza um download de uma atualização sobre a rede.

3 Alocações de Memória Como já visto até então, quando é desejado alocar memória, Memória na GPU: utiliza-se a função cudamalloc() Memória no Host: utiliza-se a função malloc()

4 Alocações de Memória Como já visto até então, quando é desejado alocar memória, Memória na GPU: utiliza-se a função cudamalloc() Memória no Host: utiliza-se a função malloc() Contudo ainda há uma outra forma de alocar memória no device, O runtime CUDA oferece um mecanismo de alocação de memória no Host, utilizando-se a função cudahostalloc()

5 Alocações de Memória Como já visto até então, quando é desejado alocar memória, Memória na GPU: utiliza-se a função cudamalloc() Memória no Host: utiliza-se a função malloc() Contudo ainda há uma outra forma de alocar memória no device, O runtime CUDA oferece um mecanismo de alocação de memória no Host, utilizando-se a função cudahostalloc() Contudo, porque utiliza a função cudaalloc() ao invés de malloc()?

6 Alocações de Memória Na realidade há uma diferença entra a memória alocada pela função Malloc() e a função cudahostalloc() A função Malocc() alocará uma memória padrão, uma memória paginável no host A função cudahostalloc() irá alocar uma memória com página travada (memória presa)

7 Alocações de Memória Na realidade há uma diferença entra a memória alocada pela função Malloc() e a função cudahostalloc() A função Malocc() alocará uma memória padrão, uma memória paginável no host A função cudahostalloc() irá alocar uma memória com página travada (memória presa) Um buffer com página travada tem uma importante propriedade: o S.O. nunca irá paginar para o disco uma memória presa, garantindo sua permanência na memória. Assim, um corolário é que este se transforma em uma região segura de memória para o S.O. permitir o acesso de uma aplicação ao endereço físico da memória.

8 DMA - Acesso Direto a Memória Uma vez que o endereço físico (real) é conhecido, a GPU pode utilizá-lo para acessar diretamente a memória (DMA) para copiar dados para ou a partir do host.

9 DMA - Acesso Direto a Memória Uma vez que o endereço físico (real) é conhecido, a GPU pode utilizá-lo para acessar diretamente a memória (DMA) para copiar dados para ou a partir do host. Com o Acesso Direto da Memória, a cópia DMA procede sem a intervenção da CPU. Caso a memória acessada diretamente não foce preza, significaria que a CPU estaria podendo realizar um paginamento no endereço que a GPU estaria acessando. Observe que toda vez que se deseja realizar uma cópia de memória paginável, o CUDA está utilizando uma cópia DMA. Assim, esta cópia ocorre em duas etapas: primeiro a partir de um buffer paginável um buffer da página travada é criado, e depois deste último buffer é transferido para a GPU.

10 Uso de Memória com Página Travada Contudo, deve-se resistir a tentação de se trocar todos os malloc()s por cudahostalloc() Utilizar uma memória preza é uma faca de dois gumes! A paginação de memória não foi desenvolvida a toa! A memória virtual é de suma importância para a grande maioria das aplicações poderem rodar em uma configuração mínima de memória bem abaixo do espaço que esta mesma aplicação necessitaria para rodar sem a memória virtual ou paginação de memória.

11 Uso de Memória com Página Travada Contudo, deve-se resistir a tentação de se trocar todos os malloc()s por cudahostalloc() Utilizar uma memória preza é uma faca de dois gumes! A paginação de memória não foi desenvolvida a toa! A memória virtual é de suma importância para a grande maioria das aplicações poderem rodar em uma configuração mínima de memória bem abaixo do espaço que esta mesma aplicação necessitaria para rodar sem a memória virtual ou paginação de memória. Outro ponto é que deve existir memória para garantir todos os buffers de página travada, visto que estes não sofrerão swap como disco.

12 Uso de Memória com Página Travada Contudo, deve-se resistir a tentação de se trocar todos os malloc()s por cudahostalloc() Utilizar uma memória preza é uma faca de dois gumes! A paginação de memória não foi desenvolvida a toa! A memória virtual é de suma importância para a grande maioria das aplicações poderem rodar em uma configuração mínima de memória bem abaixo do espaço que esta mesma aplicação necessitaria para rodar sem a memória virtual ou paginação de memória. Outro ponto é que deve existir memória para garantir todos os buffers de página travada, visto que estes não sofrerão swap como disco. Assim, o uso de memória preza implica em um alto consumo efetivo de memória, podendo influenciar no desempenho de outras aplicações.

13 Uso de Memória com Página Travada De forma geral, o uso de memória com paginamento travado é muito mais raro do que os outros acessos de memória já estudados. Contudo, vejamos um exemplo como uso de memória com página travada. O exemplo é muito simples e serve primariamente como um benckmark para o desempenho da função cudamemcpy() com ambas as memórias pagináveis e não pagináveis. A ideia é alocar um buffer na GPU e um na CPU de mesmo tamanho, e então executar uma certa quantidade de cópias entre estes dois buffers Será permitido ao usuário definir a direção destas cópias, se up (do host para o device) ou down (do device para o host) Para se obter uma cronometragem acurada, serão executados os eventos CUDA para o início e o fim da sequência de cópias

14 Exemplo Introdução float cuda_malloc_test( int size, bool up ) { cudaevent_t start, stop; int *a, *dev_a; float elapsedtime; HANDLE_ERROR( cudaeventcreate( &start ) ); HANDLE_ERROR( cudaeventcreate( &stop ) ); a = (int*)malloc( size * sizeof( *a ) ); HANDLE_NULL( a ); HANDLE_ERROR( cudamalloc( (void**)&dev_a, size * sizeof( *dev_a ) ) );

15 Exemplo Introdução HANDLE_ERROR( cudaeventrecord( start, 0 ) ); for (int i=0; i<100; i++) { if (up) HANDLE_ERROR( cudamemcpy( dev_a, a, size * sizeof( *dev_a ), cudamemcpyhosttodevice ) ); else HANDLE_ERROR( cudamemcpy( a, dev_a, size * sizeof( *dev_a ), cudamemcpydevicetohost ) ); } HANDLE_ERROR( cudaeventrecord( stop, 0 ) ); HANDLE_ERROR( cudaeventsynchronize( stop ) ); HANDLE_ERROR( cudaeventelapsedtime( &elapsedtime, start, stop) );

16 Exemplo Introdução free( a ); HANDLE_ERROR( cudafree( dev_a ) ); HANDLE_ERROR( cudaeventdestroy( start ) ); HANDLE_ERROR( cudaeventdestroy( stop ) ); } return elapsedtime;

17 Exemplo Introdução No exemplo dado, independente da direção da cópia, começa-se com a alocação de um buffer no host e na GPU de tamanho inteiro size. São geradas 100 cópias na direção especificada pelo argumento up, parando o tempo depois do término do processo das 100 cópias. E por fim as memórias do host e GPU são liberadas.

18 Exemplo Introdução No exemplo dado, independente da direção da cópia, começa-se com a alocação de um buffer no host e na GPU de tamanho inteiro size. São geradas 100 cópias na direção especificada pelo argumento up, parando o tempo depois do término do processo das 100 cópias. E por fim as memórias do host e GPU são liberadas. Mas o ponto importante da função cuda malloc test() é que esta aloca memória paginável, com o uso da função malloc()

19 Exemplo - Page-Locked float cuda_host_alloc_test( int size, bool up ) { cudaevent_t start, stop; int *a, *dev_a; float elapsedtime; HANDLE_ERROR( cudaeventcreate( &start ) ); HANDLE_ERROR( cudaeventcreate( &stop ) ); HANDLE_ERROR( cudahostalloc( (void**)&a, size * sizeof( *a ), cudahostallocdefault ) ); HANDLE_ERROR( cudamalloc( (void**)&dev_a, size * sizeof( *dev_a ) ) );

20 Exemplo - Page-Locked HANDLE_ERROR( cudaeventrecord( start, 0 ) ); for (int i=0; i<100; i++) { if (up) HANDLE_ERROR( cudamemcpy( dev_a, a, size * sizeof( *a ), cudamemcpyhosttodevice ) ); else HANDLE_ERROR( cudamemcpy( a, dev_a, size * sizeof( *a ), cudamemcpydevicetohost ) ); } HANDLE_ERROR( cudaeventrecord( stop, 0 ) ); HANDLE_ERROR( cudaeventsynchronize( stop ) ); HANDLE_ERROR( cudaeventelapsedtime( &elapsedtime, start, stop ) );

21 Exemplo - Page-Locked HANDLE_ERROR( cudafreehost( a ) ); HANDLE_ERROR( cudafree( dev_a ) ); HANDLE_ERROR( cudaeventdestroy( start ) ); HANDLE_ERROR( cudaeventdestroy( stop ) ); } return elapsedtime;

22 Exemplo - Page-Locked Neste segundo exemplo, é utilizada a alocação de uma memória preza. O buffer alocado pela função cudahostalloc() é usado da mesma forma que o buffer alocado poe malloc() Um ponto de diferença é o argumento cudahostallocdefault utilizado na função cudahostalloc() Este argumento pode receber uma coleção de flags que podem ser utilizadas para modificar o comportamento da função cudahostalloc() de forma a alocar outras variáveis da memória preza do host No próximo capítulo serão abordadas outras possibilidades para este argumento. Aqui esta se querendo uma memória não paginável padrão, assim se utiliza cudahostallocdefault Para desalocar um buffer alocado com cudahostalloc() utiliza-se cudafreehost()

23 Testes Introdução Utilizando-se uma GeForce GTX 285, foi observado Cópia do Hosto para o Device Memória paginável: 2.77GB/s Memória não paginável: 5.11GB/s Cópia do Device para o Hosto Memória paginável: 2.43GB/s Memória não paginável: 5.46GB/s

24 Streams no CUDA Introdução Um Stream CUDA Simples Já foi introduzida a ideia de eventos em CUDA, contudo ainda não foi discutido a função do segundo argumento da função cudaeventrecird() Este segundo argumento especifica o stream ao qual está sendo inserido o evento. cudaevent_t start; cudaeventcreate(&start); cudaeventrecord( start, 0 ); Um stream CUDA representa uma fila de operações de GPU a serem executadas em uma ordem específica É possível adicionar operações em um stream tais como, Lancamentos de kernels Cópia de Memória Início e finalização de eventos

25 Stream CUDA Introdução Um Stream CUDA Simples O verdadeiro poder do uso dos streams torna-se aparente quando se utiliza mais de um deles por vez, mas verificaremos o uso de um stream inicialmente.

26 Stream CUDA Introdução Um Stream CUDA Simples O verdadeiro poder do uso dos streams torna-se aparente quando se utiliza mais de um deles por vez, mas verificaremos o uso de um stream inicialmente. Imagine um kernal CUDA tomando dois buffers de entrada, a e b Será realizada alguma computação com a e b, gerando o buffer de saída c (média de três observações) #define N (1024*1024) #define FULL_DATA_SIZE (N*20) global void kernel( int *a, int *b, int *c ) { int idx = threadidx.x + blockidx.x * blockdim.x; if (idx < N) { int idx1 = (idx + 1) % 256; int idx2 = (idx + 2) % 256; float as = (a[idx] + a[idx1] + a[idx2]) / 3.0f; float bs = (b[idx] + b[idx1] + b[idx2]) / 3.0f; c[idx] = (as + bs) / 2; } }

27 Stream CUDA Introdução Um Stream CUDA Simples Seja o código main() int main( void ) { cudadeviceprop prop; int whichdevice; HANDLE_ERROR( cudagetdevice( &whichdevice ) ); HANDLE_ERROR( cudagetdeviceproperties( &prop, whichdevice ) ); if (!prop.deviceoverlap) { printf( "Device will not handle overlaps, so no " "speed up from streams\n" ); return 0; } Aqui, o primeiro passa é escolher um device e verificar se este suporta uma característica conhecida como device overlap A característica device overlap permite a GPU simultaneamente executar um kernel CUDA C e uma cópia de memória entre o Device e o Host

28 Stream CUDA Introdução Um Stream CUDA Simples Vamos começar criando e inicializando um evento timer, cudaevent_t start, stop; float elapsedtime; // start the timers HANDLE_ERROR( cudaeventcreate( &start ) ); HANDLE_ERROR( cudaeventcreate( &stop ) ); HANDLE_ERROR( cudaeventrecord( start, 0 ) );

29 Stream CUDA Introdução Um Stream CUDA Simples Vamos começar criando e inicializando um evento timer, cudaevent_t start, stop; float elapsedtime; // start the timers HANDLE_ERROR( cudaeventcreate( &start ) ); HANDLE_ERROR( cudaeventcreate( &stop ) ); HANDLE_ERROR( cudaeventrecord( start, 0 ) ); Depois de inicializar o timer, cria-se o stream, // initialize the stream cudastream_t stream; HANDLE_ERROR( cudastreamcreate( &stream ) );

30 Stream CUDA Alocação de Dados Um Stream CUDA Simples int *host_a, *host_b, *host_c; int *dev_a, *dev_b, *dev_c; // allocate the memory on the GPU HANDLE_ERROR( cudamalloc( (void**)&dev_a, N * sizeof(int) ) ); HANDLE_ERROR( cudamalloc( (void**)&dev_b, N * sizeof(int) ) ); HANDLE_ERROR( cudamalloc( (void**)&dev_c, N * sizeof(int) ) ); // allocate page-locked memory, used to stream HANDLE_ERROR( cudahostalloc( (void**)&host_a, FULL_DATA_SIZE * sizeof(int),cudahostallocdefault)); HANDLE_ERROR( cudahostalloc( (void**)&host_b, FULL_DATA_SIZE * sizeof(int),cudahostallocdefault)); HANDLE_ERROR( cudahostalloc( (void**)&host_c, FULL_DATA_SIZE * sizeof(int),cudahostallocdefault)); for (int i=0; i<full_data_size; i++) { host_a[i] = rand(); host_b[i] = rand(); }

31 Stream CUDA Introdução Um Stream CUDA Simples Foram alocados as entradas e saídas tanto da GPU com no Host. Observe que foi escolhido utilizar a memória não paginável na Host, utilizando-se a função cudahostalloc() para realizar as alocações Há mais do que realizar cópias mais rápido para o uso de memória não paginável. Estará sendo utilizada um novo tipo da função cudamemcpy(), e esta requer memória não paginável.

32 Stream CUDA Introdução Um Stream CUDA Simples Foram alocados as entradas e saídas tanto da GPU com no Host. Observe que foi escolhido utilizar a memória não paginável na Host, utilizando-se a função cudahostalloc() para realizar as alocações Há mais do que realizar cópias mais rápido para o uso de memória não paginável. Estará sendo utilizada um novo tipo da função cudamemcpy(), e esta requer memória não paginável. Depois da alocação das entradas, as alocações do host são preenchidas com números aleatórios

33 Stream CUDA Introdução Um Stream CUDA Simples Foram alocados as entradas e saídas tanto da GPU com no Host. Observe que foi escolhido utilizar a memória não paginável na Host, utilizando-se a função cudahostalloc() para realizar as alocações Há mais do que realizar cópias mais rápido para o uso de memória não paginável. Estará sendo utilizada um novo tipo da função cudamemcpy(), e esta requer memória não paginável. Depois da alocação das entradas, as alocações do host são preenchidas com números aleatórios Com o stream, os eventos de tempo, os buffers do host e device alocados, estamos prontos para desempenhar as computações O procedimento geral ainda é copia-se os buffers de entrada para a GPU, levanta-se um kernel e copia-se um buffer de saída de volta para o host

34 Stream CUDA Introdução Um Stream CUDA Simples Serão tomadas algumas pequenas alterações do procedimento genérico, Os buffers de entrada não serão copiados em sua integridade para a GPU As entradas serão divididos em pedaços, e cada pedaço será aplicado um processo em três etapas Dada uma fração do buffer de entrada, copia-se para a GPU e se executa o kernel sobre a fração do buffer, copiando-se de volta para o host a fração do buffer de saída gerado. Imagine que este procedimento é utilizado por que o buffer do host simplesmente não cabe na memória da GPU No próximo slide será apresentado o código para desempenhar a sequência de computação

35 Stream CUDA Introdução Um Stream CUDA Simples // now loop over full data, in bite-sized chunks for (int i=0; i<full_data_size; i+= N) { // copy the locked memory to the device, async HANDLE_ERROR( cudamemcpyasync(dev_a,host_a+i,n*sizeof(int), cudamemcpyhosttodevice, stream ) ); HANDLE_ERROR( cudamemcpyasync(dev_b,host_b+i,n*sizeof(int), cudamemcpyhosttodevice, stream ) ); kernel<<<n/256,256,0,stream>>>( dev_a, dev_b, dev_c ); } // copy the data from device to locked memory HANDLE_ERROR( cudamemcpyasync(host_c+i,dev_c,n*sizeof(int), cudamemcpydevicetohost, stream ) );

36 Modificações Utilizadas Um Stream CUDA Simples Ao invés de se utilizar a função cudamemcpy() foi utilizada a função cudamemcpyasync() A diferença entre as duas funções é sutil, porém significante. A função cudamemcpy() se comporta da mesma forma que memcpy() do C padrão Esta função funciona de forma síncrona, significando que quando a função retorna um valor, a cópia tem sido completada.

37 Modificações Utilizadas Um Stream CUDA Simples Ao invés de se utilizar a função cudamemcpy() foi utilizada a função cudamemcpyasync() A diferença entre as duas funções é sutil, porém significante. A função cudamemcpy() se comporta da mesma forma que memcpy() do C padrão Esta função funciona de forma síncrona, significando que quando a função retorna um valor, a cópia tem sido completada. Em oposição a uma função síncrona existe uma função assíncrona. No caso, a função cudamemcpyasync()

38 Modificações Utilizadas Um Stream CUDA Simples A chamada da função cudamemcpyasync() simplesmente recoloca o pedido de cópia de memória em um stream especificado pelo argumento stream Quando a chamada da função cudamemcpyasync() retorna, não há nenhuma garantia que a cópia tenha sequer inicializado, muito menos tenha sido finalizada. A única garantia é que a cópia será finalizada antes que a próxima operação localizada no mesmo stream É requerido que qualquer ponteiro da memória Host passado para a função cudamemcpyasync() tenha sido alocado por cudahostalloc() Ou seja, todo agendamento de cópia assíncrona só é possível de ou para uma região de memória não paginável.

39 Modificações Utilizadas Um Stream CUDA Simples Observe também que o lançamento do kernel também foi modificado Agora há um maior número de argumentos sendo passados para o kernel. O lançamento deste kernel também é assíncrono. Tecnicamente, é possível concluir uma iteração do laço for sem ter começado qualquer alocação de memória e/ou execução do kernel A única garantia é que a primeira cópia lançada no stream será executada antes da segunda cópia. A segunda cópia será realizada antes do ínicio do kernel, e o kernel irá ser finalizado antes da terceira cópia

40 Modificações Utilizadas Um Stream CUDA Simples Observe também que o lançamento do kernel também foi modificado Agora há um maior número de argumentos sendo passados para o kernel. O lançamento deste kernel também é assíncrono. Tecnicamente, é possível concluir uma iteração do laço for sem ter começado qualquer alocação de memória e/ou execução do kernel A única garantia é que a primeira cópia lançada no stream será executada antes da segunda cópia. A segunda cópia será realizada antes do ínicio do kernel, e o kernel irá ser finalizado antes da terceira cópia O stream funciona como uma lista ordenada de trabalhos a serem realizados na GPU.

41 Modificações Utilizadas Um Stream CUDA Simples Observe que depois do lação for() ter sido concluído, ainda há a possibilidade da GPU ainda está processando.

42 Modificações Utilizadas Um Stream CUDA Simples Observe que depois do lação for() ter sido concluído, ainda há a possibilidade da GPU ainda está processando. Caso haja o desejo de que a CPU espera a computação da GPU, há a necessidade de se realizar uma sincronização. Este sincronização pode ser realizada por meio da função cudastreamsynchronaze() e o stream que se deseja esperar, // copy result chunk from locked to full buffer HANDLE_ERROR( cudastreamsynchronize( stream ) );

43 Modificações Utilizadas Um Stream CUDA Simples Observe que depois do lação for() ter sido concluído, ainda há a possibilidade da GPU ainda está processando. Caso haja o desejo de que a CPU espera a computação da GPU, há a necessidade de se realizar uma sincronização. Este sincronização pode ser realizada por meio da função cudastreamsynchronaze() e o stream que se deseja esperar, // copy result chunk from locked to full buffer HANDLE_ERROR( cudastreamsynchronize( stream ) ); Uma vez as computações e cópias tenham sido completadas depois da sincronização da stream como o host, falta para o timer, coletar os dados e liberar a memória.

44 o Restante do Código Um Stream CUDA Simples HANDLE_ERROR( cudaeventrecord( stop, 0 ) ); HANDLE_ERROR( cudaeventsynchronize( stop ) ); HANDLE_ERROR( cudaeventelapsedtime( &elapsedtime, start, stop ) ); printf( "Time taken:%3.1f ms\n", elapsedtime ); // cleanup the streams and memory HANDLE_ERROR( cudafreehost( host_a ) ); HANDLE_ERROR( cudafreehost( host_b ) ); HANDLE_ERROR( cudafreehost( host_c ) ); HANDLE_ERROR( cudafree( dev_a ) ); HANDLE_ERROR( cudafree( dev_b ) ); HANDLE_ERROR( cudafree( dev_c ) );

45 Restante do Código Um Stream CUDA Simples E por fim, antes de sair da aplicação, é necessário destruir o stream, HANDLE_ERROR( cudastreamdestroy( stream ) ); } return 0;

46 Exercício Introdução Um Stream CUDA Simples Implemente os códigos apresentados, realizando as comparações de desempenho.

47 Bibliografia Jason Sandres and Edward Kandrot. CUDA by exemple. An Introduction to General-Purpose GPU Programming. Addison-Wesley, Capítulo 10

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

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

Leia mais

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011 Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2010/2011 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 11 CUDA Parte 2 N. Cardoso & P. Bicudo Programação em

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

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

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2010/2011 Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2010/2011 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 12 CUDA Parte 3 N. Cardoso & P. Bicudo Programação em

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

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

Leia mais

Estruturas do Sistema de Computação

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

Leia mais

Processamento de Alto Desempenho utilizando Unidade de Processamento Gráfico - GPU

Processamento de Alto Desempenho utilizando Unidade de Processamento Gráfico - GPU Processamento de Alto Desempenho utilizando Unidade de Processamento Gráfico - GPU Francisco Ribacionka e Ettore Enrico (STI ) USP/STI/InterNuvem internuvem@usp.br Março -2016 Processamento de Alto Desempenho

Leia mais

Arquitetura de Computadores II

Arquitetura de Computadores II Universidade Federal do Rio de Janeiro Informática DCC/IM Arquitetura de Computadores II Sistemas de Troca de Mensagens O Sistema de Comunicação provê tipicamente os seguintes serviços para as aplicações:

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

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

Programação Paralela e Distribuída (DCC/UFRJ)

Programação Paralela e Distribuída (DCC/UFRJ) Programação Paralela e Distribuída (DCC/UFRJ) Aula 7: Programação com memória compartilhada usando OpenMP 1, 8, 10 e 15 de abril de 2015 OpenMP (Open MultiProcessing) Projetado para sistemas de memória

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

Tópicos em Física Computacional: Introdução a Linguagem CUDA

Tópicos em Física Computacional: Introdução a Linguagem CUDA Tópicos em Física Computacional: Introdução a Linguagem CUDA Aula 06: Introdução a Linguagem CUDA Otimização do Código Carine P. Beatrici IF UFRGS 1 Da Aula Passada... Programa que soma matrizes linearizadas;

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

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

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento e Indexação Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento Banco de Dados são armazenados fisicamente como arquivos de registro, que em geral ficam em discos

Leia mais

Introdução a CUDA. Esteban Walter Gonzalez Clua. Medialab - Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center START

Introdução a CUDA. Esteban Walter Gonzalez Clua. Medialab - Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center START Introdução a CUDA START Esteban Walter Gonzalez Clua Medialab - Instituto de Computação Universidade Federal Fluminense NVIDIA CUDA Research Center 1536 cores Dynamic Parallelism Hyper - Q Pipeline

Leia mais

Procedimentos para Instalação do SISLOC

Procedimentos para Instalação do SISLOC Procedimentos para Instalação do SISLOC Sumário 1. Informações Gerais...3 2. Instalação do SISLOC...3 Passo a passo...3 3. Instalação da Base de Dados SISLOC... 11 Passo a passo... 11 4. Instalação de

Leia mais

Procedimentos para Instalação do Sisloc

Procedimentos para Instalação do Sisloc Procedimentos para Instalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Instalação do Sisloc... 3 Passo a passo... 3 3. Instalação da base de dados Sisloc... 16 Passo a passo... 16 4. Instalação

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

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013

Programação em Paralelo. N. Cardoso & P. Bicudo. Física Computacional - MEFT 2012/2013 Programação em Paralelo CUDA N. Cardoso & P. Bicudo Física Computacional - MEFT 2012/2013 N. Cardoso & P. Bicudo Programação em Paralelo: CUDA 1 / 23 CUDA "Compute Unified Device Architecture" Parte 2

Leia mais

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é

Leia mais

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server. Recover no Oracle O backup e recuperação de dados em um SGBD é de grande importância para a manutenção dos dados. Dando continuidade a nossos artigos, apresentamos abaixo formas diferentes de se fazer

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Modelo cliente e servidor Slide 2 Nielsen C. Damasceno Modelos Cliente - Servidor A principal diferença entre um sistema centralizado e um sistema distribuído está na comunicação

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

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress. Sistemas Operacionais Aula 3 Prof: Carlos Eduardo de Carvalho Dantas (carloseduardoxpto@gmail.com) http://carloseduardoxp.wordpress.com Nunca cone em um computador que você não pode jogar pela janela.

Leia mais

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros

Leia mais

DAS5102 Fundamentos da Estrutura da Informação

DAS5102 Fundamentos da Estrutura da Informação Pilhas A estrutura de dados Pilha emula a forma de organização de objetos intuitiva que é utilizada diariamente nos mais diversos contextos da vida humana. Containeres são empilhados e desempilhados diariamente

Leia mais

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto Introdução Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos

Leia mais

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

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

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Software em Sistemas Distribuídos Aplicativo ou Sistema Operacional Sincronismo Interação Controles Um sistema operacional moderno provê dois serviços fundamentais para o usuário

Leia mais

MANUAL DO GERENCIADOR ESCOLAR WEB

MANUAL DO GERENCIADOR ESCOLAR WEB CNS LEARNING MANUAL DO GERENCIADOR ESCOLAR WEB Versão Online 13 Índice ÍNDICE... 1 VISÃO GERAL... 2 CONCEITO E APRESENTAÇÃO VISUAL... 2 PRINCIPAIS MÓDULOS... 3 ESTRUTURAÇÃO... 3 CURSOS... 4 TURMAS... 4

Leia mais

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco AULA 04 - Estruturas Sistemas Computacionais Nosso objetivo é apenas revisar conceitos relacionados a estrutura geral um sistema computacional para pois explicarmos os talhes operação do sistema e como

Leia mais

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. PROGRAMA EMBRAPA DE MELHORAMENTO DE GADO DE CORTE MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. MANUAL DE INSTALAÇÃO: 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS

Leia mais

Integração de Sistemas Embebidos MECom :: 5º ano

Integração de Sistemas Embebidos MECom :: 5º ano Integração de Sistemas Embebidos MECom :: 5º ano Device Drivers em Linux - Introdução António Joaquim Esteves www.di.uminho.pt/~aje Bibliografia: capítulo 1, LDD 3ed, O Reilly DEP. DE INFORMÁTICA ESCOLA

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

Gerência de Entrada/Saída

Gerência de Entrada/Saída Gerência de Entrada/Saída Prof Clodoaldo Ap Moraes Lima 1 Princípios básicos de hardware Periférico é um dispositivo conectado a um computador de forma a possibilitar sua interação com o mundo externo

Leia mais

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional. Arquitetura Oracle e seus componentes Hoje irei explicar de uma forma geral a arquitetura oracle e seus componentes. Algo que todos os DBA s, obrigatoriamente, devem saber de cabo a rabo. Vamos lá, e boa

Leia mais

Algoritmos de Busca em Tabelas

Algoritmos de Busca em Tabelas Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados

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

Software. Gerenciamento de Manutenção

Software. Gerenciamento de Manutenção Software Gerenciamento de Manutenção Tutorial Passo a Passo Do Cadastro de Serviço à Consulta de Serviços Realizados Tutorial Recomendações AsinformaçõesutilizadasnestetutorialsãoasmesmasquevocêtemnoseuBancodeDados

Leia mais

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador?

Backup. Permitir a recuperação de sistemas de arquivo inteiros de uma só vez. Backup é somente uma cópia idêntica de todos os dados do computador? Backup O backup tem dois objetivos principais: Permitir a recuperação de arquivos individuais é a base do típico pedido de recuperação de arquivo: Um usuário apaga acidentalmente um arquivo e pede que

Leia mais

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

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

Leia mais

Atualização De Mapas GPS Apontador. 1º Acessar site: www.naviextras.com 2º Selecione o Idioma para Português no seu canto direito.

Atualização De Mapas GPS Apontador. 1º Acessar site: www.naviextras.com 2º Selecione o Idioma para Português no seu canto direito. Atualização De Mapas GPS Apontador 1º Acessar site: www.naviextras.com 2º Selecione o Idioma para Português no seu canto direito. 3º Clique na Opção Registrar 4º Selecione o Dispositivo Apontador e o Modelo

Leia mais

EAD Árvore árvore binária

EAD Árvore árvore binária EAD Árvore árvore binária - Uma árvore binária é um conjunto finito de elementos (nodos) que pode ser vazio ou particionado em três subconjuntos: - raiz da árvore (elemento inicial, que é único); - subárvore

Leia mais

PAINEL GERENCIADOR DE E-MAILS

PAINEL GERENCIADOR DE E-MAILS Este manual foi criado com o objetivo de facilitar o gerenciamento de suas contas de e-mail. Com ele, o administrador poderá criar e excluir e-mails, alterar senha, configurar redirecionamento de contas,

Leia mais

Consultório On-line. Tudo o que você precisa em um só lugar.

Consultório On-line. Tudo o que você precisa em um só lugar. Índice 1) Acesso ao sistema 2) Recepção do paciente 3) Envio do atendimento para faturamento: consulta médica ou procedimentos simples 4) Envio do atendimento para faturamento: procedimentos previamente

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

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) Sistemas Operativos Threads 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) Dos Processos para os Threads O conceito de thread foi introduzido na tentativa de

Leia mais

Organização de Arquivos

Organização de Arquivos Classificação e Pesquisa de Dados Aula 2 Organização de s: s Sequenciais e s Sequenciais Indexados UFRGS INF01124 Organização de s Propósito Estudo de técnicas de armazenamento e recuperação de dados em

Leia mais

Hierarquia de memória:

Hierarquia de memória: INE5645 Programação Paralela e Distribuída Aluno Modelo de Execução CUDA - A execução do programa controlado pela CPU pode lançar kernels, que são trechos de código executados em paralelo por múltiplas

Leia mais

Uso do Netkit no Ensino de Roteamento Estático

Uso do Netkit no Ensino de Roteamento Estático Uso do Netkit no Ensino de Roteamento Estático Nyl Marcos Soares Barbosa, Moisés Lima dos Anjos, Madianita Bogo Curso de Sistemas de Informação Centro universitário Luterano de Palmas (CEULP/ULBRA) Teotônio

Leia mais

Manual de digitação de contas Portal AFPERGS

Manual de digitação de contas Portal AFPERGS Manual de digitação de contas Portal AFPERGS 1 Sumário Acesso à função digitação de contas... 3 O que é a Função digitação de contas (DC)... 4 Como proceder na função digitação de conta médica (DC)...

Leia mais

Integração ADMRH com AGROSYS

Integração ADMRH com AGROSYS Treinamentos no produto AdmRH CGI - Consultoria Gaúcha de Informática Ltda - Divisão de treinamentos Guia do Aluno Versão 1.0 Integração ADMRH com AGROSYS Empresa: Participante: Data: Os produtos da CGI

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

30 ANOS DE SOCIALISMO

30 ANOS DE SOCIALISMO PASSO A PASSO DO CANDEX Como cadastrar um partido ou uma coligação: 1 Para cadastrar um partido ou uma coligação no Candex começamos clicando no Módulo PEDIDOS e em seguida no ícone NOVO PEDIDO; 2 Preenchemos

Leia mais

Ajuda do Sistema Aquarius.

Ajuda do Sistema Aquarius. Ajuda do Sistema Aquarius. Esta ajuda é diferenciada da maioria encontrada nos sistemas de computador do mercado. O objetivo desta ajuda é literalmente ajudar o usuário a entender e conduzir de forma clara

Leia mais

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO 1 ÍNDICE 1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO... 3 1.1 REQUISITOS BASICOS DE SOFTWARE... 3 1.2 REQUISITOS BASICOS DE HARDWARE... 3 2 EXECUTANDO O INSTALADOR... 3 2.1 PASSO 01... 3 2.2 PASSO

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores MemóriaVirtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Gerência de memória convencional Divide um programa em unidades menores Partes

Leia mais

Diminui o gargalo existente entre processador e memória principal; 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP;

Diminui o gargalo existente entre processador e memória principal; 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP; Diminui o gargalo existente entre processador e memória principal; Diferença de velocidade 5 a 10 vezes mais rápidas que a memória principal; Ligada diretamente à MP; Tecnologia semelhante à da CPU e,

Leia mais

GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT

GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT SUMÁRIO Prefácio... 1 A quem se destina... 1 Nomenclatura utilizada neste documento... 1 Tela de login... 2 Tela Inicial... 4 Gestão de Dispositivo Acompanhar

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL;

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL; Boletim Técnico EP3 11/07 Utilizando Funções e Blocos Funcionais de usuário pelo software A1 19 de outubro de 2007 O objetivo deste boletim é mostrar como utilizar o recurso de Funções (Functions) e Blocos

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

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Entrada e saída Alexandre Amory Edson Moreno Nas Aulas Anteriores Foco na Arquitetura e Organização internas da Cleo Modelo Von Neuman Circuito combinacional Circuito

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

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

Transferência de Dados entre Computadores

Transferência de Dados entre Computadores Transferência de Dados entre Computadores Se você adquiriu outra licença de utilização do Sistema El-Roi e deseja que as informações de atendimento, configurações, dentre outras, sejam transferidas para

Leia mais

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE.

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE. Guia PDA e SmartPhones Windows Mobile, Pocket PC e CE. Referência completa para o integrador do sistema Module. Aborda os recursos necessários para a itulização, instalação do software e importação das

Leia mais

José Romildo Malaquias 2011-1

José Romildo Malaquias 2011-1 Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três

Leia mais

Aula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros

Aula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros Algoritmo e Programação Aula 06 - Funções Colegiado de Engenharia da Computação

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Sistemas Operacionais

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

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Usar o Office 365 no iphone ou ipad

Usar o Office 365 no iphone ou ipad Usar o Office 365 no iphone ou ipad Guia de Início Rápido Verificar o email Configure o seu iphone ou ipad para enviar e receber emails de sua conta do Office 365. Verificar o seu calendário onde quer

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

Manual Administrador - Mídia System

Manual Administrador - Mídia System Manual Administrador - Mídia System Logo após cadastrarmos sua Empresa em nosso sistema, será enviado um e-mail confirmando as informações de acesso do Administrador do sistema. Obs: Caso não tenha recebido

Leia mais

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

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

Leia mais

Guia de instalação UEG Linux 14.04 LTS

Guia de instalação UEG Linux 14.04 LTS 1. Apresentação O UEG Linux 14.04 LTS é um sistema operacional baseado em Linux e derivado do Ubuntu, customizado pela Gerência de Núcleo de Inovação Tecnológica da Universidade Estadual de Goiás para

Leia mais

Manual do usuário. Mobile Auto Download

Manual do usuário. Mobile Auto Download Manual do usuário Mobile Auto Download Mobile Auto Download Parabéns, você acaba de adquirir um produto com a qualidade e segurança Intelbras. Este manual serve como referência para a sua instalação e

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

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

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Arquivos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Conceituação de arquivos Implementação do sistemas de arquivo Introdução Sistema de

Leia mais

A Camada de Transporte

A Camada de Transporte A Camada de Transporte Romildo Martins Bezerra CEFET/BA s de Computadores II Funções da Camada de Transporte... 2 Controle de conexão... 2 Fragmentação... 2 Endereçamento... 2 Confiabilidade... 2 TCP (Transmission

Leia mais

- Configuração de Ambiente para Aplicação de Patch

- Configuração de Ambiente para Aplicação de Patch Prezado Cliente, Este documento tem como objetivo instruí-lo na correta aplicação de patches de atualização no Servidor Protheus. Antes de iniciarmos o processo de aplicação, necessitaremos configurar

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

THREADS EM JAVA. George Gomes Cabral

THREADS EM JAVA. George Gomes Cabral THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores

Leia mais

Comandos Sequenciais if else, e Switch

Comandos Sequenciais if else, e Switch Introdução à Programação Comandos Sequenciais if else, e Switch 1º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) O computador pensa? Muitas vezes utiliza-se a

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

Escritório Virtual Administrativo

Escritório Virtual Administrativo 1 Treinamento Módulos Escritório Virtual Administrativo Sistema Office Instruções para configuração e utilização do módulo Escritório Virtual e módulo Administrativo do sistema Office 2 3 1. Escritório

Leia mais