7.e.Q
05-10-2005, 10:35
Hallo mal wieder,
ich suche Informationen zur Entwicklung von Modulen für den Standard 2.6er Linux Kernel. Ich habe schon ein sehr interessantes Buch "Linux-Treiber entwickeln" von J. Quade und E.M. Kunst, welches auch schon vieles abdeckt, aber mir fehlen noch so ein paar Details. Beispiel:
wenn ein Programm den System-Call select() aufruft, was dann genau passiert. Was genau poll_wait() tut, was der aufrufende Prozess tut, was der Kernel tut etc. Vielleicht kann ja auch jemand schonmal speziell diese Frage beantworten. Ich hab das bisher so verstanden, daß der Prozess, der select() aufruft, vom abgefragten Treiber in der Funktion dev_poll() durch poll_wait() schlafen gelegt wird. Ich versteh das so, daß alle User Prozesse, die durch poll_wait() schlafen gelegt wurden, blockieren, bis der Treiber sie mit wake_up_interruptible() wieder aufweckt. Oder wie? Was ist der Unterschied zwischen poll_wait() und wait_event_interruptible()?
Viele Fragen, die vielleicht schon irgendwo mal beantwortet wurden. Für Hilfe wäre ich sehr dankbar!
Gruß,
Hendrik
ich suche Informationen zur Entwicklung von Modulen für den Standard 2.6er Linux Kernel. Ich habe schon ein sehr interessantes Buch "Linux-Treiber entwickeln" von J. Quade und E.M. Kunst, welches auch schon vieles abdeckt, aber mir fehlen noch so ein paar Details. Beispiel:
wenn ein Programm den System-Call select() aufruft, was dann genau passiert. Was genau poll_wait() tut, was der aufrufende Prozess tut, was der Kernel tut etc. Vielleicht kann ja auch jemand schonmal speziell diese Frage beantworten. Ich hab das bisher so verstanden, daß der Prozess, der select() aufruft, vom abgefragten Treiber in der Funktion dev_poll() durch poll_wait() schlafen gelegt wird. Ich versteh das so, daß alle User Prozesse, die durch poll_wait() schlafen gelegt wurden, blockieren, bis der Treiber sie mit wake_up_interruptible() wieder aufweckt. Oder wie? Was ist der Unterschied zwischen poll_wait() und wait_event_interruptible()?
Viele Fragen, die vielleicht schon irgendwo mal beantwortet wurden. Für Hilfe wäre ich sehr dankbar!
Gruß,
Hendrik