00:04:31 Andreas Grapentin: Die Idee ist nicht von uns … :) 00:04:36 Stud_01: Wann werden die Zugänge für die Uni-Potsdam Studenten erstellt und mitgeteilt? 00:04:48 Andreas Grapentin: Suchen Sie mal nach Christian Spannagel, fall sie das Prinzip interessiert 00:06:34 Stud_02: Wir belegen den Kurs als Vertiefungsmodul Informatik (Wirtschaftsinformatik) 00:10:40 Stud_03: Das mit dem Prozess wäre Aufgabe 6, 7 sind Subsysteme :) 00:24:57 Stud_04: war ok 00:33:05 Felix Gohla: Local Procedure Call = LPC, falls Euch die Abkürzung untergekommen ist. 00:34:49 Andreas Polze: 4. Beschreiben Sie, was ein Interrupt ist, und wie das System mit ankommenden Interrupts umgeht. Welche Rolle spielen Interrupts in modernen Computer- systemen? 00:53:22 Stud_05: Wofür steht IRQL nochmal? 00:53:30 Stud_05: danke :) 00:53:55 Stud_04: Interrupt Request Level 00:54:07 Andreas Grapentin: Stud_06, werfen Sie Ihre Frage gerne hier in den Chat. 00:55:40 Stud_05: Macht die Harvard-Architektur nicht dasselbe? Also Fetch-Decode-Execute? 00:56:07 Stud_06: Er wurde gesagt, Hardware Interrupts sind wichtig zum Wechseln zwischen User und Kernel. Der Wechsel kann komplett ohne Interrupts implementiert werden, oder? Also Syscalls ohne Interrupts. 00:56:49 Stud_05: Setzt das dann nicht cooperatives Multitasking voraus? 00:56:51 Andreas Grapentin: Der Syscall selbst ist auch ein Interrupt. Auf x86 gab es dafür die “int 2E” Instruktion, mittlerweile heißen die auf x86_64 “sysenter” oder "syscall" 00:57:21 Andreas Grapentin: dadurch dass die Interrupts deaktiviert werden, wird das multitasking kurzzeitig kooperativ 00:57:42 Andreas Grapentin: für einige wenige Instruktionen. Denn der Scheduling timer ist auch ein Interrupt. 00:58:17 Stud_05: Warum halt es den an? Warum nicht einfach abarbeiten und das niedrigere Interrupt weiter ausführen? (IRQL less or equal) 00:58:51 Andreas Grapentin: damit es keine interrupt Zyklen geben kann, unter anderem 00:59:19 Andreas Grapentin: und weil interrupts mit hohem IRQL wichtig sind, und nicht von weniger wichtigen Aktivitäten unterbrochen werden sollen 01:00:06 Stud_05: Ich bin nur etwas verwirrt, auf arm cortex CPUs gibt es ja den nested vector interrupt handler, der sich genau auf soetwas spezialisiert 01:00:18 Stud_06: Aus Wikipedia: "For many RISC processors this (interrupt) is the only technique provided, but CISC architectures such as x86 support additional techniques. One example is SYSCALL/SYSRET, SYSENTER/SYSEXIT (the two mechanisms were independently created by AMD and Intel, respectively, but in essence do the same thing). These are "fast" control transfer instructions that are designed to quickly transfer control to the OS for a system call without the overhead of an interrupt" 01:02:13 Stud_05: Also macht Windows bei geschatelten Interrupts einfach nicht mit, weil es nicht will? Oder kann die Hardware das einfach nicht? 01:02:32 Stud_05: Also x86_64 01:03:13 Stud_03: Auch wenn die zusätzlichen Interrupts höhere Priorität hätten? 01:04:25 Stud_05: also sollten Hardware-Interrupts am Besten alle das gleiche IRQL besitzen? Sonst könnte das ja die CPU crashen 01:16:43 Stud_03: Also liegt bei einem SYSCALL / SYSENTER auch an der CPU ein de-facto Interrupt an? (Interrupt Leitungen) 01:18:11 Stud_06: zu 7. hätte ich gerne eine Erklärung 01:18:14 Stud_07: Wenn ein Gerät ein Interrupt auf die entsprechende Leitung des Prozessors anlegt: Liegt dieses Signal dann solange an, bis der Prozessor sich zurückmeldet und sagt "Ich habe das Interrupt erhalten"? 01:18:54 Andreas Grapentin: Stud_07, ja, das ist Aufgabe der ISR. Ist aber auch ein bisschen vom Gerät abhängig. 01:21:07 Stud_03: Danke :) 01:25:25 Stud_05: Letzte Frage zu Interrupts: Wenn ein Interrupt eines Gerätetreibers ausgeführt wird und dann ein Interrupt eines Geräts angefragt wird, dann ist doch das IRQL des Geräte-Interrupts höher als das des Treiber-Interrupts. Wie vermeidet der Treiber also, dass "IRQL not less or equal" ausgelöst wird? 01:27:39 Andreas Grapentin: IRQL not less or equal läuft etwas anders als vorhin erklärt. Das tritt auf, wenn ein nicht-maskierter Interrupt auftritt, der feststellt, dass das IRQL der CPU not less or equal zu seinem eigenen IRQL ist. 01:27:54 Andreas Grapentin: z.B. Seitenzugriffsfehler, also falsche Speicherzugriffe können nicht maskiert werden. 01:28:07 Andreas Grapentin: wenn so ein Fehler auftritt, dann kann er nicht behandelt werden und das System hält an. 01:28:33 Stud_05: achso, danke :)