I'm going through "Design and Implementation of the FreeBSD operating system" (McKusick) right now, and I've got some questions...
1) The book refers to software traps... (page 51 para 2): " Software initiated traps are used by the syste mto force the scheduling of an event, such as process rescheduling or network processing, as soon as possible. Software initiated traps are implemented by setting a flag that is checked whenever a process is preparing to exit from the kernel. If the flag is set, the software interrupt code is run instead of exiting from the kernel." Unfortunately, the book doesn't give any examples of how this is implemented in enough detail for me to understand. The only example it seems to really give of a software interrupt is the process that delivers the incoming packets to their destination processes. (??) I was trying to learn more about how the trap function is implemented, so I read up on hardware traps in my IA-32 system manual (the one Intel ships out for free if you ask them for it). That manual says that there is basically a set of INT calls you can make that are in an IDT table. Some of these are hard wired, like 0-19, if I recall. Then 33-255 are all software definable. I am guessing that these high priority software interrupt routines are stored at locations pointed to by elements 33-255 in the IDT table. Is that correct? Or, do these software interrupt processes have no need to trap into the routines in the IDT? I hope this question makes sense...I'm just trying to get a more lucid understanding of how "software interrupts" or "software traps" as they're referred to in this text, are implemented. - Jamie The Moon is Waning Crescent (12% of Full) _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"