- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课程设计
一、 课程设计目的
本设计的目的是实现操作系统和相关系统软件的设计,其中涉及进程编程、 I/O操作、存储管理、文件系统等操作系统概念。
二、 课程设计要求
(1) 对进行认真分析,列出实验具体步骤,写出符合题目要求的程序清单, 准备出调试程序使用的数据。
(2) 以完整的作业包的形式提交原始代码、设计文档和可运行程序。提交 的光盘应当包括:设计题目,程序清单,运行结果分析,所选取的算法及其优缺 点,以及通过上机取得了哪些经验。程序清单要求格式规范,注意加注释(包含 关键字、方法、变量等),在每个模块前加注释,注释不得少于20%。课程设计 要求同时上交打印文档,设计报告包括设计题目,算法分析,关键代码及其数据 结构说明,运行结果分析以及上机实践的经验总结。
设计一:
设计任务:模拟Linux文件系统
在任一 OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单 的模拟Linux文件系统。
在现有机器硬盘上开辟100M的硬盘空间,作为设定的硬盘空间。
编写一管理程序simdisk对此空间进行管理,以模拟Linux文件系统,要求:
(1) 盘块大小1k
(2) 空闲盘块的管理:Linux位图法
(3) 结构:超级块,i结点区,根目录区
该simdisk管理程序的功能要求如下:
(1)info:显示整个系统信息(参考Linux文件系统的系统信息),文件可以 根据用户进行读写保护。目录名和文件名支持全路径名和相对路径名, 路径名各分量间用“/”隔开。
cd…:改变目录:改变当前工作目录,目录不存在时给出出错信息。
dir…:显示目录:显示指定目录下或当前目录下的信息,包括文件名、 物理地址、保护码、文件长度、子目录等(带/s参数的dir命令,显示 所有子目录)。
md…:创建目录:在指定路径或当前路径下创建指定目录。重名时给 出错信息。
rd…:删除目录:删除指定目录下所有文件和子目录。要删目录不空 时,要给出提示是否要删除。
newfile…: 建立文件。
cat…:打开文件。
copy…:拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外, 还支持host文件系统与模拟Linux文件系统间的文件拷贝,host文件系 统的文件命名为host ...,如:将windows下D :盘的文件 \data\sample\test.txt文件拷贝到模拟Linux文件系统中的 /test/data目录,windows下D:盘的当前目录为D: \data,则使用命 令:
simdisk copy hostD: \data\sample\test.txt /test/data
或者:simdisk copy hostD: sample\test.txt /test/data
del…:删除文件:删除指定文件,不存在时给出出错信息。
check:检测并恢复文件系统:对文件系统中的数据一致性进行检测, 并自动根据文件系统的结构和信息进行数据再整理。
程序的总体流程为:
初始化文件目录;
输出提示符,等待接受命令,分析键入的命令;
对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新 命令,直到键入EXIT退出为止。
设计二
设计任务:模拟文件系统的前端操作shell
实现一个简单的shell (命令行解释器)。
将设计一的管理程序simdisk作为后台进程运行,利用本设计任务的shell 操作 simdisk。
本设计任务在于学会如何实现在前端的shell进程和后端的simdisk进程之 间利用共享内存进行进程间通信(IPC)。
设计三:
设计任务:模拟文件系统的操作管理
实现多个进程同时对模拟文件系统进行操作。设计管理程序simdisk的用户 访问权限管理。访问模拟文件系统的每个进程都属于某个用户,管理程序 simdisk根据其访问权限决定其对模拟文件系统的操作。
对模拟文件系统的操作要求做到:共享读,互斥写。
本设计任务在于学会如何实现信息的安全管理和进程同步。
注:要求从课程设计的整体来考虑设计任务一、二、三,并分阶段实现。
开发环境
Windows 7
Microsoft visual studio 2008
、主要实现过程
1.概要设计
对于开闭100MB的使用空间,对此的理解应该是除了磁盘信息描述意外 的数据储存区域都需要1024*1024*100的空间,故需要在主机生成固定大小 的文件来模拟磁盘。
Linux的位图法管理空闲的盘块,要求使用以下结构:超级块、inode 结点区、根目录区。同时,对于一个磁盘,肯定需要有一个存储区域来保存 其整体信息,以便统计以及错误修正,而这个区域保存在磁盘起始位置为最 佳。将这些结构存储于文件中,直接想到的方案是建立对应的类,并用二进 制文件直接将整个类写进文件,通过
原创力文档


文档评论(0)