操作系统第四章存储系统2016-11概要

上传人:今*** 文档编号:108443906 上传时间:2019-10-24 格式:PPT 页数:101 大小:3.09MB
返回 下载 相关 举报
操作系统第四章存储系统2016-11概要_第1页
第1页 / 共101页
操作系统第四章存储系统2016-11概要_第2页
第2页 / 共101页
操作系统第四章存储系统2016-11概要_第3页
第3页 / 共101页
操作系统第四章存储系统2016-11概要_第4页
第4页 / 共101页
操作系统第四章存储系统2016-11概要_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《操作系统第四章存储系统2016-11概要》由会员分享,可在线阅读,更多相关《操作系统第四章存储系统2016-11概要(101页珍藏版)》请在金锄头文库上搜索。

1、进程创建与软中断通信,#include #include #include #include int wait_flag; void stop() wait_flag=0; ; main() int pid1,pid2; wait_flag=1; signal(2,stop); /or signal(14,stop);,while(wait_flag=1); while(pid1=fork()=-1); if(pid10) while(pid2=fork()=-1); if(pid20) wait_flag=1; sleep(5); kill(pid1,16); kill(pid2,17);

2、wait(0); wait(0); printf(“Parent process is killed !n“); exit(0); ,else wait_flag=1; signal(17,stop); while(wait_flag=1); printf(“Child process 2 is killed by parent !n“); exit(0); ,else wait_flag=1; signal(16,stop); while(wait_flag=1); printf(“Child process 1 is killed by parent !n“); exit(0); ,指令的

3、执行 执行指令的基本过程分为两步,即: 从内存把指令读入的过程和执行的过程。 其中,读指令是根据程序计数器PC所指的地址读入,而执行的指令则是指令寄存器IR中的指令。 我们把指令的读入和执行过程称为一个执行周期。 图 指令的执行周期,图 计算机的基本硬件元素,图 控制器基本组成框图,5,微程序控制指令,6,2019/10/24,7,第四章,存储管理,2019/10/24,8,4.1 存储管理的基本概念(一),这里只讨论内存管理,外存管理在设备中讨论。,存储器是价格昂贵,数量不足的资源。存储管理的效率直接影响到系统的性能,也最能够反映一个操作系统的特色。因此,存储管理的问题是操作系统的核心问题。

4、,存储管理的目的 1。为用户使用存储器提供方便。 在逻辑空间编程 提供足够大的存储空间 2。充分发挥内存的利用率。,存储器的层次结构与访问速度 一般来说,容量越大的存储介质,访问速度会越慢,但单位存储的成本越低。 例如,光盘和磁盘。反过来说,如果存储介质的访问速度越高,则它的成本也会越高,例如寄存器。,存储介质的访问速度,与操作系统相关的几种主要寄存器 寄存器与操作系统密切相关,因为它们是在处理机中交换数据的速度比内存更快、体积也更小,而价格又更贵的暂存器件。 处理机中寄存器的功能分为二类,即用户可编程的寄存器以及控制与状态寄存器。 机器语言或汇编语言的程序员可对用户可编程寄存器进行操作,以获

5、得更高的执行效率等。 控制与状态寄存器则被用来对处理机的优先级、保护模式或用户程序执行时的调用关系等进行控制和操作。 一般来说,用户可编程寄存器和控制与状态寄存器之间没有严格的区分和限制,在不同的系统中,寄存器的功能和作用可能不完全相同。,典型的用户可编程寄存器包括以下几种: 1. 数据寄存器 编程人员可以通过程序赋予数据寄存器众多的功能。一般来说,对数据进行操作的任何机器指令都被允许访问数据寄存器。不过,根据硬件设置的规定,这些寄存器也可能只被允许进行浮点运算或被其他某些规定所限制。 2. 地址寄存器 地址寄存器一般用来存放内存中某个数据或指令的地址,或者存放某段数据与指令的入口地址以及被用

