没有合适的资源?快使用搜索试试~ 我知道了~
河北工业大学操作系统实验报告(实验成绩:优秀)
需积分: 35 32 下载量 43 浏览量
2018-10-14
10:34:41
上传
评论 7
收藏 2.54MB DOC 举报
温馨提示
试读
64页
供给工大的小伙伴使用,只供给参考,不要全篇复制哈!
资源推荐
资源详情
资源评论
操作系统实验指导书
计算机科学与软件学院
实验一 进程控制与描述
一、实验目的
通过对 编程,进一步熟悉操作系统的基本概念,较好地理解
的结构。通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉
操作系统的进程概念,理解 进程的“一生”。
二、实验环境
硬件环境:计算机一台,局域网环境;
软件环境:、 操作系统平台, 专业
版或企业版。
三、实验内容和步骤
第一部分:
下的 应用程序,使用 编译器创建一个 应用程
序,代码中包括了 !"方法,该方法 类型的应用程序的标准入口点。
在“开始”菜单中单击“程序”#$附件”#$记事本”命令,将程序键入记事本中,并把代码保存为 %#
%&''。
程序 %#% 的 应用程序
(()*+ 项目
,&-. ((标准的 &
((告诉连接器与包括 */0 函数的 1 库进行连接
,'*)&))!+2$1+3"
((这是一个可以弹出信息框然后退出的筒单的应用程序
04567 !8596054 (:&:(2
8596054 (:;&:(2
96 (:'):(,
(:)9:("
<
== */!
52 ((没有父窗口
$8232 ((消息框中的文本
$*32 ((消息框标题
/>?@"A ((其中只有一个 ?@ 按钮
((返回 以便通知系统不进入消息循环
!"A
B
也可以利用任何其他文本编辑器键入程序代码,如果这样,例如使用 ?C 来键入和编辑
程序,则应该注意什么问题?
将文件类型保存为
&
文件
在“命令提示符”窗口运行 4D4,产生 %#%4D4 文件:
=E.%#%&''
在程序 %#% 的 应用程序中,首先需要 头文件,以便获得传送给 !"和
*/!"0 函数的数据类型定义。
接着的 '*) 指令指示编译器(连接器找到 1/ 库文件并将其与产生的 4D4 文件连
接起来。这样就可以运行简单的命令行命令 */ 来创建这一应用程序,如果没有
'*) 指令,则 */!"0 函数就成为未定义的了。这一指令是 9编译
器特有的。
接下来是 !"方法。其中有四个由实际的低级入口点传递来的参数。 & 参数
用来装入与代码相连的图标或位图一类的资源,无论何时,都可用 8!"0 函数
将这些资源提取出来。系统利用实例句柄来指明代码和初始的数据装在内存的何处。句柄的数
值实际上是 4D4 文件映像的基地址,通常为 F。下一个参数 ;& 是为向后兼
容而设的,现在系统将其设为 5。应用程序的命令行!不包括程序的名称"是 ') 参
数。另外,系统利用 )9 参数告诉应用程序如何显示它的主窗口!选项包括最小化、最大
化和正常"。
最后,程序调用 */!"0 函数并退出。如果在进入消息循环之前就结束运行的话,
最后必须返回 。
运行结果!试将其中的信息与程序 1#% 程序的运行结果进行比较":
进程对象
操作系统将当前运行 的应用程序看作是进程对象 。 利 用系统提供的惟一的称为句 柄
!805C4"的号码,就可与进程对象交互。这一号码只对当前进程有效。
本 实 验 表 示 了 一 个 简 单 的 进 程 句 柄 的 应 用 。 在 系 统 中 运 行 的 任 何 进 程 都 可 调 用
&!"0 函数,此函数可返回标识进程本身的句柄。然后就可在 需要该
进程的有关情况时,利用这一句柄来提供。
程序 %#:获得和使用进程的句柄
(('& 项目
,&-.
,&-).
G
((确定自己的优先权的简单应用程序
;)!"
<
((从当前进程中提取句柄
805C4&6H==&!"A
G
((请求内核提供该进程所属的优先权类
C?CIH==I!&6"A
G
((发出消息,为用户描述该类
==&--$'&'I=3A
&!I"
<
&88>?67>099=
==&--$8*3A
+JA
&5? 0>?67>099=
G==&--G$5)3A
+JA
&C4>?67>099=
==&--$3A
+JA
&406 4>?67>099=
==&--$)3A
+JA
=
==&--$-J.3A
+JA
B
==&--==A
B
程序 %# 中列出的是一种获得进程句柄的方法。对于进程句柄可进行的惟一有用的操作是在
0 调用时,将其作为参数传送给系统,正如程序 %# 中对 I!"0 函数的调用那
样。在这种情况下,系统向进程对象内“窥视”,以决定其优先级,然后将此优先级返回给应用程
序。
?'&!"和 &!"0 函数也可以用于提取进程句柄。前者提取的是已经存在
的进程的句柄,而后者创建一个新进程,并将其句柄提供出来。
在“命令提示符”窗口运行 4D4,产生 %#4D4 文件:
=E.%#&''
运行结果:>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
将程序 %#1&'' 程序键入记事本中,并把代码保存为 %#1&''。
程序 %#1 显示如何找出系统中正在运行的所有进程,如何利用 ?'&!"0 函数来获得
每一个访问进程的进一步信息。
程序 %#1利用句柄查出进程的详细信息
(('& 项目
,&-.
,&-'1.
,&-).
((当在用户模式机内核模式下都提供所耗时间时,在内核模式下进行所耗时间的 F 位计算的
帮助方法
C?C@ &*!&K46 4L@2
&K46 4L"
<
((将 K46 4 结构转化为 F 位整数
?5?5M@H
!!!?5?5"@8*C6)"--1"
@C6)A
?5?5MH
!!!?5?5"8*C6)"--1"
C6)A
((将消耗时间相加,然后计算消耗在内核模式下的时间百分比
?5?5M6HM@MA
C?C&H
!C?C"!!!?5?5"%:M@"(M6"A
!&"A
B
((以下是将当前运行进程名和消耗在内核模式下的时间百分数都显示出来的应用程序
;)!"
<
((对当前系统中运行的进程拍取“快照”
805C49'H==6'19'!
6819>950?4992 ((提取当前进程参数6819>950?499表示在快照
中包含系统中所有的进程
"A ((如果是当前进程,就将其忽略
((初始化进程入口
?49945671'A
==N )I!L'2O!'""A
'9OHO!'"A
((按所有进程循环
/??+ H==&1K!9'2L'"A
!+ "
<
((打开用于读取的进程
805C4&H==?'&!
?499>P47>5K? 06?52 ((指明要得到信息
K0942 ((不必继承这一句柄
'1&C"A ((要打开的进程
!&QH5"
<
((找出进程的时间
K46 4242@ 2 A
==&6)!
&2 ((所感兴趣的进程
L2 ((进程的启动时间!绝对的"
L42 ((结束时间!如果有的话"
L@ 2 ((在内核模式下消耗的时间
L "A ((在用户模式下消耗的时间
((计算内核模式消耗的时间百分比
C?C&@H==@ &*!
@ 2 ((在内核模式上消耗的时间
"A ((在用户模式下消耗的时间
((向用户显示进程的某些信息
==&--$&C=3--'1&C
--$24D4=3--'O4K
--$2RJ)=3--&@
--==AG
((消除句柄
==8!&"A
BG
((转向下一个进程
剩余63页未读,继续阅读
资源评论
Eccentric_t
- 粉丝: 99
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功