***
Analogy:  You're on a highway with a posted speed of 100 km/h.  You want
to operate your car and your car only 25 km/h only on the 100 km/h
highway.
***

And for this happy privilege, you want to impose the attendant nuisance
(highway analogy), read overhead (o/s analogy), on all the other cars to
have to slow behind and pass around you.

Generally, a time slice is a time slice.  Regardless whether you get 1
sec of every 10 sec or 100 ms of every 1 s, you're going to execute your
instructions at a rate of 100% of the cpu within your time slice
allocation.

Now you can impose scheduler and threading overhead and discipline to
make your time slices very, very fine grained so that overall at a
system level it looks like 25% of a resource, but your rate of execution
within your context is going to be 100%.

That said and for the cited examples, the workable answer that I know of
is virtual machines.  Be it VMWare, XEN, solaris containers (zones),
freeBSD jails, qemu(*) or to a degree dragonflybsd (vkernel(*) --
"system-in-a-box" running as a userland process), each has a means to
say that VM(1) gets 25% of the CPU resources and the vm-engine by
whatever implement will effectively do so. And you will see that seti,
for example, takes 100% of its VM(1) resource but only 25% of machine as
a whole, less the overhead.  (*)Not used personally.

And, yes, we're aware of the opines herein and about re VM.

/S

-----Original Message-----
From: Andreas Kahari <[EMAIL PROTECTED]>
To: Alexander Schrijver <[EMAIL PROTECTED]>
Cc: [email protected]
Subject: Re: Limiting CPU to a process or process group?
Date: Mon, 14 Jan 2008 14:27:33 +0000

Reply via email to