.


:




:

































 

 

 

 


(IPC)




 

, , .

.

IPC:

- ;

- ( );

- .

IPC:

- ;

- (pipe);

- (FIFO) ;

- (messages queue);

- (shared memory) ;

- ;

- .

(pipe)

, ().

: int pipe(int *filedes);

filedes[0] ;

filedes[1] ;

, 2 , .

=> pipes . .

. , ( , .. ). -> .

FIFO

(pipe) , -> c ( FIFO). .

 

: mknode(char *pathname, int mode, int dev);

*pathname FIFO;

mode ;

:

1) n N (n<N) n , ;

2) n N (n<N) (n>N) N ;

3) , 0 , , , 1 ;

4) , ( + tag);

5) , FIFO , , .

FIFO .

FIFO SIGPIPE, .

FIFO - .

:

- FIFO (mknode());

- FIFO (open());

- (recv());

- (print());

- FIFO (close()).

:

- FIFO (open());

- FIFO (send());

- FIFO (close()).

- FIFO (rm()).

IPC, , , . . ftok() (: ).

#include <sys/types.h>

#include <sys/ipc.h>

 

key_t ftok(char *filename, char proj);

filename ,

IPC .

ID. ID.

IPC
pipe - pipe();
FIFO mknode();
msgget(), msgctl()
semctl(), semset()
shmget(), shmctl()

-1.

.

Inode , .

 

, , , , . .

.

 

:

- (/);

- (, = 0);

- ( ).

. .

msgid_ds ----------------------------------------à ipc_perm

msg_perm // permission

msg_cbytes //

msg_num //

msg_first //

msg_last //

:

msg_snd() ;

msg_rcv() ;

msg_get() ;

msg_ctl() .

 

( / ).

:

- ( );

- (), .

. . UNIX .

sem_id_ds:

sem_id ;

sem_perm ;

sem_first ;

sem_num ;

sem_oper - ;

sem_time .

sem , , , , , , , .

 

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/sem.h>

 

int semget(key_t key, int nsems, int semflag);

. .

 

sem_op , .

sem_op(int semid, struct sembuf *semop, size_t nops);

semid ;

semop , - 3 : , , .

struct sembuf{

short sem_num;

short sem_op;

short sem_flag;}

nops , 3:

- semop > 0 , sembuf.

- semop = 0, , ;

- semop < 0, , sem_op .

 

, UNIX.

.

 

, , . , .

:

- ;

- ;

- .

:

- ;

- ;

- .

- 2 .

 

, , . . . . IPC. , . . . 32.

SIGINT del, Ctrl+C .. . .

#include <sys/types.h>

#include <signal.h>

int kill (pid_t pid, int sig);

 

:

1) ;

2) ( 0, ). .

3) (SIGALARM, , );

4) ;

5) ( , , );

6) ;

7) .

 

. , . .

:

- ;

- ;

- ;

- ;

- , .

 

:

1) ;

2) ;

3) ;

4) , ;

5) ( SIGKILL, SIGSTOP).

6) , .

 

: .

 

.

:

;

.

.

, , , , , ( - ), .

.

, .

 

. . ( ).

.

, . . . , .

 

.

. ISSIG().

:

- ;

- ;

- .

, . ISSIG() , , . .





:


: 2016-11-02; !; : 845 |


:

:

, ; , .
==> ...

1912 - | 1694 -


© 2015-2024 lektsii.org - -

: 0.028 .