Memória compartilhada
|
|
- Rachel Casado Alvarenga
- 6 Há anos
- Visualizações:
Transcrição
1 Memória compartilhada Luiz Affonso Guedes 1 Ivanovitch Silva 1 affonso@dca.ufrn.br ivan@dca.ufrn.br 1 Universidade Federal do Rio Grande do Norte 15 de outubro de 2009 Memória compartilhada DCA Prática de programação concorrente 1 / 18
2 Sumário 1 Introdução 2 Criação Exemplo 01 3 Associação Exemplo 02 Exemplo 03 4 Desassociação Exemplo 04 5 Apagar Exemplo 05 6 Produtor consumidor Produtor Consumidor Análise Memória compartilhada DCA Prática de programação concorrente 2 / 18
3 Sumário 1 Introdução 2 Criação Exemplo 01 3 Associação Exemplo 02 Exemplo 03 4 Desassociação Exemplo 04 5 Apagar Exemplo 05 6 Produtor consumidor Produtor Consumidor Análise Memória compartilhada DCA Prática de programação concorrente 3 / 18
4 Memória Compartilhada Espaço/segmento de memória onde será compartilhado informações. Varios processos podem ler nesse espaço/segmento. Procedimentos básicos. Alocar e dar permissao em uma região de memória para ser compartilhada. Pegar o ponteiro, ler e escrever nessa região. Memória compartilhada DCA Prática de programação concorrente 3 / 18
5 Métodos básicos Função Descrição Retorno shmget Criar memória compartilhada Identificador shmat Associar memória compartilhada Ponteiro shmdt Desassociar memória compartilhada Flag shmclt Apagar memória compartilhada Flag Comandos auxiliares Comando ipcs ipcrm Descrição Mostrar recursos (sem,shm,msg). Destruir recursos. Eg.: ipcrm [sem shm msg] id. Memória compartilhada DCA Prática de programação concorrente 4 / 18
6 Sumário 1 Introdução 2 Criação Exemplo 01 3 Associação Exemplo 02 Exemplo 03 4 Desassociação Exemplo 04 5 Apagar Exemplo 05 6 Produtor consumidor Produtor Consumidor Análise Memória compartilhada DCA Prática de programação concorrente 5 / 18
7 Criando memória compartilhada Procedimentos básicos Função Param1 Param2 Param3 shmget key t key size t size int shmflg Parâmetros Nome key size shmflg Descrição Chave usada para criação* Tamanho do segmento em bytes Permissões. E.g: 0777 IPC CREAT Memória compartilhada DCA Prática de programação concorrente 5 / 18
8 Exemplo 01 Criação - Exemplo 01 Download 1 #include <s t d l i b. h> 2 #include <stdio. h> 3 #include <sys / ipc. h> //shmget 4 #include <sys /shm. h> //shmget 5 6 int main ( int argc, char argv [ ] ) { 7 // Identificador da memória compartilhada 8 int shmid = 0; 9 // Tamanho da memória compartilhada (bytes) 10 int shmsize = 1024; 11 // Criando a memória compartilhada 12 shmid = shmget ( ftok ( / home / ivanovitchm, 1 ), shmsize, 0666 IPC CREAT ) ; 13 // A memória foi criada corretamente 14 if ( shmid == 1) { 15 fprintf ( stderr, Processo de c r i a r a memória compartilhada falhou\n ) ; 16 e x i t ( EXIT FAILURE ) ; 17 } 18 printf ( Id da memória compartilhada é %d.\n D i g i t e \ i pcs m\ para v e r i f i c a r \n, shmid ) ; 20 return 0; 21 } Memória compartilhada DCA Prática de programação concorrente 6 / 18
9 Sumário 1 Introdução 2 Criação Exemplo 01 3 Associação Exemplo 02 Exemplo 03 4 Desassociação Exemplo 04 5 Apagar Exemplo 05 6 Produtor consumidor Produtor Consumidor Análise Memória compartilhada DCA Prática de programação concorrente 7 / 18
10 Associando a uma memória compartilhada Procedimentos básicos Função Param1 Param2 Param3 shmat int shmid const void *shmaddr int shmflg Parâmetros Nome Descrição shmid Identificador memória compartilhada criada shmaddr Endereço de aclopamento shmflg SHM RND,SHM RDONLY * * Em geral usa-se shmflg = 0. Memória compartilhada DCA Prática de programação concorrente 7 / 18
11 Exemplo 02 Associação - Exemplo 02 Download 1 // Executar: 2 //./nomeexecutavel shmidgeradonoexemplo #include <s t d l i b. h> 5 #include <stdio. h> 6 #include <s t r i n g. h> //strcpy 7 #include <sys / ipc. h> //shmget 8 #include <sys /shm. h> //shmget,shmat 9 #include <sys / types. h> //shmat int main (int argc, char argv [ ] ) { 12 // Identificador da memória compartilhada 13 int shmid = atoi ( argv [ 1 ] ) ; 14 // Ponteiro para memória compartilhada 15 char memoriacompartilhada ; 16 // Associando a memória compartilhada 17 memoriacompartilhada = (char ) shmat ( shmid, 0, 0 ) ; 18 // A memória foi associada corretamente? 19 if ( memoriacompartilhada == (char ) 1){ 20 printf ( Não f o i possível associar a memória com o id %d\n, shmid ) ; 21 e x i t ( 1 ) ; 22 } 23 // Escrever na memória compartilhada 24 strcpy ( memoriacompartilhada, Estou escrevendo na memória compartilhada ) ; 25 return 0; 26 } Memória compartilhada DCA Prática de programação concorrente 8 / 18
12 Exemplo 03 Associação - Exemplo 03 Download 1 // Executar: 2 //./nomeexecutavel shmidgeradonoexemplo #include <s t d l i b. h> 5 #include <stdio. h> 6 #include <s t r i n g. h> //strcpy 7 #include <sys / ipc. h> //shmget 8 #include <sys /shm. h> //shmget,shmat 9 #include <sys / types. h> //shmat int main (int argc, char argv [ ] ) { 12 // Identificador da memória compartilhada 13 int shmid = atoi ( argv [ 1 ] ) ; 14 // Ponteiro para memória compartilhada 15 char memoriacompartilhada ; 16 // Associando a memória compartilhada 17 memoriacompartilhada = (char ) shmat ( shmid, 0, 0 ) ; 18 // A memória foi associada corretamente? 19 if ( memoriacompartilhada == (char ) 1){ 20 printf ( Não f o i possível associar a memória com o id %d\n, shmid ) ; 21 e x i t ( 1 ) ; 22 } 23 // Lendo na memória compartilhada 24 printf ( Valor l i d o : %s \n, memoriacompartilhada ) ; 25 return 0; 26 } Memória compartilhada DCA Prática de programação concorrente 9 / 18
13 Sumário 1 Introdução 2 Criação Exemplo 01 3 Associação Exemplo 02 Exemplo 03 4 Desassociação Exemplo 04 5 Apagar Exemplo 05 6 Produtor consumidor Produtor Consumidor Análise Memória compartilhada DCA Prática de programação concorrente 10 / 18
14 Desassociação de uma memória compartilhada Procedimentos básicos Função shmdt Param1 void *shmaddr Parâmetros Nome shmaddr Descrição Endereço para desassociação Memória compartilhada DCA Prática de programação concorrente 10 / 18
15 Exemplo 04 Desassociação - Exemplo 04 Download 1 // Executar: 2 //./nomeexecutavel shmidgeradonoexemplo #include <s t d l i b. h> 5 #include <stdio. h> 6 #include <s t r i n g. h> //strcpy 7 #include <sys / ipc. h> //shmget 8 #include <sys /shm. h> //shmget,shmat 9 #include <sys / types. h> //shmat int main (int argc, char argv [ ] ) { //Idêntico ao exemplo // Realizando a desassociação 16 if ( shmdt ( memoriacompartilhada ) == 1){ 17 printf ( Ocorreu f a l h a na desassociação\n ) ; 18 e x i t ( 1 ) ; 19 } 20 printf ( Programa desassociou da memória compartilhada cujo 21 Id é : %d \n, shmid ) ; 22 printf ( Executar o comando \ ipcs m\ e v e r i f i c a r que a 23 memória não f o i deletada\n ) ; 24 return 0; 25 } Memória compartilhada DCA Prática de programação concorrente 11 / 18
16 Sumário 1 Introdução 2 Criação Exemplo 01 3 Associação Exemplo 02 Exemplo 03 4 Desassociação Exemplo 04 5 Apagar Exemplo 05 6 Produtor consumidor Produtor Consumidor Análise Memória compartilhada DCA Prática de programação concorrente 12 / 18
17 Deletar uma memória compartilhada Procedimentos básicos Função Param1 Param2 Param3 shmclt int *shmid int cmd struct shmid ds *buf Parâmetros Nome shmid cmd buf Descrição Identificador memória compartilhada IPC RMID,IPC SET,IPC STAT Estrutura de informações Memória compartilhada DCA Prática de programação concorrente 12 / 18
18 Exemplo 05 Deletar - Exemplo 05 Download 1 // Executar: 2 //./nomeexecutavel shmidgeradonoexemplo #include <s t d l i b. h> 5 #include <stdio. h> 6 #include <s t r i n g. h> //strcpy 7 #include <sys / ipc. h> //shmget 8 #include <sys /shm. h> //shmget,shmat 9 #include <sys / types. h> //shmat int main (int argc, char argv [ ] ) { //Idêntico ao exemplo // Apagar memória Compartilhada 16 if ( shmctl ( shmid, IPC RMID, NULL) == 1){ 17 printf ( Ocorreu f a l h a ao d e l e t a r a memória compartilhada\n ) ; 18 e x i t ( 1 ) ; 19 } 20 printf ( Programa apagou a memória compartilhada cujo 21 Id era : %d \n, shmid ) ; 22 printf ( Executar o comando \ ipcs m\ e v e r i f i c a r que a 23 memória f o i deletada\n ) ; 24 return 0; 25 } Memória compartilhada DCA Prática de programação concorrente 13 / 18
19 Sumário 1 Introdução 2 Criação Exemplo 01 3 Associação Exemplo 02 Exemplo 03 4 Desassociação Exemplo 04 5 Apagar Exemplo 05 6 Produtor consumidor Produtor Consumidor Análise Memória compartilhada DCA Prática de programação concorrente 14 / 18
20 Produtor - Consumidor Produtor Criação,associação e escrita na memória compartilhada A memória compartilhada é representada por um contador O acesso a memória compartilhada deve ser realizado por semáforos Consumidor Associação e leitura na memória compartilhada O acesso a memória compartilhada deve ser realizado por semáforos Um mesmo semáforo é utilizado pelo produtor e consumidor Memória compartilhada DCA Prática de programação concorrente 14 / 18
21 Produtor Código do produtor Download 1 int main ( int argc, char argv [ ] ) { 2 // Semaforo usado para sincronizar a região crítica 3 Semaforo semaforo ; 4 semaforo = new Semaforo (1234,1,IPC CREAT 0600); 5 // Identificador da memória compartilhada 6 int shmid = 0; 7 // Tamanho da memória compartilhada (bytes) 8 int shmsize = 8; 9 // Ponteiro para memória compartilhada 10 int memoriacompartilhada ; 11 // Criando a memória compartilhada 12 shmid = shmget ( ftok ( / home / ivanovitchm, 1 ), shmsize, 0666 IPC CREAT ) ; 13 // Associando-se a memória compartilhada 14 memoriacompartilhada = (int ) shmat ( shmid, 0, 0 ) ; 15 memoriacompartilhada = 0; 16 // A memória foi criada corretamente 17 if ( shmid == 1) { 18 fprintf ( stderr, Processo de c r i a r a memória compartilhada falhou\n ) ; 19 e x i t ( EXIT FAILURE ) ; 20 } 21 printf ( Produtor : i d da memória compartilhada é 22 %d.\n D i g i t e \ i pcs m\ para v e r i f i c a r \n, shmid ) ; Memória compartilhada DCA Prática de programação concorrente 15 / 18
22 Produtor Código do produtor Download 1 2 while ( true){ 3 printf ( Produtor : vou e n t r a r na região c r í t i c a \n ) ; 4 semaforo >P ( ) ; 5 memoriacompartilhada += 1; 6 semaforo >V ( ) ; 7 printf ( Produtor : vou s a i r da região c r í t i c a \n ) ; 8 sleep ( 2 ) ; 9 } 10 delete semaforo ; 11 return 0; 12 } Memória compartilhada DCA Prática de programação concorrente 16 / 18
23 Consumidor Código do consumidor Download 1 int main ( int argc, char argv [ ] ) { 2 // Semaforo usado para sincronizar a região crítica 3 Semaforo semaforo ; 4 semaforo = new Semaforo (1234,1,IPC CREAT 0600); 5 // Identificador da memória compartilhada 6 int shmid = atoi ( argv [ 1 ] ) ; 7 // Ponteiro para memória compartilhada 8 int memoriacompartilhada ; 9 // Associando a memória compartilhada 10 memoriacompartilhada = (int ) shmat ( shmid, 0, 0 ) ; 11 // A memória foi associada corretamente? 12 if ( memoriacompartilhada == (int ) 1){ 13 printf ( Não f o i possível associar a memória com o id %d\n, shmid ) ; 14 e x i t ( 1 ) ; 15 } 16 while ( true){ 17 printf ( Consumidor : vou e n t r a r na região c r í t i c a \n ) ; 18 semaforo >P ( ) ; 19 printf ( Consumidor : valor l i d o : %d \n, memoriacompartilhada ) ; 20 semaforo >V ( ) ; 21 printf ( Consumidor : saiu da região c r í t i c a \n ) ; 22 sleep ( 1 ) ; 23 } 24 delete semaforo ; 25 return 0; 26 } Memória compartilhada DCA Prática de programação concorrente 17 / 18
24 Análise Análise do problema produtor - consumidor Abordagem A (terminais diferentes) Executar o programa produtor Executar o programa consumidor Analisar as mensagens Finalizar o programa produtor Analisar as mensagens Finalizar o programa consumidor Abordagem B (terminais diferentes) Executar o programa produtor Analisar as mensagens Finalizar o programa produtor Executar o programa consumidor Analisar as mensagens Finalizar o programa consumidor Memória compartilhada DCA Prática de programação concorrente 18 / 18
Comunicação entre Processos Memória Compartilhada
Comunicação entre Processos Memória Compartilhada 3/23/17 1 Métodos de comunicação entre processos Memória compartilhada Sinais Pipes Troca de mensagens Memória Compartilhada Memória compartilhada Permite
Leia maisMemória partilhada em Unix SysV
Memória partilhada em Unix SysV A forma mais geral de comunicação entre processos é através de memória partilhada. segmento de memoria partilhada Processo A Processo B p q Criação de um segmento de memória
Leia maisComunicação entre Processos Memória Compartilhada
Comunicação entre Processos Memória Compartilhada 8/30/18 1 Métodos de comunicação entre processos Memória compartilhada Sinais Pipes Troca de mensagens Memória Compartilhada Memória compartilhada Permite
Leia maisExercícios Avaliativos Memória Compartilhada
1ª Avaliação Faculdades Integradas de Caratinga Sistemas Distribuídos Jacson RC Silva Exercícios Avaliativos Memória Compartilhada Uma posição de memória compartilhada é identificada por uma chave. Essa
Leia maisTratamento de Sinais
Tratamento de Sinais Luiz Affonso Guedes 1 Ivanovitch Silva 1 affonso@dca.ufrn.br ivan@dca.ufrn.br 1 Universidade Federal do Rio Grande do Norte 25 de setembro de 2009 Sinais DCA0109 - Prática de programação
Leia maisInter-process Communication (IPC)
Inter-process Communication (IPC) Comunicação entre processos (3) Memória Compartilhada (Shared Memory) Memória Compartilhada (Shared Memory) (1) Mecanismo de IPC que cria uma região de memória que pode
Leia maisMemória Compartilhada (Shared Memory) (1) Memória Compartilhada (2) Memória Compartilhada (3)
Memória Compartilhada (Shared Memory) (1) Inter-process Communication (IPC) Comunicação entre processos (2) Memória Compartilhada (Shared Memory) Mecanismo de IPC que cria uma região de memória que pode
Leia maisSincronização e memória compartilhada no Linux
Sincronização e memória compartilhada no Linux Memória compartilhada Modelo de memória UNIX Processo aloca (allocate) um segmento no qual deseja compartilhar Processos que desejam acessar o segmento alocado,
Leia maisSemáforos em Unix. Criar um conjunto (vetor) de semáforos: semid = semget ( chave, nsems, flag); onde:
Semáforos em Unix Criar um conjunto (vetor) de semáforos: onde: semid = semget ( chave, nsems, flag); semid identificador de acesso ao vetor de semáforos. chave identificador global que identifica este
Leia maisSincronização e Comunicação de/entre Processos. Na Aula Anterior... Nesta Aula. Comunicação entre Processos. Pipes 07/09/2016
GSI018 Sistemas Operacionais 07/09/2016 Sincronização e Comunicação de/entre Processos Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior...
Leia maisManipulação de processos
Manipulação de processos Luiz Affonso Guedes 1 Ivanovitch Silva 1 affonso@dca.ufrn.br ivan@dca.ufrn.br 1 Universidade Federal do Rio Grande do Norte 17 de setembro de 2009 Processos DCA0109 1 / 18 Sumário
Leia maisSistemas de Computação Mecanismos IPC
Universidade Federal do Ceará Centro de Tecnologia Departamento de Engenharia de Teleinformática Sistemas de Computação Mecanismos IPC Professor: Alexandre Coelho Aluna: Maria Luciene Lira Monteiro - 0316855
Leia maisSistemas de Computação Semáforos
Sistemas de Computação Semáforos 4/26/18 1 Semáforos Um semáforo simples é uma variável que pode assumir os valores 0 e 1 (semáforo binário). Esta é a forma mais comum Semáforos que podem assumir diversos
Leia maistutorial. man fork man pthread_create man pthread_join man wait man sleep
Abaixo, você encontrá dicas para lhe ajudar a fazer o 1º trabalho de SOI, que está descrito na página do curso. Lembrando que essas dicas visam apenas o auxilio nas partes mais problemáticas do trabalho
Leia maistime_t shm_ctime; /* hora da última alteração de atributod da MP através de shmctl + IPC_SET */
Página 1 de 6 Memória Partilhada Pedaço de memória virtual que dois ou mais processos podem incluir no seu espaço de endereçamento, permitindo a comunicação entre eles. È o mecanismo mais rápido de comunicação
Leia maisMAC422/5753 Sistemas Operacionais
MAC422/5753 Sistemas Operacionais Prof. Marcel P. Jackowski Aula #8 Sincronização: Semáforos, Barreiras e Monitores Jantar dos Filósofos Cinco filósofos que somente comem e pensam Cada um deles precisa
Leia maisBásico: estrutura de programa, sintaxe Interface com linha de comando
Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia maisSISTEMAS OPERATIVOS I
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática SISTEMAS OPERATIVOS I Programação Concorrente em Linux: Memória Partilhada e Semáforos Versão 1.03 Maio de 2006 Luís Lino
Leia maisCurso de Programação C em Ambientes Linux Aula 05
Curso de Programação C em Ambientes Linux Aula 05 Centro de Engenharias da Mobilidade - UFSC Professores Gian Berkenbrock e Giovani Gracioli http://www.lisha.ufsc.br/c+language+course+resources Conteúdo
Leia maisComunicação Inter-Processo em Unix. Pipes FIFO (Named Pipes) Pipes
Comunicação Inter-Processo em Unix Pipes FIFO (Named Pipes) 1 Pipes 2 1! Comunicação entre pai e filho Ao chamar um fork(), processos pai e filho deixam de compartilhar memória Como fazer então para que
Leia mais1 Exercícios com ponteiros
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros
Leia maisMemória partilhada em Unix SysV
Memória partilhada em Unix SysV A forma mais geral de comunicação entre processos é através de memória partilhada. segmento de memoria partilhada Processo A Processo B p q Ö Ó ÙÑ Ñ ÒØÓ Ñ Ñ Ö Ô ÖØ Ð DCC/FCUP
Leia maisLinguagem C Ficheiros Compilação Separada
Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir
Leia maisComputação 2. Aula 9. Diego Addan Arquivos
Computação 2 Aula 9 Arquivos Diego Addan diegoaddan@gmail.com E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca
Leia maisMais sobre Ponteiros em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Mais sobre Ponteiros em C Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO
Leia maisListas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {
Listas (cont.) K&R: Capitulo 6 Lista Simplesmente Ligada Conjunto de nós head NULL Cada nó contém Informação útil Ponteiro para o próimo nó typedef struct node Item item; struct node *net; *link; Item
Leia maisMódulo 7 Cadeias de Caracteres
Estruturas de Dados Módulo 7 Cadeias de Caracteres 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
Leia maisOutline. 33. Manipulação de arquivos DIM
Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de
Leia maisAluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0
P4 Programação II 2012.2 Departamento de Informática/PUC- Rio Aluno: Matrícula: Turma: 1. A prova é sem consulta e sem perguntas. A interpretação do enunciado faz parte da prova. 2. A prova deve ser completamente
Leia maisO que é um apontador em C (type pointer in C)?
O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora
Leia maisComputação 2. Aula 8. Profª. Fabiany Arquivos
Computação 2 Aula 8 Arquivos Profª. Fabiany fabianyl@utfpr.edu.br E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca
Leia maisComunicação entre Processos
Comunicação entre Processos Pipes Redirecionamento de entrada e saída 4/19/18 1 O Pipe: Características (1) Canal de comunicação entre processos parentes, usando a politica First-In-First-Out (FIFO) Tipicamente,
Leia maisPonteiros. Baseado nos slides do Prof. Mauro.
Baseado nos slides do Prof. Mauro. A memória do computador é uma sequência de bytes, na qual endereçamos cada um sequencialmente. Como vimos, uma variável é uma região da memória que reservamos para armazenar
Leia maisMestrado em Engenharia Física Tecnológica
5 a Aula - Ciclo for. Leitura e Escrita em Ficheiros. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física Instituto Superior Técnico
Leia maisComputação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos
Computação I - C Prova 2 2016-2 14/10/2016 - Profs. Adriano Cruz e Valeria Bastos Nome: DRE: Observação: Justifique todas as respostas dadas. Some nte serão aceitas respostas com justificativas. Questão
Leia maisComputação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas
Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany fabianyl@utfpr.edu.br ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include
Leia maisUNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA JEFERSON AUGUSTO WISBISKI JOÃO DAVI MAYER
UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA JEFERSON AUGUSTO WISBISKI JOÃO DAVI MAYER MEMÓRIA COMPARTILHADA PONTA GROSSA 2017 JEFERSON AUGUSTO
Leia maisMétodos Computacionais. Tipos Estruturados
Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também
Leia maisFUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara
Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos
Leia maisIntrodução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 07 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação ARGUMENTOS POR LINHA DE COMANDO 2 Argumento por linha de comando Na
Leia maisCAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:
CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta
Leia maisIntrodução a Programação. Ponteiros e Vetores, Alocação Dinâmica
Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes
Leia maisAula 17: Ponteiros e Alocação Dinâmica em C
Aula 17: Ponteiros e Alocação Dinâmica em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores
Leia maisAula 16: Manipulação de Arquivos em C
Aula 16: Manipulação de Arquivos em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Manipulação de Arquivos Programação de Computadores IV 1 / 33
Leia maisALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Ficheiros e estruturas http://tele1.dee.fct.unl.pt
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Gerenciamento de Memória Copyright 2014 IFRN Agenda Introdução Alocação dinâmica Funções malloc free calloc realloc
Leia maisCriação de Processos Fork( ) Exec( )
Criação de Processos Fork( ) Exec( ) 8/23/18 1 Chamadas de Sistema: Process Management 2 Chamada fork( ) / exec( ) 3 Esboço de uma shell while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt
Leia maisCaracteres e Cadeias de Caracteres
Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor
Leia maisAula 26: Arquivos de texto
Aula 26: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas heterogêneas Alocação
Leia mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisProgramação II. Arquivos - Conceito. Arquivos
Programação II Arquivos Jocélio Passos joceliodpassos@bol.com.br C Comp Total, Cap 9 Espaço para armazenar dados em memória auxiliar (não volátil) Arquivos em C podem ser também terminais ou impressoras
Leia maisComunicação entre processos 2ª parte (IPC InterProcess Communication)
SISTEMAS OERATIVOS 12 Comunicação entre processos 2ª parte (IC Interrocess Communication) Notas: 1. Deve ser criada a biblioteca libnet.a (referente ao código do livro [2] da bibliografia) antes de testar
Leia maisProgramação Dicas e Outras Coisas
Programação Dicas e Outras Coisas Tiago da Conceição Mota Vinícius Fernandes dos Santos Tópicos Especiais em Programação 2008-1 Algumas Dicas para Competições Entrada e Saída Avançadas Algumas Funções
Leia maisprim = A ; prim = &A[0];
57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro
Leia maisPthreads API. Criação de Threads: usando Pthreads
Pthreads API The POSIX 1003.1-2001 standard defines an application programming interface (API) for writing multithreaded applications. This interface is known more commonly as pthreads. 6.1 Criação de
Leia maisOrientação a Objetos. Programação em C++
OO Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 12: Const, Static, NameSpace e Nested Prof. Jean Marcelo SIMÃO Métodos Const #ifndef _MINHASTRING_H_ #define _MINHASTRING_H_ class
Leia mais1º Exame 14 de Junho de Duração: 2h30 (+15 min) Número: Nome: Notas
Exame A Programação MEEC 2º Semestre 2017/18 1º Exame 14 de Junho de 2018. Duração: 2h30 (+15 min) Número: Nome: Notas Composição do teste: 4 folhas com problemas para resolver. Existem 9 problemas para
Leia maisProgramação de Computadores II
Programação de Computadores II Aula de Revisão 01 Karina Mochetti 2019.1 Formato da Prova Questões teóricas. Escrever um programa do zero. Dar valores finais de variáveis. Completar um programa. Achar
Leia maisIntrodução à Programação C
Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Recapitulando Um programa C é uma sequência de diretivas (#include e #define), declarações de funções auxiliares,
Leia maisAula 26 - Arquivos. Prof. Laura Silva de Assis. Engenharia da Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca
Programação I Aula 26 - Prof. Laura Silva de Assis Engenharia da Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis 2 o semestre - 2015 1 Sumário
Leia maisCapítulo 06: Arquivos
Capítulo 06: Arquivos INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Funções de entrada e saída em arquivos Motivação: quando um programa precisa processar
Leia maisAnalise o código abaixo:
Recursão - introdução Analise o código abaixo: 1 # include 2 # include 3 int Fatorial ( int x) 4 int k, s =1; for (k =0;k
Leia maisFundamentos de Programação 1
Fundamentos de Programação 1 Linguagem C Arquivos Seqüências ou de Texto. Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO 1 Arquivo de Escrita 1 fopen ( nome.txt", "w" ); fputc ( caracter, arquivo); 2 #include
Leia maisProgramação Estruturada
Programação Estruturada Ponteiros Parte 1 Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Ponteiros Ponteiro Ponteiros
Leia maisProgramação de Sistemas Carris
Programação de Sistemas Carris Programação de Sistemas Carris : 1/18 Problema (1) A fim de incentivar os alfacinhas a deslocar na cidade de Volvo, a Carris-Companhia de Carris de Ferro de Lisboa decidiu
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisPonteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisLeandro Soares de Sousa (DSc.) Página: Aula 03 Revisão e Conceitos C e Unix
Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 03 Revisão e Conceitos C e Unix Ferramentas para ajudá-los! 2 Programas com vários fontes
Leia maisAula 27: Estruturas heterogêneas e alocação dinâmica
Aula 27: Estruturas heterogêneas e alocação dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória
Leia maisDisciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Leia maisSumário. Ficheiros. Ficheiros
Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções
Leia maisAlocação Dinâmica em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara
Leia maisLinguagem C. Ponteiros. Alex Vidigal Bastos.
Linguagem C Ponteiros Alex Vidigal Bastos alexvbh@gmail.com Ponteiros Ponteiros são variáveis que contém endereços. Estas variáveis apontam para algum determinado endereço da memória. Em geral, o ponteiro
Leia maisComputação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Leia maisAula 18: Funções em C
Aula 18: Funções em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Funções em C Programação de Computadores IV 1 / 38 Agenda 1 Revisão e Contexto
Leia maisESTRUTURAS COMPOSTAS
ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR Clique para adicionar texto Profa. Dra. Elisa Yumi Nakagawa 1. Semestre de 2017 Slides inicialmente preparados pela Profa. Rosely Sanches
Leia maisListas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {
Listas (cont.) K&R: Capitulo 6 Lista Simplesmente Ligada Conjunto de nós head NULL Cada nó contém Informação útil Ponteiro para o próimo nó typedef struct node Item item; struct node *net; *link; Item
Leia maisALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória
ALGORITMOS E ESRUTRA DE DADOS I Ponteiros Passagem por Valor e Referência Alocação de Memória 2 Agenda Ponteiros Conceitos gerais O que é Ponteiro? Declaração de Ponteiros Operadores para Ponteiros Exemplos
Leia maisPIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS
PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS Disciplina de Nivelamento - 2000/1: ALGORITMOS & ESTRUTURAS DE DADOS Professor Responsável: Prof. Fernando Santos
Leia maisIntrodução a Programação. Manipulando Arquivos em Modo Texto
Introdução a Programação Manipulando Arquivos em Modo Texto Tópicos da Aula Hoje aprenderemos funções de manipulação de arquivos texto Funções de leitura em modo texto Funções de escrita em modo texto
Leia maisAula teórica: /6. Enunciado
Aula teórica: 28-04-2009 1/6 Enunciado No ficheiro dados.txt encontra-se a informação associada aos alunos de Programação e as respectivas notas obtidas por frequência (Aprendizagem). Os dados guardados
Leia maisAula 20 - Ponteiros. Prof. Laura Silva de Assis. Engenharia de Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca
Programação Aula 20 - Ponteiros Prof. Laura Silva de Assis Engenharia de Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis 2 o semestre -
Leia maisINF 1620 P1-13/09/02 Questão 1 Nome:
INF 1620 P1-13/09/02 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$
Leia maisCurso de C. Declaração de Variáveis 18/3/ :48 1
Curso de C Declaração de Variáveis 18/3/2008 15:48 1 Declaração de Variáveis Objetivos: Aprender como: Criar variáveis Atribuir um valor inicial à variável Escolher um nome para a variável 18/3/2008 15:48
Leia maisAlocação Estática e Dinâmica. Prof. M.Sc. Mariella Berger
Alocação Estática e Dinâmica Prof. M.Sc. Mariella Berger http://www.inf.ufes.br/~mberger mberger@inf.ufes.br mariellaberger@gmail.com Alocação Estática Estratégia de alocação de memória na qual toda a
Leia maisSub-rotinas em C. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto
Sub-rotinas em C Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Sub-rotinas: Função e Procedimentos A função main Variáveis globais e locais Escopo de variáveis Passagem
Leia mais1/24 FICHEIROS DE TEXTO
1/24 FICHEIROS DE TEXTO Hardware de entrada/saída 2/24 Hardware de entrada/saída Grande variedade de dispositivos de E/S (Input/Output) - de memória: disco interno e externo, DVD, pen, CD,... - de transmissão:
Leia maisESTRUTURAS COMPOSTAS VETOR
ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR slides desenvolvidos pela Profa. Rosely Sanches 2 ESTRUTURAS COMPOSTAS Pode-se organizar tipos simples em tipos mais complexos formando as
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental
USP - ICMC - SSC SSC 0301-2o. Semestre 2013 Disciplina de Introdução à Computação para Engenharia Ambiental 1 Prof. Dr. Fernando Santos Osório / Prof. Artur Lovato Cunha LRM - Laboratório de Robótica Móvel
Leia maisProgramação. Cap. 12 Gestão de Memória Dinâmica
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 12 Gestão de Memória Dinâmica Sumário : Utilização de memória Alocação
Leia maisQUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TÉCNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI Cicero Augusto de Lara Pahins, Cristiano Reis dos Santos. Professora:
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2011 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Leia maisMemória Compartilhada
Memória Compartilhada Programação com memória compartilhada Nos sistemas multiprocessadores com memória compartilhada, qualquer localização da memória pode ser acessada por qualquer processador Existe
Leia maisINF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 2 Alocação Dinâmica 17/02/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Alocação dinâmica Vetores locais e funções 17/02/2014 (c) Dept. Informática - PUC-Rio 2 Alocação Dinâmica
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Ponteiros Copyright 2014 IFRN Agenda Memória Ponteiros Aritmética de ponteiros Arrays/strings Parâmetros de função
Leia mais