CPU Scheduling (Part II)

CPU Scheduling (Part II)

CPU Scheduling (Part II) Amir H. Payberah [email protected] Amirkabir University of Technology (Tehran Polytechnic) Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 1 / 58 Motivation Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 2 / 58 Reminder I CPU scheduling is the basis of multiprogrammed OSs. I By switching the CPU among processes, the OS makes the computer more productive. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 3 / 58 Basic Concepts I In a single-processor system, only one process can run at a time. I Others must wait until the CPU is free and can be rescheduled. I The objective of multiprogramming is to have some process running at all times, to maximize CPU utilization. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 4 / 58 Scheduling Criteria I CPU utilization I Throughput I Turnaround time I Waiting time I Response time Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 5 / 58 Process Scheduling Algorithms I First-Come, First-Served Scheduling I Shortest-Job-First Scheduling I Priority Scheduling I Round-Robin Scheduling I Multilevel Queue Scheduling I Multilevel Feedback Queue Scheduling Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 6 / 58 Thread Scheduling Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 7 / 58 Thread Scheduling (1/2) I Distinction between user-level and kernel-level threads. I When threads supported by the OS, threads scheduled, not pro- cesses. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 8 / 58 I System-Contention Scope (SCS) • In one-to-one model. • Scheduling competition among all threads in system. Thread Scheduling (2/2) I Process-Contention Scope (PCS) • In many-to-one and many-to-many models • Scheduling competition is within the process. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 9 / 58 Thread Scheduling (2/2) I Process-Contention Scope (PCS) • In many-to-one and many-to-many models • Scheduling competition is within the process. I System-Contention Scope (SCS) • In one-to-one model. • Scheduling competition among all threads in system. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 9 / 58 Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 10 / 58 Pthread Scheduling I API allows specifying either PCS or SCS during thread creation. • PTHREAD SCOPE PROCESS schedules threads using PCS scheduling. • PTHREAD SCOPE SYSTEM schedules threads using SCS scheduling. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 11 / 58 Contention Scope I pthread attr setscope and pthread attr getscope set/get contention scope attribute in thread attributes object. #include <pthread.h> int pthread_attr_setscope(pthread_attr_t*attr, int scope); int pthread_attr_getscope(const pthread_attr_t*attr, int*scope); Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 12 / 58 Pthread Scheduling API (1/2) #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 int main(int argc, char*argv[]) { int i, scope; pthread_t tid[NUM THREADS]; pthread_attr_t attr; /* get the default attributes */ pthread_attr_init(&attr); /* first inquire on the current scope */ if (pthread_attr_getscope(&attr,&scope) !=0) fprintf(stderr, "Unable to get scheduling scope\n"); else{ if (scope == PTHREAD_SCOPE_PROCESS) printf("PTHREAD_SCOPE_PROCESS"); else if (scope == PTHREAD_SCOPE_SYSTEM) printf("PTHREAD_SCOPE_SYSTEM"); else fprintf(stderr, "Illegal scope value.\n"); } Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 13 / 58 Pthread Scheduling API (2/2) /* set the scheduling algorithm to PCS or SCS */ pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); /* create the threads */ for (i=0; i< NUM_THREADS; i++) pthread_create(&tid[i],&attr, runner, NULL); /* now join on each thread */ for (i=0; i< NUM_THREADS; i++) pthread_join(tid[i], NULL); } /* Each thread will begin control in this function */ void*runner(void*param) { /* do some work ... */ pthread_exit(0); } Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 14 / 58 Multi-Processor Scheduling Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 15 / 58 I Asymmetric multiprocessing • Only one processor does all scheduling decisions, I/O processing, and other system activities. • The other processors execute only user code. I Symmetric multiprocessing (SMP) • Each processor is self-scheduling • All processes in common ready queue, or each has its own private queue of ready processes. • Currently, the most common. Multiple-Processor Scheduling I CPU scheduling is more complex when multiple CPUs are available. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 16 / 58 I Symmetric multiprocessing (SMP) • Each processor is self-scheduling • All processes in common ready queue, or each has its own private queue of ready processes. • Currently, the most common. Multiple-Processor Scheduling I CPU scheduling is more complex when multiple CPUs are available. I Asymmetric multiprocessing • Only one processor does all scheduling decisions, I/O processing, and other system activities. • The other processors execute only user code. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 16 / 58 Multiple-Processor Scheduling I CPU scheduling is more complex when multiple CPUs are available. I Asymmetric multiprocessing • Only one processor does all scheduling decisions, I/O processing, and other system activities. • The other processors execute only user code. I Symmetric multiprocessing (SMP) • Each processor is self-scheduling • All processes in common ready queue, or each has its own private queue of ready processes. • Currently, the most common. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 16 / 58 • Soft affinity: the OS attempts to keep a process on a single processor, but it is possible for a process to migrate between processors. • Hard affinity: allowing a process to specify a subset of processors on which it may run. I Invalidating and repopulating caches is costly. I Processor affinity: keep a process running on the same processor. Processor Affinity I What happens to cache memory when a process has been running on a specific processor, and then, the process migrates to another processor? Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 17 / 58 • Soft affinity: the OS attempts to keep a process on a single processor, but it is possible for a process to migrate between processors. • Hard affinity: allowing a process to specify a subset of processors on which it may run. I Processor affinity: keep a process running on the same processor. Processor Affinity I What happens to cache memory when a process has been running on a specific processor, and then, the process migrates to another processor? I Invalidating and repopulating caches is costly. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 17 / 58 • Soft affinity: the OS attempts to keep a process on a single processor, but it is possible for a process to migrate between processors. • Hard affinity: allowing a process to specify a subset of processors on which it may run. Processor Affinity I What happens to cache memory when a process has been running on a specific processor, and then, the process migrates to another processor? I Invalidating and repopulating caches is costly. I Processor affinity: keep a process running on the same processor. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 17 / 58 • Hard affinity: allowing a process to specify a subset of processors on which it may run. Processor Affinity I What happens to cache memory when a process has been running on a specific processor, and then, the process migrates to another processor? I Invalidating and repopulating caches is costly. I Processor affinity: keep a process running on the same processor. • Soft affinity: the OS attempts to keep a process on a single processor, but it is possible for a process to migrate between processors. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 17 / 58 Processor Affinity I What happens to cache memory when a process has been running on a specific processor, and then, the process migrates to another processor? I Invalidating and repopulating caches is costly. I Processor affinity: keep a process running on the same processor. • Soft affinity: the OS attempts to keep a process on a single processor, but it is possible for a process to migrate between processors. • Hard affinity: allowing a process to specify a subset of processors on which it may run. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 17 / 58 I Systems containing combined CPU and memory boards. I A process that is assigned affinity to a particular CPU can be allo- cated memory on the board where that CPU resides. NUMA and CPU Scheduling I Non-Uniform Memory Access (NUMA): a CPU has faster access to some parts of main memory than to other parts. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 18 / 58 I A process that is assigned affinity to a particular CPU can be allo- cated memory on the board where that CPU resides. NUMA and CPU Scheduling I Non-Uniform Memory Access (NUMA): a CPU has faster access to some parts of main memory than to other parts. I Systems containing combined CPU and memory boards. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 18 / 58 NUMA and CPU Scheduling I Non-Uniform Memory Access (NUMA): a CPU has faster access to some parts of main memory than to other parts. I Systems containing combined CPU and memory boards. I A process that is assigned affinity to a particular CPU can be allo- cated memory on the board where that CPU resides. Amir H. Payberah (Tehran Polytechnic) CPU Scheduling 1393/7/28 18 / 58 I Load balancing attempts to keep workload evenly distributed. I Push migration: periodic task checks load on each processor, and if found pushes task from overloaded CPU to other CPUs. I Pull migration: idle processors pulls waiting task from busy proces- sor.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    86 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us