6、来进行更复杂的地址计算。下面几种寄存器都可被认为是地址寄存器:,(1) 地址标识位寄存器; (2) 内存管理用各种始地址寄存器; (3) 堆栈指针; (4) 设备地址寄存器等。 3. 条件码寄存器 条件码寄存器也称标志寄存器。条件码寄存器的比特位由处理机硬件设置。 典型的控制与状态寄存器包括以下几种: 4. 程序计数器PC 程序计数器内装有下一周期被执行指令的地址。 5. 指令寄存器IR 指令寄存器内装有待执行指令。,6. 程序状态字PSW 程序状态字寄存器的各个比特位代表系统中当前的各种不同状态与信息。如执行模式是否允许中断等。 7. 中断现场保护寄存器 如果系统允许不同类型的中断存在,则会

7、设置一组中断现场保护寄存器以便保存被中断程序的现场和链接中断恢复处。 8. 过程调用用堆栈 堆栈被用来存放过程调用时的调用名、调用参数、以及返回地址等。 寄存器被广泛应用于计算机系统中,它们与操作系统有着非常直接和密切的关系。 操作系统设计人员只有在完全掌握和了解硬件厂商所提供的各种寄存器的功能和接口之后,才能进行操作系统设计。,C语言用于动态存储分配的标准库函数,malloc(n) 分配 n 个字节的内存空间 calloc(m,n) 分配 m 个 n 字节的空间 free(*p) 释放指针p所指的存储空间 realloc(*p,n) 将指针p所指的空间大小改为 n个字节,2019/10/24

8、,15,4.1 存储管理的基本概念(二),讨论内容,装入模块,装入,内 存,装入程序,链接,装入,链接,运行,编译,2019/10/24,16,链接由链接程序将目标模块及其所需的库函数,装配 链接生成装入模块的过程。,一。程序的装入和链接,2019/10/24,17,2019/10/24,18, 静态链接 事先将所需目标模块链接生成一个完整的装入模块(. exe) 运行时直接装入内存。(P106图4-3 b), 动态链接 装入时链接 边装入时边链接。即装入一个目标模块后,再将它所调用的外部模块装入,可存放在内存的任何地方,并修改目标模块中的相对地址。 运行时链接 延迟到运行时,才将当前被调用的

9、目标模块装入,并链接。,1。程序的链接,2019/10/24,19,4.1 存储管理的基本概念, 绝对装入方式 装入程序按照装入模块中的绝对地址将程序和数据装入内存。 可重定位装入方式 装入模块为相对地址(逻辑地址),装入程序按照当前内存使用的情况,将装入模块装入内存的某个物理地址。但是装入后不允许移动。 重定位将逻辑地址转换为物理地址的过程,也称为地址变换或地址映射。 由于地址变换是在装入时一次完成的,又称为静态重定位。,2。程序的装入方式, 动态运行时装入方式 将装入模块装入内存后,运行时才进行地址变换,又称为动态重定位。,2019/10/24,20,2019/10/24,21,4.1 存

10、储管理的基本概念,1. 地址空间和存储空间 程序经过编译所形成的目标代码,一般使用相对地址; 即其首地址为 0 ,其它指令的地址是相对首地址而定。 相对地址又称为逻辑地址。 目标代码相对地址的全体称为程序的地址空间,或逻辑空间。 实际的内存物理地址的集合称为物理空间,或存储空间。,地址映射,存储管理的功能,2019/10/24,22,4.1 存储管理的基本概念,2、重定位(Relocation) 为了保证程序的执行,操作系统必须将执行过程要访问的逻辑地址转换为物理地址。这种地址的转换过程称为重定位或地址映射。,地址映射,存储管理的功能,重定位分为静态、动态两种: 静态重定位 程序装入过程中一次

