Junior — Middle
Jarayonlar uchun umumiy xotira bo'laklarini yaratish uchun qaysi mexanizm javobgardir?
sobes.tech AI
AIdan javob
Protsesslar uchun umumiy xotira bo‘laklarini yaratish uchun javobgar mexanizm Shared Memory (ulashilgan xotira) deb ataladi. Unix/Linux kabi operatsion tizimlarda, bu tizim chaqiruvlari orqali amalga oshiriladi, masalan, shmget, shmat, shmdt va shmctl.
Ulashilgan xotira bir nechta protsessga bir xil xotira bo‘lakdan foydalanishga imkon beradi, bu esa ma'lumot almashishni boshqa IPC (Protsesslararo aloqa) usullariga qaraganda sezilarli darajada tezlashtiradi.
C tilida foydalanish misoli (soddalashtirilgan):
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
#include <string.h>
int main() {
key_t kalit = 1234; // noyob kalit
int shmid = shmget(kalit, 1024, 0666|IPC_CREAT); // segment yaratish
char *malumot = (char*) shmat(shmid, NULL, 0); // segmentga ulash
strcpy(malumot, "Ulashilgan xotiradan salom!");
printf("Ulashilgan xotiradagi ma'lumotlar: %s\n", malumot);
shmdt(malumot); // segmentdan ajralish
// shmctl(shmid, IPC_RMID, NULL); // kerak bo‘lsa segmentni o‘chirish
return 0;
}