Re: timer interrupts & scheduling

John Alvord (jalvo@cloud9.net)
Mon, 29 Mar 1999 07:26:11 GMT


On Sun, 28 Mar 1999 22:48:26 -0600 (CST), linas@linas.org wrote:

>
>Hi,
>
>Am porting the Linux kernel to a new architecture (the 370 instruction set).
>I noticed that the timer interrupt does very little. The question is this:
>how does scheduling work if/when there are no other interrupts occuring?
>e.g. have two numeric processes running, neither is making system calls,
>neither is swapping. etc.
>
>The esa/390's are mainframes; there are no serial ports, no video or video interrupts,
>no regular i/o or bus interrupts; nothing else is ticking in any sort of
>quasi-periodic manner. What should I do, make the timer interrupt do a schedule
>every ten ticks or something?

An ESA/390 does have timers. There is a TOD timer and a clock
comparator... when equal an external interrupt is generated. Typically
you would do a STCK, and something like 10ms to the result, set the
clock comparator to that value, and then go do other things. When the
value is equal an external interrupt will be presented.

I suggest you invest in an ESA/390 principles of operation book.

That process works just fine in a VM/ESA environment, which most
operating system development takes place in.

If you are "faking it" by running an MVS system task or batch job,
then you would use an STIMER of some flavor and an exit that gets
driven when the time expires.

There is no memory mapped I/O. Typically you set up a channel program
(series of channel command words) and then start them. The result is
one or more I/O interrupts later on.

All pretty straightforward. There was a project a few years ago which
ran AIX natively and it supposedly ran pretty good.

John Alvord

John Alvord
Music, Management, Poetry and more...
http://www.candlelist.org/kuilema
Cheap CDs @ http://www.cruzio.com/~billpeet/MusicByCandlelight

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/