Poiché queste semantiche richiedono istruzioni di assemblaggio non portabili, la maggior parte degli utenti sarà probabilmente autori di biblioteche piuttosto che sviluppatori di applicazioni ordinarie. Futex è una chiamata di un singolo sistema che esegue molte operazioni. Può sembrare strano, persino sconcertante, se non decisamente. Cioè, tuttavia, procedura standard per una chiamata di sistema unica nel suo genere: la chiamata di sistema "IOCTL" contiene notevolmente più operazioni di Futex. Per un'altra istanza, è improbabile che i programmatori scoponino perché GLIBC lo nasconde, sebbene il sistema di chiamate a presa singola implementa tutte le funzioni correlate all'ita. Di conseguenza, se i thread lo accedono in un singolo processo, può essere specificato come variabile globale o memorizzata in un segmento di memoria condiviso se i thread da vari processi lo utilizzano. Uno stato aggiornato nello spazio utenti utilizzando le operazioni atomiche è archiviato nella variabile condivisa. Non è necessario una chiamata di sistema quando lo stato dice che non vi è alcun conflitto. Se la condizione indica una contesa, dall'altra parte, viene effettuata una chiamata di sistema Futex per far dormire l'attività di chiamata.
Esempio per spiegare il sistema di sistema Futex () in lingua C
Per capire la chiamata di sistema Futex () in lingua C, abbiamo installato Ubuntu 20.04 Sistema operativo Linux. Crea un file intitolato "FC.C". Il titolo del file può essere modificato, ma l'estensione rimarrà la stessa. Quindi in primo luogo, apri la shell dell'Ubuntu 20 installato.04 Sistema operativo Linux trovandolo nella chiave "Applicazioni" o controllando il tasto "Ctrl+Alt+T". Una volta aperto, eseguire l'istruzione fissa nel terminale di Ubuntu 20 installato.04 Sistema operativo Linux.
$ nano fc.CPuoi confermare la riuscita esecuzione del file solo se si ottiene l'editor GNU Nano sullo schermo. Ora devi scrivere il codice visualizzato nello screenshot allegato. Questo è uno degli esempi più elementari della chiamata di sistema Futex ().
è un file contenente dichiarazioni per varie funzioni e macro richieste per ricevere input dagli input e visualizzare l'output sulla finestra di output del programma C. Non è necessario aggiungere "stdio. h "perché possiamo fornire input al programma C utilizzando qualsiasi altro programma, come DOS, e i risultati di archiviazione. L'intestazione fornisce e dichiara una varietà di costanti e tipi simboliche, nonché una varietà di funzioni. Syscall () è una piccola funzione di libreria che chiama la chiamata di sistema con la quantità richiesta di argomenti e l'interfaccia del linguaggio dell'assembly. Una volta compreso il codice sopra visualizzato, sei pronto a controllare l'output. Abbiamo installato un compilatore GCC per la compilazione del codice. Il compilatore GNU C, o GCC, è il compilatore più famoso e ampiamente usato tra i programmatori che usano C come linguaggio di programmazione. GCC è un compilatore accessibile fornito con tutte le distribuzioni Linux gratuitamente. Ora esegui il comando aggiunto nel terminale di Ubuntu 20.04 Sistema Linux.
$ GCC FC.CL'output può essere visto nell'immagine sopra attaccata.
Conclusione
Questo articolo ha fornito una breve introduzione del sistema di sistema Futex () in linguaggio di programmazione C. Abbiamo un esempio semplice e breve di una chiamata di sistema futex (). L'implementazione degli stessi esempi e l'aggiunta di piccole modifiche può aiutarti a capire la chiamata di sistema Futex () in linguaggio di programmazione C.