- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西安交大操作系统experiment2(实验2)-免费.ppt
实验说明(二) 张航 2013.12 Overview 实验三、四均是编写程序进行算法模拟,实验三模拟几种经典的内存换页算法,实验四模拟文件系统的管理。 因为只是纯粹的算法模拟,所以不涉及具体操作系统的API,只用编程语言本身提供的功能即足够。因此不像前两个实验--这两个实验是平台无关的。 实验三—内存管理 基本框架: 1.定义一个数组代表物理内存,如mem[4]可 代表4个物理页帧。 2.随机生成一个1—N之间的随机数序列(序 列长度自定,但尽量大些。N代表逻辑页面数 量)作为页请求序列。 3.使用以下几种算法进行页交换,统计各自 的缺页次数。 实验三—内存管理 FIFO LRU NUR OPT 实验四—一个简单文件系统的实现 Ext文件系统的原理回顾 根据Ext文件系统的数据结构和构建方法,自行实现一个简单的内存文件系统 定义一个数组代表磁盘存储空间,在其上建立并维护超级块、位图、inode表等各种数据结构。 在此基础上,实现文件系统的常用接口,如open,create,read,write,close等。 以write(“/a/b.txt”,data)为例分析其流程。 1.获取根目录的inode节点号(此信息可存到超级块中,或者直接在inode表中预留一个固定的位置给根目录使用) 2.根据节点号查找inode表,获取根目录的inode节点。 3.根据根目录的inode节点之中的索引信息,读取根目录的目录文件内容。 4.从根目录的目录文件中,找到子文件b.txt所对应的inode节点号。 5.根据节点号查找inode表,获取b.txt的inode节点。 6.根据欲写入数据的大小和单个数据块的大小,申请一定数目的数据块(申请后要更新数据块位图)。 7.将数据写入这些数据块,同时更新b.txt的inode节点(修改时间、文件长度等,重点是一二三级索引的更新)。 8.将更新后的inode节点写入节点表,关闭文件。 实验安排 实验三每位同学独立完成。 实验四相对较为复杂,由两名同学以小组形式完成。 14-16周期间安排第二次实验上机验收,请课代表协调具体时间。 * 思考和探索: 页请求序列该如何生成,方能尽可能真实地模拟实际操作系统环境中的访存情况?如何模拟多个进程的访存情况?如何调整页请求序列,以便测出不同算法在不同情况下的效率? Ext文件系统 引导块BootBlock 每个硬盘分区的开头1024字节,即0 byte至1023 byte是分区的启动扇区。存放由ROM BIOS自动读入的引导程序和数据,但这只对引导设备有效,而对于非引导设备,该引导块不含代码。这个块与ext2没有任何关系。 超级块SuperBlock 每个分区均有一个super block块,定义了文件系统的全局信息,包括块的大小,总块数,空闲块,索引结点数,各种位图和i节点表的地址和大小等信息。 数据块位图 这是ext2管理存储空间的方法。即位图法。每个位对应一个数据块,位值为0表示空闲,1表示已经分配。数据块位图定义为一个块大小。于是,一个组中的数据块个数就决定了。假设块大小为b 字节。可以区别的块数为b*8个 数据块 DataBlocks 每个组的数据最大个数是在块大小定义后就确定了的。所以组容量也就确定了。假设块大小为b 字节。那么组容量就确定为(b*8)*b 字节 若1块=4K,则组块大小=4K*8*4K=128M inode位图 与数据块位图相似,用来表示索引结点是否已经被使用。假设块大小为b字节,每个索引结点数据结构大小为128字节。最多可以有b*8个索引结点,索引结点表需要占用的存储空间大小为(b*8)*128字节。即(b*8)*128/b=8*128个块 inode表 索引结点表由若干个索引结点数据结构组成,需要占用若干个块。Ext2中的每个索引结点数据结构大小为128字节。每个索引结点即对应一个文件或是目录。是对其除文件名(目录名)以外的所有属性的描述。例如:文件类型,文件创建时间,访问时间,修改时间,文件所占数据块的个数,指向数据块的指针。其中,数据块指针是由15个元组的数据组成 struct ext2_inode { 类型 字节长度 域 释意 __u16 2 i_mode; 文件类型及访问权限 __u16 2 i_blocks; 文件的数据块个数 __u32 4 i_size; 大小(字节) __u32 4 i_atime; 访问时间 __u32 4 i_ctime; 创建时间 __u32 4 i_mtime; 修改时间 __u32 4 i_dtime;
文档评论(0)