bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: EQP


From: Jason Cozens
Subject: Re: EQP
Date: Mon, 03 Nov 2008 21:46:31 +0000
User-agent: Thunderbird 2.0.0.17 (X11/20080925)

Hi Neal,

I haven't ignored your last post, I've been putting some time into
some research and reading around. I'm in the process of composing a
reply.

>> I see multiprogramming as bad as any real sense of
>> time is lost and all the problems of locking and synchronization arise.
> 
> How do you deal with the following scenario:
> 
> Consider a file server: it must handle multiple simultaneous
> requests; it has shared meta-data needs to be updated; and, that data
> may need to be paged in.
> 

I think I overstated the point about multiprogramming, locking and
synchronization. The difference that I'm trying to achieve is that the
eager queue is implemented in hardware by finite state machines called
QCells. These are fairly simple and run independently of their clients
(processors in this case).

When a processor has been scheduled it would run independently of the
EQP scheduling, so in a naive way each processor would run a single
process with no time-slicing. Once a processor is working it would not
be interrupted by the scheduler, this was the reason for assuming
there was a large number of processors.

Where a new process is created in normal operating systems this would
end up on its own processor. Processors would be returned to the pool
when a process ended.

EQP is just used for managing an EQ data structure and hence an Eager
Queue can be set up. The intention is obviously to use EQP in resource
scheduling.

One of the motivations in the design of what I'm doing was a paragraph
in your paper "A Critique of the GNU Hurd Multi-server Operating
System"

        5.3    Resource Management

        We have noted that although virtualized resources are con-
        venient, they are also often problematic due to inefficient
        resource scheduling and their ineffectiveness when trying
        to realize real-time properties. This former problem is not
        unique to multi-server systems but particularly pressing as
        it appears the techniques used by monolithic kernels to com-
        pensate for lack of local knowledge, namely, introspection of
        high-level functionality to help predict resource usage pat-
        terns, cannot be used by a microkernel where such func-
        tionality is implemented in user-space. We contend that
        an interface is needed to allow unprivileged programs an
        increased ability to influence resource scheduling both re-
        garding distribution and multiplexing.

In this respect the intention is that the information in an eager
queue can be interrogated by the processors (processes) and
processes can affect the state of a system through an eager queue.

There will still be issues such as you mention for example with
file servers etc. Raising these issues is good as I'm having to
start filling in many details I've been sidelining.

I'm not sure of the exact implementation of what I'm doing at
the moment.

I have a very simple working example in Erlang using
UDP multicasts. Erlang can link into c so it would be good
to get some examples linking into the Hurd translators,

As I said above I will be replying to your previous email.
Thanks for all the feedback so far.

Jason.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]