?
net schrieb:
Linux-Hobby-Entwickler schrieb:
Das setzt aber voraus, dass nach dem Interrupt der selbe Prozess weiter ausgeführt werden soll. Ich nutze aber auch Interrupts für das scheduling. Wenn ich aus meiner Prozesstabelle den nächsten Prozess zum weiterführen auswähle, muss ich dessen Kontext wiederherstellen. Das ist ebenfalls mit ANSI C nicht möglich.
naja, wenn man einen scheduler bastelt, der mangels mehrerer cpus und per timer-interrupt multithreading simuliert musss man schon tricksen, klar, mit ansi-c kommt man da nicht besonders weit.
Darauf wollte ich hinaus. Um bestimmte Features zu erreichen braucht man Assembler. Was im Prinzip auch nicht weiter schlimm ist, da es zum einen prozentual sehr sehr wenig ist und zum anderen diesen prima mit inline assemlby einbetten kann.
net schrieb:
aber es gibt ja auch betriebssysteme, die ohne solche tricks auskommen, z.b. diese:
http://www.tinyos.net/
http://home.eunet.no/~jen/nenesos.html
nesos is completely processor independent. It can be used with any ANSI C compiler. There is no need for assembly files or architecture dependent features
Danke! Ich wusste nicht, dass man ein minimal OS mit reinem ANSI C schreiben kann. Werde ich mir auf jeden Fall mal anschauen.