Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS450/550 P&T.1 Adapted from MOS2E UC. Colorado Springs CS450/550 Operating Systems Lecture 2 Processes and Threads Palden Lama Department of Computer.

Similar presentations


Presentation on theme: "CS450/550 P&T.1 Adapted from MOS2E UC. Colorado Springs CS450/550 Operating Systems Lecture 2 Processes and Threads Palden Lama Department of Computer."— Presentation transcript:

1

2 CS450/550 P&T.1 Adapted from MOS2E UC. Colorado Springs CS450/550 Operating Systems Lecture 2 Processes and Threads Palden Lama Department of Computer Science

3 CS450/550 P&T.2 Adapted from MOS2E UC. Colorado Springs Review: Summary of Lecture 1 °Two major OS functionalities: machine extension and resource management °History of OS: Batching, multiprogramming, time-sharing, PC °Computer Architecture Reviews °Fundamental OS concepts: Process, memory management, deadlocks, file & directory management °System calls and Unix Shell °More reading: textbook 1.1 - 1.7, Ch10: 671 - 696

4 CS450/550 P&T.3 Adapted from MOS2E UC. Colorado Springs Chapter 2 Processes and Threads 2.1 Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling

5 CS450/550 P&T.4 Adapted from MOS2E UC. Colorado Springs Process °A fundamental OS abstraction An instance of a program running on a computer The entity that can be assigned to and executed on a processor A unit of activity characterized by the execution of a sequence of instructions, a current state, and an associated set of system instructions What elements needed to construct a process?

6 CS450/550 P&T.5 Adapted from MOS2E UC. Colorado Springs The Sequential Process Model °(a) Multiprogramming of four programs °(b) Conceptual model of 4 independent, sequential processes Sequential process mode: hiding the effects of interrupts, and support blocking system calls °(c) Only one program active at any instant What is pseudo-parallelism? What is the key difference between a program and a process?

7 CS450/550 P&T.6 Adapted from MOS2E UC. Colorado Springs Process Creation Technically, a new process is created by having an existing process execute a process creation system call UNIX: a two-step creation-loading process of fork() and execve() WINDOWS: a single Win32 call CreateProcess() Principal events that cause process creation 1.System initialization; foreground and background 2.Execution of a process creation system 3.User request to create a new process; interactive systems 4.Initiation of a batch job

8 CS450/550 P&T.7 Adapted from MOS2E UC. Colorado Springs Process Termination Conditions which terminate processes 1.Normal exit (voluntary) 2.Error exit (voluntary) 3.Fatal error (involuntary) 4.Killed by another process (involuntary) UNIX: kill() Windows32: TerminateProcess()

9 CS450/550 P&T.8 Adapted from MOS2E UC. Colorado Springs Process Hierarchies °Parent creates a child process, child processes can create its own process °Forms a hierarchy UNIX calls this a "process group“ init, a special process is present in the boot image °Windows has no concept of process hierarchy all processes are created equal

10 CS450/550 P&T.9 Adapted from MOS2E UC. Colorado Springs Process States (1) °Possible process states (a three-state process model) running Blocked ready °Transitions between states shown Blocked to running possible only when CPU idle ? ? New Exit release Admit

11 CS450/550 P&T.10 Adapted from MOS2E UC. Colorado Springs Process States (2) °Lowest layer of process-structured OS handles interrupts, scheduling °Above that layer are sequential processes

12 CS450/550 P&T.11 Adapted from MOS2E UC. Colorado Springs Using Two Queues (event-triggered) °When an event occurs, the OS must scan the entire blocked queue, searching for those processes waiting on that event. °In a large OS, there could be hundreds or thousands of processes in that queue.

13 CS450/550 P&T.12 Adapted from MOS2E UC. Colorado Springs Multiple Blocked Queues

14 CS450/550 P&T.13 Adapted from MOS2E UC. Colorado Springs Implementation of Processes Fields of a process table entry

15 CS450/550 P&T.14 Adapted from MOS2E UC. Colorado Springs Process Execution

16 CS450/550 P&T.15 Adapted from MOS2E UC. Colorado Springs When to Switch a Process °Clock interrupt process has executed for the maximum allowable time slice °I/O interrupt °Memory fault memory address is in virtual memory so it must be brought into main memory °Trap error occurred may cause process to be moved to Exit state °Supervisor call such as file open

