课程设计说明书设计名称:操作系统课程设计题目:文件访问接口设计学生姓名:余德威专业:计算机科学与技术班级: 13计算机1班学号: 2013314111指导教师:任朝晖日期: 2015 年 9 月 18 日课程设计任务书一、设计题目文件访问接口设计二、目的与要求本设计的目的是通过BIOS调用设计简单的文件访问接口,使学生掌握程序接口的设计方法。
要求学生在熟悉比BIOS、DOS操作系统的中断接口及程序接口的基础上,利用C语言设计简单的文件访问接口,最后通过程序验证接口的正确性。
三、设计内容利用C语言设计,具体包括:1、基本文件内容输入2、基本文件内容输出3、创建文件4、打开文件5、关闭文件6、文件缓冲区管理7、文件句柄管理8、读顺序文件9、写顺序文件10、读随机文件11、写随机文件12、文本文件操作验证程序上述功能由两部分程序验证,中断驻留程序和验证程序。
首先运行中断驻留程序,然后运行验证程序得到预期结果。
四、完成方式独立完成:完成设计内容全部12个小项或至少3项以上。
五、具体要求本设计的目的是通过BIOS调用设计简单的文件访问接口,使学生掌握程序接口的设计方法。
要求学生在熟悉比BIOS、DOS操作系统的中断接口及程序接口的基础上,利用C语言设计简单的文件访问接口,最后通过程序验证接口的正确性。
六、进度安排依照教学计划,课程设计时间为:2周。
1.要求讲解、资料查找、系统分析,概要设计(2天)2.系统详细设计、功能设计(2天)3.算法实现、编程调试(5天)4.功能演示、资料整理、课程设计说明书编写。
(1天)七、完成后应上交的材料课程设计说明书纸质文档八、总评成绩指导教师签名日期年月日系主任审核日期年月日目录一、程序概述 (1)1.1完成的任务 (1)1.2解决的问题 (1)二、概念原理 (1)2.1基本概念 (1)2.2基本原理 (2)三、总体设计 (3)3.1实现方法 (3)3.2技术路线 (3)四、详细设计 (3)4.1主要函数 (3)五、完成情况 (3)六、使用说明 (4)七、设计总结 (10)7.1系统特色 (10)7.2经验教训 (10)7.3实践感受 (10)参考资料 (10)附录 (11)一、程序概述1.1完成的任务本设计要求编写一个简单的文件访问接口设计,利用C语言,DOS与BIOS中断调用进行设计。
主要完成要求中所提到的功能如: 创建文件,删除文件,打开文件,关闭文件,基本文件内容输入,基本文件内容输出,读顺序文件,写顺序文件,文本文件操作验证程序,文件缓冲区管理的实现。
1.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.1基本概念中断中断:顾名思义,是指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。
即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
本课题中涉及的为dos中断跟bios中断。
文件访问接口中介,即类似一个中转站。
而系统同时也需要在响应了用户键入的命令后执行预先编写好的相应程序,并将程序的执行结果通过中介,即文件访问接口,输出给用户。
而事实上在系统响应一次用户的命令时,系统进行了一次IO中断。
中断驻留程序中断驻留程序,指的是当加载进内存的程序执行完毕后,依然能够保存产生的临时数据跟临时状态,而在下一次调用时继续执行。
验证程序本课题的验证程序,指的是,当用dos,bios中断调用编写好相关用于文件访问的函数并执行之后,用C语言高级的函数如fopen(),fprintf(),fgetc(),fclose()等函数来验证上述编写的访问函数是否可行。
本课题中用fopen(),fclose()来验证用dos中断调用所编写的函数CloseFile(),CreateFile()和CloseFile();用fgetc(),fprintf()等函数来验证用dos中断调用所编写的WriteToFile()和ReadFromFile()函数;除此之外,像ftell(),fseek()等的验证是同样的道理。
只需基于上述由dos,bios 中断调用所编写的函数.系统调用系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。
用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。
从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口,它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间。
2.2基本原理本课题的运行结果,首先是在运行开始时给定了10个选择开关,供用户选择,每当接收一次用户的选择时,系统将进行一次的IO中断,之后执行相应的中断服务程序,在这里是指由dos,bios中断调用编写好的函数,调用结束时,将临时结果保存,并退出中断,继续响应用户的选择,直到用户选择了退出。
如下图所示:图2-1三、总体设计3.1实现方法程序通过选择开关switch...case将用dos,bios调用编写的函数组合起来供用户做出选择。
在对应处理用户的选择编写的函数中,主要的核心是dos功能中断调用函数的编写,其中包括中断类型号,中断功能调用号等的设置,以及响应用户选择后中断服务程序的编写。
另外,可以通过参看当前工作目录下的文件信息或者通过Validate开头的相关函数进行程序运行结果的验证3.2技术路线整个程序的设计流程,围绕着bios,dos功能中断调用这一主线,编写好相关文件操作函数,在响应用户选择之后,对应执行相关的函数四、详细设计4.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.2引用函数Clrscr():用于清空屏幕的作用五、完成情况本程序完成了其中的9项,能够实现文件的创建,打开,关闭,基本文件内容的输入,输出,文件缓冲区的管理,以及文本文件的验证程序,写顺序文件,读顺序文件。
六、使用说明运行成功后进行首页,开始接受用户的选择图5-1接着进行相应功能选项前面对应数字的输入:1号功能:为创建一个新的文件图5-2 查看目录,目录下果然生成my文件,所以文件创建成功;图5-3当该文件已经存在时,再创建该文件时,会提示文件已存在,创建已失败;图5-42号功能:删除文件若文件不存在,则操作失败;否则,文件被删除,如下图:yuyu文件删除成功;图5-5图5-63号打开文件功能打开已存在的文件,显示打开文件成功。
图5-7图5-8 若输入的文件是不存在的,会提示打开操作失败;图5-9 4号功能:关闭文件图5-10 5号功能:写入文件的内容,如下在文件中输入wearetheworld图5-11图5-12 6号功能:读出文件内容图5-13 7号功能:确认文件是否打开图5-14 8号功能:图5-159号功能:清屏结果将出现清空屏幕的效果图5-16图5-17 0号功能:退出图5-18七、设计总结7.1系统特色在本系统中已初步实现一个可访问的文件接口,能够正常的解析命令并执行,在解析命令方面,采用中断函数调用以及功能类型号选择设置的形式,达到直接与底层“打交道”的作用,效率比较高。
7.2经验教训由于在开始做操作系统课程设计时,对要选择的题目,自己没有很快确定下来,所以时而找找这道题的资料,时而找找第三题的资料,又看看有参考样本的第一道题,这过程中确实耽误了不少,但同时也让我明白,目标的重要性,只有有了目标,奋斗起来才会快且成长多,所以一旦定下来任务,就加把劲地把它做完;不懂就想办法把它搞懂。