zoukankan      html  css  js  c++  java
  • Operation System Concepts Ch.5 Process Scheduling

    Time-sharing

    Hdw save u-regs(A) to k-stack(A)

    OS save k-regs(A) to PCB(A)

    OS restore k-regs(B) from PCB(B)

    Hdw restore u-regs(B) from k-stack(B)

    CPU scheduler decides which runs next

    Dispatcher performs context switch (switch context, switch to user mode, jump to proper location)

    Dispatch latency: time it takes

    Timing: CPU scheduling decisions make occur when a process: run->wait, run->ready, wait->ready, end (->ready may be preemptive)

    Scheduling Overview

    Criteria: CPU utilization, throughput, turnaround time, waiting time, response time

    Assumptions:

    1. same amount of time
    2. same arrive time
    3. no preemption
    4. only CPU, no I/O
    5. length known

    FCFS

    just FIFO

    now, relax assumption 1

    Convoy effect: short queued behind heavyweight

    SJF

    shortest job first

    it's a special case of priority

    Priority

    priority highest first

    Starvation: low prio may never execute

    Aging: as time goes by, prio++

    HRRN

    highest response ratio next

    [RR=1+frac {wait} {Erun} ]

    relax assumption 3: preemptive (modern)

    Preemptive SJF

    also called STCF, SRTF

    good for turnaround time, not good for response time

    Round-Robin

    time-slicing

    good for response time, not good for turnaround time

    relax 4, consider I/O, then... break job into subjobs

    relax 5, can only estimate length, use exp averaging (T_{n+1}=alpha t_n + (1-alpha) T_n)

    MLQ

    ready queue separate (e.g. fore interactive, back batch)

    proc permanently in a given queue

    each queue has own algorithm (e.g. fore RR, back FCFS)

    cross-queue schedule: fixed priority, time slice

    MLFQ

    relax all assumptions

    goal: optimize turnaround time, minimize response time

    idea: learn the feature (first assumes a short, if not, move down)

    Original Version

    1. A>B, A run
    2. A=B, RR
    3. new, highest
    4. uses up entire time slice, prio reduce
    5. give up before slice end, prio keep

    Limitations: starvation (too many short), game (hack), changeable

    Priority Boost

    New Rule: After some period S, move all jobs in the topmost queue

    Improvement: no starvation, prio adjust

    Better Accouting

    how to prevent the game (hack)?

    New Rule: Once use up (acc), prio reduced

    note: vary length across different queues

    etc

    Thread Scheduling

    it is kernel-level threads(not processes) that are being scheduled

    M:1/M:M: thread lib schedules uer-level threads to run on LWP

    Multiple-Processor Scheduling

    Cache Affinity

    Asymmetric MP: single-queue mp scheduling, all job in a single queue

    Symmetric MP: one queue per CPU, each queue a particular discipline,

    Real-Time

    Soft: no guarantee

    Hard: must by deadline

    Interrupt/Dispatch latency

  • 相关阅读:
    进度条
    html5 表单新增事件
    html5 表单的新增type属性
    html5 表单的新增元素
    html5 语义化标签
    jq 手风琴案例
    codeforces 702D D. Road to Post Office(数学)
    codeforces 702C C. Cellular Network(水题)
    codeforces 702B B. Powers of Two(水题)
    codeforces 702A A. Maximum Increase(水题)
  • 原文地址:https://www.cnblogs.com/mollnn/p/14704272.html
Copyright © 2011-2022 走看看