文件访问接口设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书

设计名称:操作系统课程设计

题目:文件访问接口设计

学生姓名:余德威

专业:计算机科学与技术

班级: 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

相关文档
最新文档