1. Trang chủ
  2. » Công Nghệ Thông Tin

Advanced Operating Systems: Lecture 17 - Mr. Farhan Zaidi

13 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Advanced Operating Systems - Lecture 17: Linux scheduling. This lecture will cover the following: some problems with multilevel queue concept; some unix scheduling problems; linux scheduling; lottery scheduling - random simplicity; grace under load change; classifications of multiprocessor systems;...

CS703 – Advanced  Operating Systems By Mr Farhan Zaidi Lecture No. 17 Some problems with multilevel queue concept  Can’t low priority threads starve?   Ad hoc: when skipped over, increase priority What about when past doesn’t predict future?   e.g., CPU bound switches to I/O bound Want past predictions to “age” and count less towards current view of the world Summary  FIFO:    RR:    + better for short jobs - poor when jobs are the same length STCF:     + simple - short jobs can get stuck behind long ones; poor I/O + optimal (ave response time, ave time-to-completion) - hard to predict the future - unfair Multi-level feedback:   + approximate STCF - unfair to long running jobs Some Unix scheduling problems  How does the priority scheme scale with number of processes?  How to give a process a given percentage of CPU?  OS implementation problem:   OS takes precedence over user process user process can create lots of kernel work: e.g., many network packets come in, OS has to process When doing a read or write system call, … Linux Scheduling Builds on traditional UNIX multi-level feedback queue scheduler by adding two new scheduling classes  Linux scheduling classes: - SCHED_FIFO: FCFS real-time threads - SCHED_RR: round-robin real-time threads - SCHED_OTHER: Other non-real-time threads Multiple priorities may be used within a class Priorities in real-time classes are higher than non-realtime classes  Linux Scheduling (2)  Rules for SCHED_FIFO The system will not interrupt a SCHED_FIFO thread except in the following cases: a b c Another FIFO thread of higher priority becomes ready The executing FIFO thread blocks on I/O etc The executing FIFO threads voluntarily gives up the CPU e.g terminates or yields When an executing FIFO thread is interrupted, it is placed in the queue associated with its priority Linux Scheduling (3)   SCHED_RR class is similar to SCHED_FIFO except that there is a time-slice associated with an RR thread On expiry of the time slice, if the thread is still executing, it is pre-empted and another thread from either SCHED_FIFO or SCHED_RR is selected for execution SCHED_OTHER class is managed by the traditional UNIX scheduling algorithms i.e multi-level feedback queue Lottery scheduling: random simplicity  Problem: this whole priority thing is really ad hoc   Lottery scheduling! Very simple idea:      How to ensure that processes will be equally penalized under load? give each process some number of lottery tickets On each scheduling event, randomly pick ticket run winning process to give process P n% of CPU, give it (total tickets)* n% How to use?   Approximate priority: low-priority, give few tickets, high-priority give many Approximate STCF: give short jobs more tickets, long jobs fewer Key: If job has at least 1, will not starve Grace under load change  Add or delete jobs (and their tickets):  affect all proportionally Example: give all jobs 1/n of cpu?  jobs, ticket each    1 each gets (on average) 25% of CPU Delete one job: 1 automatically adjusts to 33% of CPU! Easy priority donation:  Donate tickets to process you’re waiting on  Its CPU% scales with tickets of all waiters   Classifications of Multiprocessor  Systems  Loosely coupled or distributed multiprocessor, or cluster   Functionally specialized processors    Each processor has its own memory and I/O channels Such as I/O processor Controlled by a master processor Tightly coupled multiprocessing   Processors share main memory Controlled by operating system Granularity of parallelism  Coarse and Very Coarse-Grained Parallelism    Synchronization among processes at a very gross level (after > 2000 instructions on the average) Good for concurrent processes running on a multiprogrammed uniprocessor Can by supported on a multiprocessor with little change Granularity of parallelism  Medium grained parallelism    Single application is a collection of threads Threads usually interact frequently Fine-Grained Parallelism   Highly parallel applications Specialized and fragmented area ... UNIX multi-level feedback queue scheduler by adding two new scheduling classes  Linux scheduling classes: - SCHED_FIFO: FCFS real-time threads - SCHED_RR: round-robin real-time threads - SCHED_OTHER:... short jobs - poor when jobs are the same length STCF:     + simple - short jobs can get stuck behind long ones; poor I/O + optimal (ave response time, ave time-to-completion) - hard to predict... real-time threads - SCHED_OTHER: Other non-real-time threads Multiple priorities may be used within a class Priorities in real-time classes are higher than non-realtime classes  Linux Scheduling (2)

Ngày đăng: 05/07/2022, 12:27

Xem thêm:

Mục lục

    CS703 – Advanced Operating Systems

    Some problems with multilevel queue concept

    Some Unix scheduling problems

    Lottery scheduling: random simplicity

    Grace under load change

    Classifications of Multiprocessor Systems

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN