c,Comunic,:
Un proces deta?eazг o regiune de memorie comunг din spaюiul sгu virtual de adrese cu ajutorul apelului sistem shmdt. Sintaxa apelului este:
-shmdt(addr)
unde addr reprezintг adresa virtualг оntoarsг de un apel shmat anterior. De?i ar pгrea mai logic ca apelul shmdt sг primeascг drept parametru un identificator, se оntrebuinюeazг totu?i adresa virtualг a regiunii de memorie comunг pentru ca procesul sг poatг face distincюie оntre mai multe instanюe ale unei regiuni de memorie comunг, care sunt ata?ate la spaюiul virtual de adrese al procesului, ?i pentru cг identificatorul ar putea sг fi fost ?ters. Nucleul cautг regiunea procesului ata?atг la adresa virtualг indicatг ?i o deta?eazг din spaюiul de adrese al procesului, utilizвnd algoritmul detachreg. Deoarece tabelele cu regiuni de memorie nu conюin pointeri оnapoi cгtre tabela cu regiuni de memorie comune (Shared Memory Table), nucleul cautг оn aceastг tabelг intrarea corespunzгtoare regiunii ?i corecteazг valoarea din cвmpul care conюine momentul ultimei deta?гri a regiunii.
Pentru examinarea stгrii ?i stabilirea valorilor parametrilor unei regiuni de memorie comunг, un proces utilizeazг apelul sistem shmctl, care are urmгtoarea sintaxг shmctl(id, cmd, shmstatbuf)
unde:
-id identificг intrarea corespunzгtoare din tabela regiunilor de memorie comune;
-cmd precizeazг tipul operaюiunii;
-shmstatbuf reprezintг adresa unei structuri de date utilizator care conюine informaюiile de stare a intrгrii оn tabela regiunilor de memorie comune, atunci cвnd se face interogarea asupra stгrii sau stabilirea valorilor de stare.