Fordi disse semantikkene krever forfatter for ikke-bærbare monteringsinstruksjoner, vil de fleste brukere mest sannsynlig være bibliotekforfattere i stedet for vanlige applikasjonsutviklere. FUTEX er en enkelt systemanrop som utfører mange operasjoner. Det kan virke rart, til og med forvirrende, om ikke direkte. Det vil si at standard prosedyre for en enestående systemanrop: "IOCTL" -systemanropet inneholder betydelig mer operasjoner enn futex. For et annet tilfelle er det lite sannsynlig at programmerere oppdager fordi Glibc skjuler det, selv om det enkelt sokkelanropssystemet implementerer alle sokkelrelaterte funksjoner. Som et resultat, hvis tråder får tilgang til den i en enkelt prosess, kan den spesifiseres som en global variabel eller lagres i et delt minnesegment hvis tråder fra forskjellige prosesser bruker det. En tilstand oppdatert i brukerområde ved bruk av atomoperasjoner lagres i den delte variabelen. Det er ikke behov for et systemanrop når staten sier at det ikke er noen konflikt. Hvis tilstanden indikerer en strid, på den andre siden, blir det gjort en futex -systemanrop for å legge den samtaleoppgaven til å sove.
Eksempel for å forklare futex () systemanrop på C -språk
For å forstå futex () systemanrop på C -språk, har vi installert Ubuntu 20.04 Linux operativsystem. Lag en fil med tittelen “FC.C ”. Tittelen på filen kan endres, men utvidelsen vil forbli den samme. Så for det første, åpne skallet til den installerte Ubuntu 20.04 Linux operativsystem ved å finne det i “applikasjoner” eller sjekke “Ctrl+Alt+T” -tasten. Når du er åpnet, kjør den påførte instruksjonen i terminalen til den installerte Ubuntu 20.04 Linux operativsystem.
$ nano fc.cDu kan bekrefte den vellykkede utførelsen av filen bare hvis du får GNU Nano Editor på skjermen. Nå må du skrive koden som vises i vedlagte skjermbilde. Dette er et av de mest grunnleggende eksemplene på futex () systemanrop.
er en fil som inneholder erklæringer for forskjellige funksjoner og makroer som kreves for å motta inngang fra innganger og vise utgang på C -programmets utgangsvindu. Det er unødvendig å legge til “stdio. H ”fordi vi kan gi innspill til C -programmet ved å bruke et hvilket som helst annet program, for eksempel DOS, og lagre resultater. Overskriften gir og erklærer en rekke symbolske konstanter og typer, samt en rekke funksjoner. SysCall () er en liten bibliotekfunksjon som kaller systemanropet med den forespurte mengden argumenter og det gitte monteringsspråkgrensesnittet. Når du har forstått den ovennevnte koden, er du klar til å sjekke utdataene. Vi har installert en GCC -kompilator for sammenstilling av kode. GNU C -kompilatoren, eller GCC, er den mest berømte og omfattende brukte kompilatoren blant programmerere som bruker C som programmeringsspråk. GCC er en tilgjengelig kompilator som følger med alle Linux -distribusjoner gratis. Utfør nå den vedlagte kommandoen i terminalen til Ubuntu 20.04 Linux -system.
$ GCC FC.cUtgangen kan sees i det ovennevnte bildet.
Konklusjon
Denne artikkelen ga en kort introduksjon av futex () systemanrop på programmeringsspråk. Vi har et enkelt og kort eksempel på en futex () systemanrop. Implementering av de samme eksemplene og legge til små endringer kan hjelpe deg med å forstå FUTEX () Systemanrop på C -programmeringsspråk.