Содержание
- 2. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 3. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 4. SysV SysV Object id
- 5. SysV SysV Object id id
- 6. SysV SysV Object id id fork()
- 7. SysV SysV Object id = const id = const
- 8. SysV (ftok) SysV Object id = ftok(const char *pathname, int proj_id); id = ftok(const char *pathname,
- 9. SysV (ftok) SysV Object id = ftok(const char *pathname, int proj_id); 1 2 3 1 2
- 10. SysV (ipcs) Вывод ipcs. ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status
- 11. SysV (ipcrm) Использование ipcrm. ipcrm –M shmkey ipcrm –m shmid ipcrm –Q msgley ipcrm –q msgid
- 12. SysV (Права доступа) Обладают идентификаторам пользователя и группы Группы – означает создателя Девять бит – rwxrwxrwx
- 13. SysV (Права доступа) ipc_perm. struct ipc_perm { uid_t uid; gid_t gid; uid_t cuid; git_t cgid; mode_t
- 14. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 15. SysV POSIX Object str str
- 16. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 17. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 18. Очереди сообщений (SysV) int msgget(key_t key, int flags); ftok(…); IPC_CREAT O_CREAT IPC_CREAT
- 19. Очереди сообщений (SysV) int msgget(key_t key, int flags); ftok(…); IPC_CREAT O_CREAT IPC_CREAT IPC_PRIVATE
- 20. Очереди сообщений (SysV) msgctl. int msgctl(int msgq, int cmd /* IPC_SET, IPC_STAT, IPC_RMID */, struct msqid_ds
- 21. Очереди сообщений (SysV) msgsnd/msgrcv. int msgsnd(int msgid, const void *msgp, size_t msgsz, int msgflg); int msgrcv(int
- 22. Очереди сообщений (SysV) msgsnd/msgrcv. int msgsnd(int msgid, const void *msgp, size_t msgsz, int msgflg); int msgrcv(int
- 23. Очереди сообщений (SysV) msgsnd/msgrcv. int msgsnd(int msgid, const void *msgp, size_t msgsz, int msgflg); int msgrcv(int
- 24. Очереди сообщений (SysV) msgsnd/msgrcv. int msgsnd(int msgid, const void *msgp, size_t msgsz, int msgflg); int msgrcv(int
- 25. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 26. Очереди сообщений (POSIX) mq_open. mqd_t mq_open(const char *name, int flags); // O_RDONLY, O_WRONLY, O_RDWR, O_NONBLOCK mqd_t
- 27. Очереди сообщений (POSIX) mq_attr. struct mq_attr { long mq_flags; long mq_maxmsg; long mq_msgsize; long mq_curmsg; }
- 28. Очереди сообщений (POSIX) mq_close/mq_unlink. int mq_close(mqd_t mqd); int mq_unlink(const char *name);
- 29. Очереди сообщений (POSIX) mq_send/mq_receive. int mq_send(mqd_t mqd, const char *msg, size_t msgsize, unsigned priority /* 0..31..>
- 30. Очереди сообщений (POSIX) mq_timedsend/mq_timedreceive. int mq_timedsend(mqd_t mqd, const char *msg, size_t msgsize, unsigned priority, const struct
- 31. Очереди сообщений (POSIX) mq_notify. int mq_notify( mqd_t mqd, const struct sigevent *ep); // 1. После вызова
- 32. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 33. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 34. Семафоры (POSIX) semget. int semget(key_t key, int nsems, int flags);
- 35. Семафоры (POSIX) semctl. int semctl(int semid, int semnum, int cmd, union semun arg);
- 36. Семафоры (POSIX) semctl. int semctl(int semid, int semnum, int cmd, union semun arg); union semun {
- 37. Семафоры (POSIX) semctl. int semctl(int semid, int semnum, int cmd, union semun arg); union semun {
- 38. Семафоры (POSIX) semctl. int semctl(int semid, int semnum, int cmd, union semun arg); union semun {
- 39. Семафоры (SysV) semctl. int semctl(int semid, int semnum, int cmd, union semun arg); union semun {
- 40. Семафоры (SysV) semctl. int semctl(int semid, int semnum, int cmd, union semun arg); union semun {
- 41. Семафоры (SysV) semctl. int semctl(int semid, int semnum, IPC_RMID, union semun arg); union semun { int
- 42. Семафоры (SysV) semctl. int semctl(int semid, int semnum, IPC_STAT, union semun arg); union semun { int
- 43. Семафоры (SysV) semctl. int semctl(int semid, int semnum, IPC_SET, union semun arg); union semun { int
- 44. Семафоры (SysV) semctl. int semctl(int semid, int semnum, GETNCNT, union semun arg); union semun { int
- 45. Семафоры (SysV) semctl. int semctl(int semid, int semnum, GETZCNT, union semun arg); union semun { int
- 46. Семафоры (SysV) semctl. int semctl(int semid, int semnum, GETPID, union semun arg); union semun { int
- 47. Семафоры (SysV) semctl. int semctl(int semid, int semnum, GETVAL, union semun arg); union semun { int
- 48. Семафоры (SysV) semctl. int semctl(int semid, int semnum, SETVAL, union semun arg); union semun { int
- 49. Семафоры (SysV) semctl. int semctl(int semid, int semnum, GETALL, union semun arg); union semun { int
- 50. Семафоры (SysV) semctl. int semctl(int semid, int semnum, SETALL, union semun arg); union semun { int
- 51. Семафоры (SysV) semop. int semop(int semid, struct sembuf *sops, size_t nsops); struct sembuf { unsigned short
- 52. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 53. Семафоры (POSIX) sem_open/sem_close/sem_unlink. sem_t *sem_open(const char *name, int flags); sem_t *sem_open(const char *name, int flags, mode_t
- 54. Семафоры (POSIX) Работа с семафором. int sem_post(sem_t *sem); // +1 int sem_wait(sem_t *sem); // -1 int
- 55. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 56. Семафоры (POSIX) sem_init/sem_destroy. int sem_init(sem_t *sem, int pshared, unsigned value); int sem_destroy(sem_t *sem);
- 57. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 58. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 59. Общая память (SysV) Создание и управление. int shmget(key_t key, size_t size, int flags); int shmctl(int shmid,
- 60. Общая память (SysV) Присоединение и отсоединение. void *shmat(int shmid, const void *shmaddr /* EINVAL */, int
- 61. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 62. Отображение файлов в память mmap/munmap. void *mmap( void *addr, size_t len, int prot, // PROT_NONE, PROT_READ,
- 63. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 64. Отображение файлов в память shm_open/shm_unlink. int shm_open( const char *name, int flags, mod_t perms ); int
- 65. IPC Очереди сообщений Семафоры Общая память POSIX SysV msgget msgctl msgsnd msgrcv mq_open mq_close mq_unlink mq_send
- 66. Таймеры Будильник. unsigned alarm(unsigned secs);
- 67. Таймеры Сон. unsigned sleep(unsigned secs); unsigned usleep(useconds_t usecs); unsigned nanosleep(const struct timespec *nsecs, struct timespec *remain);
- 68. Таймеры Виды таймеров. ITIMER_REAL – реальное время, SIGALRM ITIMER_VIRTUAL – виртуальное время, SIGVTALRM ITIMER_PROF – время
- 69. Передача дескрипторов
- 70. Передача дескрипторов sendmsg/recvmsg. ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags); ssize_t recvmsg(int sockfd, struct
- 71. Передача дескрипторов cmsghdr. struct cmsghdr { socklen_t cmsg_len; /* счетчик байтов данных с заголовком */ int
- 72. Передача дескрипторов Макросы. struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *msgh); struct cmsghdr *CMSG_NXTHDR(struct msghdr *msgh, struct cmsghdr *cmsg);
- 73. Передача дескрипторов Пример. http://keithp.com/blogs/fd-passing/
- 75. Скачать презентацию