17 CS450/550 P&T.16 Adapted from MOS2E UC. Colorado Springs OS’ Interrupt Handling Skeleton of what lowest level of OS does when an interrupt occurs when a process is running °Interrupt vector contains the address of the interrupt service procedures Why we need assembly code here, instead of C?

18 CS450/550 P&T.17 Adapted from MOS2E UC. Colorado Springs Operating System Control Structures °Information about the current status of each process and resource °Tables are constructed for each entity the operating system manages °Four typical types of tables: Memory tables I/O tables File tables Process tables Processes and resources, a snapshot

19 CS450/550 P&T.18 Adapted from MOS2E UC. Colorado Springs Structure of OS Control Tables

20 CS450/550 P&T.19 Adapted from MOS2E UC. Colorado Springs Concurrency and Parallelism °Concurrency in software is a way to manage the sharing of resources efficiently at the same time When multiple software threads (or processes) of execution are running concurrently, the execution of the threads is interleaved onto a single hardware resource -Why not schedule another thread while one thread is on a cache miss or even page fault? °True parallelism requires multiple hardware resources Multiple software threads (or processes) are running simultaneously on different hardware resources/processing elements

21 CS450/550 P&T.20 Adapted from MOS2E UC. Colorado Springs Thread and Multithreading °Process: for resource grouping and execution °Thread: a finer-granularity entity for execution and parallelism Lightweight processes, multithreading °Multi-threading: Operating system supports multiple threads of execution within a single process °UNIX supports multiple user processes but only supports one thread per process °Windows 2000, Solaris, Linux, Mach, and OS/2 support multiple threads

22 CS450/550 P&T.21 Adapted from MOS2E UC. Colorado Springs The Thread Model (a) Three processes each with one thread, but different address spaces (b) One process with three threads, sharing the address space °Can we use model (a) for a file server using a cache in memory? Then why not each process has its own cache? How about model (b)? 23

23 CS450/550 P&T.22 Adapted from MOS2E UC. Colorado Springs The Thread Model (2) Items shared by all threads in a process Items private to each thread °What is a key reason to have multi-threads in a process? Resource sharing for higher (pseudo-)parallelism But timesharing threads is no different than timesharing processes from scheduling perspective Is there protection between threads? Why? Scheduling properties

24 CS450/550 P&T.23 Adapted from MOS2E UC. Colorado Springs The Thread Model (3) Each thread has its own stack °What are private to a thread? Stack for local procedures’ local variables and the return address Why a thread needs its own stack? Library procedures: thread_create(), thread_exit(), thread_yield() Timesharing between threads is a job of programmers! Why? No clock interrupt

25 CS450/550 P&T.24 Adapted from MOS2E UC. Colorado Springs Why Multi-threading °Performance! Lightweight (less overhead to create, terminate, and switch) Overlapping CPU work with I/O Priority/real-time scheduling Thread communication in a process without trap to kernel Platform fork()pthread_create() realusersysrealusersys IBM 375 MHz POWER3 61.943.4953.747.462.766.79 IBM 1.5 GHz POWER4 44.082.2140.271.490.97 IBM 1.9 GHz POWER5 p5- 575 50.663.3242.751.130.540.75 INTEL 2.4 GHz Xeon 23.813.128.971.700.530.30 INTEL 1.4 GHz Itanium 2 23.610.123.422.100.040.01 Time results on SMP systems

26 CS450/550 P&T.25 Adapted from MOS2E UC. Colorado Springs Thread Usage – Finer-granularity for Parallelism A word processor with three threads °Why multi-threading? The ability for the parallel entities to share an address space and all of its data Lightweight: easy to create and destroy, since no resource attached Allow overlapping of I/O and CPU in a process, finer-granularity for (pseudo-)parallelism (P.86) User interaction Document reformatting Disk backup Why three separate Processes do not work?

