Linux Process Management

14 Slides51.93 KB

Linux Process Management

Linux Implementation of Threads Threads enable concurrent programming / true parallelism Linux implementation of threads

PCS vs SCS http://www.cs.uic.edu/ jbell/CourseNotes/OperatingSystems/5 CPU Scheduling.html

Linux Process Scheduling Policy – Policy is the behavior of the scheduler that determines what runs when. A scheduler’s policy often determines the overall feel of a system. – I/O-Bound vs. Processor-Bound Processes Scheduler policy in Unix systems tends to explicitly favor I/O-bound processes Linux.

Process priority 2 ranges – nice value -20 to 19 with default of 0 Larger nice values correspond to lower priority ps –el – real-time priority 0 -99 Higher values correspond to higher priority Used for real-time processes – always higher than normal processes.

The scheduling policy in action

Process Scheduling in Unix Based on traditional methods – Timeslice – Priority (Priority exported to user in nice values) Problematic – Two low priority processes swap to much – Timeslice / priority correlation – Timeslice measurement (timer click)

The scheduling policy in action Linux: Completely Fair Scheduling – Model process scheduling as if the system had an ideal perfectly multitasking processor. That is, each process receives 1/n of the processor’s time, where n is the number of runnable processes and we’d schedule them for intimately small durations, so that in any measureable period we’d have urn all n processes for the same time. Conceptually: we are running 2 processes simultaneously each using 50% of CPU

Completely Fair Scheduling (CFS) CFS will run each process for some amount of time, round-robin, selecting next the process that has run the least.

Completely Fair Scheduling (CFS) Determine Time allotted to run CFS calculates how long a process should run as a function of the total number of runnable processes CFS uses the nice value to weight the proportion of the processor a process should receive.

Completely Fair Scheduling (CFS) Determine Time allotted to run Each process then runs for a “time-slice” proportional to its weight divided by the total weight of all runnable threads.

Completely Fair Scheduling (CFS) Picking the next task Red/black trees – Balanced tree Leftmost leaf contains process with the smallest runtime (time spent running) normalized by the number of runnable processes and by its ‘weight’

Kernel Preemption Unix kernel is non-preemptive Linux kernel is pre-emptive

Real-Time Scheduling Policies SCHED FIFO and SCHED RR Not managed by CFS, but by a separate realtime scheduler. Soft real-time behavior

Back to top button