11、完成地址映射。运行过程中,地址空间不允许改变。 优点:软件实现,无需硬件支持。 缺点:分配连续空间,程序不能移动。,2019/10/24,23,2019/10/24,24,4.1 存储管理的基本概念, 动态重定位 重定位发生在程序执行过程中,在访问指令或数据时,才进行地址变换。需要硬件地址变换机制实现。,500,1000,VR,BR,+,2019/10/24,25,4.1 存储管理的基本概念,存储管理的功能, 内存分配 内存保护 地址映射 内存扩充, 内存分配, 内存保护, 地址映射, 内存扩充, 内存分配,2019/10/24,26,4.1 存储管理的基本概念, 调入策略 确定装入时机 (预

12、调、请调) 放置策略 如何分配空闲内存区的原则 (算法、连续、 不连续) 淘汰策略 当使用请调策略时,确定淘汰哪些信息, 以腾出内存空间,以便调入需要的信息。,可分为相等和不相等的内存块,内存分配与回收,分配策略,内存划分,内存回收,回收进程所释放的存储空间,存储管理的功能,2019/10/24,27,4.1 存储管理的基本概念,实存方案 分区分配管理 分页管理 分段管理 段页式存储管理,虚存方案 请求式分页管理 请求式分段管理 请求段页式管理,二。存储管理的机制,内存分配策略 地址映射机制 内存保护机制,虚拟存储机制,2019/10/24,28,4.2 分区存储管理(一),一。固定分区(Fi

13、xed Partitions) 将内存固定划分为相等或不等的区域,称为分区,分区一旦划定,在执行过程中分区长度和个数将不再变化。建立内存分配表记录分区分配的情况。,简单、可靠,但产生分区“内零头”。内存利用效低。,分区存储管理的基本思想: 将内存划分为若干分区,对用户作业进行连续分配。,2019/10/24,29,4.2 分区存储管理(二),二.可变分区 可变分区分配是根据进程的实际需要,动态地为之分配内存空间。 1可变分区分配中的数据结构 为了实现分区分配,系统中配置相应的数据结构,为分配提供依据。常用的数据结构有以下两种形式: (1)空闲分区表。在系统中设置一张空闲分区表,用于记录每个空闲

14、分区的情况。 (2)空闲分区链。为了实现对空闲分区的分配和链接,设置前向指针和后向指针,通过前、后向链接指针将所有的空闲分区链接成一个双向链。,2019/10/24,30,2019/10/24,31,2可变分区分配算法 (1)首次适应算法FF :要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止; 该算法的优缺点:为大作业分配大的内存空间创造了条件。低址部分不断被划分,会留下许多难以利用的、很小的空闲分区。 (2)循环首次适应算法 : 将所有的空闲分区构成一个循环链表。采用循环查找方式,设置一个起始查寻指针,用于指示下一次起始查寻的空

15、闲分区。 该算法的优缺点:能使内存中的空闲分区分布得更均匀,从而减少了查找空闲分区时的开销,但这样会缺乏大的空闲分区。,2019/10/24,32,(3)最佳适应算法:该算法要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。 该算法的优缺点:为大作业分配大的内存空间创造了条件。每次分配后所切割下来的剩余部分总是最小的,这样,在存储器中会留下许多难以利用的小空闲区。,3. 动态分区分配,图 4-6 内存分配流程,2) 回收内存,图 4-7 内存回收时的情况,2019/10/24,35,4.2 分区存储管理(五),三。动态重定位分区分配,1.紧凑技术 也称为“拼凑”技术,用于解决可变分区中产生的“外零头”,即移动某些已分配分区,使“外零头”合并为一个大的连续空闲区。 (P111 图4-8),2。分配算法,请求分配,顺序查找 空闲分区表,有可用分区,动态分配,修改数据结构,Y,空闲区总 和需求,N,紧凑,修改数据结构,Y,返回,N,显然,可变分区分配克服了内零头,提高了内存的利率,但产生了外零头。使小碎片得不到利用。,返回分区号 及首地址,2019/10/24,36,2019/10/24,37,4.1 存储管理的基本概念, 动态重定位 重定位发生在程序执行过程中,在访问指令

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号