




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书 设计名称 操作系统课程设计操作系统课程设计 题 目 文件访问接口设计文件访问接口设计 学生姓名 余德威 专 业 计算机科学与技术 班 级 13 计算机 1 班 学 号 2013314111 指导教师 任朝晖 日 期 2015 年 9 月 18 日 精品文档 2欢迎下载 课程设计任务书 一 一 设计题目设计题目 文件访问接口设计 二 二 目的与要求目的与要求 本设计的目的是通过 BIOS 调用设计简单的文件访问接口 使学生掌握程 序接口的设计方法 要求学生在熟悉比 BIOS DOS 操作系统的中断接口及程序接口的基础上 利用 C 语言设计简单的文件访问接口 最后通过程序验证接口的正确性 三 三 设计内容设计内容 利用 C 语言设计 具体包括 1 基本文件内容输入 2 基本文件内容输出 3 创建文件 4 打开文件 5 关闭文件 6 文件缓冲区管理 7 文件句柄管理 8 读顺序文件 9 写顺序文件 10 读随机文件 11 写随机文件 12 文本文件操作验证程序 上述功能由两部分程序验证 中断驻留程序和验证程序 首先运行中断驻留 精品文档 3欢迎下载 程序 然后运行验证程序得到预期结果 四 四 完成方式完成方式 独立完成 完成设计内容全部 12 个小项或至少 3 项以上 五 五 具体要求具体要求 本设计的目的是通过 BIOS 调用设计简单的文件访问接口 使学生掌握程 序接口的设计方法 要求学生在熟悉比 BIOS DOS 操作系统的中断接口及程序接口的基础上 利用 C 语言设计简单的文件访问接口 最后通过程序验证接口的正确性 六 六 进度安排进度安排 依照教学计划 课程设计时间为 2 周 1 要求讲解 资料查找 系统分析 概要设计 2 天 2 系统详细设计 功能设计 2 天 3 算法实现 编程调试 5 天 4 4 功能演示 资料整理 课程设计说明书编写 1 天 七 七 完成后应上交的材料完成后应上交的材料 课程设计说明书纸质文档 八 八 总评成绩总评成绩 指导教师指导教师 签名日期签名日期 年年 月月 日日 系系 主主 任任 审核日期审核日期 年年 月月 日日 佛山科学技术学院课程设计用纸 目 录 一 程序概述一 程序概述 1 1 1 1 完成的任务 1 1 2 解决的问题 1 二 二 概念原理概念原理 1 1 2 1 基本概念 1 2 2 基本原理 2 三 总体设计三 总体设计 3 3 3 1 实现方法 3 3 2 技术路线 3 四 详细设计四 详细设计 3 3 4 1 主要函数 3 五 完成情况五 完成情况 3 3 六 使用说明六 使用说明 4 4 七 设计总七 设计总结结 1010 7 1 系统特色 10 7 2 经验教训 10 7 3 实践感受 10 参考资料参考资料 1010 附附 录录 1111 佛山科学技术学院课程设计用纸 1 一 程序概述一 程序概述 1 11 1 完成的任务完成的任务 本设计要求编写一个简单的文件访问接口设计 利用 C 语言 DOS 与 BIOS 中断调用进行设计 主要完 成要求中所提到的功能如 创建文件 删除文件 打开文件 关闭文件 基本文件内容输入 基本文件 内容输出 读顺序文件 写顺序文件 文本文件操作验证程序 文件缓冲区管理的实现 1 21 2 解决的问题解决的问题 在设计过程遇到了以下的问题 一是有关文件的操作 如文件夹的创建与删除 二是在 理解了中断的意义之后 进行中断函数如 int86 int86x intdos intdos 等函数的 调用有点模糊 解决的过程 通过在网上查阅了相关资料及参考在图书馆借的 C 高级实用设计 和上学 期学过的汇编语言的书后 再有不懂的疑惑向老师解答和与同学讨论解决方法 有关函数的调用参数的设计 基本上是基于这些 结构体 WORDREGS BYTEREGS SREGS 联 合体 REGS 文件属性字节 以及汇编语言中 int 21H dos 系统功能调用中中断类型 主要 是 21H 以及调用功能号的查询和设置 下面主要介绍上述提及的几个结构体跟联合体 以字作为单位的寄存器所组合的结构体 Struct WORDREGS Unsigned int ax bx cx dx si di cflag flags 以字节作为单位的寄存器做组合的结构体 Struct BYTEREGS Unsigned char al ah bl bh cl ch dl dh 由上述两个结构体所组合的共用体 联合体 Union REGS Struct WORDREGS x Struct BYTEREGS h 由段寄存器组合的结构体 Struct SREGS Unsigned int es cs ss ds 二 二 概念原理概念原理 2 12 1 基本概念基本概念 中断中断 中断 顾名思义 是指当出现需要时 CPU 暂时停止当前程序的执行转而执行处理新情况的程序和 执行过程 即在程序运行过程中 系统出现了一个必须由 CPU 立即处理的情况 此时 CPU 暂时中止程序 的执行转而处理这个新的情况的过程就叫做中断 本课题中涉及的为 dos 中断跟 bios 中断 文件访问接口文件访问接口 所谓访问接口 实际上即为用户通过 dos 状态下的提示 键入相关命令后 作为访问相关文件操作 精品文档 2欢迎下载2欢迎下载 的中介 即类似一个中转站 而系统同时也需要在响应了用户键入的命令后执行预先编写好的相应程序 并将程序的执行结果通过中介 即文件访问接口 输出给用户 而事实上在系统响应一次用户的命令时 系统进行了一次 IO 中断 中断驻留程序中断驻留程序 中断驻留程序 指的是当加载进内存的程序执行完毕后 依然能够保存产生的临时数据跟临时状态 而在下一次调用时继续执行 验证程序验证程序 本课题的验证程序 指的是 当用 dos bios 中断调用编写好相关用于文件访问的函数并执行之后 用 C 语言高级的函数如 fopen fprintf fgetc fclose 等函数来验证上述编写的访问函数是否可 行 本课题中用 fopen fclose 来验证用 dos 中断调用所编写的函数 CloseFile CreateFile 和 CloseFile 用 fgetc fprintf 等函数来验证用 dos 中断调用所编写的 WriteToFile 和 ReadFromFile 函数 除此之外 像 ftell fseek 等的验证是同样的道理 只需基于上述由 dos bios 中断调用所编写的函数 系统调用系统调用 系统调用 顾名思义 说的是操作系统提供给用户程序调用的一组 特殊 接口 用户程序可以通 过这组 特殊 接口来获得操作系统内核提供的服务 比如用户可以通过文件系统相关的调用请求系统 打开文件 关闭文件或读写文件 可以通过时钟相关的系统调用获得系统时间或设置定时器等 从逻辑上来说 系统调用可被看成是一个内核与用户空间程序交互的接口 它好比一个中间人 把 用户进程的请求传达给内核 待内核把请求处理完毕后再将处理结果送回给用户空间 2 22 2 基本原理基本原理 本课题的运行结果 首先是在运行开始时给定了 10 个选择开关 供用户选择 每当接收一次用户 的选择时 系统将进行一次的 IO 中断 之后执行相应的中断服务程序 在这里是指由 dos bios 中断调 用编写好的函数 调用结束时 将临时结果保存 并退出中断 继续响应用户的选择 直到用户选择了 退出 如下图所示 图 2 1 精品文档 3欢迎下载3欢迎下载 三 总体设计三 总体设计 3 13 1 实现方法实现方法 程序通过选择开关 switch case 将用 dos bios 调用编写的函数组合起来供用户做出 选择 在对应处理用户的选择编写的函数中 主要的核心是 dos 功能中断调用函数的编写 其中包括中断类型号 中断功能调用号等的设置 以及响应用户选择后中断服务程序的编写 另外 可以通过参看当前工作目录下的文件信息或者通过 Validate 开头的相关函数进 行程序运行结果的验证 3 23 2 技术路线技术路线 整个程序的设计流程 围绕着 bios dos 功能中断调用这一主线 编写好相关文件操作函数 在响应 用户选择之后 对应执行相关的函数 四 详细设计四 详细设计 4 14 1 主要函数主要函数 Int OperOfSel 用于显示可供用户选择的功能 并提示用户作出相应的功能选择 Void CreateFile char filename 80 用于创建一个新的文件 根据用户输入的文件名进行文件的创建 如果文件创建失败 如 磁盘空间已满或者已经存在该文件 即创建失败 Int DeleteFile char filename 80 用于删除一个文件 如果删除成功 将返回文件代号 否则删除失败 可能是不存在该 文件 Int OpenFile char filename 80 用于打开一个文件 如果打开成功 则返回文件代号 否则打开失败 可能是不存在该 文件 Void CloseFile filename 80 用于关闭一个文件 Void WriteToFile filename 80 用于写顺序文件 基本文件内容的输入 以及文件缓冲区的管理 首先根据用户输入的文 件名打开一个文件 如果存在该文件 则打开成功 开始写入内容 此时继续接受用户输入 的内容 注意 输入直到用户键入回车键即表示输入完毕 此时将输入的内容根据文件缓冲 区管理规则将用户输入的内容进行存储至指定文件名的文件中 Void ReadFromFile filename 80 用于读顺序文件 基本文件内容的输出 以及文件缓冲区的管理 从指定的文件中读取 文件中的内容 并输出 Void ValidateOpenFile char filename 80 用于验证上述文件访问函数编写的正确性 用于验证创建文件 打开文件是否成功 Void ValidateReadFile char filename 80 用于验证上述文件访问函数编写的正确性 用于验证上述中 WriteToFile filename 80 以 及 ReadFromFile filename 80 函数 4 24 2 引用函数引用函数 Clrscr 用于清空屏幕的作用 五 完成情况五 完成情况 本程序完成了其中的 9 项 能够实现文件的创建 打开 关闭 基本文件内容的输入 输出 文 精品文档 4欢迎下载4欢迎下载 件缓冲区的管理 以及文本文件的验证程序 写顺序文件 读顺序文件 六 使用说明六 使用说明 运行成功后进行首页 开始接受用户的选择 图 5 1 接着进行相应功能选项前面对应数字的输入 1 号功能 为创建一个新的文件 图 5 2 查看目录 目录下果然生成 my 文件 所以文件创建成功 精品文档 5欢迎下载5欢迎下载 图 5 3 当该文件已经存在时 再创建该文件时 会提示文件已存在 创建已失败 图 5 4 2 号功能 删除文件 若文件不存在 则操作失败 否则 文件被删除 如下图 yuyu 文件删除成功 图 5 5 图 5 6 3 号打开文件功能 打开已存在的文件 显示打开文件成功 精品文档 6欢迎下载6欢迎下载 图 5 7 图 5 8 若输入的文件是不存在的 会提示打开操作失败 精品文档 7欢迎下载7欢迎下载 图 5 9 4 号功能 关闭文件 图 5 10 5 号功能 写入文件的内容 如下在文件中输入 wearetheworld 图 5 11 精品文档 8欢迎下载8欢迎下载 图 5 12 6 号功能 读出文件内容 图 5 13 7 号功能 确认文件是否打开 图 5 14 8 号功能 从文件读内容输出 精品文档 9欢迎下载9欢迎下载 图 5 15 9 号功能 清屏 结果将出现清空屏幕的效果 图 5 16 图 5 17 0 号功能 退出 图 5 18 精品文档 10欢迎下载10欢迎下载 七 设计总结七 设计总结 7 17 1 系统特色系统特色 在本系统中已初步实现一个可访问的文件接口 能够正常的解析命令并执行 在解析命令方面 采 用中断函数调用以及功能类型号选择设置的形式 达到直接与底层 打交道 的作用 效率比较高 7 27 2 经验教训经验教训 由于在开始做操作系统课程设计时 对要选择的题目 自己没有很快确定下来 所以时而找找这道 题的资料 时而找找第三题的资料 又看看有参考样本的第一道题 这过程中确实耽误了不少 但同时 也让我明白 目标的重要性 只有有了目标 奋斗起来才会快且成长多 所以一旦定下来任务 就加把 劲地把它做完 不懂就想办法把它搞懂 另外 由于这次是比较偏低层 所以 很多我们平常调用的函 数不能用到 确实有点不适 也让我明白现在的我存在的依赖性及知识点的不足 所以 在接下来的时 段里 我要加油 加把劲充实自己 遇到问题时多与老师及同学讨论 这样很有利于自己跳出思维定势 7 37 3 实践感受实践感受 每次的课程设计对我们来说 都是课堂知识所学的一个深化 在实践这个过程中 我们不免会遇到 许多我们未曾想过的问题 但是 我们无须害怕 因为我们需要成长 我们需要养成遇到问题 能分析 问题 进而解决问题 这样当我们的课程设计完成了 当我们的学业完成了 我们也就渐渐养成了如何 解决问题的思维及如何去做的行动观 这次的课程设计 让我看到了我上学期所学知识的不牢固 让我知道我上学期的懒惰成为了我现在 成长的阻碍 操作系统这门课程的理论性很强 如果单单靠我们上学期所学的理论知识 完全不足于我 们使用 所以 无论是为了什么 都得学着把操作系统的知识实践化 无论是文件访问接口设计还是操 作系统命令接口 都有它存在的意义 而且通过此次的课程设计 认识了讨论的重要性 个人的力量有限 如果没有团队的话 很多事情 都是很难完成的 三个臭皮匠顶过一个诸葛亮 如果遇到了一个人难以解决 那么最好是提出来与伙伴 或者同学一同探讨 这不但能知道别人的想法 也能解决自己的困惑 何乐而不为啊 参考资料参考资料 1 操作系统实验指导 任爱华 李鹏 刘方毅 清华大学出版社 2 C 高级编程及实例分析 王为青 刘变红 编著 人民邮电出版社 3 C 高级实用程序设计 王世元 编著 清华大学出版社 4 80 x86 汇编语言程序设计 沈美明 温冬婵编著 清华大学出版社 5 操作系统实验教程 核心技术与编程实例 顾宝根 王立松 顾喜梅 科学出版社 精品文档 11欢迎下载11欢迎下载 附附 录录 时间 2015 年 09 月 07 日 程序 文件访问接口设计 班级 13 计算机 1 班 姓名 余德威 学号 2013314111 include include include include include include define INTER 0 x21 define Num 80 define CNum 9 选择功能 int OperOfSel printf n n Function Of Selection n printf n printf n printf 1 Create a file n printf 2 Delete a file n printf 3 Open a file n printf 4 Close a file n printf 5 Input contents to file n printf 6 Output contents from file n printf 7 Validate the file is open or not n printf 8 Validate the reading contents from file n printf 9 Clean the screen n printf 0 Exit n printf n printf n 精品文档 12欢迎下载12欢迎下载 printf nFunction Of Selection int sel printf nInput Your Selction scanf d return sel 创文件 void CreateFile char filename 80 union REGS inregs outregs struct SREGS segregs inregs h ah 0 x5B 创建文件的中断指令是 5B inregs x dx FP OFF filename 设置段地址和有效地址 segregs ds FP SEG filename inregs x cx 0 设置文件属性是 0 cx 文件属性 int86x INTER if outregs x ax 2 printf Fail To Create New File n return if outregs x ax 80 printf Fail to create file s The file has benn existed n filename return printf Create New File s Successfully n filename printf The File s Attribute is d n outregs x cx printf The Filecode is d n outregs x ax 删除文件 int DeleteFile char filename 80 union REGS inregs outregs struct SREGS segregs inregs h ah 0 x41 删除文件的中断指令是 41 inregs x dx FP OFF filename segregs ds FP SEG filename intdosx 精品文档 13欢迎下载13欢迎下载 int result outregs x ax return result 打开文件 int OpenFile char filename 80 union REGS inregs outregs struct SREGS segregs int result inregs h ah 0 x3D inregs x dx FP OFF filename segregs ds FP SEG filename inregs h al 2 设置文件路径 int86x INTER result outregs x ax return result 关闭文件 void CloseFile char filename 80 union REGS inregs outregs struct SREGS segregs int result int FileCode inregs h ah 0 x3D 打开文件用于读 写或补充 inregs x dx FP OFF filename segregs ds FP SEG filename inregs h al 2 int86x INTER result outregs x ax if 2 result printf nFail to close the file s It may not exist n filename else FileCode outregs x ax inregs h ah 0 x3E 强迫清除所有缓冲区 更新目录 inregs x bx FileCode int rel intdos 精品文档 14欢迎下载14欢迎下载 printf nClose File s Successfully rel d n filename rel 在写入文件内容 void WriteToFile char filename 80 union REGS inregs outregs struct SREGS segregs int result int FileCode char WriteContents CNum inregs h ah 0 x3D inregs x dx FP OFF filename segregs ds FP SEG filename inregs h al 2 int86x INTER result outregs x ax if 2 result printf nCan not input contents to file s It may not exist n filename else getchar printf nInput The Writting Contents n int count 0 int temp 0 int sumChar 0 for int i 0 i CNum 1 i if count 1 WriteContents i temp i count 0 scanf c if WriteContents i n break if i CNum 1 精品文档 15欢迎下载15欢迎下载 FileCode result inregs h ah 0 x40 写文件或设备 inregs x dx FP OFF WriteContents segregs ds FP SEG WriteContents inregs x bx FileCode inregs x cx i intdosx temp WriteContents i count count 1 i 1 sumChar outregs x ax FileCode result inregs h ah 0 x40 inregs x dx FP OFF WriteContents segregs ds FP SEG WriteContents inregs x bx FileCode inregs x cx i intdosx sumChar outregs x ax printf n nThe number of contents you have write to file are d n sumChar 读取文件中内容 void ReadFromFile char filename 80 union REGS inregs outregs struct SREGS segregs int result char ReadContents CNum 1024 inregs h ah 0 x3D inregs x dx FP OFF filename segregs ds FP SEG filename inregs h al 2 intdosx result outregs x ax if 2 result printf nCan not read contents from file s The file may not exist n filename else inregs x bx result 精品文档 16欢迎下载16欢迎下载 inregs h ah 0 x3F inregs x dx FP OFF ReadContents segregs ds FP SEG ReadContents inregs x cx 1024 intdosx printf Real Number Of Read Characters in file s d n filename outregs x ax printf nThe Contents Of File s Are Listed Below n filename for int i 0 i outregs x ax i printf c ReadContents i printf n 确认文件是否打开 void ValidateOpenFile char filename 80 FILE fp fp fopen filename r if fp printf nOpen file s Failly fail to validate open file function n filename return else printf nOpen file s Successfully success to validate open file function n filename fclose fp 确认文件 void ValidateReadFile char filename 80 FILE fp fp fopen filename r if fp printf nCan not read contents from file s It may not exist n filename return else 精品文档 17欢迎下载17欢迎下载 int count 0 printf nRead contents from file s successfully The below are the contents n filename char ch while ch fgetc fp EOF count printf c ch printf n printf nThe total number of contents of the file s are d n filename count fclose fp int main clrscr char CreateFileName Num char DeleteFileName Num char OpenFileName Num char CloseFileName Num char WrittingFileName Num char ReadingFileName Num char ValidateOpenFileName Num char ValidateReadFileName Num int sel do sel OperOfSel switch sel case 0 printf nExit the system n exit 0 break case 1 printf nSelection Of Creating A NewFile n printf nInput the name of file to create scanf s CreateFileName CreateFile CreateFileName break 精品文档 18欢迎下载18欢迎下载 case 2 printf nSelection Of Deleting A ExistingFile n printf nInput the name of existing file to delete scanf s DeleteFileName int RelOfDel DeleteFile DeleteFileName if 0 RelOfDel printf nThe File s has been delete successfully n DeleteFileName else printf nCan not delete the file s It may not be exist n DeleteFileName break case 3 printf nThe Selection Of Opening an Existing File n printf nInput the name of existing opening file scanf s OpenFileName int RelOfOpenFile OpenFil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》提分评估复习及答案详解(典优)
- 演出经纪人之《演出经纪实务》能力检测试卷(含答案详解)
- 教师招聘之《幼儿教师招聘》综合提升测试卷及答案详解(新)
- 教师招聘之《幼儿教师招聘》综合练习及参考答案详解1套
- 教师招聘之《幼儿教师招聘》练习题库含答案详解(黄金题型)
- 2025内蒙古呼伦贝尔农垦集团有限公司校园招聘50人笔试备考及完整答案详解1套
- 教师招聘之《幼儿教师招聘》练习题库附参考答案详解(a卷)
- 在线培训合作协议条款细则书
- 农业生产资源交易协议
- 2025-2026学年云南省昆明市五华区七年级(上)分班考数学试卷(含简略答案)
- 生物高考阅卷心得
- NB/T 10527-2021煤矿立井井壁注浆施工规范
- 国内威胁诱捕(蜜罐)类产品研究与测试报告
- YY 0167-2020非吸收性外科缝线
- 20客户画像与标签管理课件
- 昆明历史沿革课件
- 输血制度课件
- DB45-T 1696-2018危岩防治工程技术规范-(高清可复制)
- 喷砂检验报告
- 旅游英语ppt课件(完整版)
- QC成果施工现场移动式网络布设及监控一体化装置的研制
评论
0/150
提交评论