磁盘存储空间的管理实践报告

合集下载

磁盘管理的实验报告

磁盘管理的实验报告

磁盘管理的实验报告实验报告:磁盘管理一、引言(100字)磁盘是计算机中主要的存储介质之一,磁盘管理是操作系统中的一项重要任务。

本实验旨在通过模拟磁盘管理的相关操作,加深对磁盘管理的理解,并学习实际应用中磁盘管理的策略。

二、实验目的(100字)1.了解磁盘管理的基本原理和相关概念;2.学习磁盘分区的原理及实践;3.理解磁盘调度算法的工作原理;4.掌握常用的磁盘管理策略。

三、实验内容(300字)1.磁盘分区:a.使用磁盘分区工具将物理磁盘划分为若干个分区;b.使用命令查看已分区、格式化后的磁盘分区。

2.磁盘调度算法:a.了解并实现FCFS(先来先服务)、SSTF(最短寻道时间优先)和SCAN(扫描)等磁盘调度算法;b.分别使用模拟程序测试不同算法的性能。

3.磁盘缓存:a.实现一个简单的磁盘缓存管理系统;b.学习并使用命令进行磁盘缓存管理的相关操作。

四、实验步骤(400字)1.磁盘分区:a.打开磁盘分区工具,选择对应磁盘进行分区,设置分区大小和类型;b.格式化已分区的磁盘,创建文件系统;c.使用命令查看分区情况,确认分区操作是否成功。

2.磁盘调度算法:a.阅读并理解给定的FCFS、SSTF和SCAN算法的伪代码;b.根据伪代码实现相应的算法,并进行测试;c.分别使用模拟程序测试不同算法的性能,根据性能结果评估各算法的优劣。

3.磁盘缓存:a.阅读并理解磁盘缓存管理的相关原理和命令;b.实现一个简单的磁盘缓存管理系统,包括缓存页面的替换策略;c.使用命令进行磁盘缓存管理的相关操作,通过测试验证缓存管理系统的正确性。

五、实验结果(150字)1.磁盘分区工具成功将物理磁盘划分为若干个分区,并格式化后创建了文件系统;2.使用命令查看分区情况,确认分区操作成功;3.实现了FCFS、SSTF和SCAN算法,并成功模拟了它们的运行过程;4.使用模拟程序测试了不同算法的性能,分析并比较了各算法的优劣;5.成功实现了一个简单的磁盘缓存管理系统,并通过测试验证了其正确性。

磁盘管理实训报告心得

磁盘管理实训报告心得

一、实训背景随着信息技术的飞速发展,磁盘管理在计算机系统中扮演着至关重要的角色。

为了提高自己的计算机操作技能,我参加了磁盘管理实训课程。

通过本次实训,我对磁盘管理有了更加深入的了解,以下是我在实训过程中的心得体会。

二、实训内容本次实训主要围绕以下几个方面展开:1. 磁盘分区管理:了解磁盘分区的概念、类型和分区工具,学习使用fdisk、parted等命令进行磁盘分区。

2. 磁盘格式化:掌握磁盘格式化的方法,了解不同格式化方式的优缺点。

3. 磁盘挂载与卸载:学习磁盘挂载与卸载的原理和操作方法,了解挂载点的作用。

4. 磁盘空间管理:掌握磁盘空间管理的技巧,包括磁盘清理、压缩、分区等。

5. 磁盘备份与恢复:了解磁盘备份的重要性,学习使用tar、rsync等工具进行磁盘备份与恢复。

三、实训心得1. 磁盘分区的重要性通过实训,我深刻认识到磁盘分区对于计算机系统的重要性。

合理的磁盘分区可以提高系统性能,方便数据管理和备份。

在实训过程中,我学会了如何使用fdisk、parted等工具进行磁盘分区,并对分区类型、分区大小等有了更深入的了解。

2. 磁盘格式化的技巧实训中,我学习了磁盘格式化的不同方法,如MBR、GPT等。

了解到不同格式化方式对磁盘性能和兼容性的影响。

在实际操作中,我掌握了如何根据需求选择合适的格式化方式,并学会了使用fdisk、mkfs等命令进行磁盘格式化。

