- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 20
操作系统实用教程(第三版)实验指导
PAGE 19
STYLEREF 标题 1 \* MERGEFORMAT 实验一 命令解释程序
实验一 命令解释程序
1.1 实验目的
掌握命令解释程序的设计方法。
学习Windows系统调用的使用,了解目录操作、进程控制等相关知识。
理解并发程序中的同步问题。
培养C/C++语言程序设计技能,提高程序设计和文档编写能力。
锻炼团队成员的交流与合作能力。
1.2 实验要求
1.2.1 基本要求
本实验要求实现一个简单的命令解释程序,其设计类似于MS-DOS的Command程序,程序应当具有如下一些重要特征:
能够执行cd、dir、tasklist、taskkill、history、exit等内部命令。
能够创建前台进程和后台进程。
此外,还应做到:
使用VC建立工程。
提供清晰、详细的设计文档和解决方案。
本实验的具体要求如下:
(1)参考Command命令解释程序,采用控制台命令行输入,命令提示行是当前目录与提示符“”,在提示符后输入命令,执行结果在控制台中显示,如图1-1所示。
(2)实现以下内部命令。
cd 路径 切换目录。
dir 显示指定目录下的文件、目录及磁盘空间等相关信息。
tasklist 显示系统当前进程信息,包括进程标识符pid、线程数、进程名等。
taskkill pid 结束系统中正在运行的进程,须提供进程标识pid。
history 显示控制台中曾经输入过的命令。
exit 退出控制台。
(3)对前台进程和后台进程的操作。
本实验设计的命令解释程序可以将进程放在前台执行或者后台执行。
图1-1 命令解释器界面
启动前台进程,即在提示符下输入:
fp 可执行文件
启动后台进程的命令格式为:
bg 可执行文件
解释程序在前台进程运行期间需要一直等待,直到前台进程运行结束才打印命令提示符,而在后台进程运行期间不必等待,会立刻打印出命令提示符,允许用户输入下一条命令。命令解释程序中还需要捕获Ctrl+C组合键的信号来结束前台正在运行的进程,并返回用户输入界面,等待新命令输入。
(4)其他要求。
该命令解释程序应该具有相应的出错提示功能。程序每次接收用户输入的一行命令,在用户按下回车键(Enter)后开始执行命令。空命令只打印一个新的提示行,不做其他处理。定义空格为分隔符,程序应能处理命令行中出现的重复空格符。提供帮助命令help,供使用者查询每个命令的用法。
1.2.2 进一步要求
(1)实现管道命令。命令格式为:
命令 {| 命令}
管道命令的作用是将管道分隔符 | 前一个命令的输出作为后一个命令的输入。
(2)仿照MS-DOS Command命令解释程序对现有命令语法进行改进,实现命令参数处理功能。例如dir命令,附加/A(显示具有指定属性的文件),附加/B(使用空格式),附加/C(在文件大小中显示千位数分隔符)等参数。如dir?/A。
(3)实现进程的前台/后台切换命令,这需要查阅相关Windows API来解决。
1.2.3 实验步骤建议
(1)熟悉Windows相关API函数的调用。
(2)编写小程序练习使用这些系统调用。
(3)编写命令解释器设计文档。
(4)按照设计文档编写代码。
(5)不断完善程序细节。
(6)测试。
(7)写实验报告(包括需求、设计、测试和使用说明等内容,格式可参考1.6节源程序与运行结果之“实验报告模板”)。
1.3 相关基础知识
1.3.1 命令解释程序与内核的关系
命令解释程序是用户和系统内核之间的接口程序。对于Windows系统来说,由于已经提供了具有良好交互性的图形用户界面,传统的控制台命令解释程序已经很少被广大用户所了解和使用了。但是,对于某些应用,例如删除所有扩展名为tmp的文件,或是删除某些具有特殊名字的病毒文件,在图形用户界面下很难甚至不能完成,这时需要通过Windows提供的Command命令接口来完成。Command程序是一个命令语言解释器,它拥有自己内建的命令集,用户或其他应用程序都可通过对Command程序的调用完成与系统内核的交互。我们可以把系统内核想象成一个球体的中心,Command命令解释程序就是包围内核的外壳,如图1-2所示。
图1-2 硬件、内核、系统调用以及Command之间的层次关系
1.3.2 系统调用
应用程序是以函数调用的方式来通知操作系统执行相应的内核功能。操作系统所能够完成的每一个特殊功能通常都有一个函数与其对应,即操作系统把它所能够完成的功能以函数的形式提供给应用程序使用。应用程序对这些函数的调用叫做系统调用,这些函数的集合就是Windows操作系统提供给应用程序编程的接口(Application Programming Interf
您可能关注的文档
最近下载
- 食堂用餐协议书范本(2025版).docx VIP
- 中建八局《质量标准化系列做法(主体结构工程)》2022年.pptx VIP
- TD_T 1021-2009县级土地利用总体规划制图规范.pdf VIP
- 粤人版英语五年级下册Review1 Reading and writing 课件.pptx VIP
- 离散数学崔艳荣习题答案.docx VIP
- 人教版八年级体育与健康:学会与他人交往 (2).pptx VIP
- 《水力发电》课件.pptx VIP
- 企业工会助推企业高质量发展.docx VIP
- GB50974-2014 消防给水及消火栓系统技术规范.pdf VIP
- 新风系统入门培训资料.ppt VIP
文档评论(0)