03 - Protocolos de Comunicação Interprocessos. 2 de novembro de 2014
|
|
- Judite Aranha
- 2 Há anos
- Visualizações:
Transcrição
1 03 - Protocolos de Comunicação Interprocessos 2 de novembro de 2014
2 2/46 Conteúdo Revisão sobre arquivos e criação de processos Pipes Filas de mensagens Memória compartilhada Unix Domain Sockets
3 3/46 Protocolos de Comunicação Interprocessos Pipes cat /etc/passwd grep false Filas de mensagens msgget(), msgrcv(), msgctl() Memória compartilhada POSIX Shared Memory: shm open(), mmap Unix Domain Sockets
4 4/46 Revisão sobre leitura e escrita de arquivos Padrões POSIX (Portable Operating System Interface - IEEE) Descritores de arquivos são números inteiros ls -l /proc/*/fd FILE*, fopen(), fclose(), fwrite() open(), create(), write() 0 = stdin, 1 = stdout, 2 = stderr Permissões 1 main ( ) { 2 c h a r buf [ 3 ] ; 3 r e a d ( 0, buf, 3 ) ; 4 w r i t e ( 1, buf, 3 ) ; 5 w r i t e ( 2, buf, 3 ) ; 6 }
5 5/46 Comunicação Inter Processos Unix Unix Inter Process Communication (IPC) Comunicação entre processos no mesmo computador Para uso em conjunto com fork() e similares
6 6/46 Criação de processos via fork Objetivo: criação de um processo-filho para auxiliar em tarefas paralelas Função: pid t fork(void); sys/types.h e unistd.h Se foi bem sucedido, pid t do filho é retornado para o pai ou, se erro, 1 Processo-filho será cópia duplicada do pai, com exceções de travas de arquivos e sinais No processo-filho, o valor de retorno será 0 (zero) wait() espera por 1 filho retornar (qualquer um) waitpid() espera por filho PID retornar 1 main ( ) { 2 s i g n a l (SIGCHLD, SIG IGN ) ; / now I don t have to w a i t ( )! / f o r k ( ) ; f o r k ( ) ; f o r k ( ) ; / Rabbits, r a b b i t s, r a b b i t s! /
7 1 #i n c l u d e... 2 main ( ) { 3 i n t s t a t u s ; p i d t p i d ; 4 p r i n t f ( Meu p i d é %d, do meu p a i é %d\n, g e t p i d ( ), g e t p p i d ( ) ) ; 5 6 s w i t c h ( p i d=f o r k ( ) ) { 7 c a s e 1: e x i t ( EXIT FAILURE ) ; 8 c a s e 0 : 9 p r i n t f ( Meu p i d é %d, do meu p a i é %d\n, g e t p i d ( ), g e t p p i d ( ) ) ; 10 e x i t ( EXIT SUCCESS ) ; d e f a u l t : 13 p r i n t f ( Meu p i d é %d, do meu p a i é %d\n, g e t p i d ( ), g e t p p i d ( ) ) ; 14 w a i t (& s t a t u s ) ; 15 i f (WIFEXITED( s t a t u s ) ) { 16 p r i n t f ( f i l h o bem\n ) ; e x i t ( EXIT SUCCESS ) ; 17 } e l s e { 18 p r i n t f ( f i l h o não bem\n ) ; e x i t ( EXIT FAILURE ) ; 19 } 20 } 21 } 7/46
8 8/46 Comunicação por sinais Comunica sinais ativam funções manipuladores de sinais de processos SIGSTOP pedido para parar um momento a execução SIGCONT pedido para continuar execução SIGTERM pedido para terminar execução voluntariamente SIGKILL ordem para terminar execução de um vez por todas SIGSEGV ordem para terminar devido acesso indevido a uma região de memória SIGUSR1 e SIGUSR2 configuráveis Função para lança sinal é kill() Não comunica dados Necessário Definir struct sigaction Definir função manipuladora no sigaction Cadastrar sigaction com função sigaction()
9 1 #i n c l u d e <s i g n a l. h> e o u t r o s // nomes do s i n a i s 2 v o l a t i l e s i g a t o m i c t r e c e b e u S i n a l ; 3 v o i d funcao manip ( i n t s i n a l ) { 4 r e c e b e u S i n a l = 1 ; 5 w r i t e ( 0, Um SIGINT!! nãaa.. \ n, 1 9 ) ; // async s a f e 6 } 7 main ( ) { 8 i n t s i n a l = SIGINT ; c h a r e n t r a d a [ ] ; 9 v o i d funcao manip ( i n t s i n a l ) ; // somente p r o t o t i p o 10 s t r u c t s i g a c t i o n acao ; r e c e b e u S i n a l = 0 ; acao. s a h a n d l e r = funcao manip ; // f. m a nipuladora 13 s i g e m p t y s e t (&acao. sa mask ) ; // c o n j. de s i n a i s para b l o q u e a r d u r a n t e e s t a acao 14 acao. s a f l a g s = SA RESTART ; // f l a g s p/ mudar f u n c. manip., ex. r e i n i c i a da onde parou s i g a c t i o n ( s i n a l, &acao, NULL) ; 17 p r i n t f ( (%d ) (%d ) E s c r e v a a l g o : \ n, g e t p i d ( ), r e c e b e u S i n a l ) ; 18 f g e t s ( entrada, s i z e o f entrada, s t d i n ) ; 19 p r i n t f ( (%d ) Você e s c r e v e u i s s o? %s \n, r e c e b e u S i n a l, e n t r a d a ) ; 20 } 9/46
10 10/46 Conceitos sobre pipes Pipe é um tipo de comunicação interprocessos Unnamed pipe ou anônimo é quando a comunicação existe sem criação expĺıcita do pipe Exemplo: cat /etc/hosts grep 127 Named pipe ou pipe nomeado é quando cria-se explicitamente o pipe Funcionamento similar a um arquivo Um named pipe precisa ser descartado explicitamente Criação: mkfifo <nome do pipe> Descarte: rm <nome do pipe> fildes[1] Pipe fildes[0] write() read()
11 1 main ( ) { 2 i n t f i l d e s [ 2 ], i n t BSIZE = ; c h a r buf [ BSIZE ] ; 3 p i p e ( f i l d e s ) ; // c r i a ç ã o dos d e s c r i t o r e s 4 5 s w i t c h ( f o r k ( ) ) { 6 c a s e 1: e x i t ( 1) ; // e r r o 7 c a s e 0 : / F i l h o r e c e b e do p i p e / 8 r e a d ( f i l d e s [ 0 ], buf, BSIZE ) ; / r e c e b e dados / 9 p r i n t f ( buf=\ %s \ \ nfim, buf ) ; 10 e x i t ( EXIT SUCCESS ) ; 11 d e f a u l t : / Pai e s c r e v e no p i p e / 12 w r i t e ( f i l d e s [ 1 ], H e l l o world, 12) ; / e s c r e v e / 13 c l o s e ( f i l d e s [ 1 ] ) ; / F i l h o r e c e b e EOF / 14 e x i t ( EXIT SUCCESS ) ; 15 } 16 } 11/46 Exemplos de pipes anônimos A função int pipe(int fildes[2]) em unistd.h cria um canal interprocessos fildes são descritores de arquivos: escrita em fildes[1], leitura em fildes[0]
12 12/46 int dup(int fildes); Coloca o descritor fildes no primeiro descritor padrão disponível int execlp(char *file, char *arg,...); Abre novo processo a partir do programa em *file fildes[1] pipe() fildes[0] stdin ls stdout stdin wc -l stdout dup(fildes[1]) pipe() dup(fildes[0]) stdin ls stdout stdin wc -l stdout close(1) close(0)
13 1 i n t main ( v o i d ) { 2 i n t f i l d e s [ 1 ] ; // f i l e d e s c r i p t o r s 3 p i p e ( f i l d e s ) ; 4 5 i f (! f o r k ( ) ) { 6 c l o s e ( 1 ) ; // f e c h a s a i d a padrao 7 dup ( f i l d e s [ 1 ] ) ; // poe na s a i d a d i s p o n i v e l f i l d e s [ 1 ] 8 e x e c l p ( l s, l s, NULL) ; 9 } e l s e { 10 c l o s e ( 0 ) ; // f e c h a e n t r a d a padrao 11 dup ( f i l d e s [ 0 ] ) ; // poe f i l d e s [ 0 ] na e n t r a d a padrao 12 e x e c l p ( wc, wc, l, NULL) ; 13 } 14 r e t u r n 0 ; 15 } 13/46
14 14/46 Pipes nomeados int mkfifo(char *pathname, mode t mode); em sys/stat.h Um escritor pode escrever de uma só vez no pipe até PIPE BUF bytes Escritor vai esperar (bloqueado) até alguém ler Tamanho do buffer: PIPE BUF em /usr/include/linux/limits.h (4096 bytes) Se leitor está esperando por dados e escritor fecha o pipe, leitor recebe EOF Se escritor encerra uso do pipe, dados escritos e não lidos são perdidos se não houver um leitor Principal vantagem em relação a pipes anônimos é a possibilidade de processos não relacionados fazerem comunicação interprocessos
15 15/46 Exemplos de pipes nomeados publib.boulder.ibm.com/infocenter/zvm/v6r1/index.jsp?topic=/com.ibm.zvm.v610.edclv/rtmkf.htm 1 #i n c l u d e <s y s / s t a t. h> 2 #i n c l u d e < f c n t l. h> 3 #i n c l u d e <u n i s t d. h> 4 5 main ( ) { 6 c h a r np []= temp. f i f o ; 7 c h a r out [20]= FIFO s a r e fun!, i n [ 2 0 ] ; 8 i n t r f d, wfd ; // d e s c r i t o r e s de a r q u i v o s 9 10 m k f i f o ( np, S IFIFO S IRWXU) ; // p e r m i s s o e s RWX p/ u s e r 11 r f d = open ( np, O RDONLY O NONBLOCK) ; 12 wfd = open ( np, O WRONLY) ; w r i t e ( wfd, out, s t r l e n ( out ) +1) ; 15 r e a d ( r f d, in, s i z e o f ( i n ) ) ; 16 p r i n t f ( r e a d % s from the FIFO\n, i n ) ; u n l i n k ( f n ) ; 19 }
16 1 //#i n c l u d e i n t main ( v o i d ) { // speak. c w r i t e s i n t o a FIFO 4 c h a r s [ ] ; 5 i n t num, f d ; 6 7 mknod ( named. p i p e, S IFIFO 0666, 0) ; 8 9 p r i n t f ( e s p e r a n d o por l e i t o r e s... \ n ) ; 10 f d = open (FIFO NAME, O WRONLY) ; 11 p r i n t f ( a c h e i um l e i t o r e s c r e v a a l g o \n ) ; w h i l e ( g e t s ( s ),! f e o f ( s t d i n ) ) { 14 i f ( ( num = w r i t e ( fd, s, s t r l e n ( s ) ) ) == 1) 15 p e r r o r ( w r i t e ) ; 16 e l s e 17 p r i n t f ( speak : e s c r e v e u %d b y t e s \n, num) ; 18 } r e t u r n 0 ; 21 } 16/46
17 1 #i n c l u d e... 2 #d e f i n e FIFO NAME named. p i p 3 i n t main ( v o i d ) {// t i c k. c r e a d s data from a FIFO 4 c h a r s [ ] ; 5 i n t num, f d ; 6 7 mknod ( FIFO NAME, S IFIFO 0666, 0) ; 8 9 p r i n t f ( e s p e r a por e s c r i t o r e s... \ n ) ; 10 f d = open (FIFO NAME, O RDONLY) ; 11 p r i n t f ( achou um e s c r i t o r \n ) ; do { 14 i f ( ( num = r e a d ( fd, s, 300) ) == 1) 15 p e r r o r ( r e a d ) ; 16 e l s e { 17 s [ num ] = \0 ; 18 p r i n t f ( t i c k : l e u %d b y t e s : \ %s \ \n, num, s ) ; 19 } 20 } w h i l e (num > 0) ; r e t u r n 0 ; 23 } 17/46
18 18/46 Exemplos de pipes em terminais No terminal 1 m k f i f o n p i p e 2 c a t / e t c / > n p i p e 3 c a t n p i p e
19 19/46 Conceitos sobre filas de mensagens (message queues) X/Open Systems Interfaces (XSI) da ISO Sistema tem um serviço preparado para receber mensagens Uma aplicação registra uma função para receber mensagens em uma dada fila Outras aplicações inserem mensagens na fila O sistema guarda mensagens até alguma aplicação receber
20 20/46 Conceitos sobre filas de mensagens (message queues) Similar a uma FIFO com funcionalidades extras Permite remover mensagens em ordem arbitrária Processos podem criar nova fila de mensagem ou usar uma existente Uma fila de mensagem existe mesmo sem processos usando Implementado como array de listas ligadas
21 21/46 Filas de mensagens Filas de mensagens POSIX #include <sys/msg.h> Receber número descritor de uma fila int msgget(key t key, int msgflg); Receber uma mensagem da fila msqid size t msgrcv(int msqid, void *msgp, size t msgsz, long msgtyp, int msgflg); Enviar uma mensagem na fila msqid int msgsnd(int msqid, void *msgp, size t msgsz, int msgflg); Modificar fila (mudar o dono, remover IPC RMID) int msgctl(int msqid, int cmd, struct msqid ds *buf);
22 22/46 Funções: criação de uma fila Obter ou criar (IPC CREAT) descritor de fila int msgget(key t key, int msgflg); msgget() retorna o ID da fila ou -1 se erro key t key é uma chave que processos precisam conhecer para usar a fila #include <sys/ipc.h> key t ftok(const char *pathname, int proj id); Exemplo: a chave é obtida com ftok("/algum/arquivo", 52) int msgflg representa o que deseja-se fazer com a fila Para criar (IPC CREAT) descritor de fila Passar com ou bit-a-bit as permissões (de arquivo) desejadas Exemplo: msqid = msgget(key, S IRWXU IPC CREAT);
23 23/46 Funções: envio de mensagens Uma mensagem deve ser enviada em uma estrutura similar a struct msgbuf (sys/msg.h) 1 s t r u c t msgbuf { 2 l o n g mtype ; // numero p o s i t i v o para r e c u p e r a r mensagem 3 c h a r mtext [ 1 ] ; // conteudo a s e r e n v i a d o 4 } ; Exemplo: 1 s t r u c t p i r a t a m s g b u f { 2 l o n g mtype ; // deve s e r p o s i t i v o! 3 s t r u c t i n f o p i r a t a { 4 c h a r nome [ 3 0 ] ; 5 c h a r t i p o n a v i o ; 6 i n t c r u e l d a d e ; 7 i n t n o t o r i e d a d e ; 8 } i n f o ; 9 } ;
24 24/46 Funções: envio de mensagens int msgsnd(int msqid, const void *msgp, size t msgsz, int msgflg); msqid é o id da fila const void *msgp é a struct da mensagem size t msgsz é o tamanho do conteúdo da mensagem int msgflg estabele funcionamento quando filas estiverem cheias Se 0, espera para enviar Se não 0, não envia e retorna erro 1 msgsnd ( msqid, &g o t t f r i d, s i z e m s g, 0) ;
25 25/46 Funções: recebimento de mensagens int msgrcv(int msqid, void *msgp, size t msgsz, long msgtyp, int msgflg); int msqid é o id da fila void *msgp é a estrutura que espera-se receber size t msgsz é o tamanho da estrutura que espera-se receber long msgtyp é o tipo da mensagem definida na estrutura int msgflg muda a forma de recepção zero obter próxima mensagem independentemente do tipo positivo obter próxima mensagem do tipo em msgtyp negativo obter primeira mensagem na fila cujo tipo é menor ou igual a msgtyp 1 msgrcv ( msqid, &p i r a t a a n o n, s i z e m s g, 2, 1) ;
26 1 #i n c l u d e... 2 main ( ) { 3 k e y t key = f t o k ( /tmp/ a r q f i l a, 52) ; 4 s t r u c t p i r a t a m s g b u f g o t t f r i d, p i r a t a a n o n ; 5 i n t c p i d ; 6 i n t msqid = msgget ( key, S IRWXU IPC CREAT ) ; 7 8 g o t t f r i d. mtype = 2 ; 9 s t r c p y ( g o t t f r i d. i n f o. nome, G o t t f r i d ) ; 10 g o t t f r i d. i n f o. c r u e l d a d e = 8 0 ; i n t s i z e=s i z e o f ( s t r u c t p i r a t a m s g b u f ) s i z e o f ( l o n g ) ; s w i t c h ( c p i d = f o r k ( ) ) { 15 c a s e 1: e x i t ( 1) ; 16 c a s e 0 : 17 msgrcv ( msqid, &p i r a t a a n o n, s i z e, 2, 1) ; 18 p r i n t f ( %s a v i s t a! \ n, p i r a t a a n o n. i n f o. nome ) ; 19 d e f a u l t : 20 msgsnd ( msqid, &g o t t f r i d, s i z e, 0) ; 21 w a i t p i d ( c p i d ) ; 22 } 23 } 26/46
27 27/46 Destruição da fila de mensagens No terminal ipcs, ipcrm, ipcmk Exemplo: ipcrm -msg 0 Em código 1 m s g c t l ( msqid, IPC RMID, NULL) ;
28 28/46 Resumo: filas de mensagens Similar a pipes nomeados Usa um pacote (struct) para transmitir dados Mensagens tem tipos e podem facilitar organização Ver exemplos: kirk.c e spock.c
29 29/46 Conceitos sobre memória compartilhada Processos podem compartilhar regiões de memória Ideia é ter variável que podem ser modificadas de maneira global entre processos
30 30/46 Criação da região compartilhada int shmget(key t key, size t size, int shmflg); Retorna identificador para a região compartilhada key t key mesma que para filas de mensagens com ftok() size t size tamanho da região de memória compartilhada int shmflg permissões, IPC CREAT para criar, ou padrão 0 1 key = f t o k ( /tmp/ t m p f i l e, R ) ; 2 shmid = shmget ( key, 1024, 0644 IPC CREAT ) ;
31 31/46 Obtenção de variáveis na região compartilhada void *shmat(int shmid, void *shmaddr, int shmflg); int shmid é o id da memória criada com shmget() void *shmaddr onde quer a variável, em geral 0 para SO escolher int shmflg: SHM RDONLY para indicar que a região vai ser somente leitura ou 0, caso contrário 1 data = shmat ( shmid, ( v o i d ) 0, 0) ; 2 3 i f ( data == ( c h a r ) ( 1) ) 4 p e r r o r ( shmat ) ;
32 32/46 1 #i n c l u d e... 2 main ( ) { 3 k e y t key ; i n t shmid ; c h a r t e x t o ; 4 5 key = f t o k ( /tmp/chavememsh, R ) ; 6 shmid = shmget ( key, 1024, 0644 IPC CREAT ) ; 7 t e x t o = shmat ( shmid, ( v o i d ) 0, 0) ; 8 s t r c p y ( t e x t o, P i r a t a s! ) ; 9 p r i n t f ( t = %s \n, t e x t o ) ; 10 } 1 #i n c l u d e... 2 main ( ) { 3 k e y t key ; i n t shmid ; c h a r t e x t o ; 4 5 key = f t o k ( /tmp/chavememsh, R ) ; 6 shmid = shmget ( key, 1024, 0644 IPC CREAT ) ; 7 t e x t o = shmat ( shmid, ( v o i d ) 0, 0) ; 8 p r i n t f ( t = %s \n, t e x t o ) ; 9 }
33 33/46 Encerrar memória compartilhada Quando um processo não usar mais a memória compartilhada ele deve desligar-se dela ou apagá-la Para se desligar, usar: int shmdt(void *shmaddr); void *shmaddr é o ponteiro da memória compartilhada Para apagar memória compartilhada: shmctl(shmid, IPC RMID, NULL);
34 34/46 Resumo: memória compartilhada Comunicação por compartilhamento de regiões de memória Deve haver sincronização para evitar efeitos inesperados Se nenhum processo explicitamente remover, região vai continuar na memória
35 35/46 Conceitos sobre Unix Domain Sockets Pipes e pipes nomeados funcionam em uma só direção Unix Domain Sockets funcionam nas duas direções Abstração que funciona em muitos meios (domínios), inclusive Internet Modelo cliente-servidor
36 36/46 Modelo cliente-servidor Servidor socket(), bind(), listen(), accept() Cliente socket(), connect() Comunicação send(), recv()
37 37/46 Estrutura para usar Unix sockets 1 s t r u c t s o c k a d d r u n { 2 u n s i g n e d s h o r t s u n f a m i l y ; / AF UNIX / 3 c h a r s u n p a t h [ ] ; 4 }
38 38/46 Criação de um socket 1 u n s i g n e d i n t s, s2 ; 2 s t r u c t s o c k a d d r u n l o c a l, remoto ; 3 4 s = s o c k e t ( AF UNIX, SOCK STREAM, 0) ; 5... #include <sys/socket.h> int socket(int domain, int type, int protocol); socket() retorna o identificador do socket SOCK STREAM indica que socket vai transmitir fluxos de dados
39 39/ s = s o c k e t ( AF UNIX, SOCK STREAM, 0) ; 3 l o c a l. s u n f a m i l y = AF UNIX ; // l o c a l é d e c l a r a d o a n t e s 4 5 s t r c p y ( l o c a l. sun path, /tmp/ mysocket ) ; 6 u n l i n k ( l o c a l. s u n p a t h ) ; // remove a n t e s de l i g a r 7 8 l e n = s t r l e n ( l o c a l. s u n p a t h ) +s i z e o f ( l o c a l. s u n f a m i l y ) ; 9 b i n d ( s, ( s t r u c t s o c k a d d r )&l o c a l, l e n ) ; Com socket criado, é necessário ligá-lo bind() liga o socket s com o endereço local Usa unlink() para não ter erro EINVAL len é necessário para indicar o tamanho da estrutura de endereço
40 40/46 Após ligar o endereço local com o socket s é necessário iniciar o processo de esperar por conexões 1 l i s t e n ( s, 5) ; int listen(int socket, int backlog); listen() faz o socket começar a aceitar conexões int backlog é o número de conexões que o socket vai aceitar Clientes em excesso receberão erro ECONNREFUSED
41 41/46 Aceitar conexão de cliente 1 l e n = s i z e o f ( s t r u c t s o c k a d d r u n ) ; 2 s2 = a c c e p t ( s, ( s t r u c t s o c k a d d r )&remoto, &l e n ) ; int accept(int socket, struct sockaddr *restrict address, socklen t *restrict address len); Faz processo esperar e aceitar por conexões Função retorna um novo socket para enviar dados para o cliente
42 42/46 Receber e enviar dados 1 w h i l e ( l e n = r e c v ( s2, &buf, 100, 0), l e n > 0) 2 send ( s2, &buf, len, 0) ; ssize t recv(int socket, void *buffer, size t length, int flags); ssize t send(int socket, const void *buffer, size t length, int flags); funções retornam o número de bytes lidos/escritos ou -1 (erro) int socket tem o número do socket de comunicação void *buffer contém o conteúdo enviado/recebido size t length é o número de bytes enviados/recebidos int flags determina o tipo de transmissão
43 43/46 O lado do cliente int connect(int socket, const struct sockaddr *address, socklen t address len); 1 #i n c l u d e... 2 main ( ) { 3 u n s i g n e d i n t s ; 4 s t r u c t s o c k a d d r u n remoto ; 5 6 s = s o c k e t ( AF UNIX, SOCK STREAM, 0) ; 7 remoto. s u n f a m i l y = AF UNIX ; 8 s t r c p y ( remoto. sun path, mysocket ) ; 9 10 i n t l e n = s t r l e n ( remoto. s u n p a t h ) + s i z e o f ( remoto. s u n f a m i l y ) ; 11 c o n nect ( s, ( s t r u c t s o c k a d d r )&remoto, l e n ) ; send ( s, b a r b a r o s s a, s t r l e n ( b a r b a r o s s a ), 0) ; 14 c l o s e ( s ) ; 15 }
44 Pipe bidirecional socketpair() cria um pipe bidirecional com sockets 1 main ( ) { 2 i n t sv [ 2 ] ; / the p a i r o f s o c k e t d e s c r i p t o r s / 3 c h a r buf ; / f o r data exchange between p r o c e s s e s / 4 5 s o c k e t p a i r ( AF UNIX, SOCK STREAM, 0, sv ) ; 6 7 i f (! f o r k ( ) ) { / c h i l d / 8 r e a d ( sv [ 1 ], &buf, 1) ; 9 p r i n t f ( f i l h o : l ê %c \ n, buf ) ; 10 w r i t e ( sv [ 1 ], &buf, 1) ; 11 p r i n t f ( f i l h o : e n v i a %c \ n, buf ) ; 12 } e l s e { / p a r e n t / 13 w r i t e ( sv [ 0 ], b, 1) ; 14 p r i n t f ( p a i : e n v i a b \ n ) ; 15 r e a d ( sv [ 0 ], &buf, 1) ; 16 p r i n t f ( p a i : l ê %c \ n, buf ) ; 17 w a i t (NULL) ; / w a i t f o r c h i l d to d i e / 18 } 19 r e t u r n 0 ; 44/46
45 45/46 Resumo arquivos com travas (não vimos com detalhes) sinais comunicação restrita pipes direcional, somente entre processos relacionados pipes nomeados direcionado, entre processos arbitrários filas de mensagens transmissão de pacotes, bidirecional memória compartilhada comunicação direto pela memória Unix Domain Sockets cria comunicação bidirecional: modelo-servidor
46 46/46 Referências Beej s Guide to Unix IPC
Memória compartilhada
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 DCA0109 - Prática
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 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
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 maisAmbientes de Execução
KERNEL Conceitos Conceitos POSIX Portable Operating System Interface for UNIX. Um conjunto de padrões da IEEE e ISO que definem como programas e sistemas operacionais de interface com os outros. Sistemas
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 maisAula de Socket. Rafael De Tommaso do Valle
Aula de Socket Rafael De Tommaso do Valle 20 de agosto de 2009 Socket O que é um socket? É uma interface com qual processos em diferentes hosts se comunicam através da rede; Também chamado de interface
Leia maisSockets. André Restivo. April 29, Faculdade de Engenharia da Universidade do Porto. André Restivo (FEUP) Sockets April 29, / 27
Sockets André Restivo Faculdade de Engenharia da Universidade do Porto April 29, 2013 André Restivo (FEUP) Sockets April 29, 2013 1 / 27 Sumário 1 Introdução 2 Cliente/Servidor 3 API C++ 4 André Restivo
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 maisInter-process Communication (IPC)
Inter-process Communication (IPC) Comunicação entre processos (2) Filas (FIFOs, Named Pipes) Fila (FIFO, Named Pipe) Trata-se de uma extensão do conceito de pipe. Pipes só podem ser usados por processos
Leia maisComunicaçã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 maisSincronização e Comunicação Baseada em Mensagens
Sincronização e Comunicação Baseada em Mensagens Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Programa de Pós-Graduação
Leia maisCliente TCP. Programação sockets. Agenda. Cliente TCP. Chamadas sockets para TCP. Chamada socket() Chamada socket()
2002-2009 Volnys Bernal 1 2002-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Resumo das chamadas sockets para TCP Chamada close() 2002-2009 Volnys Bernal
Leia maisSumário. Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos
Sumário Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos A Internet: Endereços Cada computador ligado à Internet tem um endereço único que o distingue dos restantes (endereço
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 maisSoquetes TCP. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil
Soquetes TCP Jean Ribeiro Damasceno Escola de Engenharia (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil jeanrdmg@yahoo.com.br Função socket(): Cria um novo ponto final de comunicação int socket ( int
Leia maisCliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP.
2002-2013 Volnys Bernal 1 2002-2013 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Resumo de Chamadas UDP Chamada Chamada Chamada 2002-2013 Volnys Bernal 3
Leia maisSockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets
Sockets - Conceitos Básicos COMUNICAÇÃO ENTRE PROCESSOS Sockets! Sockets são uma forma de IPC (InterProcess Communication ) fornecida pela 4.3 BSD que fornecem comunicação entre processos residentes em
Leia maisServidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP
2004-2016 Volnys Bernal 1 2004-2016 Volnys Bernal 2 Resumo das Chamadas TCP Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP Resumo das Chamadas TCP
Leia maisProgramação de Sistemas. Tubos
Programação de Sistemas Tubos Programação de Sistemas Pipes : 1/18 Tubos - introdução APUE 15.2 No Unix, os tubos ( pipes ) constituem o mecanismo original de comunicação entre processos. Mensagens limitadas
Leia maisProgramação de Sistemas
Programação de Sistemas FIFOs Programação de Sistemas FIFOs : 1/13 Introdução APUE 15.5 Os tubos só podem ser usados por processos que tenham um antecessor comum. Para resolver a limitação dos tubos, o
Leia maisCliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Resumo das chamadas UDP. Resumo de Chamadas UDP.
2002-2015 Volnys Bernal 1 2002-2015 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP Resumo das chamadas sockets para UDP Uso
Leia maissockets interprocess communication Taisy Weber
sockets interprocess communication Taisy Weber Comunicação entre processos Mecanismos Pipes, FIFO (named pipes), semáforos, message queues. Memória compartilhada. Sockets Definição, chamadas de sistemas,
Leia maisSockets: Sumário. Resumo das Propriedades de UDP e de TCP
Sockets: Sumário Sockets TCP Modêlo. API de Java. API da biblioteca C. Avaliação Crítica de Sockets. 1 Resumo das Propriedades de UDP e de TCP Propriedade UDP TCP Abstracção Mens. Stream Baseado em Conexão
Leia maisSistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS
Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS Processo Usuário Processo Usuário SO IPC em um mesmo sistema 2 Processo Usuário Processo usuário
Leia maisComunicação baseada em canais de I/O e Pipelines no sistema Unix. José C. Cunha, DI-FCT/UNL
Comunicação baseada em canais de I/O e Pipelines no sistema Unix José C. Cunha, DI-FCT/UNL Mecanismos de comunicação Ficheiros em disco (geridos pelo SO) Pipes (buffers geridos pelo SO) Mensagens (filas
Leia maisServidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP
2004-2013 Volnys Bernal 1 2004-2013 Volnys Bernal 2 Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys 2004-2013 Volnys Bernal 3 2004-2013 Volnys Bernal 4 Lado Cliente Lado Servidor sd1
Leia maisServidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP
2004-2013 Volnys Bernal 1 2004-2013 Volnys Bernal 2 Resumo das Chamadas TCP Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys 2004-2013 Volnys Bernal 3 2004-2013 Volnys Bernal 4 Resumo
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 maisServidor TCP Volnys Borges Bernal Depto de Engenharia de Sistemas Eletrônicos Escola Politécnica da USP
2004-2019 Volnys Bernal 1 Servidor TCP Volnys Borges Bernal Depto de Engenharia de Sistemas Eletrônicos Escola Politécnica da USP 2004-2019 Volnys Bernal 2 Resumo das Chamadas TCP 2004-2019 Volnys Bernal
Leia maisComunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação
Comunicação entre Processos Canal de comunicação Arquitetura da comunicação Modelos de comunicação Sistemas Operativos 2015-2016 O que construímos até agora... A abstração de processo 2 A possibilidade
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 maisModelo Cliente/Servidor e Introdução a Sockets
Modelo Cliente/Servidor e Introdução a Sockets MC 833 Programação em s de Computadores Instituto de Computação UNICAMP Juliana Freitag Borin O modelo OSI de 7 camadas Nó origem Nó destino Apresentação
Leia maisSistemas Operacionais II
Introdução Instituto de Informátic ca - UFRGS Sistemas Operacionais II Comunicação inter-processos Aula 09 Programação concorrente surgiu com a multiprogramação Mecanismos básicos supõem memória compartilhada,
Leia maisUnnamed Pipes. Chamada ao sistema pipe. Pipes. Comunicação entre processos. Unnamed Pipes Chamada so sistema. José Pedro Oliveira
Conteúdo (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 006-007 1 Exercícios 3 Referências Pipes Chamada
Leia maisComunicação entre pai e filho
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 o resultado de um processo possa ser recebido pelo outro? Exemplos: Processo
Leia maisCliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP.
2002-2004 Volnys Bernal 1 2002-2004 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Resumo de Chamadas UDP Chamada connect() Chamada send() Chamada sendto()
Leia maisComunicação entre Processos Named Pipes (FIFO)
Comunicação entre Processos Named Pipes (FIFO) 5/17/18 1 Named pipe (FIFO) FIFO permite que dois processos quaisquer se comuniquem É um tipo especial de arquivo visível no sistema de arquivos Na troca
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 maisSistemas Distribuídos Aula 2
Sistemas Distribuídos Aula 2 Aula passada Logísitica Regras do jogo Definição e características Exemplos Aula de hoje Processos IPC Características Ex. sinais, pipes, sockets Objetivos Processos O que
Leia maisAnexo 1 Processos UNIX Anexo 2 Pipes UNIX Anexo 3 IPC UNIX ANEXOS
Anexo 1 Processos UNIX Anexo 2 Pipes UNIX Anexo 3 IPC UNIX ANEXOS ANEXO 1 PROCESSOS NO UNIX Processos são o coração do sistema UNIX. A grande maioria é gerada a partir da chamada de sistema fork. Quando
Leia maisCOMUNICAÇÃO ENTRE APLICAÇÕES. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes
COMUNICAÇÃO ENTRE APLICAÇÕES Laboratórios de Informática 2014-2015 João Paulo Barraca, André Zúquete, Diogo Gomes Comunicação Aplicações interagem de várias formas com o utilizador (stdin, stdout, stderr)
Leia maisSistemas Distribuídos
Sistemas Distribuídos Universidade Federal do ABC Turma: Ciência da Computação Prof. Dr. Francisco Isidro Massetto Introdução: Sockets Para estabelecer a Comunicação Interprocesso nos Sistemas Distribuídos,
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 maisProgramação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP)
II - UFRGS Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP) Valter Roesler Universidade Federal do Rio Grande do Sul (UFRGS) Instituto de Informática
Leia maisProgramação com Sockets TCP e UDP - Cliente. Gustavo Leitão
Programação com Sockets TCP e UDP - Cliente Gustavo Leitão 5/24/2010 INTRODUÇÃO Objetivo da Aula OBJETIVO DA AULA Apresentar ao aluno conceitos e prática em sockets INTRODUÇÃO O que é um socket? INTRODUÇÃO
Leia maisIPC Interprocess communication
IPC Interprocess communication conceitos de IPC, pipes Taisy Weber Comunicação entre processos Pipes e FIFO Defição, chamadas de sistemas, utilização de Message queues. Memória compartilhada. Sockets.
Leia maisSistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior
Sistemas Operacionais II Unix: Memória e E/S Geraldo Braz Junior Gerenciamento de Memória Gerenciamento de Memória Espaço de Endereçamento 1. Segmento de código Instruções de máquina que formam o código
Leia maisProgramação de Aplicações em. Rede usando Sockets
Programação de Aplicações em Objetivos: Rede usando Sockets Conhecer a API Sockets, que permite a programas de aplicação comunicar-se através da Internet Aplicações e Protocolo de Aplicação Aplicação:
Leia maisServidor UDP Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP
2004-2017 Volnys Bernal 1 Servidor UDP Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2017 Volnys Bernal 2 Resumo das Chamadas UDP 2004-2017
Leia maisManipulação de Ficheiros
Manipulação de Ficheiros Utilização de ficheiros Programas normalmente necessitam de ler e/ou escrever em ficheiros de dados Tipicamente um ficheiro representa uma sequência qualquer de bytes Redirecionamento
Leia maisArquitetura de Sistemas Operativos
Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Um processo é uma instância em execução de um programa. No sistema operativo Unix a única forma de se criar um novo processo (processo-filho)
Leia maisServidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP
2004-2015 Volnys Bernal 1 2004-2015 Volnys Bernal 2 Resumo das Chamadas UDP Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP 2004-2015 Volnys Bernal
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 maisAula Prática. Comunicação em SOCKTS. Disciplina: INF01151
Aula Prática Comunicação em SOCKTS Disciplina: INF01151 Prof. Dr. Cláudio Fernando Resin Geyer Monitor: Julio Anjos Agenda 1 - Objetivo Apresentar na prática a comunicação entre processos usando sockets
Leia maisAPI de Sockets. Modelo Cliente/Servidor (2/2) Modelo Cliente/Servidor (1/2) José Pedro Oliveira Sistemas Operativos I
Conteúdo (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho 1 Sistemas Operativos I 2006-2007 Modelo Cliente/Servidor (1/2) Modelo
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 maisIntrodução à Programação com Sockets. Fernando Jorge Silveira Filho Daniel Sadoc Menasché
Introdução à Programação com Sockets Fernando Jorge Silveira Filho fernando@land.ufrj.br Daniel Sadoc Menasché sadoc@land.ufrj.br Visão Geral Objetivos: Realizar comunicação entre processos. Entender como
Leia maisDuplicação e partilha de ficheiros
(jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 006-007 : ficheiros abertos Dois processos independentes com
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 maisSistema de Entrada/Saída
Conteúdo Ficheiros (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos 2006-2007 2 Descritores de ficheiros Descritores
Leia maisSinais. Sinais e fork. Sinais e exec. Segunda aula. Chamada ao sistema fork Chamada ao sistema execve. José Pedro Oliveira
e chamadas ao sistema fork e exec Segunda aula (jpo@di.uminho.pt) Grupo de Sistemas Distribuídos Departamento de Informática Escola de Engenharia Universidade do Minho Sistemas Operativos I 2006-2007 1
Leia maisArquitetura de Computadores Sistemas Operacionais II
Definição de Processo Arquitetura de Computadores Sistemas Operacionais II Processo é o mesmo de Programa? Programa Estrutura estática Instruções + Dados Processo Entidade Ativa Instância de um Programa
Leia maisTeste de Sistemas de Operação 15 de Abril de 2010
Teste de Sistemas de Operação 15 de Abril de 2010 Duração: 1 h (prática + teórica) D NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Em um sistema que suporta multiprogramação
Leia maisRedes de Computadores e Aplicações
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos Redes de Computadores e Aplicações Aula 13 - Camada de Aplicação Visão Geral Prof. Diego Pereira
Leia maisProgramação de sistema UNIX
Programação de sistema UNIX Sinais Sinais 1 Definição e tipos Sinais Espécie de interrupções enviadas aos processos, na ocorrência de certos eventos Cada processo pode definir uma função para responder
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 maisComunicação entre Processos por Troca de Mensagens. Prof. Celso maciel da Costa
Comunicação entre Processos por Troca de Mensagens Prof. Celso maciel da Costa Troca de Mensagens Com memória compartilhada: os processo compartilham variáveis e trocam informações através do uso de variáveis
Leia maisComunicação entre processos. Sistema centralizado
Sistemas Distribuídos Comunicação entre processos Sistema centralizado Comunicação entre processos Arquivo Memória compartilhada Sinal Fila de mensagem SO gerencia comunicação 2 Sistema distribuído Idéia
Leia maisExiste uma quantidade de informação que pode ser armazenada para resolver o problema.
Arquivos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem sempre é conveniente. Problemas: A informação é perdida; As estruturas de dados são
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 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 maisIPC no UNIX. Onofre Trindade Jr
IPC no UNIX Onofre Trindade Jr Processo módulo módulo Comunicação entre módulos Variáveis globais Chamada de funções parâmetros resultados Comunicação Processo Único Processo A Processo B Kernel Comunicação
Leia maisREDES INTEGRADAS DE TELECOMUNICAÇÕES I 2008 / 2009
Departamento de Engenharia Electrotécnica REDES INTEGRADAS DE TELECOMUNICAÇÕES I 2008 / 2009 Mestrado Integrado em Engenharia Electrotécnica e Computadores 4º ano 7º semestre 2º Trabalho Prático: Localização
Leia maisNa Aula Anterior... Interrupções por software e hardware; Temporizadores; RTC; Temporizadores via software. Relação Processos Multiprogramação
GSI018 Sistemas Operacionais 26/08/2016 Gerência de Processos Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior... Interrupções por software
Leia maisTeste de Sistemas de Operação 30 de Maio de 2009
Teste de Sistemas de Operação 30 de Maio de 2009 Duração: 30 min B NOME: Indique apenas uma das alternativas. Respostas erradas descontam na nota. 1. Um pedido de entrada e saída sem buffering: (letra
Leia maisIntrodução aos Sistemas Operativos
Introdução aos Sistemas Operativos Baseado em: Andrew S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992 FEUP/INESC http://www.fe.up.pt/~jlopes/teach/ jlopes@inescn.pt v 1.0, Outubro de 1997 Introdução
Leia maisJoão Correia Lopes. v 1.0, Outubro de Introdução aos Sistemas Operativos v1.0 1
Introdução aos Sistemas Operativos Baseado em: Andrew S. Tanenbaum. Modern Operating Systems, Prentice-Hall, 1992 FEUP/INESC http://www.fe.up.pt/~jlopes/teach/ jlopes@inescn.pt v 1.0, Outubro de 1997 Introdução
Leia maisComputação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Aula 12 Arquivos Texto e Binário Prof: Luciano Barbosa Relembrando a Arquitetura Básica de um Computador Até agora, toda a informação armazenada por nossos programas estava na memória
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 maisGrupo I [6 v] Considere o processo com a seguinte tabela de páginas: Página Presente Protecção Base 0 0 RW RW R R RW -
Número: Nome: LEIC/LETI 2014/15-2º Teste de Sistemas Operativos 9/Janeiro/2015 Identifique todas as folhas. Responda no enunciado no espaço fornecido. Justifique todas as respostas. Duração: 1h30m Grupo
Leia maisSistema de Controlo com Acesso Remoto
Trabalho de Laboratório Programação de Sistemas - LEE IST - 2007/2008 Sistema de Controlo com Acesso Remoto 1 Introdução Um sistema de controlo é, normalmente, constituído por vários processos controladores
Leia maiscamada de transporte SOCKET TCP UDP
Sockets O que são sockets? O acesso aos serviços da camada de transporte pode ser feito por primitivas de transporte, essas primitivas são denominadas SOCKET. Por essas primitivas é possível acessar vários
Leia maisComunicação entre Processos
Comunicação entre Processos Canal de comunicação Arquitectura da comunicação Modelos de comunicação 8/28/2003 José Alves Marques 1 Necessidade da Comunicação A sincronização entre processos permitiu que
Leia maisProgramação de Sistemas
Programação de Sistemas FIFOs Programação de Sistemas FIFOs : 1/13 Introdução APUE 15.5 Os tubos só podem ser usados por processos que tenham um antecessor comum. Para resolver a limitação dos tubos, o
Leia maisTROCA DE MENSAGENS SOCKETS. Comunicando processos através de SOCKETS. SOCKETS com conexão. SOCKETS sem conexão
TROCA DE MENSAGENS SOCKETS Comunicando processos através de SOCKETS SOCKETS com conexão SOCKETS sem conexão SOCKETS Princípios dos sockets: 2. Fornecer uma interface geral permitindo a construção de aplicações
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 maisTubos ou Pipes de Comunicação
1 Tubos ou Pipes de Comunicação 1. Introdução Os tubos (ou pipes) constituem um mecanismo fundamental de comunicação unidirecional entre processos. Eles são um mecanismo de I/O com duas extremidades, ou
Leia maisSistemas Operativos 2004/05. Programação concorrente em ambiente LINUX Guia das aulas práticas
Sistemas Operativos 2004/05 Programação concorrente em ambiente LINUX Guia das aulas práticas Versão 1.01 19/05/2003 Índice INTRODUÇÃO 3 A linguagem C 3 Principais diferenças em relação ao C++ 3 Compilação
Leia maisUNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO
UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO ALAN FERNANDO COELHO GARCIA EDUARDO GUILHERME CORDEIRO MECÂNISMO DE
Leia maisComunicação entre Processos. 1. Pipes 2. Fifos 3. Sockets
Comunicação entre Processos 1. Pipes 2. Fifos 3. Sockets Pipes Implementa um canal de comunicação associado a um processo Limitações: Os dados apenas fluem num sentido Só podem ser usados entre processos
Leia maisComunicação entre Processos
Comunicação entre Processos Troca de Mensagens send (destino, msg) receive (origem, mensagem) questões semântica de operações especificação de origem e destino formato de mensagem envio síncrono e assíncrono
Leia maisSistemas Operacionais
Sistemas Operacionais Programação Concorrente Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Programa Seqüencial Representado por apenas um processo Existe apenas
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 maisCapítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006
Capítulo 13: Sistemas de E/S Capítulo 13: Sistemas de E/S Hardware de E/S Interface de E/S da aplicação Subsistema de E/S do kernel Transformando requisições de E/S em operações de hardware Fluxos Desempenho
Leia maisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema
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 maisINF01018 Aula Prática 1 Cliente-Servidor e Multicast
1 / 30 INF01018 Aula Prática 1 Cliente-Servidor e Multicast Lucas Mello Schnorr, Alexandre Silva Caríssimi {lmschnorr,asc}@inf.ufrgs.br http://www.inf.ufrgs.br/ lmschnorr/ad/ INF01018 Sistemas Operacionais
Leia maisComunicação entre Processos
Comunicação entre Processos Prof. Dr. André Carvalho andre@icomp.ufam.edu.br Agenda n Comunicação entre Processos n Características dos mecanismos de comunicação Comunicação direta ou indireta, sincronismos,
Leia mais