Ponieważ porównujesz wątki jądra z wątkami użytkownika [land], zakładam, że masz na myśli coś takiego.
Normalnym sposobem implementowania wątków jest obecnie zrobienie tego w jądrze, więc można je uznać za "normalne" wątki. Można to jednak zrobić w przestrzeni użytkownika, używając sygnałów takich jak SIGALRM, którego program obsługi zapisze bieżący stan procesu (rejestruje się w większości) i zmieni go na inny wcześniej zapisany. Wiele systemów operacyjnych używało tego jako sposobu implementowania wątków, zanim uzyskały właściwą obsługę wątków jądra. Mogą być szybsze, ponieważ nie musisz wchodzić w tryb jądra, ale w praktyce zanikają.
Istnieją również wątki współpracy z użytkownikami, w których jeden wątek działa, dopóki nie wywoła specjalnej funkcji (zwykle nazywanej wydajnością), która następnie przełącza się na inny wątek w podobny sposób, jak w przypadku SIGALRM powyżej. Zaletą jest to, że program jest w całkowitej kontroli, co może być przydatne, gdy masz problemy z czasem (na przykład gra). Nie musisz także dbać o bezpieczeństwo nici. Dużą wadą jest to, że tylko jeden wątek może działać na raz, a zatem ta metoda jest również niezbyt często teraz, gdy procesory mają wiele rdzeni.
Nici jądra są zaimplementowane w jądrze. Być może miałeś na myśli, jak z nich korzystać? Najczęstszym sposobem jest wywołanie pthread_create
.
Przeczytałeś to, zakładam? http://en.wikipedia.org/wiki/Thread_(computing) To powinno przynajmniej odpowiedzieć na niektóre z twoich pytań. – Bart
Istnieje również [ta poprzednia odpowiedź] (http://stackoverflow.com/a/8809791/777186) w podobnym kontekście. – jogojapan