The UNIX system has been in wide use for over 20 years, and has helped to define many areas of computing.
The I/O activity statistics are collected each time that the process has to start a transfer to fulfill a file or device I/O request
literally so self-defeating
If a process exceeds certain soft limits, a signal is delivered to the process to notify it that a resource limit has been exceeded.
what if this didn't happen because the process resources were isolated from the start
Normally, this signal causes the process to terminate, but the process may either catch or ignore the signal.
signals are so crazy
If the process ignores the signal and fails to release resources that it already holds, further attempts to obtain more resources will result in errors.
omg YOU'RE THE OS!!!!! WHY ARE YOU LETTING THE PROCESS TROLL YOU
i'm really feeling this "process isolation lets you preallocate all resources" vibe
omg it even has i/o ACCOUNTING but not DECLARING
For historic reasons, the same floating-point-conversion routine processes the count of disk operations, so the number of disk operations must be multiplied by 64 before it is converted to the floating-point representation.
that's normal
Finally, the accounting records fail to include much information needed to do accurate billing, including usage of other resources, such as tape drives and printers.
can't tell if this is funny or scary. unsure
The kernel supports the illusion of concurrent execution of multiple processes by scheduling system resources among the set of processes that are ready to execute.
completely fucking backwards. processes become ready to execute as a result of scheduling their system resources
who came up with "the illusion of concurrent execution" anyway. why am i supposed to want things all happening at once
oh my god he admit it
But this change did not apply to multiprogramming because disk I/O was synchronous. This state of affairs persisted into 1972 and the first PDP-11/45 system.
so 1972 was the last time i/o was good
True multiprogramming was finally introduced when the system was rewritten in C.
"rust of the 1970s"
Disk I/O for one process could then proceed while another process ran.
this is confusing and misleading. i believe this refers to the global page cache
The basic structure of process management in UNIX has not changed since that time [Ritchie, 1988].
the basic structure of process management in UNIX hasn't met me
Facilities are provided for ensuring consistent access to data structures that are shared among processes.
i hate this so much!!! each file path is not a fucking public radio channel!
4.4BSD uses a priority-based scheduling policy that is biased to favor interactive programs, such as text editors, over long-running batch-type jobs.
robert pike blame 4.4BSD not the c preprocessor
Interactive programs tend to exhibit short bursts of computation followed by periods of inactivity or I/O.
literally so close!!!!! so close to getting it!!!!!
Thus, jobs that use large amounts of CPU time sink rapidly to a low priority,
what if tasks declared their expected CPU time beforehand too?
what if we had a directly interpretable request structure which identified dependencies between system resources and could be submitted to the kernel for a slice?
scheduling becomes more difficult with multiple threads, but maybe each thread can identify itself