3. 磁盘挂载与卸载的操作实训过程中,我学习了磁盘挂载与卸载的操作方法。

通过挂载磁盘,可以使系统访问磁盘中的文件,提高数据传输效率。

同时,卸载磁盘可以避免误操作导致的数据丢失。

在实际操作中,我熟练掌握了挂载与卸载命令,并了解了挂载点的作用。

4. 磁盘空间管理的技巧实训让我了解到磁盘空间管理的重要性。

通过实训,我学会了使用du、df等命令查看磁盘空间使用情况,掌握了磁盘清理、压缩、分区等技巧。

在实际操作中,我能够根据需求对磁盘空间进行合理管理,提高系统运行效率。

管理磁盘存储实训报告

管理磁盘存储实训报告

Windows网络操作系统管理课程实训报告实训名称:管理磁盘存储实训h-OX»|I G,T fl.SQ-QOflifidJXlB gw QJCT2.使用服务器管理器,在第一个磁盘上创建一个主分区号为X;文件系统为ReFS;卷标为Data。

4.使用磁盘管理,将卷X ,扩展到4096 MB 。

文世闺»^AJ« = M 品沏林0 31目USr X 01 BE工■可闰市! 凌串 |胃行蓄差W7S一三二二・ 二回-0« i» 网 -rue 花+周干 置羊 虫 *唯 S3:SiNTK挈工 而陪艇NJF5状石艮F L-iUiBUJ(-4XHR1F L 状哼吃21© Me 200 MB 里他G& 47.W 驰 杂 XGB 4.30 GB 加 MB4&1MBtoo % 79 U97% 年了 M.叱i 於工■55.M GB 呢C-sta -X: 5.00 GB 3汽54J87 G :B■丑士2设ttA (曲凤敦胧 G6 504 M B NIF S 聚仁UlSff■ * 4 ■ _ -.■二■ F 3堂5M9 GB iWffi■吐[之任里年. |概t旨i 、Eax» miME己叩印用1 】g#3 理事..不%48 仃寤融 79%C-dLa Dtl降百庆时: 一11£0日i^bM& 至**由川寿四土费NTFSWi M s4MMRq 『,ww gi ; moo ME NTFSH.ROfl装万良牙5.将C:\Windows\System32\imgageres.dll复制到卷Z,再复制出9个副本文件。

a. 茎事至百G 5号一■楸摩田 3 \:青=*。

诏(7:'停表3 If ML*也博时可■ S3mg—时=ru.dl25,仃.弓。

15:: 2宜阳等寸温力Kfi・Egag白七-副豆.dll2C 寸:0口15:1.5度用磐F属OKE♦卜科E!X.L3J dll15455.!wr©*tj p fl IIICB* 1力呜d拒rl - E S® 3 dll20"仃巧1。

存储管理实验报告

存储管理实验报告

存储管理实验报告存储管理实验报告引言:存储管理是计算机系统中非常重要的一部分,它负责管理计算机系统中的存储资源,包括内存和外存。

合理的存储管理能够提高计算机系统的性能和效率,保证系统的稳定运行。

本次实验旨在通过实践操作,深入了解存储管理的原理和方法,并通过实验结果分析,探讨存储管理的优化策略。

一、实验目的本次实验的主要目的是通过实践操作,深入了解存储管理的原理和方法,并通过实验结果分析,探讨存储管理的优化策略。

具体目标如下:1. 了解存储管理的基本概念和原理;2. 掌握存储管理的常用方法和技术;3. 分析实验结果,探讨存储管理的优化策略。

二、实验环境本次实验使用了一台配置较高的计算机,具备较大的内存和高速的硬盘。

实验环境如下:1. 操作系统:Windows 10;2. 内存:16GB;3. 硬盘:1TB。

三、实验过程1. 内存管理实验在内存管理实验中,我们使用了一段较大的程序代码进行测试。

首先,我们通过编程语言将程序代码写入内存中,然后通过内存管理技术将程序代码加载到内存的合适位置。

在加载过程中,我们使用了分页和分段两种常用的内存管理技术,并比较了它们的性能差异。

实验结果显示,分页技术相对来说更加高效,能够更好地利用内存资源,提高系统的运行速度。

2. 外存管理实验在外存管理实验中,我们模拟了大文件的读写操作。

首先,我们将一个较大的文件写入硬盘中,然后通过外存管理技术将文件加载到内存中进行读取。

在加载过程中,我们使用了磁盘调度算法和文件系统管理技术,并比较了它们的性能差异。

实验结果显示,磁盘调度算法的选择对系统的读写速度有较大的影响,而文件系统的合理管理能够提高文件的存取效率。

四、实验结果分析通过对实验结果的分析,我们可以得出以下结论:1. 内存管理中,分页技术相对于分段技术更加高效,能够更好地利用内存资源,提高系统的运行速度;2. 外存管理中,磁盘调度算法的选择对系统的读写速度有较大的影响,合理选择磁盘调度算法能够提高系统的性能;3. 文件系统的合理管理能够提高文件的存取效率,减少文件的碎片化,提高系统的整体性能。

磁盘管理空间实验报告

磁盘管理空间实验报告

一、实验目的本次实验旨在让学生了解磁盘管理的基本概念和操作,掌握磁盘分区、格式化、挂载等基本技能,熟悉磁盘空间分配策略和优化方法,提高学生对磁盘管理的实际操作能力。

二、实验环境操作系统:Linux Ubuntu 20.04硬件环境:虚拟机,CPU:2.5GHz,内存:4GB,硬盘:100GB三、实验内容1. 磁盘分区(1)查看磁盘分区信息使用`fdisk -l`命令查看当前磁盘的分区信息。

(2)创建新分区使用`fdisk /dev/sdb`命令进入磁盘分区编辑模式,创建新分区。

(3)格式化分区使用`mkfs.ext4 /dev/sdb1`命令将新分区格式化为ext4文件系统。

2. 磁盘挂载(1)创建挂载点使用`mkdir /mnt/sdb1`命令创建挂载点。

(2)挂载分区使用`mount /dev/sdb1 /mnt/sdb1`命令将分区挂载到挂载点。

3. 磁盘空间分配策略(1)查看磁盘空间使用情况使用`df -h`命令查看磁盘空间使用情况。

(2)优化磁盘空间分配使用`du -sh `命令查看目录大小,删除不必要的文件。

4. 磁盘碎片整理(1)查看磁盘碎片情况使用`e2fsck -f /dev/sdb1`命令检查磁盘碎片情况。

(2)整理磁盘碎片使用`e2fsck -f /dev/sdb1`命令整理磁盘碎片。

四、实验步骤1. 查看磁盘分区信息执行`fdisk -l`命令,查看当前磁盘的分区信息。

2. 创建新分区执行`fdisk /dev/sdb`命令,进入磁盘分区编辑模式。

(1)输入`n`创建新分区。

(2)选择分区类型(主分区或扩展分区)。

(3)选择分区编号。

(4)设置分区起始扇区。

(5)设置分区结束扇区。

3. 格式化分区执行`mkfs.ext4 /dev/sdb1`命令,将新分区格式化为ext4文件系统。

4. 创建挂载点执行`mkdir /mnt/sdb1`命令,创建挂载点。

5. 挂载分区执行`mount /dev/sdb1 /mnt/sdb1`命令,将分区挂载到挂载点。

实训报告 磁盘管理

实训报告 磁盘管理

实训报告磁盘管理一、实训目的掌握磁盘管理的知识与技能二、实训环境装有Windows Server 2003 操作系统计算机三、实训内容及步骤:1、对硬盘进行分区。

2、修改硬盘逻辑驱动器、光驱、移动硬盘、U 盘等设备的盘符。

四、实训过程1、在操作系统中利用磁盘管理对硬盘进行分区。

Windows 本身自带有一个磁盘管理工具,可以对未安装操作系统的那些分区或是另外一块硬盘重新配置分区。

下面几种情况都可以用磁盘管理工具搞定重新分区的操作。

(1)硬盘原来已经划了两个或是更多的分区,C 盘不想变动,但是想把后面的分区删掉,重新划成一个或是几个分区。

(2)装系统的时候只用硬盘的一部分空间划了个C 盘,还有一些空间没有划成分区。

(3)电脑又新加了一块硬盘上去,想要对新加的这块硬盘进行重新分区的操作。

不过,磁盘管理的分区功能也是一种破坏性的操作,凡是操作中涉及到的分区数据都会全部丢掉。

只是这个办法既不用借助于其它的工具,而且在Windows 下就可以进行操作,所以还是有些用处的。

下面这个例子是属于上述的第二种情况,装系统的时候我只划了一个40GB 的C 盘,别的空间都没有分区。

现在我想要在系统中把剩余的空间划分成两个分区,步骤如下:1、右键点击『我的电脑』,选择『管理』,打开计算机管理窗口。

2、在打开的计算机管理窗口中点击屏幕左侧的『磁盘管理』,进入如下图所示的磁盘管理界面。

大家可以看到屏幕右侧,磁盘0 右边有一块黑色的未指派空间,右键点击之,选择『新建磁盘分区』。

3、弹出新建磁盘分区向导。

直接点『下一步』。

4、然后让选择创建的磁盘分区。

这里我们应该选择『主磁盘分区』,然后点击『下一步』。

除了主磁盘分区,其余的空间需要划分成一个扩展磁盘分区,然后再在扩展磁盘分区上来划分逻辑磁盘分区。

扩展磁盘分区是无法直接引导操作系统的,而且一块硬盘,只能划分一个扩展磁盘分区。

举例来说,如果一块硬盘划分成了C、D、E、F 四个分区,此时C 是主磁盘分区,D、E、F 是逻辑磁盘分区,这三个逻辑磁盘分区又都是建立在这个硬盘的扩展磁盘分区上的。

磁盘管理实验报告心得

磁盘管理实验报告心得

磁盘管理实验报告心得引言磁盘是计算机中重要的硬件设备,负责存储和管理大量的数据。

磁盘管理是操作系统中非常重要的一部分,对系统的性能和稳定性有着直接的影响。

在这次磁盘管理实验中,我深入了解了磁盘的内部组织结构以及常见的磁盘管理算法,并通过实验学习了磁盘的分区、格式化、文件读写等操作。

这次实验让我对磁盘管理有了更深入的理解,并且增强了我在操作系统方面的实践能力。

实验内容这次实验主要包括以下几个方面的内容:1. 磁盘的组织结构和工作原理:了解磁盘的物理结构,包括道、磁头和扇区的概念,以及磁盘读写的基本原理。

2. 分区与格式化:了解磁盘分区和格式化的概念和操作方法,并通过实验进行磁盘分区和格式化的操作。

3. 文件读写:学习文件的逻辑结构和文件读写的基本原理,通过实验实现一些简单的文件读写操作。

4. 空闲空间管理:了解磁盘上空闲空间的管理方法,包括位图法和链表法,并通过实验实现了位图法的空闲空间管理算法。

实验过程在实验过程中,我首先通过阅读相关资料了解了磁盘的组织结构和工作原理。

磁盘是由多个碟片组成的,每个碟片分为若干个圆环状的道,每个道又被划分为若干个弧段,也就是扇区。

每个碟片上还有一个或多个磁头,可以在碟片上进行磁道和扇区的读写操作。

接着,我进行了磁盘的分区和格式化操作。

分区是将一个物理磁盘划分为多个逻辑区域,每个逻辑区域可以独立管理。

格式化是对分区进行初始化操作,以便后续的文件读写等操作。

通过实验,我成功地对磁盘进行了分区和格式化,并对分区和格式化的过程有了更深入的了解。

在文件读写方面,我学习了文件的逻辑结构和文件读写的基本原理。

文件是操作系统中的基本单位,有顺序文件和随机文件两种不同的逻辑结构。

顺序文件的读写是按照文件中记录的顺序进行的,而随机文件的读写则是按照文件中记录的位置进行的。

通过实验,我实现了一些简单的文件读写操作,并加深了对文件读写原理的理解。

最后,我学习了磁盘空闲空间的管理算法。

磁盘上有大量的空闲空间,如何高效地管理这些空闲空间对系统的性能有着重要的影响。

操作系统 磁盘空间管理的实验报告

操作系统 磁盘空间管理的实验报告

实验五磁盘存储空间的管理一、实验目的磁盘格式化时,系统把磁盘存储空间分成许多磁道。

每个磁道又分成若干个扇区(又叫做磁盘块)。

之后用fdisk命令对硬盘进行分区,即使只有一个分区,也必须用fdisk命令进行分区。

分区的目的,就是制作文件卷,形成文件系统。

一个文件卷一般都被划分成引导扇区、文件系统管理区和文件数据区。

其中,文件数据区用来存放系统文件和用户文件。

用户可以通过文件系统提供的API,创建、打开、关闭和对文件进行读写。

当用户的文件不再需要时,就应该删除。

把一个文件放到磁盘上时,可以组织成连续文件、链接文件或索引文件等。

因此,磁盘空间的分配方法也有两种,一种是连续空间的分配,一种是不连续空间的分配(又叫动态分配)。

如何充分有效地利用磁盘空间,是操作系统应解决的重要课题之一。

本实验模拟实现磁盘空间的分配与回收,使学生对磁盘空间的管理有一个较深入的理解。

二、实验要求书写实验报告,应该包括以下几项内容:(1)实验题目;(2)程序中使用的数据结构及主要符号说明;(3)程序流程图和带有详细注释的源程序;(4)执行程序名,并打印程序运行时的初值和运行结果;(5)通过实验后的收获与体验及对实验的改进意见和见解三、实验内容(1)假定现有一个磁盘组,共有40个柱面。

每个柱面4个磁道,每个磁道又划分成4个物理记录。

磁盘的空间使用情况用位示图表示。

位示图用若干个字构成,每一位对应一个磁盘道。

“1”表示占用,“0”表示空闲。

为了简单,假定字长为16位,一个字可用来模拟磁盘的一个柱面,其位示图如图5—1所示。

系统设置一个变量S记录当前的空闲磁盘块个数。

位示图的初始状态由户自己设定。

图5-1 位示图(2)申请一个磁盘块时,由磁盘块分配程序查位示图,找出一个为0的位,并计算磁盘的物理地址(即求出它的柱面号、磁道号和扇区号)。

①由位示图计算磁盘的相对块号的公式如下:相对块号=字号*16+位号②再将相对块号转换成磁盘的物理地址:柱面号=(相对块号/16)的商,也即柱面号=字号磁道号=((相对块号/16的余数)/4)的商,也即(位号/4)的商物理块号=(((相对块号/16)的余数)/4)的余数,也即(位号/4)的余数(3)当释放一个相对物理块时,运行回收程序,计算该块在位示图中的位置,再把相应由“1”改为“0”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1.相关知识 (4)1.1空闲盘块的组织 (4)1.2空闲盘块的分配与回收 (5)2.系统设计 (6)2.1算法及说明 (6)2.2算法流程图 (7)2.3数据结构及各子程序 (7)3.成果 (8)3.1磁盘存储空间的分配 (8)3.2磁盘存储空间的回收 (8)3.3结束 (9)4.总结 (10)4.1 个人总结勋 (10)4.2 个人总结史迎丰 (11)4.3 个人总结齐泓洋 (13)4.4 个人总结霖 (15)5.参考文献 (16)《操作系统》课程设计任务书1.相关知识1.1空闲盘块的组织(1)空闲盘块好栈用来存放当前可用的一组空闲的盘块好(最多含100个号),以及栈有的空闲盘块号数N。

顺便指出,N还兼作栈顶指针用。

(2)文件区中的所以空闲盘块被分成若干组,比如,将每100个盘块作为一组。

假定盘上共有1000个盘块,每块大小为1kb,其中201~7999号盘块用于存放文件,即作为文件区,这样,该区的最末一组盘块号应为7901~7999;次末组为7801~7900….;第二组盘块号为301~400;第一组为201~300(3)将每一组含有的盘块总数N和该组所有的盘块记入其前一组的第一个盘块的S.freee(0)~S.free(99)中。

这样,由各组的第一个盘块可链成一条链。

(4)将第一组的盘块总数和所有的盘块号记入空闲盘块号栈中,作为当前可供分配的空闲盘块号。

(5)最末一组只有99个盘块,其盘块号分别记入其前一组的S.freee(1)~S.free(99)中,而在S.freee(0)中则存放“0”,作为空闲盘块链的结束标志。

1.2空闲盘块的分配与回收当系统要为用户分配文件所需的盘块时,须调用盘块分配过程来完成。

该过程首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格。

若该盘块号已是栈底,即S.freee(0),这是当前栈中最后一格可分配的盘块号。

由于在该盘块号所对应的盘块号记有下一组可用的盘块号,因此,须调用磁盘读过程,将栈底盘块号所对应的盘块的容读入栈中,作为新的盘块号栈的容,并把原栈底对应的盘块分配出去。

然后,再分配一相应的缓冲区。

最后,把栈中的空闲盘块数减1并返回。

在系统回收空闲盘块时,须调用盘块回收过程进行回收。

它是将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。

当栈中空闲盘块号数目已达100时,表示栈已满,便将现有栈中的100盘块号记入新回收的盘块中,再将其盘块号作为新栈底。

、2.系统设计2.1算法及说明首先定义磁盘分配数组并初始化,9个一维数组分别表示9个空闲块,程序运行时,先将专用块A〔0〕复制到存中,然后进行功能选择,分配时,查MA,从中找出空闲块号,当一组的空闲块只剩第一块时,应把该块中指出的下一组的空闲块数和块号复制专用块这,然后把该块分配给申请者,当一组的空闲块分配完后则把专用块容(下一组情况)复制到存,再为申请者分配。

回收时,输入待回收的块号,查找该块是否已被分配,若未分配,退出,否则,当前组不满规定块数时,将归还块登记入该组,若当前组已满,则另建一新组,这时归还块作为新一组的第一块,应把存中登记的一组情况MA复制到归还块中,然后在MA这重新登记一个新组。

显示分组情况。

2.2算法流程图2.3数据结构及各子程序(1) int MA; /*空闲块数组*/(2) int A[9][6]={{5,1,2,3,4,5},{5,6,7,8,9,10},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{5,0,11,12,13,14},{0,0,0,0,0,0},{0,0,0,0,0,0}};/*磁盘空间*/(3) int mark[9]; /*存放已分配的块*/int No=0; /*已分配的块数*/(4) void display() /*显示分组情况*/(5) void assign() /*分配空闲块*/(6) void callback() /*回收空闲块*/(7) void menu() /*功能选择函数*/3.成果3.1磁盘存储空间的分配运行后,显示文件区中的所有空闲盘块号,将其分为三组,每组5个盘块。

则第一组为1~5号盘块,第二组为6~10号盘块,第三组即最末一组为11~14号盘块。

(注:最后一组的盘块数为5是因为这是指可供使用的空闲盘块,在S.free(0)中存放的0为空闲盘块的结尾标志。

)之后键盘输入,输入1分配磁盘存储空间(每次仅分配一个存储空间)。

3.2磁盘存储空间的回收输入y表示继续。

接着继续输入2可以将已分配的磁盘存储空间进行回收。

3.3结束若在选择continue or not?时选择n,则结束程序。

4.总结4.1 个人总结勋在一的课设中,我对操作系统中的磁盘存储空间的管理有了更深的认识,同时对其中的算法“成组法”进行了深入的理解与运用,在VC6.0平台上运用C/C++语言对磁盘存储空间的管理进行了编程实现,在实践过程中也遇到了多的困难,但是在小组共同努力,共同合作的基础上,我们还是圆满的完成了任务。

同时深刻的理解了所学的知识。

对知识的理解程度要看你运用的好不好,实践时检验真理的标准,我也从中学到了很多东西。

在一的过程中,大家都付出了努力和汗水。

一起交流,一起共同进步。

同时我也了解到了团队合作的重要,一家都分工明确,各司其职,最终编写出完整可运行的程序。

磁盘存储空间一般可有空闲表法和空闲链表法来管理,但是空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表和空闲链表太长。

在UNIX 系统中采用的是成组法,这是将上述两种法相结合而形成的一种空闲盘快管理法,他兼备了上述两种法的优点而克服了两种法均有的表太长的缺点。

对成组法进行了编程实现让我更好的了解了该法的各项原理,同时也对我后续的课程乃至毕业后找工作都有很大的帮助。

总之,我很高兴能顺利完成任务并且学到很多东西。

4.2 个人总结史迎丰通过一的课设,我对操作系统有了进一步的了解,尤其是对成组法有了更深的学习和运用。

我更深刻地领会了操作系统工作原理和操作系统实现法,并提高了程序设计能力,虽然实验的过程中遇到一些困难,但及时发现仔细研究解决使我更能深刻的理解所学知识。

一过得很快,但是我们组很好的完成了任务,大家都付出了努力和汗水。

一起交流,一起共同进步。

我学会了团队的合作是多么重要,不管你个人是多么的厉害,如果是只要你一个人去完成这次课程,那都是很有难度的,但如果整个团队齐心协力的去完成它,那么就会达到事半功倍的效果。

我们分工明确,每个人都非常认真的去完成自己的任务。

这次课设,我受益匪浅,不仅学习到了知识,还学会了团队合作。

同时,这次课设由c语言来完成,我发现我的c语言基础不是很扎实,不过通过同学的指导,我的c语言能力有了显著的提升。

认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。

所以这次课设对我们的作用是非常大的,我从中学会了很多平时上课学不到的东西。

这次课设虽然有些辛苦,但是我们能完美的完成任务,我感到很高兴,而且学到了很多。

4.3 个人总结齐泓洋时间如梭,一的操作系统课设即将结束,时间虽短,但对于我来说,却是受益匪浅的,这期间,在老师和组员们的关心支持下,我逐步对成组法有了更深一步的了解。

空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表和空闲链表太长。

在UNIX系统中采用的是成组法,这是将上述两种法相结合而形成的一种空闲盘快管理法,他兼备了上述两种法的优点而克服了两种法均有的表太长的缺点。

在UNIX系统中,将空闲块分成若干组,每100个空闲块为一组,每组的第一空闲块登记了下一组空闲块的物理盘块号和空闲块总数。

如果一个组的第一个空闲块号等于0,则有特殊的含义,意味着该组是最后一组,即无下一个空闲块。

分配空闲块的时候,从前往后分配,先从第一组开始分配,第一组空闲的100块分完了,才进入第二组。

释放空闲块的时候正好相反,从后往前分配,先将释放的空闲块放到第一组,第一组满了,在第一组前再开辟一组,之前的第一组变成第二组。

做课程设计时,指导老师给了我们很大帮助,发现了很多我们没有想到的问题,提了很多改进系统的意见。

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,这次课程设计虽然很累,但我学到了不少东西,对软件的设计过程和法有了更深入的了解,培养了我们的团队精神,锻炼了我们的沟通和表达能力。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

4.4 个人总结霖通过本学期的操作系统课程进程控制、请求分页存储器管理、设备管理、文件管理、进程调度等实验,模拟操作系统原理的实现,使我能更深刻地领会操作系统工作原理和操作系统实现法,并提高程序设计能力,虽然实验的过程中遇到一些困难,但及时发现仔细研究解决使我更能深刻的理解所学知识。

实验程序仍有诸多不足之处,但实验过程中收获颇多,也为以后的实验积累了经验,这也更能促使我进步。

在UNIX系统中,将空闲块分成若干组,每100个空闲块为一组,每组的第一空闲块登记了下一组空闲块的物理盘块号和空闲块总数。

如果一个组的第一个空闲块号等于0,则有特殊的含义,意味着该组是最后一组,即无下一个空闲块。

分配空闲块的时候,从前往后分配,先从第一组开始分配,第一组空闲的100块分完了,才进入第二组。

释放空闲块的时候正好相反,从后往前分配,先将释放的空闲块放到第一组,第一组满了,在第一组前再开辟一组,之前的第一组变成第二组。

通过本次课程设计,让我对UNIX操作系统有了一定的了解,特别是掌握了一些基本的UNIX操作指令,对核的修改,调用,以及实现文件管理两面功能也加深了索引部分的认识,以前只是知道个原理性的东西,为接下来的UNIX学习打下了基础。

同时,也加深了对计算机操作系统这门课的部分知识点的理解。

也加强了我的调试能里,以及遇到问题能基本靠自己或上网检索的能力。

这个课设让我做使不那么死板,后来遇到问题我不会非得按照那个貌似正确的步骤一步一步来做,而是会去想它的原理,用自己的法从本质上把问题解决。

这个课设既有趣又让我学到了不少东西,感老师的指导!5.参考文献《计算机操作系统》汤小丹电子科技大学出版社《操作系统课程设计》善平季江民大学出版社C/C++源代码:#include<stdio.h>int MA[6]={5,1,2,3,4,5};/*空闲块数组*/int A[9][6]={{5,1,2,3,4,5},{5,6,7,8,9,10},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{5,0,11,12,13,14},{0,0,0,0,0,0},{0,0,0,0,0,0}};/*磁盘空间*/int mark[9];/*存放已分配的块*/int No=0;/*已分配的块数*/void display1(){int i,j,temp,count;No=0;if(MA[1]!=0){ i=MA[0];printf("\ngroup1:");for(j=1;j<=i;j++){printf(" %d ",MA[j]);mark[++No]=MA[j];}temp=MA[1];count=2;while(A[temp][1]!=0){printf("\ngroup%d:",count);i=A[temp][0];for(j=1;j<=i;j++){printf(" %d ",A[temp][j]);mark[++No]=A[temp][j];}count++;temp=A[temp][1];}printf("\ngroup%d:",count);i=A[temp][0];for(j=2;j<=i+1;j++)if(A[temp][j]>0){printf(" %d ",A[temp][j]);mark[++No]=A[temp][j];}}else{i=MA[0];if(i==1)printf("\nThe blocks are all assigned"); else{printf("\ngroup1:");for(j=2;j<=i;j++){printf("%d",MA[j]);mark[++No]=MA[j];}}}}void display()/*显示分组情况*/{int i,j;if(MA[0]!=0)display1();else{i=MA[1];for(j=0;j<=5;j++)MA[j]=A[i][j];display1();}}void assign()/*分配空闲块*/{int s,i;if(MA[0]>1)/*若该组不止一个空闲块*/{i=MA[0];s=MA[i];MA[0]--;printf("\nnumber of the block:%d",s); }elseif(MA[0]==1)/*只剩一个空闲块*/{if(MA[1]!=0)/*还有其它空闲块组*/{s=MA[1];for(i=0;i<=5;i++)A[0][i]=A[s][i];MA[0]--;printf("\nnumber of the block:%d",s);}else/*没有其它空闲块组*/{printf("\nThere isn't any space");return;}}else/*当前组已分配完*/{for(i=0;i<=5;i++)MA[i]=A[0][i];assign();}display();/*显示分组情况*/}void callback()/*回收空闲块*/{int i,j,temp;printf("\ninput the No. of the block you want to callback:"); scanf("%d",&j);getchar();/*得到待回收的空闲块号*/for(temp=1;temp<=No;temp++){if(mark[temp]==j)break;}if(temp<No+1)/*若该空闲块已在,退出*/{printf("\nThe block is in the disk");return;}if(MA[0]<5)/*当前组不满5块*/{i=MA[0];MA[i+1]=j;MA[0]++;}else/*已有5块*/{for(i=0;i<=5;i++)A[j][i]=MA[i];MA[0]=1;MA[1]=j;}display();/*显示*/}void menu()/*功能选择函数*/{int choice;char judge;printf("\ninput your choice:(1--assign,2--callback):"); scanf("%d",&choice);getchar();if(choice==1)assign();elseif(choice==2)callback();elseprintf("\ninvalid command!");printf("\ncontinue or not?(y--Yes,n--Not):");scanf("%c",&judge);getchar();if(judge=='y')menu();else{printf("\nNow the graph is:");display();printf("\npress any key to quit");getchar();}}void main(){..w int i;for(i=0;i<=5;i++) MA[i]=A[0][i]; display();menu();}。

相关文档
最新文档