《操作系统模拟环境的设计与实现.pdf》由会员分享,可在线阅读,更多相关《操作系统模拟环境的设计与实现.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、文章编号:!#$%&($!)&!#%操作系统模拟环境的设计与实现黄志华,郭朝珍,丁善镜(福州大学计算机科学与技术系,福建 福州&$)摘要:提出了开发操作系统()*软件的新思路,把操作系统()*软件建立在操作系统模拟环境的基础上+描述了操作系统模拟环境的设计思想与实现方法+关键词:操作系统;()*;模拟环境中图分类号:,-&!.文献标识码:)当前多数操作系统()*软件是按照操作系统中章节的安排,把操作系统原理分解成一些模块,用多媒体的手段分别表现各个模块的原理!+多媒体手段的形象化与生动性确实对操作系统的教学有帮助+但是操作系统是一个有机的整体,各模块之间存在着密切的联系,仅仅孤立地表现各模
2、块的原理是不够的,有必要在操作系统()*软件中建立一个操作系统模型以模拟各种典型的操作系统+用户可以通过操作系统()*软件了解该模型在不同情况、不同时刻的状态+笔者在开发操作系统()*软件时采用了这种思想,文中把模拟各种典型操作系统的模型称为操作系统模拟环境+!设计操作系统模拟环境的基本思想!+!操作系统模拟环境的组成及功能操作系统模拟环境由虚拟的个系统进程、(-/、内存(!0)及外设(串行口、打印机、声音设备和磁盘*1各一个)组成+个虚拟系统进程分别是进程管理进程、内存管理进程、设备管理进程、文件管理进程及作业管理进程,形成了模拟的操作系统内存映象+操作系统模拟环境的各个组成部分均在屏幕上由
3、不同的图形或动画表示它们的活动情况+用户可以设定操作系统模拟环境中的进程调度策略、时间片长短和内存管理策略+操作系统模拟环境中一切进程间的切换都由进程管理进程控制+个系统进程在系统初始时被创建,创建后处于非活动状态,此时,(-/要么空闲,要么在执行应用程序+系统每隔一小段时间激活检测程序+经检测,如需要激活系统进程,则首先激活进程管理进程,再由进程管理进程控制其它系统进程的活动,完成任务后,系统进程又转入非活动状态;如不需激活系统进程,(-/继续刚才的状态+应用进程在运行过程中如遇到与系统资源有关的指令,必须激活系统进程+操作系统模拟环境默认,检测程序运行时间极短,忽略不计,系统进程每运行一次
4、占用(-/一个单位时间$+用户可以向操作系统模拟环境提出应用问题+一个应用问题由一个或多个用户作业组成,每个作业由一个或多个进程组成+应用问题中的作业和进程都由数据来表示+用户提出应用问题后,可以看到该应用问题在操作系统模拟环境中的活动情况+!+描述应用问题的方法描述应用问题的方法必须反映实际应用的特征,这里采用与时间有关的方法来描述应用问题+为此,引入系统绝对时间和进程内相对时间两个概念+把操作系统模拟环境开始演示的时刻指定为时刻,并依此向后计时的时间称为系统绝对时间+一个进程中的某个操作在进程中的位置是固定的,但(-/是交替执行不同进程的代码,不能规定进程中的某个操作会发生在系统绝对时间的
5、确切时刻,因此描述进程内的操作必须采用进程内相对时间+进程内相对时间是把进程在(-/上实际所运行的时间进行时间刻度的划分,起始刻度为+用户可以规定进程在某个进程内相对时间上会发生什么操作+收稿日期:$#!#$作者简介:黄志华(!2 3!#),男,硕士,讲师+第$2卷 第&期福州大学学报(自然科学版)4 5 6+$27 5+&$!年.月8 5 9:;9?5 9/;A B C:D A E F(7 E 9:6 G H A C;H C)8 9;+$!万方数据描述进程的数据由进程的提交时间、进程自身所占用的内存空间大小、进程内的操作!部分组成进程的提交时间是用户把一个程序提交给计算机的时间,可用一个系统
6、绝对时间来表示它与进程的创建时间不同,因为创建进程只会在操作系统响应用户请求后进行进程自身所占用的内存空间大小是指进程所对应的代码和数据所需要的内存空间大小,可直接用数据来表示进程内的操作用进程内相对时间表示操作在进程内的相对位置,操作有以下几种:申请或释放内存、申请或释放外围设备(如声卡、串口、磁盘等)和读或写文件如果在进程内某个相对时间上没有设定具体的操作,操作系统模拟环境默认,此处的代码是一个与系统资源无关的指令!一个应用问题实例#$%&(#)*+,;*+,)-+.#/;%(0 1+3 2 -+.#/)4 5;/6,&1 0 0 1+3 2 -+.#/)!;&2+3 2
7、-+.#/)4 7;-+.#/)0%/8 4,0%/8 5;0%/8 4)5,4 4,打印机;0%/8 5)!,4 7,串行口以上式子描述了一个应用问题该应用问题#$%&(#由*+,作业组成,*+,作业由-+.#/进程组成,-+.#/进程需要占用9:;4 5个时间单位,需要占用内存4 7%(/0#5:1 3/6,&1 0:-+2.?#.8 0?#=.-#%0#:-+,+0+/0#A/0#!:1 3#=B (%C 2.?#.8 0?#=#=B/0#D:1 3#=B 0 1/(1.#2.?#.8 0?#=B 1/%0.?:-+,+0+/0#A/0#E:1 3#=B:-+2.?#.8 0?#=#
8、=B:-+,+0+/0#A/0#F:#$#.6 0#:-+/0#A:1 3!2 0#/0 0?#=+0+/0#E#(/#!2 0#/0)!G 1=0#-%(,+0+/0#5 其中:!表示系统绝对时间;!2 0#/0表示即将到来的系统检测时间,0 1/(1.#表示系统规定的时间片,1=0#-%(表示系统规定的系统检测时间间隔(这里默认取值为0 1/(1.#5或0 1/(1.#D),-6=0 1表示当前运行的进程在当前时刻实际已占用9:;的时间/6,&1 0:-+2.?#.8:检查是否有进程已提交,即判断是否有进程的提交时间小于或等于!若有,返回0-6#,否则返回3%(/#.-#%
9、0#:-+:完成创建进程的操作,产生演示动作7 5、4 4,-6=0 1)7,!G 4,并将-6=0 1保存到描述进程的数据中检查是否无进程处于运行态,若无,则将该进程转为运行态,产生演示动作4 5 检查该进程是否是所属作业的第一个进程若是,则把该作业从准备状态转变为运行状态,产生演示动作5!福州大学学报(自然科学版)第5 H卷万方数据!、!#、!$,!%$&返回&()*+,-./0 /1:若所有作业都进入完成态,则演示结束,返回2 3 4,否则返回5,+6&()2 7 8 6+7/./0 /1:检查当前进程的时间片是否用完,若3 4(2 7 8 .当前进程的描述信息中运行时间记录!2
10、 7 8 6+7/,则用完了,返回2 3 4,否则返回5,+6&)7 6*,2/0 9 3::从就绪队列中选择一个进程,将它的状态改为运行态,把当前运行进程的状态改为就绪态,插入就绪队列,保存原3 4(2 7 8 的值至原进程的描述数据中,用新进程的运行时间记录更新3 4(2 7 8&产生演示动作!$、;/4 2 9 3::若无进程处于运行态,则!#;,返回&否则,判断当前进程的当前操作是否与系统资源有关&若无关,则产生演示动作!;,3 4(2 7 8?3 4(2 7 8%;,!%;,返回&若有关,6-6 2 8/,+返回&6-6 2 8/,+:若是申请内存操作,采用操作系统模拟环境的当前内存
11、管理策略为进程分配内存&如分配成功,产生演示动作!$、!、!A或;!、!$,3 4(2 7 8?3 4(2 7 8%;,!%,返回&如分配不成功,则挂起该进程,采用操作系统模拟环境的当前进程调度策略从就绪队列中选择一个进程,将其状态置为运行态,保存原3 4(2 7 8 的值,用新进程的运行时间记录更新3 4(2 7 8&产生演示动作!$、!、$、!$、;B、;$,!%,返回&若是释放内存操作,采用操作系统模拟环境的当前内存管理策略为进程释放内存&产生演示动作!$、!、$A或!、!$,3 4(2 7 8?3 4(2 7 8%;,!%&检查是否可唤醒某个等待内存的进程,若可,则唤醒它并产生演示动作
12、;&返回&若是申请设备操作,采用操作系统模拟环境的设备管理策略为进程分配设备&如分配成功,产生演示动作!$、!B、;=或$!或$或$B、!$,3 4(2 7 8?3 4(2 7 8%;,!%,返回&如分配不成功,则挂起该进程,采用操作系统模拟环境的当前进程调度策略从就绪队列中选择一个进程,将其状态置为运行态,保存原3 4(2 7 8 的值,用新进程的运行时间记录更新3 4(2 7 8&产生演示动作!$、!B、$、!$、;B、;$,!%,返回&若是释放设备操作,采用操作系统模拟环境的设备管理策略为进程释放设备&产生演示动作!$、!B、;A或$;或$或$、!$,3 4(2 7 8?3 4(2 7
13、8%;,!%&检查是否可唤醒某个等待该设备的进程,若可,则唤醒它并产生演示动作;&返回&若是读文件操作,采用操作系统模拟环境的文件管理策略计算出要读的内容所在的外存物理块号&产生演示动作!$、!、!$、!B、$#、!$,3 4(2 7 8?3 4(2 7 8%;,!%,返回&若是写文件操作,采用操作系统模拟环境的文件管理策略计算出要写的位置的外存物理块号&产生演示动作!$、!、!$、!B、$=、!$,3 4(2 7 8?3 4(2 7 8%;,!%,返回&操作系统模拟算法中产生的演示动作以记录的形式存放在数组中,每条记录包括动作发生的系统绝对时间、动作编号、执行动作主体的编号&演示模块根据数组
14、中的数据进行演示&演示动作的定义如下:!;应用进程占用C 9 D运行;!$进程管理进程占用C 9 D运行;!文件管理进程占用C 9 D运行;&!&运算模块与演示模块的同步问题由于进程控制块、内存控制块等内部数据随着运算模块的计算不断变化,为了让用户可以在演示过程中实时地查看这些数据,运算模块与演示模块必须同步运行,即运算模块中计算过程向前推进一步,演示模块的演示过程也向前推进一步&因此,运算模块与演示模块分别用不同的线程实现&它们的同步机制用9、E操作实现,引入两个信号量%;、%$,初值分别设为;和!&运算模块:6 2 *;:!,!.2 6 2?7(2 3 F,+&第期黄志华等:操作系统模拟环
15、境的设计与实现万方数据!#$%:&!()*&+,-./0#/1 0#2+(!3),/,#4#+,-,5-!#$6 7!#$8: 9$:4;./0#/1 0#2#2 9 7!#$:+(!3),#?#/(#+,-7!#$6:(!%),&!.#!0#25-!#$=#:!#.#!AB&2#,C 4:,5-!#$%7演示模块:!#$3:&演示结束 0#2结束7!#$%:+(!%)7!#$8:根据数组中的数据演示7!#$:(!3)7!#$=:5-!#$3 7!7 操作系统模拟环境的运算实例用户提出应用问题后,运算模块根据描述应用问题的数据计算出在系统绝对时间的每个时刻应做的操作,演示模块把每个操作用
16、多媒体的手段表现出来7例如,前述的名为#?4*$:#的应用问题在操作系统模拟环境的进程管理策略设定为时间片轮转法,时间片长度设定为3 D个时间单位,内存管理策略设定为可变分区时,运算模块的计算过程如下:这时&*#!:&/#A 3 D,&2#,C 4:A=,,(2&*#A D 7运算模块执行!#$3,#D,.#!A=7运算模块执行!#$%,由于!()*&*#.-.$,-/#!,!()*&+,-./0#/1返回 4:!#7运算模块执行!#$8,#2 9$:4;./0#/1返回 4:!#7运算模块执行!#$,#?#/(#+,-使得A 3 7运算模块执行!#$6,由于A 3小于.#!A=,转入!#$=
17、7如此反复在!#$=与!#$6间执行,直至#=时.#!更新为3 D,转入!#$%7运算模块执行!#$%,调用!()*&+,-./0#/1,由于!()*&*#.-.$,-/#!,返回,(#,调用/,#4#+,-,产生演示动作D%、3 3、3%、D、D 6、D%,,(2&*#A D,A E,转入!#$6 7运算模块执行!#$6,由于#E小于.#!A 3 D,转入!#$=7运算模块执行!#$=,转入!#$7运算模块执行!#$,调用#?#/(#+,-,产生演示动作D 3,,(2&*#更新为3,更新为F,转入!#$6 7运算模块执行!#$6,由于#F小于.#!A 3 D,转入!#$=7运算模块执行!#$
18、=,转入!#$77运算模块执行!#$8,调用#2 9$:4;./0#/1,返回,(#,演示结束7参考文献:3 李 锋,王 静7多媒体技术在现代教育中的地位和作用 G HI J7 0$:!K 7 1 3%7/-*7/2!0-2 5 9 4/4&3 7 0 *,%D D D 7 F 7%刘乃琦,吴 跃7计算机操作系统 L7北京:电子工业出版社,3 F F 6 7 3 3 78M 2 9,#NOP 4 2#2)4(*,M:)#,OQ-9 0(:7I$#,4&2!;!#*!9#!&5 24 2 9&*$:#*#2 4&-2L7!7:7:+,#2&/#.R 4:S 2#,2 4&-2 4:S 2/,3
19、F F 6 7 F 7#$%&%()*+*&(,-.%,%*/+/(0*0 1 (,2.+/%&%*3(4 0*,%*/0 1 0-%4+/(*)5 /%,R T M U VW 0&.0(4,V T IX 0 4-.Y 0#2,Z S U VO 0 4 2.&2 5(Z#$4,*#2 -X-*$(#,O//#4 2 9P#/0 2-:-5;,(Y 0-(T 2&C#,!&;,(Y 0-(,(&4 28=D D D%,X 0&2 4)6 7 /4+8/:Q#$,-$-!#4 2#NN 4;-9#C#:-$&2 5-$#,4&2 5!;!#*X M S!-N 4,#N 0&/0&!)4!#9
20、-2 0#!&*(:4#9#2 C&,-2*#2-$#,4&2 5!;!#*4 2 99#!/,&)#&29#4&:0#9#!&5 24 2 9&*$:#*#2 4&-2-0#!&*(:4#9#2 C&,-2*#2 -$#,4&2 5!;!#*79%5:0 4&:-$#,4&2 5!;!#*;X M S;!&*(:4#9#2 C&,-2*#2 8福州大学学报(自然科学版)第%F卷万方数据操作系统模拟环境的设计与实现操作系统模拟环境的设计与实现作者:黄志华,郭朝珍,丁善镜,HUANG Zhi-hua,GUO Chao-zhen,DING Shan-jing作者单位:福州大学计算机科学与技术系,刊名:福州大学学报(自然科学版)英文刊名:JOURNAL OF FUZHOU UNIVERSITY(NATURAL SCIENCE EDITION)年,卷(期):2001,29(3)参考文献(3条)参考文献(3条)1.Andrew S Tanenbaum;Albert S Woodhull Operatin systems design and implementation 19972.刘乃琦;吴跃 计算机操作系统 19973.李锋;王静 多媒体技术在现代教育中的地位和作用 2000 本文链接:http:/