next up previous contents
Next: Struktura ipc_perm w jądrze Up: Struktury danych: Wewnętrzne i Previous: Struktura msg w jądrze   Contents

Struktura msqid_ds w jądrze

Każdy z trzech typów obiektów IPC posiada wewnętrzną strukturę danych utrzymywaną przez jądro. Dla kolejek wiadomości jest to struktura msqid_ds. Jądro tworzy, przechowuje i utrzymuje kopię tej struktury dla każdej kolejki wiadomości utworzonej w systemie. Jest ona zdefiniowana w linux/msg.h:


   /* one msqid structure for each queue on the system */
   struct msqid_ds {
       struct ipc_perm msg_perm;
       struct msg *msg_first;  /* pierwsza wiadomość w kolejce */
       struct msg *msg_last;   /* ostatnia wiadomość w kolejce */
       time_t msg_stime;       /* czas ostatniego msgsnd */
       time_t msg_rtime;       /* czas ostatniego msgrcv */
       time_t msg_ctime;       /* czas ostatniej zmiany */
       struct wait_queue *wwait;
       struct wait_queue *rwait;
       ushort msg_cbytes;    
       ushort msg_qnum;     
       ushort msg_qbytes;      /* maxymalna ilość bajtów w kolejce */
       ushort msg_lspid;       /* pid ostatniego msgsnd */
       ushort msg_lrpid;       /* ostatnio odebrany pid */
   };
   

Jakkolwiek niezbyt często będziesz się spotykał z członkami tej struktury zakończymy małym opisem każdego z nich:

msg_perm

Struktura ipc_perm, która jest zdefiniowana w linux/ipc.h. Zawiera ona informację na temat praw kolejki, włączając prawa dostępu oraz informacje o twórcy kolejki ( uid, etc ).

msg_first

Wskaźnik do pierwszej wiadomości w kolejce ( początku listy ).

msg_last

Wskaźnik do ostatniej wiadomości ( końca listy ).

msg_stime

Czas (time_t) kiedy wysłano ostatnią wiadomość.

msg_rtime

Czas ostatniego odebrania wiadomości z kolejki.

msg_ctime

Czas ostatniej 'zmiany' dokonanej na kolejce ( więcej dowiesz się póżniej ).

wwait

i

rwait

Wskaźniki do kolejki oczekiwania (wait queue) jądra. Używane są gdy operacja na kolejce uważa, że proces śpi ( np. kolejka jest pełna i proces czeka na otwarcie ).

msg_cbytes

Suma rozmiarów wszystkich wiadomości w kolejce.

msg_qnum

Liczba wiadomości w kolejce.

msg_qbytes

Maxymalna liczba bajtów dla kolejki.

msg_lspid

PID procesu, który jako ostatni wysłał wiadomość.

msg_lrpid

PID procesu, który jako ostatni odebrał wiadomość.


next up previous contents
Next: Struktura ipc_perm w jądrze Up: Struktury danych: Wewnętrzne i Previous: Struktura msg w jądrze   Contents

2000-03-01


Poltronic