Download presentation
Presentation is loading. Please wait.
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 (也称派遣程序) High-level scheduler 高级调度程序
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 Simple Job Scheduling 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
Fixed Partitioning
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 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 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 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 = physical address = = 121
26
Virtual Memory 虚拟存储器 Demand paging (请求分页) Page fault 缺页处理
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 page OS需要将其调入 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 分段分页存储器 virtual address=physical address虚拟地址和物理地址相同 Low complexity, High performance 适用于如低复杂性、高性能的控制器
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
物理存储器 处理器P2的 私用虚拟空间 Half is local and distinct for each process P1 空间 P2 空间 全局共享虚拟空间 物理存储器 Half (8K segments of 4Gbytes) is global 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 当前任务的页目录总是在主存中 Use TLB holding 32 page table entries TLB能保存32个页表项 Two page sizes available 4k or 4M 页长度可以为4k or 4M
46
Pentium II Address Translation Mechanism
16bits 32bits 10bits 10bits 12bits
47
作业 7.1 7.5 7.10 7.12
Similar presentations