Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Darwin disk I/O - better interactive response



At 1:29 PM -0500 1/23/01, Chuck Swiger wrote:

"Some of us are not interested in personal computers. I have no
interest in
a machine unless it's locked in a rack at a colo facility and I have
to ssh
into it."

Even if I held that position, it would be wrong of me to assume that
everyone else uses computers the same way I do. If I recognize that
other
people want to use a Mac in many different ways, than whatever
changes or
suggestions I might make would be more useful to a broad range of
people.

[ ... ]
>> Certain aspects of Darwin-- the preemptive multitasking, good SMP
and
>> thread support, the Mach VM system, userland page selection
(potentially,
>> anyway), non-blocking I/O make it possible to develop user
interfaces
>> which have great "interactive" feel.
>>
>> However, the Finder/Workspace is not a part of Darwin; I assume it
is
>> off-topic for this list.
>
> Is designing and building a replacement Finder/Workspace (enhancing
Gnome,
> KDE or something) for Darwin a topic for this list?

It would be. Regrettably, your position seems to have more to do
with
ideology than with writing code.

Stop! Darwin is a floor wax and a dessert topping. Heh heh heh heh
I could imagine a priority level above which a process's I/O gets
preemptively-scheduled and below which a process's I/O is thrown in with
the rest of the cattle as in traditional unix. You want to use it as a
server? Fine. Never let processes venture up into the preemptive
range. You want to use it as a personal computer? Fine. Have your
highly-interactive software operate up in the preemptive range. You want
to use it for both? Fine. The solution is obvious.

>>> I further claim that the above goal requires that disk I/O
scheduling be
>>> prioritized and preemptive, just as processor scheduling is, even
more
>>> importantly because of the vastly slower performance of disk vs.
cpu.
>>
>> There isn't a simple correlation between system responsiveness and
your
>> notion of prioritizing disk I/O.

Wanna bet? Haven't you ever sat there while the mouse click you just
gave did absolutely nothing for a long time while you heard the disk
chugging away on those copies you started? Or on paging?

>
> This issue is exactly why there maybe some need to modify the
Darwin kernel
> to better support the higher level GUI/HI...

Not likely. The design of Darwin is optimized towards maximizing
overall
throughput rather than prioritizing system resources towards the
foreground

task at the expense of other tasks.

Its design will be modified to improve interactive performance sometime
after Apple realizes the need and the possibility.

The latter design is pretty much how the classic MacOS worked, as
well as
Windows, and seems to be what you and Dave are advocating.

? Mac OS 9.1 and Windows 2000 are horrible in this regard.

Apple is switching AWAY from that design for reasons that they must
think are valid.

Think different means identify a great goal, clear all the clutter away
and get down to it.

> For instance the Finder/Workspace replacement (Gnome or KDE) might
need
> code which can re-order the disk queue to better respond to user
input and
> provide better user feedback. That might need changes that trickle
all the
> way down into the kernel and io system.

Absolutely. The User Experience goal of a great personal computer like
the Mac requires exactly this user-centered design process you outline.
Start from the user experience goal, then make the system serve it.

Breaking the abstraction layers between device drivers, the
VFS/filesystem
layer, and userland processes requesting I/O is likely to do more
harm than
good, particularly if the change was done by people who don't
understand the
new architecture and the real tradeoffs involved.

I don't see any breaking of abstraction layers. The higher layer is the
boss of the lower layer. If the higher layer says I want preemptive disk
I/O for processes above a certain priority level, then the lower layer
has its work cut out for it. And if the User Experience is the highest
layer.
Dave


References: 
 >Re: Darwin disk I/O - better interactive response (From: "Chuck Swiger" <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.