Ponieważ semantyka te wymagają tworzenia instrukcji montażowych niezmiennych, większość użytkowników najprawdopodobniej będzie autorów biblioteki, a nie zwykłych programistów aplikacji. FUTEX to pojedyncze wywołanie systemowe, które wykonuje wiele operacji. To może wydawać się dziwne, a nawet kłopotliwe, jeśli nie wręcz. To znaczy jednak standardowa procedura jedynego w swoim rodzaju połączenia systemowego: połączenie systemowe „IOCTL” zawiera znacznie więcej operacji niż Futex. W innym przypadku programiści raczej nie odkryją, ponieważ GLIBC go ukrywa, chociaż system wywołania jednego gniazda implementuje wszystkie funkcje związane z gniazdem. W rezultacie, jeśli wątki mają dostęp do niego w jednym procesie, można go określić jako zmienną globalną lub przechowywane w segmencie pamięci współdzielonej. Stan zaktualizowany w przestrzeni użytkowników za pomocą operacji atomowych jest przechowywana w zmiennej udostępnionej. Nie ma potrzeby wywołania systemu, gdy państwo mówi, że nie ma konfliktu. Jeśli warunek wskazuje na rywaliza.
Przykład wyjaśnienia wywołania systemu futex () w języku c
Aby zrozumieć połączenie systemowe FUTEX () w języku C, zainstalowaliśmy Ubuntu 20.04 system operacyjny Linux. Utwórz plik zatytułowany „FC.C". Tytuł pliku można zmodyfikować, ale rozszerzenie pozostanie takie same. Najpierw otwórz powłokę zainstalowanego Ubuntu 20.04 System operacyjny Linux, znajdując go w „Aplikacjach” lub sprawdzając klucz „Ctrl+Alt+T”. Po otwarciu uruchom umieszczoną instrukcję w terminalu zainstalowanego Ubuntu 20.04 system operacyjny Linux.
$ nano fc.CMożesz potwierdzić pomyślne wykonanie pliku tylko wtedy, gdy otrzymasz edytor GNU Nano na ekranie. Teraz musisz napisać kod wyświetlany na załączonym zrzucie ekranu. To jeden z najbardziej podstawowych przykładów połączenia systemowego Futex ().
to plik zawierający deklaracje dla różnych funkcji i makr, które są wymagane do odbierania danych wejściowych i wyświetlania wyświetlania w oknie wyjściowym programu C. Dodanie „Stdio nie jest konieczne. h ”, ponieważ możemy dostarczyć dane wejściowe do programu C przy użyciu dowolnego innego programu, takiego jak DOS, i przechowywać wyniki. Nagłówek zapewnia i deklaruje różnorodne stałe i typy, a także różnorodne funkcje. SYSCALL () to niewielka funkcja biblioteczna, która wywołuje wywołanie systemowe z żądaną ilością argumentów i danym interfejsem języka asemblera. Po zrozumieniu powyższego kodu, możesz sprawdzić wyjście. Zainstalowaliśmy kompilator GCC do kompilacji kodu. Kompilator GNU C, czyli GCC, jest najbardziej znanym i szeroko stosowanym kompilatorem wśród programistów, którzy używają C jako języka programowania. GCC to dostępny kompilator, który jest dostarczany ze wszystkimi dystrybucjami Linux za darmo. Teraz wykonaj dołączone polecenie w terminalu Ubuntu 20.04 System Linux.
$ gcc fc.CDane wyjściowe można zobaczyć na powyższym obrazie.
Wniosek
W tym artykule zawiera krótkie wprowadzenie połączenia systemowego FUTEX () w języku programowania C. Mamy prosty i krótki przykład połączenia systemowego Futex (). Wdrożenie tych samych przykładów i dodanie niewielkich zmian może pomóc Ci zrozumieć połączenie systemowe FUTEX () w języku programowania C.