Operating Systems 2018F Lecture 18: Difference between revisions

From Soma-notes
Created page with "==To Do== * strace memoryll * uid vs euid * scheduling and __schedule"
 
No edit summary
Line 1: Line 1:
==To Do==
==Video==
* strace memoryll
 
* uid vs euid
The video from the lecture given on November 14, 2018 [https://homeostasis.scs.carleton.ca/~soma/os-2018f/lectures/comp3000-2018f-lec18-20181114.m4a is now available].
* scheduling and __schedule
 
==Notes==
 
===In Class===
<pre>
Lecture 18
----------
 
To Do
-----
  strace memoryll
  uid vs euid
  scheduling and __schedule
 
Optional reading:
  https://utcc.utoronto.ca/~cks/space/blog/unix/RawTtyInputThenAndNow
 
Scheduling
----------
 
System calls => enter supervisor mode (kernel) from user mode (processes)
 
scheduler => enter user mode (processes) from supervisor mode (kernel)
 
Scheduling algorithms
 
Challenges of scheduling
- maximize use of resources (throughput)
- minimize wait time (latency)
- minimal computational complexity
    scheduling is pure overhead
- make sure "important" things get done
    - obey user preferences
    - do important system things
 
 
 
Classic scheduling
Batch scheduling
- shortest job first
    - lowers latency for shorter jobs but isn't "fair"
- first in, first out
    - fair, but can have bad consequences
 
"time sharing" - preemptible scheduling
- each process gets a "time slice"
- when process is interupted, what to do next?
  key question
    - is it waiting for I/O?
</pre>

Revision as of 21:08, 14 November 2018

Video

The video from the lecture given on November 14, 2018 is now available.

Notes

In Class

Lecture 18
----------

To Do
-----
  strace memoryll
  uid vs euid
  scheduling and __schedule

Optional reading:
  https://utcc.utoronto.ca/~cks/space/blog/unix/RawTtyInputThenAndNow

Scheduling
----------

System calls => enter supervisor mode (kernel) from user mode (processes)

scheduler => enter user mode (processes) from supervisor mode (kernel)

Scheduling algorithms

Challenges of scheduling
 - maximize use of resources (throughput)
 - minimize wait time (latency)
 - minimal computational complexity
    scheduling is pure overhead
 - make sure "important" things get done
    - obey user preferences
    - do important system things



Classic scheduling
Batch scheduling
 - shortest job first
    - lowers latency for shorter jobs but isn't "fair"
 - first in, first out
    - fair, but can have bad consequences

"time sharing" - preemptible scheduling
 - each process gets a "time slice"
 - when process is interupted, what to do next?
   key question
     - is it waiting for I/O?