Name: Anonymous 2006-09-02 2:36
This is all hypothetical. I just want to know what you all think.
Assume a dual-core or other multi-cpu environment.
In standard operating systems, when the user program wants a system service from the OS, it must make a system call that results in expensive context switching. Same thing for interrupts, they also result in context switching.
In a multiple-CPU(core) environment, what if we dedicated one cpu to running OS and even let's say another cpu for processing IRQs. That's it. All tasks on CPU 0 are kernel tasks, all tasks on CPU 1 are IRQ handling taska, and user programs are relegated to CPU 2+.
Wouldn't this completely eliminate any latency of system calls and IRQs? Has this already been done? Would performance gains be better this way or just having all tasks distributed equally among all available CPUs?
Assume a dual-core or other multi-cpu environment.
In standard operating systems, when the user program wants a system service from the OS, it must make a system call that results in expensive context switching. Same thing for interrupts, they also result in context switching.
In a multiple-CPU(core) environment, what if we dedicated one cpu to running OS and even let's say another cpu for processing IRQs. That's it. All tasks on CPU 0 are kernel tasks, all tasks on CPU 1 are IRQ handling taska, and user programs are relegated to CPU 2+.
Wouldn't this completely eliminate any latency of system calls and IRQs? Has this already been done? Would performance gains be better this way or just having all tasks distributed equally among all available CPUs?