![](https://csdnimg.cn/release/download_crawler_static/89531088/bg1.jpg)
《操作系统课程设计》
(2023/2024 学年第一学期)
指导教师:
目 录
1. 引言........................................................................................................................................2
1.1 任务要求..............................................................................................................................2
1.2 选题.....................................................................................................................................2
2. 需求分析与设计....................................................................................................................2
2.1 需求分析.............................................................................................................................2
![](https://csdnimg.cn/release/download_crawler_static/89531088/bg2.jpg)
“操作系统”课程设计 引言
2.2 系统框架和流程..................................................................................................................2
2.2.1 Linux 文件系统源码解读绘制功能框架图............................................................2
2.2.2 本系统功能框架和流程图......................................................................................3
2.3 系统流程和模块描述.........................................................................................................6
3. 数据结构................................................................................................................................6
4. 关键技术................................................................................................................................6
4.1 初始化............................................................................................................................7
4.2 分治法............................................................................................................................7
5. 运行结果................................................................................................................................7
5.1 运行环境.............................................................................................................................7
5.2 服务模式.............................................................................................................................7
5.3 运行结果.............................................................................................................................7
5.4 实验结果分析.....................................................................................................................9
6. 调试和改进..........................................................................................................................10
7. 心得和结论..........................................................................................................................10
7.1 结论和体会..................................................................................................................10
7.2 进一步改进方向..........................................................................................................10
7.3 分析设计方案对系统安全的影响...................................................................................10
主要参考文献..................................................................................................................................10
1. 引言
为了加深对文件系统内部功能和实现过程的理解,设计一个模拟的多用户多
级目录的文件系统,并实现具体的文件物理结构、目录结构以及较为完善的文件
操作命令集。
Linux 操作系统具有良好的安全性和稳定性
[1]
。Linux 由于性能安全上的优势,
Commented [黄 1]: 本小节介绍课程设计认为,相关的动
机(为什么做这件事)、该系统所要解决的问题。引言,
要求开门见山,直接把读者引入正题,忌大话、废话。
注意:
(1)标题要分级,用的是 word 菜单条“字体”旁边的那
个“格式”,同样格式的,可以用格式刷,刷成统一格式。
点击 word 菜单条上的‘视图’->‘文档结构图’,会发现
左侧出来文档的小节结构。最终的课程设计报告,可以在
这个选题报告的基础上继续填充,然后直接打印,加个封
片,做成一个小册子提交。
(2) 从美学角度,正文可用小四字体,1.25 倍行距离。
英文字体用 Times New Rome, 中文用“宋体”,所有标题
用“黑体”,以保证打印时能突出显示(这是因为计算机
用的是 RBG 色彩系统,打印机用的是 CMY 色彩系统,在计
算机屏幕上看着对比突出的,打印出来未必突出)
(3)中文段首,缩进 2 汉字字符,不要乱缩。
(4)各级标题就是旗帜,旗帜要求鲜明,读者一看到这
个旗帜就知道这小节实现的是什么功能。即标题不能太长、
太啰嗦,不用完整句子。
以“某某人的网上超市”为例,从社会角度起一个头,
大致上,可以类似这样描述:
随着计算机普及、网络技术的发展,网络购物可谓是“旧
时王谢堂前燕,飞入寻常百姓家”。政府也开始大鼓励网
上开店【1】(给出参考文献,以实例说明,让不理解该事
的读者自行参阅,这样的参考文献可以‘网上开店’为关
键字,从 google 得到连接。),。。。。。。。。。。。。。(省略)。。。。
![](https://csdnimg.cn/release/download_crawler_static/89531088/bg3.jpg)
“操作系统”课程设计 引言
操作系统的占有率上一直是名列前茅,远远地超过了 Unix 和 Windows 的市场占
有率
[2]
。Linux 上的应用程序能够快速稳定的运行,这对程序的开发设计有着非常
重要的意义,随着科学技术的不断发展,近年来,Linux 操作系统占有市场份额逐
年增高,尤其在桌面操作系统和嵌入式系统占有的份额也越来越高
[3]
。
为了加深对文件系统内部功能和实现过程的理解,完成此次课程设计能够加
深我们对于计算机操作系统内核的理解,提高对操作系统内核的分析与扩展能力。
本文设计将用 JAVA 语言模仿“生产者—消费者问题”,并设计一个模拟的多用户
多级目录的文件系统,实现具体的文件物理结构、目录结构以及较为完善的文件
操作命令集。
1.1 任务要求
1.1.1 用 JAVA 语言模仿“生产者—消费者问题”
为实现该内容,本系统主要有以下几个功能:
(1) 实现多线程的创建:创建线程类。
(2) 实现进程间同步与互斥:通过 Semaphore 实现线程之间的互斥。
(3) 模仿“生产者—消费者问题”:系统运行过程中给出必要提示以模仿“生
产者—消费者问题”过程。
1.1.2 模拟的多用户多级目录的文件系统
为实现该内容,本系统设计了以下几个功能:
(1) 挂载文件系统方式
Linux 文件体系主要在于把操作系统相关的东西用文件这个载体实现。文件
系统挂载在操作系统上,操作系统整个系统又放在文件系统里。在一个区被格式
化为一个文件系统之后,它就可以被 Linux 操作系统使用了,只是这个时候 Linux
操作系统还找不到它,所以还需要把这个文件系统放进 Linux 操作系统的文件体
系里,通过 mount 来挂载。
(2) 硬盘分区
分为主分区和扩展分区,扩展分区再划分为 N 个逻辑分区。再设置一个 swap
Commented [黄 2]: 接着,描述:(1)在什么样的情况
下;(2)要做什么事; 或 为什么要这样做;(3)这样做
有什么好处(4)要解决的问题
好处就是贡献,譬如 **速度更快,***所需时间更少,***
为将来的研究者提供参考
。。。。。。。。。。。。。(省略)。。。。
所以,本系统旨在开发一个。。。。。。
从纲领上概要描述本系统,供什么样的功能。仍以“某某
人的网上超市”为例。大致上,可以类似这样描述:
为实现。。。。。,本系统要以下几个功能:
(1)数据的获取:创建 Random*******并将其存放在 data
文件中,*******保证每次进行排序的是同一组数据,数
据的类型为 int 型,占 4 个字节。
任务的分解:。。。。。。。。。。。。。。(省略)。。。。。。。。。
(2) 排序算法的性能比较:。。。。。。。。。。。(省略)。。。。。。。
(3) 最佳线程数的计算:。。。。。。。。。。。(省略)。。。。。。。
(4) 图形界面的实现:。。。。。。。。。。。(省略)。。。。。。。
。。。。。。。。。。。。。。(省略)。。。。。。。。。
要解决的问题,是整个报告最最最重要的核心,后面所有
的内容都是针对“要解决的问题”描述的。要用 1,2,3,4
列举出来,不要超过 7 点,忌写成一大段文字,读者不易
看明白。一般是:先用简短的几个字(这几个字在下文是
小标题)给出要做什么,然后用 1~2 句话解释下怎么做的。
![](https://csdnimg.cn/release/download_crawler_static/89531088/bg4.jpg)
“操作系统”课程设计 引言
区,当有数据被存放在物理内存里面,但是这些数据又不是常被 CPU 所取用时,
那么这些不常被使用的程序将会被丢到硬盘的 swap 置换空间当中, 而将速度
较快的物理内存空间释放出来给真正需要的程序使用。
(3) 文件物理结构
本文件系统的文件物理结构将采用顺序结构,即将文件记录存储在一块连续
的磁盘空间中。相应地,磁盘空间的分配也采用连续分配的方式。
(4) 文件目录结构
文件系统的文件目录结构将采用树形目录结构。树形目录结构的优点是可以
更方便有效地管理用户的文件,特别是在多用户系统且用户的文件数量较多的情
境中。树形目录结构也是目前最为流行的文件目录结构之一,比较符合大多数人
的使用习惯。
(5) 磁盘空间管理
文件系统的磁盘空间管理采用位示图来进行管理,用户可以使用 show 命令
来显示磁盘空间位示图以查看当前系统的磁盘空间使用情况。
(6) 查看命令和磁盘数据持久化
文件系统提供查看系统操作命令集的功能,用户可以使用 help 命令来查看
本系统已实现的功能,优化用户的使用体验。
1.2 选题
B 类:用 JAVA 语言模仿“生产者—消费者问题”
1. 通过 Java 语言中的 wait()和 notify()命令模拟操作系统中的 P/V 操
作;
2. 为每个生产者/消费者产生一个线程,设计正确的同步算法
3. 每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的
当前全部内容、当前指针位置和生产者/消费者线程的自定义标识符。
4. 生产者和消费者各有两个以上。
5. 多个生产者或多个消费者之间须共享对缓冲区进行操作的函数代码。。
C 类:文件系统
设计一个多用户文件系统,理解文件系统的层次结构,完成基本的文件系统
![](https://csdnimg.cn/release/download_crawler_static/89531088/bg5.jpg)
“操作系统”课程设计 需求分析与设计
create、open、close、read/write 等基本功能,并实现文件保护操作。实现以此为
基础加入自己设计功能的小型文件系统。
2. 需求分析与设计
2.1 需求分析
生产者消费者问题,也称有限缓冲问题,是一个多线程同步问题的经典案例。
该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费
者”——在实际运行时会发生的问题。
解决生产者/消费者问题的方法可分为两类:
(1)采用某种机制保护生产者和消费者之间的同步;
(2)在生产者和消费者之间建立一个管道。
第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用
的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等,实用性不
强。故采用第一种方式。
要实现多用户文件系统,首先要实现 Login 用户登录,必须登录成功才能进
入文件系统进行相应操作,进入后,通过树状展示文件目录,右侧显示文件夹图
标或这文件图标,选中节点鼠标右键弹出菜单,有新建目录,新建文件,删除文
件,打开文件,修改文件,并分别实现其功能。
2.2 系统框架和流程
2.2.1 B 类“生产者—消费者问题”系统分析设计