InterruptAttachEvent() will tell kernel to queue and event (usually
pulse or signal) instead of calling interrupt handler function. You
receive that event using MsgReceive().
Oh, I see. I just can’t figure out how does it work with shared
interrupt lines.
Advantage is, there is no interrupt handler anymore, you only deal with
regular threads. They don’t run in kernel mode, which means better
protection. And they are schedulable according to OS priorities rather
than ‘hardware priorities’ of interrupt handlers.
That seems to be safe enough. But it delays interrupt response, doesn’t it?
Especially if your waiting-for-interrupt thread is not of the highest
priority.
Disadvantage is, danger of overloading kernel event queue. If you have a
runaway process at higher priority, queue won’t be drained, your devices
stop working and eventually you get into ‘Out of interrupt events’ mode.
But the microkernel should automatically unmask that interrupt whenever
it sends an event to the thread (because it doesn’t know how to clear it).
If the thread goes astray, it probably won’t unmask the interrupt.
The device surely will stop working (so will some other which share
the same interrupt) but at least OS won’t crash.
Wishful thinking. You can’t tell which ones are spurious. The
non-spurious ones become ‘spurious’ if you stop draining the queue.
Besides, you can’t block them even if you could tell because then your
hardware stops working.
Again, at least OS won’t crash.
Actually you don’t even have to understand OS too much >
I’ve seen horrible things done by people who think they don’t have to
understand the OS when writing drivers.
I didn’t say that understanding OS doesn’t help
Seriously, QNX is great on explaining QNX architecture.
SPARC Station 2 is like your grandma’s 20Mhz 386-SX or something of that
sort. I don’t think 1ms is bad for that hardware.
What about Ultra 1-167? They give 0.15ms for that one.
It sure is ! During the QNX-Russia-2002 Momentics IDE glitched a lot,
so we didn’t have a chance to see multithreaded debugging and such
things.
BTW, why on earth they decided to use java for Momentics IDE?Because that was their only chance to get something workable sooner than
the return of the Christ.
Presumably working
PE is not really more expensive than development seat of Solaris when
you use Sun’s development tools (but of course, PE still uses GNU
toolchain, unlike Sun’s compiler which is much better than GCC).It would help if you told what your project is. Since you talk about
DiskOnChip you sound like it is something embedded and perhaps resource
constrained. Solaris is not really goot fit for such hardware.
No, it’s not too resource constrained. DiskOnChips are quite large.
Mine is 32M, there are bigger.
In the current project (it’s in QNX4.25) i have single boarded
computer with P-III 500MHz and 128M RAM
We don’t use HDD because the system is supposed to be reliable
and robust.