27 CS450/550 P&T.26 Adapted from MOS2E UC. Colorado Springs Thread Usage – Finer-granularity for Parallelism °Consider reading a file using a single-threaded file server and a multi-threaded file server. It takes 10 ms to get a request for work, dispatch it, and do the rest of work, assuming the data needed is in the cache. If a disk operation is needed, as is the case 25% of the time, an additional 40 ms is required, during which time the thread sleep. What is the throughput (# requests/sec) can the server handle, if it is single-threaded? If it is multi-threaded (assuming non- blocking file reading in the disk)?

28 CS450/550 P&T.27 Adapted from MOS2E UC. Colorado Springs Thread Usage – A Multi-threaded Web Server A multithreaded Web server °A dispatcher thread and worker threads Shared Web page cache Asynchronous event handling: working on previous requests and managing the arrival of new requests

29 CS450/550 P&T.28 Adapted from MOS2E UC. Colorado Springs Thread Usage – A Multi-threaded Web Server °Rough outline of code for previous slide (a) Dispatcher thread (b) Worker thread What should be included in handoff_work() and return_page() for thread time-sharing? Thread_yield()

30 CS450/550 P&T.29 Adapted from MOS2E UC. Colorado Springs Thread Usage –Alternatives to Multi-threading Three ways to construct a Web server °A single-threaded Web server Lower throughput °Finite-state machine: a multi-process single-threaded Web server w/ non-blocking system calls The “sequential process model (blocking system calls)” is lost Need non-blocking system calls

31 CS450/550 P&T.30 Adapted from MOS2E UC. Colorado Springs Implementing Threads in User Space A user-level threads package °User-space threads: the kernel knows nothing about them No clock interrupts, no preemption

32 CS450/550 P&T.31 Adapted from MOS2E UC. Colorado Springs Implementing Threads in User Space - Discussions °Advantages No OS thread-support need Lightweight: thread switching vs. process switching -Local procedure vs. system call (trap to kernel) -When we say a thread come-to-life? SP & PC switched Each process has its own customized scheduling algorithms -thread_yield() °Disadvantages How blocking system calls implemented? Called by a thread? -Goal: to allow each thread to use blocking calls, but to prevent one blocked thread from affecting the others How to change blocking system calls to non-blocking? Jacket/wrapper: code to help check in advance if a call will block How to deal with page faults? How to stop a thread from running forever? No clock interrupts

33 CS450/550 P&T.32 Adapted from MOS2E UC. Colorado Springs Implementing Threads in the Kernel A threads package managed by the kernel °kernel-space threads: when a thread blocks, kernel re-schedules Thread re-cycling: thread creation and termination more costly

34 CS450/550 P&T.33 Adapted from MOS2E UC. Colorado Springs Hybrid Implementations Multiplexing user-level threads onto kernel- level threads °Use kernel-level threads and then multiplex user-level threads onto some or all of the kernel-level threads Example Solaris

35 CS450/550 P&T.34 Adapted from MOS2E UC. Colorado Springs Scheduler Activations (Self-Reading) °Goal – mimic functionality of kernel threads gain performance of user space threads °Avoids unnecessary user/kernel transitions °Kernel assigns virtual processors to each process lets runtime system allocate threads to processors °Problem: Fundamental reliance on kernel (lower layer) calling procedures in user space (higher layer)

36 CS450/550 P&T.35 Adapted from MOS2E UC. Colorado Springs Pop-Up Threads °Dynamic creation of a new thread when a request/message arrives Each one starts fresh and each one is identical to each other (a) before message arrives (b) after message arrives

37 CS450/550 P&T.36 Adapted from MOS2E UC. Colorado Springs Making Single-Threaded Code Multithreaded (1) Conflicts between threads over the use of a global variable °Issue: variables global to a thread but not to the entire program How about to prohibit global variables in a process?

38 CS450/550 P&T.37 Adapted from MOS2E UC. Colorado Springs Making Single-Threaded Code Multithreaded (2) Threads can have private global variables °Solution: to assign each thread its own private global variables New library procedures create_global(“bufptr”); set_global(“bufptr”, &buf); bufptr = read_globa(“bufptr”);

39 CS450/550 P&T.38 Adapted from MOS2E UC. Colorado Springs Hardware Threading User-level Threads Used by applications and handled by user-level runtime °At hardware level, a thread is an execution path that remains independent of other hardware thread execution paths Kernel-level Threads Used and handled by OS kernel Hardware Threads Used by each processor Operational flow

40 CS450/550 P&T.39 Adapted from MOS2E UC. Colorado Springs Simultaneous Multi-threading (Hyper-Threading) °Simultaneous multi-threading (SMT) Create multiple logical processors with a physical processor One logical processor for a thread, which requires an architecture state consisting of the GPRs and Interrupt logic Duplicate multiple architecture states (CPU state), and, let other CPU resources, such as caches, buses, execution units, branch prediction logic shared among architecture states Multi-threading at hardware level, instead of OS switching Intel’s SMT implementation is called Hyper-Threading Technology (HT Technology) What is next?

41 CS450/550 P&T.40 Adapted from MOS2E UC. Colorado Springs Multi-Processor and Multi-Core °multi-core processors use chip multi-processing (CMP) Cores are essentially two individual processors on a single die May or may not share on-chip cache True parallelism, instead of high concurrency

42 CS450/550 P&T.41 Adapted from MOS2E UC. Colorado Springs Inter-Process Communication (IPC) °Three fundamental issues: How one process can pass information to another How to make sure two or more process do not get into each other’s way when engaging in critical activities How to maintain proper sequencing when dependencies present How about inter-thread communication?

43 CS450/550 P&T.42 Adapted from MOS2E UC. Colorado Springs IPC: Race Conditions Two threads want to deposit an account; overwriting issue Thread 1Thread 2Balance Read balance; $1000 $1000 Read balance; $1000 $1000 Deposit $200 $1000 Deposit $200 $1000 Update balance $1000 + $200 $1200 Update balance $1000 + $200 $1200 time

44 CS450/550 P&T.43 Adapted from MOS2E UC. Colorado Springs IPC: Race Conditions (2) Two processes want to access shared memory at same time °Race conditions: when two or more processes/threads are reading or writing some shared data and the final results depends on who runs precisely when Interrupts, interleaved operations/execution printer daemon Dir[in] = X; in ++; Dir[in] = Y; in ++;

45 CS450/550 P&T.44 Adapted from MOS2E UC. Colorado Springs Mutual Exclusion and Critical Regions °Mutual exclusion: makes sure if one process is using a shared variable or file, the other processes will be excluded from doing the same thing Main challenge/issue to OS: to design appropriate primitive operations for achieving mutual exclusion °Critical regions: the part of the program where the shared memory is accessed °Four conditions to provide mutual exclusion No two processes simultaneously in critical region No assumptions made about speeds or numbers of CPUs No process running outside its critical region may block another process No process must wait forever to enter its critical region

46 CS450/550 P&T.45 Adapted from MOS2E UC. Colorado Springs Mutual Exclusion Using Critical Regions Mutual exclusion using critical regions

47 CS450/550 P&T.46 Adapted from MOS2E UC. Colorado Springs Mutual Exclusion with Busy Waiting (1) °Disabling interrupts: OS technique, not users’; multi-CPU? °Lock variables: test-set is a two-step process, not atomic °Busy waiting: continuously testing a variable until some value appears (spin lock) 0 1 What if P1’s noncritical_region() has lots more work than P0’s? Proposed strict alternation solution to critical region problem (a) Process 0. (b) Process 1.

48 CS450/550 P&T.47 Adapted from MOS2E UC. Colorado Springs Mutual Exclusion with Busy Waiting (2) – Peterson’s Peterson's solution for achieving mutual exclusion sharing

49 CS450/550 P&T.48 Adapted from MOS2E UC. Colorado Springs Mutual Exclusion with Busy Waiting (3) - TSL Entering and leaving a critical region using the TSL instruction (if one process cheats, the mutual exclusion will fail!) °TSL (Test and Set Lock) Indivisible (atomic) operation, how? Hardware (multi-processor) How to use TSL to prevent two processes from simultaneously entering their critical regions? What if many critical regions?

50 CS450/550 P&T.49 Adapted from MOS2E UC. Colorado Springs Sleep and Wakeup °Issue I with Peterson’s & TS: how to avoid CPU-costly busy waiting? °Issue II: priority inversion problem Consider two processes, H with (strict) high priority and L with (strict) low priority, L is in its critical region and H becomes ready; does L have chance to leave its critical region? Can this problem occur with user-space threads? Why? POSIX pthread_mutex_trylock() is non-blocking call °Some IPC primitives that block instead of wasting CPU time when they are not allowed to enter their critical regions Sleep and wakeup

51 CS450/550 P&T.50 Adapted from MOS2E UC. Colorado Springs Sleep and Wakeup – Producer-Consumer Problem Producer-consumer problem with fatal race condition Q1: What if the wakeup signal sent to a non-sleep (ready) process? Q2: what is a wakeup waiting bit? Is one enough?

52 CS450/550 P&T.51 Adapted from MOS2E UC. Colorado Springs Semaphores and P&V Operations °Semaphores: a variable to indicate the # of pending wakeups °Down operation (P; request): Checks if a semaphore is > 0, -if so, it decrements the value and just continue -Otherwise, the process is put to sleep without completing the down for the moment °Up operation (V; release) Increments the value of the semaphore -if one or more processes are sleeping on the semaphore, one of them is chosen by the system (by random) and allowed to complete its down (semaphore will still be 0) °P & V operations are atomic, how to implement? Single CPU: system calls, disabling interrupts temporally Multiple CPUs: TSL help

53 CS450/550 P&T.52 Adapted from MOS2E UC. Colorado Springs The Producer-consumer Problem w/ Semaphores Binary semaphores: if each process does a down before entering its critical region and an up just leaving it, mutual exclusion is achieved For mutual exclusion and synchronization

54 CS450/550 P&T.53 Adapted from MOS2E UC. Colorado Springs Mutexes Implementation of mutex_lock and mutex_unlock useful for user-space multi-threading °Mutex: a variable that can be in one of two states: unlocked or locked A simplified version of the semaphores [0, 1] Give other chance to run so as to save self; What is mutex_trylock()?

55 CS450/550 P&T.54 Adapted from MOS2E UC. Colorado Springs Two processes entering and leaving a critical region using the TSL instruction Mutexes – User-space Multi-threading °What is a key difference between mutex_lock and enter_region in multi-threading and multi-processing? For user-space multi-threading, a thread has to allow other thread to run and release the lock so as to enter its critical region, which is impossible with busy waiting enter_region

56 CS450/550 P&T.55 Adapted from MOS2E UC. Colorado Springs Re: The Producer-consumer Problem w/ Semaphores what if the two downs in the producer’s code were reversed in order, so mutex was decremented before empty instead of after it?

57 CS450/550 P&T.56 Adapted from MOS2E UC. Colorado Springs Monitors (1) °Monitor: a higher-level synchronization primitive Only one process can be active in a monitor at any instant, with compiler’s help; thus, how about to put all the critical regions into monitor procedures for mutual exclusion? Example of a monitor But, how processes block when they cannot proceed? Condition variables, and two operations: wait() and signal()

58 CS450/550 P&T.57 Adapted from MOS2E UC. Colorado Springs Monitors (2) Outline of producer-consumer problem with monitors only one monitor procedure active at one time (a process doing signal must exit the monitor immediately); buffer has N slots Conditions are not counters; wait() before signal()

59 CS450/550 P&T.58 Adapted from MOS2E UC. Colorado Springs Monitors (3) Solution to producer-consumer problem in Java (part 1)

60 CS450/550 P&T.59 Adapted from MOS2E UC. Colorado Springs Message Passing The producer-consumer problem with N messages Mailbox vs. no buffering

61 CS450/550 P&T.60 Adapted from MOS2E UC. Colorado Springs Barriers °Use of a barrier (for programs operate in phases, neither enters the next phase until all are finished with the current phase) for groups of processes to do synchronization (a) processes approaching a barrier (b) all processes but one blocked at barrier (c) last process arrives, all are let through Necessary if only 2 processes?

62 CS450/550 P&T.61 Adapted from MOS2E UC. Colorado Springs Classic IPC Problems: Dining Philosophers (1) °Philosophers eat/think °Eating needs 2 forks °Pick one fork at a time °How to prevent deadlock & starvation Deadlock: both are blocked on some resource Starvation: both are running, but no progress made The problem is useful for modeling processes that are competing for exclusive access to a limited number of resources, such as I/O devices

63 CS450/550 P&T.62 Adapted from MOS2E UC. Colorado Springs Dining Philosophers (2) What happens if all philosophers pick up their left forks simultaneously? Or, all wait for the same amount of time, then check if the right available? What if random waiting, then check if the right fork available? A non-solution to the dining philosophers problem What peformance if down and up on mutex before acquiring/replacing a fork?

64 CS450/550 P&T.63 Adapted from MOS2E UC. Colorado Springs Dining Philosophers (3) Solution to dining philosophers problem (part 1)

65 CS450/550 P&T.64 Adapted from MOS2E UC. Colorado Springs Dining Philosophers (4) Solution to dining philosophers problem (part 2)

66 CS450/550 P&T.65 Adapted from MOS2E UC. Colorado Springs The Readers and Writers Problem A solution to the readers and writers problem (database)

67 CS450/550 P&T.66 Adapted from MOS2E UC. Colorado Springs The Sleeping Barber Problem – Self-reading

68 CS450/550 P&T.67 Adapted from MOS2E UC. Colorado Springs Scheduling: Introduction to Scheduling °Scheduler: to make a choice whenever two or more processes are simultaneously in the ready state Pick the right process to run Makes efficient use of the CPU More an issue to Servers than to PCs (clients) °Process switching (context switching) is very costly State of the current process must be saved; SP, PC, GPRs, etc Memory map (e.g., memory reference bits in the page table) MMU reloaded Invalidating the memory cache What are objectives? Performance metrics? Jobs’ characteristics?

69 CS450/550 P&T.68 Adapted from MOS2E UC. Colorado Springs Scheduling: Process Behavior °Bursts of CPU usage alternate with periods of I/O wait a CPU-bound/CPU-intensive process an I/O bound / I/O intensive process -I/O is when a process enters the blocked state waiting for an external device to complete its work

70 CS450/550 P&T.69 Adapted from MOS2E UC. Colorado Springs Scheduling: When to Schedule °When to schedule A process is created A process exits/terminated A process blocks on I/O, on a semaphore -Remember the priority inversion problem, user-level mutex locking problem An I/O interrupt occurs °Non-preemptive vs. preemptive scheduling What is necessary to enable preemptive scheduling? It is possible in user-space multi-threading? Clock interrupt

71 CS450/550 P&T.70 Adapted from MOS2E UC. Colorado Springs Scheduling Algorithm Goals What scheduling policies for those systems?

72 CS450/550 P&T.71 Adapted from MOS2E UC. Colorado Springs Re: Using Two Queues °State transitions °When an event occurs, the OS must scan the entire blocked queue, searching for those processes waiting on that event. °In a large OS, there could be hundreds or thousands of processes in that queue.

73 CS450/550 P&T.72 Adapted from MOS2E UC. Colorado Springs Scheduling in Batch Systems - FCFS °FCFS is non-preemptive A single queue of ready processes When a the running process blocks, the first process on the queue is run next; when a blocked process becomes ready, like a newly arrived job, it is put on the end of the queue °What is its greatest strength? °What is its greatest disadvantage? Example: there is one compute-bound process that runs for 1s at a time and then reads a disk block, and many I/O-bound process that use little CPU but each have to perform 1000 disk reads to complete (blocks after each disk read), what is the result? If a scheduler preempts the compute-bound process every 10ms, when the I/O-bound processes would finish?

74 CS450/550 P&T.73 Adapted from MOS2E UC. Colorado Springs °Consider four CPU-intensive jobs, A through D, arrive at a computer system at the same time. They have estimated running times of 8, 6, 2, and 4 minutes. Determine the mean process turnaround time if using FCFS scheduling FCFS Scheduling Example

75 CS450/550 P&T.74 Adapted from MOS2E UC. Colorado Springs Scheduling in Batch Systems - Shortest Job First An example of shortest job first scheduling. (a) running 4 jobs in the original order. (b) Running them in shortest job first order. °Shortest job first is non-preemptive, optimal in terms of minimal average execution time Assumption: all jobs are ready simultaneously; the run time of each job known in advance °Shortest Remaining Time Next A preemptive version of shortest job first, to allow new short jobs to get good service Assumption: the run time of each job known in advance Fair to long jobs? In reality, how OS knows the run time of jobs in advance?

76 CS450/550 P&T.75 Adapted from MOS2E UC. Colorado Springs °Consider four CPU-intensive jobs, A through D, arrive at a computer system at the same time. They have estimated running times of 8, 6, 2, and 4 minutes. Determine the mean process response time if using shortest- job-first scheduling Shortest Job First Scheduling Example What if jobs are not coming simultaneously?

77 CS450/550 P&T.76 Adapted from MOS2E UC. Colorado Springs Scheduling in Batch Systems - Three-level Scheduling Three level scheduling What are issues in memory scheduler? What is the degree of multi-programming?

78 CS450/550 P&T.77 Adapted from MOS2E UC. Colorado Springs (a) list of runnable processes (b) list of runnable processes after B uses up its quantum °Interactive systems: two-level scheduling °Round-Robin Scheduling Pre-emptive, maintains a list of runnable processes Quantum: a time interval for running -Extreme: processor sharing (per-instruction) How to set the quantum -Cost of process/context switching vs. responsiveness Scheduling in Interactive Systems – Round-Robin

79 CS450/550 P&T.78 Adapted from MOS2E UC. Colorado Springs °Consider four CPU-intensive jobs, A through D, arrive at a computer system at the same time. They have estimated running times of 8, 6, 2, and 4 minutes. Determine the mean process response time if using R-R scheduling (assuming the computer system is multiprogramming and each job gets its fair share of CPU) Round-Robin Scheduling Example

80 CS450/550 P&T.79 Adapted from MOS2E UC. Colorado Springs A scheduling algorithm with four priority classes Scheduling in Interactive Systems – Priority Scheduling °Priority Scheduling: takes external factors into account Pre-emptive How to avoid starvation due to strict priority? -WTP: time-dependent priority scheduling hybrid of priority and RR scheduling in multiple queues

81 CS450/550 P&T.80 Adapted from MOS2E UC. Colorado Springs °Consider four CPU-intensive jobs, A through D, arrive at a computer system at the same time. They have estimated running times of 8, 6, 2, and 4 minutes. Their priorities are 2, 4, 3, and 1, respectively. Determine the mean process response time if using Priority scheduling Priority Scheduling Example

82 CS450/550 P&T.81 Adapted from MOS2E UC. Colorado Springs Scheduling in Interactive Systems – Alternatives °Shortest Process Next °Guaranteed Scheduling °Lottery Scheduling °Fair-Share Scheduling What about scheduling in multi-processor and in clusters? What are objectives and performance metrics? Workloads?

83 CS450/550 P&T.82 Adapted from MOS2E UC. Colorado Springs Scheduling in Real-Time Systems Schedulable real-time system °Given m periodic events event i occurs within period P i and requires C i seconds °Then the load can only be handled if °Example: a soft real-time system with three periodic events, with periods of 100, 200, and 500 ms, respectively. If these events require 50, 30, and 100 ms of CPU time per event, respective, the system is schedulable Process/context switching overhead is often an issue though!

84 CS450/550 P&T.83 Adapted from MOS2E UC. Colorado Springs Policy versus Mechanism °Separate what is allowed to be done with how it is done a process knows which of its children threads are important and need priority °Scheduling algorithm parameterized mechanism in the kernel °Parameters filled in by user processes policy set by user process

85 CS450/550 P&T.84 Adapted from MOS2E UC. Colorado Springs Thread Scheduling – User-space Multi-threading Possible scheduling of user-level threads °50-msec process quantum °threads run 5 msec/CPU burst It can deploy an application- specific thread scheduler Can priority inversion problem happen?

86 CS450/550 P&T.85 Adapted from MOS2E UC. Colorado Springs Thread Scheduling – Kernel-space Multi-threading Possible scheduling of kernel-level threads °50-msec process quantum °threads run 5 msec/CPU burst How about performance? (1) thread switching as a procedure call vs. system call (2) How about I/O blocking?

87 CS450/550 P&T.86 Adapted from MOS2E UC. Colorado Springs Summary of Lecture 2 °Sequential process model °Multi-threading: user-space vs. kernel-space °IPC: semaphores, monitors, messages Race conditions Mutual exclusion Critical regions Classic IPC problems °Scheduling Process scheduling Thread scheduling °More reading: textbook 2.1 - 2.7

88 CS450/550 P&T.87 Adapted from MOS2E UC. Colorado Springs Homework Assignment °Homework (due one week later): See course Web site


Download ppt "CS450/550 P&T.1 Adapted from MOS2E UC. Colorado Springs CS450/550 Operating Systems Lecture 2 Processes and Threads Palden Lama Department of Computer."

Similar presentations


Ads by Google