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

  • 相关阅读:
    php 对输入信息的过滤代码
    svn命令备忘
    php下载文件的代码示例
    html中meta的用法
    程序员技术练级攻略
    JavaScript输出对象的内部结构
    转载Web架构师成长之路
    php代码执行效率测试工具xhprof安装&使用
    [译]Pro ASP.NET MVC 3 Framework 3rd Edition (Chapter 20 JQuery) 5.Using jQuery Events 使用jQuery事件
    [译]Pro ASP.NET MVC 3 Framework 3rd Edition (Chapter 20 JQuery) 6.Using jQuery Visual Effects 使用jQuery特效
  • 原文地址:https://www.cnblogs.com/mollnn/p/14704272.html
Copyright © 2011-2022 走看看