Scribes: Lei Jin, Vasishta Jayanti, Soma Putera

Scheduling:

  1. Round-Robin Preemptive Scheduling:

    This technique could potentially fail when newly forked processes are put at the start of the queue. A possible solution is to limit the processes given for forking, but this technique fails if the new processes fork and exit immediately. The simplest solution is to put the new fork at the end of the queue. As a side note, forking fails when the queue is full.

  2. Priority Scheduling:

    First, the lower the number of priority, the higher the process is in the queue. For example, priority 1 job is ahead of priority 2 job. However in Unix, priority is called niceness: niceness 1 job is higher priority than niceness 2 job. The default for niceness for most processes is 0. But then some processes can have default niceness less than 0, example: an xserver that interacts with the user or a process with high niceness would be background computation like UFO searching. Mean programs have negative priority or very high priority. For example music programs like itunes or just any program that interacts with the user are mean programs.

  3. Two Types of Priority Scheduling:
  4. Different User Sets For Scheduling:

    The whole point of distinguishing different types of users is to apply different scheduling algorithms to different user sets. Each user type is put into a separate queue. This idea not popular on single cpu, because single CPU cannot be used in this way. But for a 1000 node cluster, we need to use this queue structure for better organization of priority. It is the operator's job to control which job gets to execute and when, moving a job from one queue to another.

  5. Real Time Scheduler

    There are two major types of real time schedulers.

    First: Hard real time scheduler: the arrival of every job comes with a deadline and all the deadlines have to be met with all the programs. For example a program for the nuclear power plant cleanup will terminate in the next 10ms needs a hard real time scheduler. With the need for predictability, this tradeoff trumps performance.

    Second: Soft real time scheduler: some deadlines can be missed at a cost. For example, lag from the media player playing a huge video have the soft real time scheduler implemented. Often this results in frame skips (cost) which is 'ok'. To implement this scheduler, we have the sooner deadline finish first. If the job(s) deadlines cannot be met, we discard those jobs and work on the next soonest job.

    Another type of real time scheduler is Rate-monotones scheduler, which assigns higher priority to jobs whose tasks run more frequently. There are many different types of scheduler, but the most general two are Linux or Solaris Schedulers. They work to load the current processes as the algorithm tells them to, but the more general scheduler, the harder it is to get right.

Synchronization:

The Goals of Synchronization:

Oh time is up! See you next time.