1 / 47

Scheduling

Scheduling. Key to multi-programming 多道程序设计的关键是调度 Four types of scheduling 调度有 4 种类型 Long term 长项调度 Medium term 中项调度 Short term 短项调度 I/O I/O 调度. Scheduling. Process: 进程定义 A program in execution 一个运行的程序 The “animated spirit” of a program

holleb
Télécharger la présentation

Scheduling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Scheduling • Key to multi-programming 多道程序设计的关键是调度 • Four types of scheduling 调度有4种类型 • Long term 长项调度 • Medium term 中项调度 • Short term 短项调度 • I/O I/O调度

  2. Scheduling • Process: 进程定义 • A program in execution 一个运行的程序 • The “animated spirit” of a program 程序的“活灵魂” • That entity to which a processor is assigned 处理器分配的实体

  3. Long Term Scheduling • Determines which programs are submitted for processing 确定哪一些程序被提交到系统处理 • i.e. controls the degree of multi-programming 它控制多道程序设计的度(内存中的进程数) • Once submitted, a job becomes a process for the short term scheduler 一旦提交,作业就成为进程加入到短项调度程序的队列中等待短项调度 (or it becomes a swapped out job for the medium term scheduler) 加入到中项调度程序的队列中

  4. Long Term Scheduling • Batch system 在批处理系统中 • newly submitted jobs are held in a batch queue 新提交的作业保存在批处理队列中 • Long term scheduler creates processes from the queue 长项调度程序从队列中选择任务为其创建进程 • Criteria include priority, expected execution time, I/O requirements 选择采用的标准有:优先级、期望的执行时间和I/O需求

  5. Long Term Scheduling • Time sharing system 分时系统中 • When a user attempts to connect to the system, a process request is generated 当用户希望连接系统时,产生一个进程请求 • Operate system will accept all authorized comers 分时用户不是简单地排队等待,而是操作系统接收所有允许的请求 • “the system is full and user should try again later” when system is saturated 当系统饱和时连接请求会遇到“系统已满和以后再试”的信息

  6. Medium Term Scheduling • Part of the swapping function (later…) 中项调度是7.3节内存管理将介绍的换入裁决的一部分 • Usually based on the need to manage multi-programming 一般,换入裁决是基于多道程序“度”的管理需要 • With or without virtual memory, memory management is an issue 无论有没有虚拟存储系统,存储管理都是一个重要问题,

  7. Short Term Scheduler • Dispatcher (也称派遣程序) • Execute frequently 执行频繁 • Fine grained decisions of which job to execute next 并细粒度地判决下次执行哪个作业 • i.e. which job actually gets to use the processor in the next time slot 在下一个时间片哪个作业将获得处理器的使用权 • High-level scheduler 高级调度程序 • Execute relatively infrequently 执行相对较少 • Coarse grained decision of whether or not to take on a new process 粗粒度地决定是否接受一个新进程

  8. Process States

  9. Process Control Block 进程控制块(PCB) • Identifier 标识符 • State 状态 • Priority 优先级 • Program counter 程序计数器 • Memory pointers 存储器指针 • Context data 现场数据 • I/O status I/O状态信息 • Accounting information 统计信息

  10. PCB Diagram When the scheduler accepts a new job, it creates a blank process control block and places the associated process in the new state.After the system has properly filled in the process control block, the process is transferred to the ready state. 当调度程序接收到一个新的作业时,它产生一个空的进程控制块,并使相关进程处于新的状态。当系统填完PCB后,进程进入就绪状态。

  11. Process Scheduling

  12. Memory Management • Uni-program 在单道程序设计系统中 • Memory split into two 主存划分成两大部分 • One for Operating System (monitor) 一部分给操作系统(常驻监控程序) • One for currently executing program 另一部分结当前正在执行的程序 • Multi-program 在多道程序设汁系统中 • “User” part is sub-divided and shared among active processes 存储器的“用户”部分必须进一步划分以适应多个进程

  13. Swapping • Problem: I/O is so slow compared with CPU that even in multi-programming system, CPU can be idle most of the time 由于处理器速度比I/o快得多,因此,即使在多道程序设计中处理器仍可能有许多时间处于空闲状态。 • Solution • Increase the degree of multiproramming 增加多道程序度 • Approaches 解决办法 • Increase main memory 扩充主存 • Expensive 主存昂贵 • Leads to larger programs程序对主存容量需求增长更快 • Swapping 交换技术

  14. What is Swapping? • Long term queue of processes stored on disk, Processes are brought in as space becomes available, As a process completes it is moved out of main memory 有一个进程请求的长项队列通常存储在磁盘上,当主存有空间时,进程被调入,每次调入一个。当进程完成时,移出主存。 • If none of the processes in memory are ready (i.e. all I/O blocked) 当存储器中无进程处于就绪状态时 (如:I/O阻塞) • Swap out a blocked process to intermediate queue 处理器把这些进程中的一个调回磁盘,排人中间队列 • Swap in a ready process or a new process 然后从中间队列中调入另一个进程执行 • But swapping is an I/O process... 然而,交换是—种I/O操作

  15. Swapping Disk Storage Disk Storage Main Memory Main Memory Operating System Operating System Intermediate Queue Completed Job Completed Job Long-Term Queue Long-Term Queue Simple Job Scheduling Swapping

  16. Partitioning • Splitting memory into sections to allocate to processes (including Operating System) 将内存分成几部分,分配给多个进程,包括操作系统 • Fixed-sized partitions 定长分区 • May not be equal size 分区是固定长度,但是大小可以不等 • Process is fitted into smallest hole that will take it (best fit) 当一个进程调入主存时,分配给它一个能容纳它的最小的分区 • Some wasted memory 但是主存仍然有浪费 • Leads to variable-sized partitions 产生了变长分区

  17. FixedPartitioning

  18. Variable Sized Partitions (1) • Allocate exactly the required memory to a process 当—个进程调入主存时,分配的分区大小与进程所需大小一样 • This leads to a hole at the end of memory, too small to use • Only one small hole - less waste 开始所有程序按顺序连续分配内存,只在存储器末端留下一空块,浪费少 • When all processes are blocked, swap out a process and bring in another 当所有进程都阻塞后,换出一个进程,然后换进一个新的 • New process may be smaller than swapped out process 新换进来进程的大小可能小于换出后留下的空间 • Another hole 这样就又形成另一个空块

  19. Effect of Dynamic Partitioning

  20. Variable Sized Partitions (2) • Eventually have lots of holes (fragmentation) 最后内存中会留下很多空块(碎片) • Solutions: • Compaction - From time to time go through memory and move all hole into one free block (c.f. disk de-fragmentation) 为了解决这个问题.采用一种紧缩技术。 操作系统一次次移动存储器中的进程,把所有空闲的空间放在起,组成新的块。如计算机磁盘碎片整理

  21. Relocation 重定位 • No guarantee that process will load into the same place in memory当进程它换入时一般都分配到不同的分区 • Instructions contain addresses 指令中包含地址 • Locations of data 数据地址 • Addresses for instructions (branching) 指令地址(分支指令) • Logical address - relative to beginning of program 逻辑地址表示相对于程序起始的单元 • Physical address - actual location in memory (this time) 物理地址是主存中的一个实际单元地址 • Automatic conversion using base address 当处理器执行进程时,通过把当前进程的起始单元地址(称为基地址)加到每个逻辑地址上,自动地把逻辑地址转换成物理地址。

  22. Paging 分页 • Split memory into equal sized, small chunks -page frames 把存储器分成相等的固定长且比较小的存储块(页帧) • Split programs (processes) into equal sized small chunks – pages 把每个进程也划分成小的固定长的程序块 (页) • Allocate the required number page frames to a process 为每个程序分配必须数量的页帧 • Operating System maintains list of free frames 操作系统负责维护空闲帧列表 • A process does not require contiguous page frames 一个进程并不需要连续的页帧 • Use page table to keep track 它通过页表进行维护

  23. Logical and Physical Addresses frame 0 1 2 3

  24. Paging Example • The size of a physical main memory is 128 bytes, A process has 8 pages, and each page has 4 bytes a) What is the length of a logical address? b) What is the length of a physical address? c) Given the following page table, what is the physical address of logical address 13? Page Table 0 1 2 3 4 5 6 7 2 4 8 30 5 15 16 27

  25. Paging Example Ans: a) page# offset page#: 3 bits, offset: 2 bits  5 bits Page Table 0 1 2 3 4 5 6 7 2 4 8 30 5 15 16 27 b) frame# offset frame#: 5 bits, offset: 2 bits  7 bits c) logical address 13 = 011 01 physical address = 11110 01 = 121

  26. Virtual Memory 虚拟存储器 • Demand paging (请求分页) • Do not require all pages of a process in memory, bring in pages as required 一个进程的所有页不需要都装入内存,每个页只在需要时调人即可 • Page fault 缺页处理 • Required page is not in memory当所需要的页不在内存时 • Operating System must swap in required pageOS需要将其调入 • May need to swap out a page to make space这时可能因为没有空的页帧而需要调出一页 • Select page to throw out based on recent history要调出的页可以根据最近使用的原则进行选择

  27. Thrashing (系统抖动) • Too many processes in too little memory, Operating System spends all its time swapping, Little or no real work is done, Disk light is on all the time 当有大量进程在内存时,OS将忙于进行页交换,真正用于工作的时间就会减少,硬盘也会不停的工作 • Solutions • Good page replacement algorithms 好的页替代算法 • Reduce number of processes running 减少运行的进程数 • More memory 增大内存

  28. Bonus of Virtual Memory 虚存的优点 • We do not need all of a process in memory for it to run. We can swap in pages as required 一个进程不需要全部装入主存就可以运行。可以在需要时换入 • So - we can now run processes that are bigger than total memory available! 可以运行大于整个主存的进程 • Main memory is called real (or physical) memory 主存称为实(物理)存储器 • User/programmer sees much bigger memory - virtual memory 程序员/用户看到一个分配在磁盘上的太得多的存储器称为虚拟存储器

  29. Page Table Structure 页表结构 • Problem • Each process needs one page table 一个进程需要一张页表 • Page tables need to be stored in main memory 页表必须驻留主存 • E.g., 231 virtual memory per process page size = 29 bytes  231/ 29 = 222 page table entries  too big

  30. Page Table Structure • Solutions • Page page tables (将页表分页) • Multi-level scheme (多级分页) • Inverted page table (倒置分页)

  31. Page Table Structure

  32. Translation Lookaside Buffer(转换后备缓冲) • Each virtual memory reference causes two physical memory accesses (why?) 每次虚拟存储器的访问要产生两次物理存储器存取 • Fetch page table entry 一次是获取相应的页表项 • Fetch data 另一次是获取所需的数据 • Solution: TLB • Special cache for page table entries recently used 用来存储最近使用的页表项的特殊cache • For a memory access • CPU checks the TLB first 首先CPU查询TLB • If not found then access page table (in memory) 如果不出现,则从内存页表中取项 • Then access what we want 然后查找我们所需要的数据

  33. P257

  34. TLB and Cache Operation

  35. Segmentation 分段 • Paging is not (usually) visible to the programmer 分页对程序员来说是不可见的 • Segmentation is visible to the programmer 分段可见 • Segment: variable, dynamic size 段的长度是可变的动态的 • Usually different segments allocated to program and data 通常把程序和数据分配给不同的段 • May be a number of program and data segments 各种类型的程序可以有许多程序段和数据段 • Some systems combine segmentation with paging 有些系统装有提供分页和分段两种方法

  36. Pentium II • Hardware for segmentation and paging 包含用于分段和分页的硬件 • Unsegmented unpaged 未分段未分页存储器 • Unsegmented paged 分页未分段存储器 • Segmented unpaged 分段未分页存储器 • Segmented paged 分段分页存储器

  37. Pentium II Address Translation Mechanism 16 32 10 10 12

  38. Pentium II Segmentation(1) • Each virtual address is 16-bit segment and 32-bit offset 每个虚拟地址由一个16位段引用和一个32位偏移量组成 • 2 bits of segment are protection mechanism 段中两位用于保护机制 • 14 bits specify segment 余下的14位表示一个具体的段

  39. Pentium II Segmentation(2) • Unsegmented virtual memory 232 = 4Gbytes 对无分段的存储器,用户的虚拟地址是232 = 4G字节 • Segmented 246=64 terabytes 对有分段的存储器,用户虚拟空间为246=64T字节 • Can be larger – depends on which process is active 根据当前哪个进程是活动的, 虚拟存储器容量实际能大于64T字节, 并被分成两部分 • Half is global 一半是全局的 ,被所有进程共享 • Half is local and distinct for each process, 另一半是局部的.每个进程都不同。

  40. Pentium II Segmentation 处理器P1的私用虚拟空间 处理器P2的私用虚拟空间 全局共享虚拟空间 物理存储器 物理存储器 P1空间 P2空间 Half (8K segments of 4Gbytes) is global Half is local and distinct for each process Synonym problem

  41. Pentium II Protection • Each segment has two forms of protection: 与每段有关的两种保护方式是 • Privilege level 优先级 • Access attribute 存取属性

  42. Pentium II Protection – privilege(1) • Privilege level • Protection bits give 4 levels of privilege from 0 most protected to 3 least ; 保护优先级有4种,从最高(0级)到最低(3级) • An executing program may only access data segments for which its privilege level is ≤ the privilege level of the data segment. 当正在执行的程序许可级低于(更高特权)或等于(相同特权)数据段的优先级时,它可存取此数据段。

  43. Pentium II Protection – privilege(2) • Privilege level • Usually level 3 for applications, level 1 for O/S and level 0 for kernel (level 2 not used) 通常3级用于应用程序,优先级1用于操作系统,0级用于小部分专用于存储管理、保护和存取控制的操作系统内核,2级未用 • Level 2 may be used for apps that have internal security e.g. database 2级可以用于要实现自己的安全机构的特殊且必须受保护的应用子系统 • Except for regulating access to data segments,the privilege mechanism limits the use of certain instructions. 优先级机制除了控制对数据段的访问权限外.它还用来限制某些指令的使用

  44. Pentium II Protection – access • Access attribute • Specifies a data segment whether read-write or read-only accesses are permitted; and specifies a program segment read-execute or read-only access. 一个数据段的存取属性表明该数据段是否允许读/写存取或只读存取。对于程序段,存取属性表示该程序段读执行或只读存取。

  45. Pentium II Paging • Segmentation may be disabled 分段可以被禁止 • In which case linear address space is used 程序中使用线性地址 • Two level page table lookup 二级页表检索 • First, page directory 第1级是页目录 • 1024 entries max 包含可达1024个项 • Splits 4G linear memory into 1024 page groups of 4Mbyte 把4G字节的线性存储空间分隔成1024个长度为4M字节的页组 • Each page table has 1024 entries corresponding to 4Kbyte pages 每个页表包含达1024个项,每项对应单个的4K字节页 • Page directory for current process always in memory 当前任务的页目录总是在主存中

  46. Pentium II Address Translation Mechanism 16bits 32bits 10bits 12bits 10bits

  47. 作业 • 7.1 • 7.5 • 7.10 • 7.12

More Related