设计哈工大(深圳)本科生《操作系统》实验


当这门课助教,这门课的实验三和实验四都是我设计的。其中实验三虽然也是我设计的,但交给我同门负责了,因此实验三的代码我没有写,这里只放上实验四的代码(以及一些实验材料,课程结束后再放链接),但也会讲一下实验三的思路。

实验三 页面替换算法

本质就是模拟FIFO、LRU等经典算法,很简单,不详细说了(主要是忘了实验内容是什么了)~

实验四 文件系统

设计实验的过程

首先用一个固定大小的空白文件来模拟磁盘,在这个磁盘上仿照ext2文件系统建立一个自己的小型文件系统。这一步旨在让学生通过解决实际编码过程中遇到的问题来熟悉一个经典的文件系统,自己亲自设计才能更深刻地熟悉文件系统的结构和运作方式。此外,要求这个文件系统能够支持ls、创建指定大小文件和文件夹、删除文件和文件夹、移动文件等功能,这样一是可以通过检查这些功能是否正常运行来判断系统的正确性,二是可以锻炼学生的操作系统编程能力,考验他们的系统设计能力。该实验只要能较为合理地设计一个文件系统并实现上述指令,就可以算是通过,而不必完全实现一个ext2系统。另外,这里只考察对文件的索引,不涉及文件的实际内容(比如,创建文件时必须指定文件大小,以便文件系统提前为其分配好空间)。(这个实验是我2019年当助教时出的,2020年的OS课程实验采用了MIT的S6.081的第1、2、3、7个实验。但据老师说2019年学生对这个实验的反馈很好,因此2020年保留了这个文件系统的实验作为实验五,但是出于多方面的考虑把这个实验给简化了。2020版的实验去掉了所有与删除相关的功能,把难度降了一半;同时为了防止抄袭往届学长的实验,2020年规定使用统一给的模拟磁盘读写的接口,这一部分是由我的一个师弟完成的,我这里并没有用那个接口,懒得改)。完成这篇博客时已经是2020年,我自己的代码因此是包含了这两年的功能的(第二年加了copy指令),同时为了方便还实现了cd命令。

完成实验的思路

数据结构

块大小我定义成1024B。

#define _FILE_ 0
#define _FOLDER_ 1

#define DEVICE_SIZE (1<<22)
#define BLOCK_SIZE 1024
#define MAX_FILE_BLOCK_NUM 6
#define MAX_INODE_NUM 1024

索引节点:
对文件夹文件来说size是占用的块的数量,对普通文件来说是文件大小;link是指有多少文件与它关联,在删除时有作用(如果删除时发现link不为0说明还有其他进程在访问这个文件,这时只删除文件的逻辑结构,物理结构要等link为0才能释放),但其实在本系统中没有考虑它,这是个冗余位。

typedef struct inode {
   
    // 32 bytes;
    uint32_t size;
    // for folder, it's the number of blocks it have;\
        // for file, it's the real size.
    uint16_t file_type;
    // 1->dir; 0->file;
    uint16_t link;  // it doesn't matter if you \
        // don't know what this variable means.
    uint32_t block_point[MAX_FILE_BLOCK_NUM];
    // the blocks belonging to this inode.
} inode
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
csdn操作系统实验是哈尔滨工业大学的一个实验项目,旨在通过设计与实现一个简单的操作系统,加深学生对操作系统原理和相关概念的理解与掌握。该实验通过实际动手操作,使学生能够更好地理解操作系统的工作原理和各个组成部分之间的交互关系。同时,该实验还能够培养学生的团队合作精神和动手能力。 在csdn操作系统实验中,学生需要按照实验指导书的要求,通过编写代码和调试程序,逐步实现一个简单的操作系统。在这个过程中,学生需要学会使用汇编语言和系统调用等编程方法,理解和实现进程管理、内存管理、文件系统以及进程间通信等操作系统核心功能。同时,学生还需要学会使用调试工具对代码进行分析和调试,确保操作系统的正确性和稳定性。 通过参与csdn操作系统实验,学生将对操作系统的原理和实践有更深入的理解,能够更高效地使用操作系统进行开发和调试。此外,该实验还能够培养学生的团队合作能力,因为在实验过程中,学生需要与同学进行合作、交流和解决问题,共同完成实验的各个阶段。 总之,csdn操作系统实验是哈尔滨工业大学的一个重要实验项目,通过实践操作和编程实现,帮助学生加深对操作系统的理解和掌握,并培养学生的动手能力和团队合作精神。这对于学生未来的学习和研究工作都具有重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值