操作系统(2014年秋季学期)
序号:
实验报告
系别:计算机科学与技术
班级:数媒12-1班
姓名:
学号:**********
实验名称:进程调度
总成绩:
评语:
日期:
《操作系统》实验报告
实验名称
文件管理
实验序号
1
实验日期
实验人
李丹阳
一、实验目的、要求与环境
:
编写一个简单的二级文件系统实现程序,加深对文件系统的内部功能和内部实现的理解。
:
(1)用C语言(或其它语言,如Java)实现一个简单的二级文件系统设计,加深对文件系统的内部功能和内部实现的理解。要求模拟采用二级目录结构的磁盘文件系统的文件操作, 实现用户的创建、查询、登录、删除,和文件的添加、删除、打开、关闭、读、写等基本命令,用在屏幕上输入命令来模拟用户程序中调用的文件操作。
(2)为了清楚地观察文件的管理过程,程序应将每个文件操作的结果显示出来。
(3)分析程序运行的结果,谈一下自己的收获。
:
1. 硬件设备:PC机一台
2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如C \C++\Java 等编程语言环境。
二、相关背景知识
最基本的文件操作
(1)创建文件
在创建一个新文件时,系统首先要为新文件分配必要的外存空间,并在文件系统的目录中,为之建立一个目录项。目录项中应该记录新文件的文件名及其在外存的地址等属性。
(2)删除文件
当已不再需要某文件时,可将它从文件系统中删除。在删除时,系统应该先从目录中找到要删除的文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。
(3)读文件
在读一个文件时,须在相应的系统调用中给出文件名和应该读入的内存目标地址。此时,系统同样要查找目录,找到制定的目录项,从中得到被读文件在外存中的位置。在目录项中,还有一个指针用于对文件的读/写。
(4)写文件
在写一个文件时,须在相应的系统调用中给出该文件名及该文件在内存中的(源)地址。为此,也同样须先查找目录,找到指定文件的目录项,在利用目录中的写指针进行写操作。
(5)截断文件
如果一个文件的内容已经陈旧而需要全部更新文件的内容时,一种方法是将此文件删除,再重新创建一个新文件。但如果文件名及其属性均无改变时,则可采取另一种所谓的截断文件的方法,此即将原有文件的长度设置为0,或说放弃原有的文件内容。
(6)设置文件的读/写位置
前述的文件读/写操作,都只提供了对文件顺序存取的手段,即每次都是从文件的始端读或写。设置文件读/写位置的操作,用于设置文件读/写指针的位置,以便每次读/写文件时,不是从其始端而是从所设置的位置开始操作。也正因如此,才能改顺序存取为随机存取。
三、实验设计说明
最简单最直观的进程调度策略是基于优先级的调度,多数实时系统采用基于优先级的调度,每个进程根据它重要程度的不同被赋予不同的优先级,调度器在每次调度时,总选择优先级最高的进程开始执行。
首先要考虑的问题是如何分配优先级,对于进程优先级的分配可以采用静态和动态两种方式,静态优先级调度算法:,比如进程的周期,用户优先级,(RM)调度算法是一种典型的静态优先级调度算法,它根据进程的执行周期的长短来决定调度优先级,:这种调度算法根据进程的资源需求来动态地分配进程的优先级,,最早期限优先算法(EDF)算法是使用最多的一种动态优先级调度算法,该算法给就绪队列中的各个进程根据它们的截止期限(Deadline)来分配优先级,具有最近的截止期限的进程具有最高的优先级。
四、实验设计的流程图
输入密码
输入文件名
开始
获得操作该用户文件的权限
密码正确?
退出用户?
Y
N
Y
N
选择对用户要执行的操作,如登录
输入用户名
选择对该用户文件的操作
显示已经完成操作的信息
Y
N
该操作是否合理?
结束
退出系统?
Y
五、程序代码
#include <>
#include <>
#include <>
#include <>
#include <>
#define MaxUser 100 //定义最大MDF主目录文件
#define MaxDisk 512*1024 //模拟最大磁盘空间
#mandA
操作系统进程调度实验报告 来自淘豆网m.daumloan.com转载请标明出处.