操作系统教学课件OS_04
合集下载
操作系统课件os04存储管理
从外存中找到缺页
内存满否? 否 是
选择一页换出
否 该页被修改否? 是 将该页写回外存
否 CPU检索快表
页表项在快表中?
产生缺 页中断
否 访问页表
请求调 页
页在内存?
是 修改快表
OS命令CPU从外存读缺页
修改访问位和修改位
启动I/O硬件
形成物理地址
将一页从外存换入内存
地址变换结束
是 越界 中断
是
修改页表
页号
物理块号
状态位 P 访问字段 A
精选课件
修改位 M
外存地 址
3
2.缺页中断机构
➢ 在请求分页系统中,每当所要访问的页面不在内存时,便 产生一缺页中断,请求OS将所缺之页调入内存。
➢ 缺页中断同样需要经历: 1. 保护CPU环境 2. 分析中断原因 3. 转入缺页中断处理程序进行处理 4. 恢复CPU环境
页最近已有多长时间未被访问。
页号
物理块号
状态位 P 访问字段 A
精选课件
修改位 M
外存地 址
2
4.7 请求分页存储管理方式
4.7.1 请求分页中的硬件支持
1.页表机制
➢ 修改位M:供置换页面时参考。
• 表示该页在调入内存后是否被修改过。
➢ 外存地址
• 用于指出该页在外存上的地址,通常是物理块号
• 供调入该页时参考。
2) 先进先出页面替换算法FIFO 3) 最近最久未使用置换算法LRU 4) 时钟页面替换算法
精选课件
13
缺页率(缺页中断率)
➢ 如果作业p在运行中成功的访问次数为s, 不成功的访问
次数为F,则总的访问次数A为:A = s + F
操作系统课件os04存储管理课件
210
试问:(1)逻辑地址要用多少位表示:__3_+_1_0__,共__1_3_位___ (2)物理地址要用多少位表示:__5_+_1_0_,_共__1_5_位___
精选ppt
7
3.页表
➢ 页表是操作系统为每个进程建立的,记录了进程页面在主
存中对应的物理块号。
… …
…
用户程序 0页 1页 2页 3页 4页 5页
• 一次访问页表以确定所取数据或指令的物理地址
• 另一次是根据地址取数据或指令
➢ 这比通常执行指令的速度慢了一倍。
➢ 解决这个问题的一种方法
• 把页表放在一个特殊高速缓存中
✓快表(“联想寄存器”)
• 用以存放当前访问的那些页表项
精选ppt
13
2.具有快表的地址变换机构
页表寄存器
页表始址
页表长度
逻辑地址
➢ 每页的大小为212=4 KB
➢ 地址空间最多允许有1 M页
➢ 若给定一个逻辑地址空间中的地址为A,页面的大小为L ,则页号P和页内地址d可按下式求得:
P
INT
A L
d [A]MODL
精选ppt
6
25
练习 23
➢ 设一个逻辑地址空间有8个页面,每页大小为1024B,现
将它映像到32块物理块的内存上。
1 2
第n页页表 1468
¡
1023
精选ppt
¡
¡
0 1 2 3 4 5 6 7
114 115
1468
内存空间 18
逻辑地址结构
精选ppt
9
页面的保护
➢ 提供附加的保护措施,对存储在块中的内容加以保护。 ➢ 通常的办法是在页表中增加一些标志位,用来指出该页的信
操作系统课件-OS-第四章-第4章-4.4
bd 物理地址
15
4.4.3 两级和多级页表
现代的大多数计算机系统,都支持非常大的逻辑地址空 间(232~264)。在这样的环境下,页表就变得非常大,要占用 相当大的内存空间。
例如,对于一个具有32位逻辑地址空间的分页系统,规定页面大小 为4 KB即212 B,则在每个进程页表中的页表项可达1兆个之多。又 因为每个页表项占用一个字节,故每个进程仅仅其页表就要占用1 MB的内存空间,而且还要求是连续的。
但如果联想寄存器已满,则OS必须找到一个老的且已被认为不 再需要的页表项,将它换出。
2021/3/18
14
页表寄存器 页表始址 页表长度
> 越界中断
逻辑地址L 页号 页内 地 址
+ 页号
块号
b
页表
页号 块号
输
入
b
寄
存
器
快表
2021/3/18
优先考虑,适时更新 16~512个页表项
图4-14 具有快表的地址变换机构
长度,提高页面换进换出的速度,但却又会使页内碎片增大。
因此,页面的大小应选择适中,且页面大小应是2的幂,通 常为512 B~8 KB。
2021/3/18
4
2.地址结构 分页地址中的地址结构如下:它含有两部分:前一部分 为页号P,后一部分为位移量W(或称为页内地址)
图中的地址长度为32位,其中0~11位为页内地址,即每页的大小为 4 KB;12~31位为页号,地址空间最多允许有1 M页。
9
在 系 统 中 只 设 置 一 个 页 表 寄 存 器 PTR(Page-Table
Register),在其中存放页表在内存的始址和页表的长度。
平时,进程未执行时,页表的始址和页表长度存放在本进 程的PCB中。
操作系统OS_04讲义
用,通常放在低址部分;系统区以外的全部内 存空间是用户区。 特点 只能用于单用户、单任务的OS中。 软件简单,硬件要求低(无需存储保护) 实例 CP/M,MS-DOS,RT-11
2、固定分区分配
最简单的一种可运行多道程序的存储管理方式。 划分分区的方法 分区大小相等:
缺乏灵活性,用于控制多个相同对象的系统 分区大小不等:
第2页
页号 0 1 2
IMN块OT372号D::整取除余函第 第函02数页页数第第02页页0123
(A:第第逻34页页辑地址空间中43 的地95址,L:第页3页面第大3小页45)
例则如 求第第: 得56页页某 P=系2,统d的=1页2256面大小1110为1KB,第地1页址第A1页=6782170B,
根据进程的实际需要,动态的分配内存空间 内存管理方式: 空闲分区表——序号、起址、大小等项 空闲分区链——双向链表
前
后
向
向
指 N个字节 指 针 可用 针
N
N
+2 +2
0
成若干个目标模块。 主
主
链接:主链接程序
库
库
汇编
编译
由 目链 标子接 模1 程 块序,链(以接程及L序i它nk们er所)子1需将要编的译装入库后程函形序 数成链的接一子1在组
一起,形成装入模块。子2
子2
装入:子装2 入程序
装入模块
由目装标模入块程序(Loader)将装入模块复制到内
存中。
内存
2、地址空间的概念
(库L-1函数Ret)urn链; 接形成一个整体—L—-1 装R入etu模rn;块的过
程。
L 模块B
具体对工相M0-作对1 :地RC模eat址块lul rCBn的;; 修改;变链接换外部L调+LM+用M-1 J符SRR号”模etL块u。+rCnM; ”;
2、固定分区分配
最简单的一种可运行多道程序的存储管理方式。 划分分区的方法 分区大小相等:
缺乏灵活性,用于控制多个相同对象的系统 分区大小不等:
第2页
页号 0 1 2
IMN块OT372号D::整取除余函第 第函02数页页数第第02页页0123
(A:第第逻34页页辑地址空间中43 的地95址,L:第页3页面第大3小页45)
例则如 求第第: 得56页页某 P=系2,统d的=1页2256面大小1110为1KB,第地1页址第A1页=6782170B,
根据进程的实际需要,动态的分配内存空间 内存管理方式: 空闲分区表——序号、起址、大小等项 空闲分区链——双向链表
前
后
向
向
指 N个字节 指 针 可用 针
N
N
+2 +2
0
成若干个目标模块。 主
主
链接:主链接程序
库
库
汇编
编译
由 目链 标子接 模1 程 块序,链(以接程及L序i它nk们er所)子1需将要编的译装入库后程函形序 数成链的接一子1在组
一起,形成装入模块。子2
子2
装入:子装2 入程序
装入模块
由目装标模入块程序(Loader)将装入模块复制到内
存中。
内存
2、地址空间的概念
(库L-1函数Ret)urn链; 接形成一个整体—L—-1 装R入etu模rn;块的过
程。
L 模块B
具体对工相M0-作对1 :地RC模eat址块lul rCBn的;; 修改;变链接换外部L调+LM+用M-1 J符SRR号”模etL块u。+rCnM; ”;
操作系统课件-OS-第四章-第4章-4.5
分页系统中的“页”只是存放信息的物理单位(块), 并无完整的意义,不便于实现共享;
然而段却是信息的逻辑单位。 由此可知,为了实现段的共享,希望存储管理能与用户程序 分段的组织方式相适应。
2021/3/18
4
3) 信息保护
信息保护同样是对信息的逻辑单位进行保护,因此,分 段管理方式能更有效和方便地实现信息保护功能。
2021/3/18
14
(2) 页的大小固定且由系统决定,由系统把逻辑地址划 分为页号和页内地址两部分,是由机器硬件实现的,因而在 系统中只能有一种大小的页面;而段的长度却不固定,决定 于用户所编写的程序,通常由编译程序在对源程序进行编译 时,根据信息的性质来划分。
(3) 分页的作业地址空间是一维的,即单一的线性地址 空间,程序员只需利用一个记忆符,即可表示一个地址;而 分段的作业地址空间则是二维的,程序员在标识一个地址时 ,既需给出段名,又需给出段内地址。
每个段在表中占有一个表项,其中记录了该段在内存中的 起始地址(又称为“基址”)和段的长度。
2021/3/18
9
作业空间 (MAIN)=0 0
30 K 0
20 K 0
(X)=1 (D)=2
15 K (S)=3
0
段表 段号 段长 基址
0 30 K 40 K 1 20 K 80 K 2 15 K120 K
10 K150 K 3
10 K
2021/3/18
图4-17 利用段表实现地址映射
内存空间 0
(MAIN)=040 K 30 K (X)=1 80 K 20 K (D)=2 120 K 15 K (S)=3 150 K 10 K
10
3.地址变换机构
为了实现从进程的逻辑地址到物理地址的变换功能,在 系统中设置了段表寄存器,用于存放段表始址和段表长度TL 。在进行地址变换时,
然而段却是信息的逻辑单位。 由此可知,为了实现段的共享,希望存储管理能与用户程序 分段的组织方式相适应。
2021/3/18
4
3) 信息保护
信息保护同样是对信息的逻辑单位进行保护,因此,分 段管理方式能更有效和方便地实现信息保护功能。
2021/3/18
14
(2) 页的大小固定且由系统决定,由系统把逻辑地址划 分为页号和页内地址两部分,是由机器硬件实现的,因而在 系统中只能有一种大小的页面;而段的长度却不固定,决定 于用户所编写的程序,通常由编译程序在对源程序进行编译 时,根据信息的性质来划分。
(3) 分页的作业地址空间是一维的,即单一的线性地址 空间,程序员只需利用一个记忆符,即可表示一个地址;而 分段的作业地址空间则是二维的,程序员在标识一个地址时 ,既需给出段名,又需给出段内地址。
每个段在表中占有一个表项,其中记录了该段在内存中的 起始地址(又称为“基址”)和段的长度。
2021/3/18
9
作业空间 (MAIN)=0 0
30 K 0
20 K 0
(X)=1 (D)=2
15 K (S)=3
0
段表 段号 段长 基址
0 30 K 40 K 1 20 K 80 K 2 15 K120 K
10 K150 K 3
10 K
2021/3/18
图4-17 利用段表实现地址映射
内存空间 0
(MAIN)=040 K 30 K (X)=1 80 K 20 K (D)=2 120 K 15 K (S)=3 150 K 10 K
10
3.地址变换机构
为了实现从进程的逻辑地址到物理地址的变换功能,在 系统中设置了段表寄存器,用于存放段表始址和段表长度TL 。在进行地址变换时,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Two-level Model (P132)
Threading Issues (P138)
Semantics of fork() and exec() system calls Thread cancellation Signal handling Thread pools Thread specific data Scheduler activations
Semantics of fork() and exec() (P138)
Does fork() duplicate only the calling thread or all threads?
Thread Cancellation (P139)
Terminating a thread before it has finished. Two general approaches:
1. Signal is generated by particular event 2. Signal is delivered to a process 3. Signal is handled
Options:
Deliver the signal to the thread to which the signal applies. Deliver the signal to every thread in the process. Deliver the signal to certain threads in the process. Assign a specific thread to receive all signals for the process.
Many-to-Many Mo源自el (P130)Allows many user level threads to be mapped to many kernel threads. Allows the operating system to create a sufficient number of kernel threads. Solaris prior to version 9. Windows NT/2000 with the ThreadFiber package.
Benefits (P129)
Responsiveness Resource Sharing Economy Utilization of MP Architectures
User Threads (P129)
Thread management done by user-level threads library. (P131)
Three primary thread libraries:
POSIX Pthreads Win32 threads Java threads
Kernel Threads (P129)
Supported by the Kernel
Examples
Windows XP/2000 Solaris Linux Tru64 UNIX Mac OS X
Chapter 4: Threads (线程)
Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux Threads Java Threads
Single and Multithreaded Processes
Multithreading Models
Many-to-One One-to-One Many-to-Many
Many-to-One (P129,130)
Many user-level threads mapped to single kernel thread Examples:
Solaris Green Threads GNU Portable Threads
Many-to-Many Model (P131)
Two-level Model
Similar to M:M, except that it allows a user thread to be bound to kernel thread. Examples
IRIX HP-UX Tru64 UNIX Solaris 8 and earlier
Asynchronous (异步) cancellation terminates the target thread immediately. Deferred (延期) cancellation allows the target thread to periodically (周期性地) check if it should be cancelled.
Signal Handling (信号手柄) (P139)
Signals are used in UNIX systems to notify a process that a particular event has occurred. A signal handler is used to process signals.
Thread Pools (P141)
Create a number of threads in a pool where they await work. Advantages:
Usually slightly faster to service a request with an existing thread than create a new thread. Allows the number of threads in the application(s) to be bound to the size of the pool.
Many-to-One Model (P130)
One-to-One (P130)
Each user-level thread maps to kernel thread Examples
Windows NT/XP/2000 Linux Solaris 9 and later
One-to-one Model (P130)