|
![](/i/fill.gif) |
On 10/12/2011 13:31, andrel wrote:
> That is what 'surprises' me everytime. How can you design an OS where it is
> possible to prevent a task switch to a taskmanager. I assume it is because
> it wasn't designed but grown. Still, by now they should have solved that, I
> would assume.
It's really not too hard. Modern desktop OSes suck at scheduling disk I/O,
so if you're locked up because of disk I/O and you launch a new program,
you're going to be locked up.
Sit down at a Linux machine with 16G of RAM. Create a directory with
1,000,000 one-block files, then type "sync", then type "rm -r xyz;sync" and
watch Linux "lock up" for several minutes as anything that wants to touch
the disk waits for the sync to finish.
Same thing can happen if you have a whole ton of data paged out when you
terminate the application, as AFAICT both Windows and Linux will happily
page everything back in as it terminates the job.
> BTW this is when reading a 1-2 million faces text file in into Blender. And
> when going into edit mode after that and...
Disk I/O sucks in every modern desktop OS. Android also "locks up" on
occastion for several seconds at a time, as some random program launches a
check for something online when you're in the middle of typing something,
for example.
Contrast with CP/V, a mainframe OS from the late 1960s, that ran on a
computer with *maybe* a 500KHz CPU running out of 256K of magnetic core that
happily supported 40 or 50 users before you started to notice any slow-down.
How? They had something like 30 or 40 different priority bumps depending on
what you were waiting for and what woke you up. Waking up from waiting for
free memory (i.e., someone else's page-out completing) vs waking up from
waiting for pages to page in vs waking up from waiting for a directory entry
to come from disk vs waking up when disk data has arrived vs etc all had
different priority bumps, including on whether you're in core, out of core,
finished your quantum last time, waited before your min-quantum expired last
time, etc etc etc.
--
Darren New, San Diego CA, USA (PST)
How come I never get only one kudo?
Post a reply to this message
|
![](/i/fill.gif) |