Czy wszystkie wywołania systemowe są blokowane?


13

Czytałem artykuł opisujący przełączanie między przestrzenią użytkownika a przestrzenią jądra, która ma miejsce po wywołaniu systemowym. Artykuł mówi

Aplikacja oczekuje na zakończenie wywołania systemowego przed wznowieniem wykonywania w trybie użytkownika.

Do tej pory zakładałem, że niektóre wywołania systemowe są blocking, podczas gdy inne są non-blocking. Z powyższym komentarzem jestem teraz zmieszany. Czy to oznacza, że ​​wszystkie wywołania systemowe są blokowane, czy też źle zrozumiałem koncepcję?


@Ankit Wyjaśnij, dlaczego cofnąłeś edycję. Pamiętaj, że edytowanie w celu ulepszenia szczegółów postu jest standardową polityką w SE i nie implikuje ukrytej krytyki.
Raphael

@Raphael Sorry bracie! Po prostu bawiłem się i przez pomyłkę odsunąłem rollback, a potem nie mogłem znaleźć poprzedniej wersji. W rzeczywistości bardzo podobała mi się twoja edycja. : P
Ankit

@Raphael Mam to z powrotem. Właściwie zostałem oszukany przez system weryfikacji (nie rozpoznałem, że „artykuł” to link). Dzięki za zmiany.
Ankit

@Ankit: Cieszę się, że mogłem pomóc!
Raphael

Odpowiedzi:


15

Wydaje się, że przeciążasz termin „blokowanie”.

Po każdym przełączeniu kontekstu na jądro musisz poczekać, aż przełączy się z powrotem na tryb użytkownika, zanim aplikacja będzie mogła kontynuować. To nie jest zwykle tak zwane „blokowanie”.

W obecnym projekcie jądra wywołania blokujące to wywołania, w których jądro zwraca tylko wtedy, gdy żądanie jest kompletne (lub wystąpi błąd). Połączenia te zwykle zajmują więcej czasu i zwykle prowadzą do zaplanowania procesu. Na przykład wiele połączeń We / Wy jest blokowanych.

Istnieje wywołanie systemowe, które zapewnia asynchroniczne operacje we / wy i nie blokuje. Zauważ, że nadal występuje tutaj zmiana kontekstu, tylko aplikacja musi zadbać o asynchroniczny charakter połączenia.

Artykuł wydaje się mieć na celu wyeliminowanie tego przełączania kontekstu tam iz powrotem (bez wyjątków wywołania systemowe) i próbę uczynienia wszystkich wywołań asynchronicznymi.


To właściwie praca naukowa. Oto adres URL: eecg.toronto.edu/~livio/papers/flexsc-osdi10.pdf
Ankit

2
@Ankit: Edytuj pytanie i dołącz je tam.
Aryabhata,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.