comp.lang.ada
 help / color / mirror / Atom feed
From: "Brian Catlin" <briancatlin@mindspring.com>
Subject: Re: Ada OS Kernel features
Date: Wed, 5 Sep 2001 14:10:34 -0700
Date: 2001-09-05T21:10:37+00:00	[thread overview]
Message-ID: <9n64cd$7mo$1@slb0.atl.mindspring.net> (raw)
In-Reply-To: VLvl7.5404$4z.21201@www.newsranger.com

"Ted Dennison" <dennison@telepath.com> wrote in message
news:VLvl7.5404$4z.21201@www.newsranger.com...
> In article <9n5n33$ke5$1@nntp9.atl.mindspring.net>, Brian Catlin says...
> >
> >An isochronously scheduled task means that the task will get a fixed amount
of
> >CPU time over time (think of it as getting a fixed percentage of the CPU over
> >time).  Supporting isochronous tasks is a requirement if you want to be able
to
> >handle streaming multimedia, such as audio or video.  A simple way to
implement
>
> Ahhh. That explains it. The multimedia folks do seem to like that term. They
> used it in pretty much the same sense in the FireWire spec (reserving a % of
the
> bus bandwidth).
>
> However, I don't see anything in there that really speaks about jitter.
Perhaps
> jitter reduction (making sure the task starts regularly at the exact same time
> every cycle) is just an implementation detail they don't like to talk about
> explicitly?
>
> The only easy way I've found to prevent jitter is to schedule a task to be the
> first one that runs after the clock tick. Clearly the amount of tasks one can
> use this solution on is limited by the product of your clock period and the
task
> frequency (eg: 240Hz clock w/ 60Hz threads gives you at most 4 possible
> jitter-free tasks).

This is the point at which Rate Monotonic Analysis (RMA) enters the picture.
The behavior of real time (and isochronous) tasks need to be well understood in
order to schedule them effectively.  Usually, RMA is the provence of real-time
systems, but to effectively support a _few_ isochronous and real-time tasks in a
general purpose operating system, we should build some tools (performance
counters and such) for measuring the behavior of these tasks to help the author
better optimize the code (and overall system performance).

> However, I heartily agree that the scheduling algorithm would need to be
> different for RT and non-RT tasks.
>
> >Yes, it makes them more difficult to debug, but placing the drivers in the
> >kernel has several benefits:
> >1. Processing an I/O request requires access to privileged system routines
and
> ..
> >2. Putting drivers in user-mode means increasing the number of transitions
> ..
> >3. A driver will need access to the requesting process' address space, but if
> ..
>
> Interesting. But I'm pretty sure that Mach puts *all* device drivers into user
> space, as well as large parts of the kernel.

Well, I wouldn't hold Mach up as the end-all or be-all of operating system
kernels; its performance is nothing to brag about.  It certainly has many
interesting concepts, but its overhead is too high for my taste (I haven't
looked at it in several years, so it may have been cleaned up; I'll have to go
check it out again).  As I mentioned in a previous post, by implementing drivers
as essentially applications in their own processes, the system will incur a huge
amount of overhead invalidating the translation lookaside buffer and the
accompanying multiple mode transitions for process context switches.

 -Brian







  reply	other threads:[~2001-09-05 21:10 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-09-05  5:58 Ada OS Kernel features Brian Catlin
2001-09-05 10:15 ` Jacob Sparre Andersen
2001-09-05 11:16 ` Larry Kilgallen
2001-09-05 17:06   ` Brian Catlin
2001-09-06 14:35     ` Marin David Condic
2001-09-07  9:31       ` Tarjei T. Jensen
2001-09-05 17:55   ` David Starner
2001-09-05 18:42     ` Darren New
2001-09-12  6:47   ` Mats Karlssohn
2001-09-05 14:04 ` Ted Dennison
2001-09-05 17:23   ` Brian Catlin
2001-09-05 20:17     ` Ted Dennison
2001-09-05 21:10       ` Brian Catlin [this message]
2001-09-06  6:45         ` Tarjei T. Jensen
2001-09-06  6:56           ` Brian Catlin
2001-09-06 14:05             ` Ted Dennison
2001-09-05 16:02 ` Alfred Hilscher
2001-09-05 16:19   ` Jacob Sparre Andersen
2001-09-05 17:58     ` Brian Catlin
2001-09-05 17:44   ` Brian Catlin
2001-09-05 17:58     ` Darren New
2001-09-05 18:51     ` Larry Kilgallen
2001-09-05 19:25     ` chris.danx
2001-09-05 20:07       ` Darren New
2001-09-05 20:14       ` Larry Kilgallen
2001-09-06 13:45         ` Alfred Hilscher
2001-09-06 18:06         ` chris.danx
2001-09-06 19:41           ` Larry Kilgallen
2001-09-06 22:32             ` chris.danx
2001-09-07 11:04               ` Larry Kilgallen
2001-09-07  8:04           ` Dmitry Kazakov
2001-09-07  8:18             ` Mattias Svensson
2001-09-07 12:40               ` Dmitry Kazakov
2001-09-12  7:12               ` Mats Karlssohn
2001-09-05 20:18       ` Brian Catlin
2001-09-06  6:48         ` Ole-Hjalmar Kristensen
2001-09-06  6:59           ` Brian Catlin
2001-09-10  7:32             ` Ole-Hjalmar Kristensen
2001-09-06 13:42     ` Alfred Hilscher
2001-09-07  8:13       ` Dmitry Kazakov
2001-09-08  3:55     ` Kenneth Almquist
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox