模拟磁盘文件管理的程序
《操作系统》实验报告
《操作系统》实验报告一、实验目的操作系统是计算机系统中最为关键的组成部分之一,本次实验的主要目的是深入理解操作系统的基本原理和功能,通过实际操作和观察,熟悉操作系统的核心概念,包括进程管理、内存管理、文件系统和设备管理等,提高对操作系统的实际应用能力和问题解决能力。
二、实验环境本次实验在以下环境中进行:操作系统:Windows 10开发工具:Visual Studio 2019编程语言:C++三、实验内容1、进程管理实验进程是操作系统中最基本的执行单元。
在这个实验中,我们使用C++编写程序来创建和管理进程。
通过观察进程的创建、执行和结束过程,理解进程的状态转换和资源分配。
首先,我们编写了一个简单的程序,创建了多个子进程,并通过进程标识符(PID)来跟踪它们的运行状态。
然后,使用等待函数来等待子进程的结束,并获取其返回值。
在实验过程中,我们发现进程的创建和销毁需要消耗一定的系统资源,而且进程之间的同步和通信需要谨慎处理,以避免出现死锁和竞争条件等问题。
2、内存管理实验内存管理是操作系统的核心功能之一,它直接影响系统的性能和稳定性。
在这个实验中,我们研究了动态内存分配和释放的机制。
使用 C++中的 new 和 delete 操作符来分配和释放内存。
通过观察内存使用情况和内存泄漏检测工具,了解了内存分配的效率和可能出现的内存泄漏问题。
同时,我们还探讨了内存分页和分段的概念,以及虚拟内存的工作原理。
通过模拟内存访问过程,理解了页表的作用和地址转换的过程。
3、文件系统实验文件系统是操作系统用于管理文件和目录的机制。
在这个实验中,我们对文件的创建、读写和删除进行了操作。
使用 C++的文件流操作来实现对文件的读写。
通过创建不同类型的文件(文本文件和二进制文件),并对其进行读写操作,熟悉了文件的打开模式和读写方式。
此外,还研究了文件的权限设置和目录的管理,了解了如何保护文件的安全性和组织文件的结构。
4、设备管理实验设备管理是操作系统与外部设备进行交互的桥梁。
信息技术(专升本)模拟练习题与参考答案
信息技术模拟练习题与参考答案一、单选题(共100题,每题1分,共100分)1、在编辑文章时,要将第五段移到第二段前,可先选中第五段文字,然后( )。
A、把插入点移到第二段开头,击[剪切]按钮,再击[粘贴]按钮B、击[复制]按钮,再把插入点移到第二段开头,击[粘贴]按钮C、击[粘贴]按钮,再把插入点移到第二段开头,击[剪切]按钮D、击[剪切]按钮,再把插入点移到第二段开头,击[粘贴]按钮正确答案:D2、在WINDOWS 环境中,对安装的汉字输入法进行切换的键盘操作是( )A、Shift+空格键B、Ctrl+ShiftC、Ctrl+圆点D、Ctrl +空格键正确答案:B3、一般操作系统的主要功能是()。
A、管理数据库文件B、管理用各种语言编写的源程序C、控制和管理计算机系统软、硬件资源D、对汇编语言、高级语言和甚高级语言进行编译正确答案:C4、下列关于IP的说法错误的是()。
A、IP地址指出了该计算机连接到哪个网络上B、IP地址在Internet上是唯一的C、IP地址是Internet上主机的数字标识D、IP地址由32位十进制数组成正确答案:D5、PAL制式的帧率为( )。
A、30f/sB、25f/sC、24f/sD、28f/s正确答案:B6、Excel中,如果移动或复制了工作表,则( )用“撤销”按钮取消操作。
A、不一定不可以B、不可以C、不一定可以D、可以正确答案:B7、下面关于外关键字描述不正确的是A、定义外关键字需要对所参考表拥有select权B、外关键字必须是所参考表的主关键字.C、外关键字属性必须与参考的属性是相同的数据类型D、一个表中可以有多个外关键字.正确答案:A8、设一组初始记录关键字的长度为8,则最多经过()趟插入排序可以得到有序序列。
A、6B、8C、9D、7正确答案:D9、2008年,()先后在无锡和北京建立了两个云计算中心A、AmazonB、微软C、GoogleD、IBM正确答案:D10、数据结构主要研究()。
操作系统课程设计项目参考
滴加碘液后
滴加碘液前
12/12/2021
第十二页,共二十三页。
消化(xiāohuà):在消化道内将食物分解成可吸收 (xīshōu)的成分的过程
(包括物理性消化和化学性消化)
吸收(xīshōu):营养物质通过消化道壁进入循环 系统的过程
12/12/2021
第十三页,共二十三页。
消化(xiāohuà)和吸收的过程
12/12/2021
第十九页,共二十三页。
练习(liànxí)
• 2、分析数据,指出(zhǐ chū)哪一部分消化道中消化液最多。
• 在每天摄入800克食物和1200毫升水的情况下, 消化腺大致分泌以下数量消化液。 1500毫升唾液 2000毫升胃液 1500毫升肠液 500毫升胆汁 1500毫升胰液
12/12/2021
第二十二页,共二十三页。
内容 总结 (nèiróng)
第二节。食物中的营养物质是在消化系统中被消化和吸收的。这粒西瓜籽在姗姗的消化道内, 经过了难忘的时光。它先遇到像轧钢机似的上、下尖硬的怪物,差点儿将它压得粉身碎骨。后来它
No 钻进了一条(yī tiáo)又长又窄的迷宫,它在这里走了很久,身边的许多物质都神秘地消失了。走出迷
唾液腺、胃腺(wèixiàn)、肝脏、胰腺、肠腺
1、淀粉在__口__腔__开始消化、蛋白质在____开始胃消化、脂肪在_______开始 消小化肠。
2、胆汁是一种消化液,但不含消化酶,起乳化脂肪的作用。
二、人体消化、吸收的主要器官—— _____小肠 能 训 练解
胰脏:分泌(fēnmì)胰液 肠腺:分泌肠液
肝脏:最大的腺体,分泌胆汁。 胆汁无消化酶,有乳化脂肪 的
作用。
第七页,共二十三页。
MS_DOS简介以及常用名令介绍
• • • •
DOS启动盘可以挽救崩溃的Windows操作系统 BIOS刷新 Firmware更新 独立操作系统进行故障检测
16
DOS、命令提示符--启动盘应用
DOS的启动盘创建方法根据引导媒体不同 分成三种不同的制作方法:
•
软盘:
利用Windows系统格式化可引导介质,如: 软盘等。在格式化窗口中“创建一个MSDOS启动盘”勾选,如右图:
27
文件命名规则--文件目录结构
•
文件目录结构: 树型目录结构 –目录和文件的隶属关系好象一个倒置的树,树根在上,称 为根目录,树叉在下,称为子目录,树的叶子称为文件 –根目录下可以挂若干子目录和文件,一级子目录下可以挂 二级子目录和文件 根目录
子目录1
子目录2
子目录3
二级子 目录
文件1
文件2
28
18
DOS、命令提示符--界面介绍
命令提示符(DOS)界面
命令提示 符(DOS) 的界面
19
主要内容:
• •
DOS概述 如何进入DOS、命令提示符
• •
文件命名规则
常用命令
20
文件命名规则--文件的概念
• •
文件是记录在磁盘等存储介质上的具有名字的一组相关信息的 集合,指在逻辑上具有完整意义的相关信息的集合 计算机处理的数据或运行的程序都是以文件方式保存的
• 命令处理程序()
该程序主要负责接收、识别、解释、处理用户通过键盘等输入的命令; 完成内部命令的解释和处理以及外部命令在内存的装入、键盘中断、出 错处理
Ps:凡是具备以上所讲的系统文件的磁盘都可视作DOS系统盘。
12
主要内容:
• •
DOS概述 如何进入DOS、命令提示符
虚拟实验:文件管理与磁盘恢复
9 1 12 25
第2次操作
D:/多媒体/图片/
7
7 22 21
第3次操作
野生动物.wmv
D:/多媒体/野生动物.wmv
4
4 10 23
第4次操作
朱自清 匆匆.doc
D:/多媒体/朱自清 匆匆.doc
19
19 8 2 27
实验报告表6 - 2创建文件过程演示实验记录表
创建的文件名
文件路径
分配的物理首地址
文件索引序列
鲁迅朝花夕拾.doc
D:15 16
实验报告表6 - 3删除文件过程实验记录表
删除的文件名
是否删除文件目录项
是否删除文件索引序列
是
是
做“文件管理与磁盘恢复”实验,完成以下实验报告表并提交。
可将以下实验报告表内容复制到word中,填写完成后,转成pdf后即可提交。
实验名称:文件管理与磁盘恢复
实验报告表6 - 1打开文件过程演示实验记录表
操作序号
文件名
文件路径
物理首地址
文件索引序列
第1次操作
命运交响曲.mp3
D:/多媒体/音乐/命运交响曲.mp3
如何在Windows操作系统中使用虚拟磁盘管理工具
如何在Windows操作系统中使用虚拟磁盘管理工具Windows操作系统是全球使用人数最多、应用场景最广泛的操作系统之一。
不论是个人用户还是企业用户,都需要对其进行管理和维护,以保证其稳定性和使用效率。
其中,虚拟磁盘管理工具是一个非常重要的组成部分,可以帮助用户管理和优化磁盘空间,提高系统性能。
那么,在本文中,我们将详细介绍如何在Windows操作系统中使用虚拟磁盘管理工具。
一、了解虚拟磁盘虚拟磁盘是Windows操作系统中一个非常实用的工具,它可以将一个文件或一个文件夹模拟成一个磁盘。
这样可以方便地管理和使用大量的资料和文件。
虚拟磁盘的容量可以根据用户的需求来进行设置。
二、使用虚拟硬盘创建虚拟磁盘虚拟硬盘是Windows操作系统的一个内置工具,它可以帮助用户创建和管理虚拟磁盘。
具体步骤如下:1、打开计算机管理程序在计算机管理程序中,可以看到设备管理器、磁盘管理器等多个选项。
2、选择“磁盘管理”磁盘管理是一个可以管理所有磁盘驱动器和分区的工具,包括虚拟磁盘。
3、选择“创建虚拟硬盘”在“磁盘管理”中,可以看到“创建虚拟硬盘”选项,选择该选项后,会弹出“新建虚拟硬盘向导”界面。
4、设置虚拟磁盘参数在“新建虚拟硬盘向导”界面中,可以设置虚拟磁盘的位置、大小、格式等参数,根据实际需求进行设置。
5、完成创建设置完成后,单击“完成”按钮,即可完成虚拟磁盘的创建。
在磁盘管理中可以看到新建的虚拟磁盘。
三、使用DiskGenius创建虚拟磁盘DiskGenius是一款功能强大的磁盘管理工具,可以帮助用户创建和管理虚拟磁盘。
具体步骤如下:1、下载并安装DiskGeniusDiskGenius是一款免费的软件,在官网上可以免费下载和安装。
2、打开DiskGenius打开安装完成的DiskGenius程序,在主界面中可以看到所有的磁盘分区信息。
3、选择“创建新虚拟磁盘”在主界面中,可以看到“创建新虚拟磁盘”按钮,单击该按钮后,会弹出“创建虚拟磁盘向导”界面。
操作系统实训报告
操作系统实训报告一、实训背景操作系统是计算机系统中最基本的软件之一,它负责管理计算机系统的各种资源,如内存、CPU、磁盘等。
为了更好地掌握操作系统的原理和实现,我们在课程中进行了一系列的操作系统实训。
二、实训内容1. 实验环境搭建在开始实验之前,我们需要先搭建好实验环境。
我们使用了虚拟机软件VMware Workstation来模拟一个计算机系统,并安装了Ubuntu 操作系统作为我们的实验平台。
2. 实验任务在本次实训中,我们主要完成了以下几个任务:(1)进程管理:通过编写一个简单的C程序来模拟进程创建、销毁和调度等操作。
(2)内存管理:通过编写一个简单的C程序来模拟内存分配和回收等操作。
(3)文件系统:通过使用Linux命令行工具来创建、读取和删除文件,并学习了文件权限管理等知识。
三、实训过程1. 进程管理首先,我们使用C语言编写了一个简单的程序,用于模拟进程创建和销毁。
程序首先创建一个父进程,并利用fork()函数创建两个子进程。
然后,父进程等待子进程结束后输出一条消息并退出。
接着,我们修改了程序,使用了wait()函数来实现进程调度。
wait()函数可以让父进程等待子进程结束后再继续执行。
我们在程序中使用了两个wait()函数来实现进程的顺序执行。
最后,我们添加了一个信号处理函数,用于处理子进程结束时发送的SIGCHLD信号。
信号处理函数可以在子进程结束时立即执行,不需要等待父进程调度。
2. 内存管理接下来,我们使用C语言编写了一个简单的程序,用于模拟内存分配和回收。
程序首先创建一个指向整型数组的指针,并使用malloc()函数动态分配一块内存。
然后,在内存中写入一些数据,并输出到屏幕上。
最后,使用free()函数释放内存并退出程序。
在编写程序时,我们注意到malloc()和free()函数是操作系统提供的内存管理接口。
malloc()函数可以动态分配一块指定大小的内存,并返回一个指向该内存区域的指针;而free()函数可以释放之前分配的内存。
操作系统B实验报告(华北电力大学科技学院)
h->next->priority--;
}
void show(PCB *h)
{
PCB *p=h->next;
while(p!=NULL)
{
cout<<"
p"<<p->id <<"
"<<p->runtime <<"
"<<p->priority <<"
"<<p->status <<endl;
cout<<"---------------------------------------------------------------------- "<<endl;
课程设计报告
( 2012-- 2013 年度第 1 学期)
名 称: 操作系统原理课程设计 B
院 系: 科技学院信息工程系
班 级:
学 号:
学生姓名:
指导教师:
设计周数:
4
成 绩:
日期: 年 月 日
《操作系统原理课程设计 B》课程设计
任务书
一、 目的与要求
1. 理解和掌握操作系统的基本概念、基本组成与工作原理; 2. 理解和掌握操作系统中主要功能模块的工作原理及其实现算法; 3. 掌握软件模块设计技能;熟悉并能较好地利用软件开发环境独立编程、调试和分 析程序运行情况,逐渐形成创新思维和从事系统软件的研究和开发能力。
q=q->next; } p->next=q->next; q->next=p; } } void sort(PCB *h) { if(h->next->runtime==0) { h->next->status='E'; h->next=h->next->next; return; } PCB *p=h->next; h->next=p->next; PCB *q=h->next; if((q==NULL)||(p->priority>q->priority)) { p->next=h->next; h->next=p; return;
操作系统课程设计报告题目及代码
题目一模拟操作系统设计设计一个模拟操作系统管理程序,实现以下管理功能:1.内存管理功能2.文件管理功能3.磁盘管理功能题目二虚拟存储器各页面置换算法的实现与比较内容:设计一个虚拟存储区和内存工作区,通过产生一个随机数的方法得到一个页面序列,假设内存给定的页面数由键盘输入,分别计算使用下述各方法时的内存命中率:先进先出算法〔FIFO〕、最近最少使用算法〔LRU〕、最正确淘汰算法〔OPT〕、最少页面算法〔LFU〕等。
题目三文件系统设计通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。
内容:为Linu*系统设计一个简单的二级文件系统,以实现以下功能:1.可以实现以下几条命令(1)login 用户登录(2)dir 文件目录列表(3)creat 创立文件(4)delete 删除文件(5)open 翻开文件(6)close 关闭文件(7)read 读文件(8)write 写文件2.实验提示〔1〕首先确定文件系统的数据构造:主目录、子目录及活动文件等。
主目录和子目录都以文件的形式存放在磁盘,这样便于查找和修改。
〔2〕用户创立的文件,可以编号存储于磁盘上。
如file0、file1、file2……等,并以编号作为物理地址,在目录中进展登记。
[清华大学?操作系统教程? *丽芬编著题目四设计一个按时间片轮转法进程CPU调度的程序。
提示:〔1〕假设系统有5个进程,每个进程用一个进程控制块PCB来代表,PCB中包含进程名、指针、到达时间、估计运行时间、进程状态表。
其中,进程名即为进程进标识。
〔2〕为每一个进程设计一个要示运行时间和到达时间。
〔3〕按照进程到达的先后顺序排成一个循环队列,再设一个队首指针指向第一个到达的进程首址。
〔4〕执行处理机调度时,开场选择队首的第一个进程运行。
另外再设一个当前运行进程指针,指向当前正运行的进程。
〔5〕由于本实验是模拟实验,所以对被选中进程并不实际启运运行,只是执行:a.估计驼行时间减1b.输出当前运行进程的名字。
ISO22000文件管理程序
对中央工厂体系文件和资料(内部制定或来自外部的)的制定、评审、批准、发布、编号、发放、更改、作废等进行控制,使该管理体系运行的工作场所都执行有效版本。
2 适用范围适用于中央工厂文件和资料的控制和管理。
包括质量手册、程序、标准规范、作业指导书等。
这些文件可能承载在各种载体上,无论是硬拷贝或是电子媒体,无论是数字的、模拟的、摄影的或书面的形式。
3 术语文件:信息及其承载媒体。
媒体:可以是纸张,计算机磁盘,光盘或其他电子媒体,照片或标准样品,或它们的组合。
4 职责4.1内部文件的编制,变更与修改权责;4.2组别编号4.3 外来文件由各部门收集,部门经理确认,各部门控制与发放、归档、销毁,研发部门组织定期对技术标准规范进行审查、跟踪;4.4 所有的内外部文件由品控组登记到《体系文件清单》中全面控制5 工作程序5.1 文件的分类根据文件的来源,管理体系文件分为内部文件和外来文件。
根据文件的受控状态管理体系文件分为“受控”文件与“非受控”文件。
对文件的适用范围和现行有效进行控制。
“受控”文件为需要控制使用范围和保证现行有效性的文件,包括所有内部文件和现行有效地国际、国家、行业标准、地方标准、企业标准、法律法规等。
“非受控”文件为外来参考资料、行业期刊等。
5.2 文件编写规定5.2.1 质量手册:各章节的条目为:1.总则;2. 范围;3. 职责;4.要求;5.支持性文件。
5.2.2 程序文件:1.目的;2.适用范围;3.职责;4.工作程序;5.相关记录。
5.2.3 作业指导书的文件结构按不同类型规定不同的格式。
5.2.4 版本及修订状态:版本原版为1版,第一次换版为2版,依次类推;未修订为0,第一次修订为1,同一版本如修改4次以上或有重大更改,需改版。
5.3 内外部文件编号5.3.1 一、二、三层文件编号(不含外部文件)5.3.1.1 手册编号规则:DX — SC —××××手册版号:用年号表示(如:2010)质量手册代号南京东轩餐饮管理有限公司代号5.3.1.2 程序文件编号规则DX — CX—××文件顺序号:用01;02;03…表示CX:程序文件代号南京东轩餐饮管理有限公司代号5.3.1.3 作业文件编号规则DX – ZY -顺序号101、102....;表示(第一位数字表示部门编码;后两位数字表示组别,组别是00的代表是此部门通用文件;×××表示文件顺序号)ZY:作业文件代号南京东轩餐饮管理有限公司代号5.3.1.4 程序文件引出的记录表单编号规则DX — QC—××-××记录表单顺序号:用01;02…表示文件顺序号:用01;02;03…表示CXR:程序文件记录表代号南京东轩餐饮管理有限公司代号5.3.1.5作业指导书引出的记录表单编号规则DX – ZYR -×××-××记录表单顺序号:用01;02.....;表示作业文件编号:用101、102.....;表示 ZYR:作业文件记录表代号南京东轩餐饮管理有限公司代号5.3.2 外来文件编号规则外来的文件可将其自身编号作为编号;无编号的按如下规则编号。
文件系统实验报告
文件系统实验报告实验四文件系统实验一.目的要求1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。
2、要求设计一个n个用户的文件系统,每次用户可保存m 个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。
二.例题:1、设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。
2、程序采用二级文件目录和用户文件目录。
另外,为打开文件设置了运行文件目录。
3、为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。
4、算法与框图:①因系统小,文件目录的检索使用了简单的线性搜索。
②文件保护简单使用了三位保护码:允许读写执行、对应位为1,对应位为0,则表示不允许读写、执行。
③程序中使用的主要设计结构如下:主文件目录和用户文件目录打开文件目录文件系统算法的流程图如下:三. 实验题:1、增加2~3个文件操作命令,并加以实现。
#include#include#include#include#define MAXSIZE 100#define ADDSIZE 50#define PT elem+l-> length#define N 4typedef struct term{/*班级和学期的结构体*/char class1[10];char term1[10];}term;typedef struct student{/*学生成绩信息的结构体*/ term st;/*班级和学期结构体放于此结构体中*/ char num[10];char name[12];float course[4];float total;float average;int bit;}lnode,*stu;typedef struct{lnode *elem;/*指向上个结构体的指针*/int size;/*最大能放lnode结构体成员的个数*/ int length;/*当前长度*/}sqack,*sq;sqack *l;void init/*动态分配存储空间*/{l-> elem=malloc);l-> length =0;l-> size=MAXSIZE;}void input/*输入学生的信息*/{lnode *newbase,*p;char cla[10],ter[10],ch;int n,i;if{newbase=realloc*sizeof);/*追加存储空间*/ l-> elem =newbase;l-> size +=ADDSIZE;}p=l-> elem;do{printf;gets;gets;printf;scanf;printf;for{scanf;strcpy;strcpy;++l-> length ;}printf “);ch=getchar;}while;}void change/*修改学生的信息*/{lnode *p;lnode e;int flag=1,i;char s1[10],num1[10];printf:\n “);gets;gets;p=l-> elem ;while && flag==1)/*查找要修改的学生的信息*/ {if==0&&strcmp==0)flag=0;/*找到了*/p++;}p--;if printf;printf;forprintf;printf;printf;scanf;forscanf;*p=e;}void same /*把学期和班级相同的学生信息放在结构体数组tt 中*/ {int i=0;lnode *p,*q;q=t;p=l-> elem ;while{if==0&&strcmp==0){*q=*p;q++;i++;}p++;*k=i;}void sort/*按学生成绩从高到低排序函数*/ {int i;lnode *q,temp;for{q-> total =0;forq-> total =q-> total +q-> course [i];q-> average =q-> total /N;}forforif-> total){temp=*q;*q=*;*=temp;}}void print/*输出学生的成绩*/lnode *p;p=q;for{printf;forprintf;printf;printf;}}void stat/*统计学生的成绩*/ {lnode tt[50];char ter[10],clas[10];int i,k;printf:\n “);forter[i]=getchar;forclas[i]=getchar;same;/*把学期和班级相同的学生信息放在结构体数组tt中*/ sort;/*按学生成绩从高到低排序函数*/print;/*输出学生的成绩*/}void search1/*按学号查*/{lnode *p;char ter1[10];int i,flag=1;p=l-> elem;printf;gets;for{if==0){flag=0;printf;printf;forprintf;printf;printf;}}if printf;}void search2/*按姓名查*/ {lnode *p;char ter1[10];int i,flag=1;p=l-> elem;printf;gets;for{if==0){flag=0;printf;printf;forprintf;printf;}}if printf ;}void search/*查找学生的成绩*/ {char ch;do{printf;ch=getchar;switch{case ‘1 ‘:search1;break;case ‘2 ‘:search2;break;default:}printf “);ch=getchar;} while;}void fail/*查找不及格及学生名单*/ {int i;lnode *p;for{forif{printf;forprintf;printf;printf;}}}void output/*按班级输出学生的成绩单*/{lnode tt[50];int k;char clas[10],ter1[10];printf; gets;gets;same;/*把学期和班级相同的学生信息放在结构体数组tt中*/ print;/*输出学生的成绩*/}试验四文件系统一、实验目的1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。
设计实现虚拟磁盘建立和分区管理java
设计实现虚拟磁盘建立和分区管理java一、概述虚拟磁盘是一种利用计算机内存空间模拟出的磁盘,可以在不需要物理硬盘的情况下进行文件存储和管理。
在Java中,可以通过实现虚拟磁盘来进行文件管理和操作。
本文将介绍如何设计实现虚拟磁盘建立和分区管理的Java程序。
二、设计思路1. 虚拟磁盘的基本结构虚拟磁盘由若干个扇区组成,每个扇区大小相同。
每个扇区包含一个扇区头和一个数据区。
扇区头包含该扇区的状态(已用或空闲)、下一个空闲扇区号等信息;数据区则存储具体的文件内容。
2. 磁盘格式化在使用虚拟磁盘之前,需要先进行格式化操作。
格式化操作会将所有扇区初始化为“空闲”状态,并将第一个扇区作为根目录所在位置。
3. 文件分配表为了方便管理文件,需要设计一个文件分配表(FAT)来记录每个文件所占用的扇区号及其大小。
FAT可以使用链式结构来实现,即每个FAT项记录下一个FAT项所对应的扇区号,最后一个FAT项则记录-1表示该文件已经结束。
4. 文件的读写为了读取文件,需要先查找FAT表中记录的该文件所占用的扇区号,然后按照扇区号依次读取每个扇区中的数据。
写入文件时,则需要先查找空闲扇区,将数据写入该扇区,并更新FAT表中对应的项。
5. 磁盘分区管理为了更好地管理虚拟磁盘中的数据,可以将磁盘分成多个分区。
每个分区可以有自己的根目录和FAT表。
当一个文件需要存储时,可以根据其大小和当前分区剩余空间来判断是否存储在当前分区或者其他分区。
三、实现步骤1. 虚拟磁盘类设计首先定义一个VirtualDisk类来表示虚拟磁盘。
该类包含以下成员变量:- blockSize:每个扇区大小- blockNum:总共有多少个扇区- fatStart:FAT表起始位置(第几个扇区)- rootStart:根目录起始位置(第几个扇区)- dataStart:数据起始位置(第几个扇区)2. 格式化操作实现格式化操作会将所有扇区初始化为“空闲”状态,并将第一个扇区作为根目录所在位置。
实验三 文件系统空闲空间管理模拟
实验三文件系统空闲空间管理模拟一、实验内容及要求要求打印或显示程序运行前和运行后的位示图,以及分配和回收磁盘的物理地址过程;二、基本原理用数组表示位示图,其中的每一位对应磁盘一个物理块的状态,0表示空闲,1表示分配;当请求分配一个磁盘块时,寻找到数组中为0的位,计算相对磁盘块号,并计算其在磁盘中的物理地址(柱面号、磁道号、物理块号),并将其状态由0变到1。
当释放某一物理块时,已知其在磁盘中的物理地址,计算其相对磁盘块号,再找到位示图数组中的相应位,将其状态由1变为0。
三、实验步骤1. 输入已知参数:磁盘柱面数m, 每柱面磁道数p, 每磁道物理块数q, 计算位示图大小;假设采用整数数组,则数组大小为:Size= (柱面数*每柱面磁道数*每磁道物理块数)/ sizeof(int) +12. 申请大小为size的整数数组map,并对其进行随机初始化。
例如:假设m=2, p=4, q=8, 共有64个磁盘块,若sizeof(int)=16, 则位示图大小为4,map[4]如下:位示图中每一位对应的相对磁盘块号如下图,磁盘块号由小到大对应于数组的低地址到高地址位上。
即map[0]的第0位到第15位分别对应0号磁盘块到15号磁盘块的状态,map[1]的第0位到第15位对应16号磁盘块到31号磁盘块的状态,以此类推。
如上表所示,29号磁盘的状态存在map[1]中,对应于第13位, 第一行表示位号。
3. 根据位示图中为1的位信息,生成一张已分配磁盘块表。
如:map[0]的第1位为1,则i=0,j=1, 其对应的相对块号block为1, 柱面号为0,磁道号为,物理块号为1计算公式如下:(1)已知位示图中的下标i , j, 计算相对块号Block= i*sizeof( int )+j(2)已知相对块号计算柱面、磁道、物理块号如下:柱面号C= 相对块号/(每柱面磁道数*每磁道物理块数)磁道号H= 相对块号%(每柱面磁道数*每磁道物理块数)/ 每磁道物理块数物理块号R= 相对块号%每磁道物理块数4. 提出申请磁盘块或释放磁盘块的要求,根据要求完成操作。
CMD常用命令大全
CMD常用命令大全大家都很熟悉cmd吧,它非常有用。
下面我为大家介绍一些常见的dos命令,这些命令在我们的工作中可能会用到。
1.cd命令可以显示当前目录名或改变当前目录。
2.dir命令可以显示目录中的文件和子目录列表。
3.md命令可以创建目录。
4.del命令可以删除一或数个文件。
5.XXX命令可以检查磁盘并显示状态报告。
6.cacls命令可以显示或者修改文件的访问控制表(ACL)。
7.copy命令可以将一份或多份文件复制到另一个位置。
8.date命令可以修改日期。
9.format命令可以格式化磁盘。
10.type命令可以显示文本文件的内容。
11.XXX命令可以移动文件并重命名文件和目录。
12.XXX命令可以展开一个或多个压缩文件。
13.ren命令可以重命名文件。
14.attrib命令可以显示或更改文件属性。
15.time命令可以显示或设置系统时间。
16.at命令可以安排在特定日期和时间运行命令和程序。
要使用AT命令,计划服务必须已在运行中。
命令可以进行多种操作,比如用户管理、时间管理、使用情况管理等。
stat命令可以显示协议统计和当前tcp/ip连接。
19.nbtstat命令可以基于NBT(net s over tcp/ip)的协议统计和当前tcp/ip连接。
20.route命令可以操作和查看网络路由表。
21.ping命令可以测试网络连接。
22.nslookup命令可以进行域名查找。
23.edit命令可以在命令行下进行文本编辑。
24.XXX命令是一个强大的命令行下修改tcp/ip配置的工具。
25.fdisk命令可以进行硬盘分区。
除此之外,还有许多其他的命令,比如attrib、ctty、defrag、doskey、debug、emm386、fc、lh/loadhigh、more、prompt、set、smartdrv、setver、subst、vol、xcopy等等。
这些命令可以用来设置文件属性、改变控制设备、磁盘碎片整理、调用和建立DOS宏命令、程序调试命令、扩展内存管理、文件比较、将程序装入高端内存、移动文件、改目录名、分屏显示、设置提示符、设置环境变量、设置磁盘加速器、设置版本、路径替换、显示指定的磁盘卷标号、拷贝目录和文件等等。
请简述磁盘管理的基本流程
请简述磁盘管理的基本流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 规划磁盘使用:在进行磁盘管理之前,需要根据实际需求规划磁盘的使用。
《操作系统》实验二
《操作系统》实验二一、实验目的本实验旨在加深对操作系统基本概念和原理的理解,通过实际操作,提高对操作系统设计和实现的认知。
通过实验二,我们将重点掌握进程管理、线程调度、内存管理和文件系统的基本原理和实现方法。
二、实验内容1、进程管理a.实现进程创建、撤销、阻塞、唤醒等基本操作。
b.设计一个简单的进程调度算法,如轮转法或优先级调度法。
c.实现进程间的通信机制,如共享内存或消息队列。
2、线程调度a.实现线程的创建、撤销和调度。
b.实现一个简单的线程调度算法,如协同多任务(cooperative multitasking)。
3、内存管理a.设计一个简单的分页内存管理系统。
b.实现内存的分配和回收。
c.实现一个简单的内存保护机制。
4、文件系统a.设计一个简单的文件系统,包括文件的创建、读取、写入和删除。
b.实现文件的存储和检索。
c.实现文件的备份和恢复。
三、实验步骤1、进程管理a.首先,设计一个进程类,包含进程的基本属性(如进程ID、状态、优先级等)和操作方法(如创建、撤销、阻塞、唤醒等)。
b.然后,实现一个进程调度器,根据不同的调度算法对进程进行调度。
可以使用模拟的方法,不需要真实的硬件环境。
c.最后,实现进程间的通信机制,可以通过模拟共享内存或消息队列来实现。
2、线程调度a.首先,设计一个线程类,包含线程的基本属性(如线程ID、状态等)和操作方法(如创建、撤销等)。
b.然后,实现一个线程调度器,根据不同的调度算法对线程进行调度。
同样可以使用模拟的方法。
3、内存管理a.首先,设计一个内存页框类,包含页框的基本属性(如页框号、状态等)和操作方法(如分配、回收等)。
b.然后,实现一个内存管理器,根据不同的内存保护机制对内存进行保护。
可以使用模拟的方法。
4、文件系统a.首先,设计一个文件类,包含文件的基本属性(如文件名、大小等)和操作方法(如创建、读取、写入、删除等)。
b.然后,实现一个文件系统管理器,包括文件的存储和检索功能。
虚拟资源的操作方法
虚拟资源的操作方法虚拟资源的操作方法主要包括创建、配置、管理和释放四个步骤。
在操作虚拟资源之前,我们首先需要了解虚拟资源的概念和分类。
虚拟资源是基于现实世界中的真实资源所创建的一种抽象概念,它可以模拟和扩展真实资源的功能和性能。
虚拟资源可以分为多种类型,包括虚拟机、网络、磁盘等。
接下来,我们将分别介绍每一种虚拟资源的操作方法。
1. 虚拟机的操作方法:虚拟机是一种软件模拟的计算机系统,它可以在一台物理服务器上模拟多台独立的虚拟计算机。
虚拟机的操作方法包括以下几个步骤:a. 创建虚拟机:首先,我们需要选择合适的虚拟机软件(如VMware、VirtualBox等)来创建虚拟机。
在创建虚拟机时,我们需要配置虚拟机的操作系统、内存、硬盘和网络等参数。
b. 配置虚拟机:创建虚拟机后,我们可以通过虚拟机管理软件对虚拟机进行配置。
配置包括调整虚拟机的CPU、内存、硬盘和网络等资源分配,以及安装和升级虚拟机的操作系统和应用程序。
c. 管理虚拟机:管理虚拟机主要包括启动、停止、暂停和恢复等操作。
通过虚拟机管理软件,我们可以远程监控和控制虚拟机的运行状态,并对虚拟机进行资源调整和故障排除等操作。
d. 释放虚拟机:当虚拟机不再需要时,我们可以通过虚拟机管理软件将其释放。
释放虚拟机可以节省资源,并提高整体系统的性能。
2. 虚拟网络的操作方法:虚拟网络是一种逻辑上的网络,可以连接虚拟机和物理主机,使它们能够互相通信和共享资源。
虚拟网络的操作方法包括以下几个步骤:a. 创建虚拟网络:我们可以通过虚拟网络管理软件(如VMware NSX、Open vSwitch等)来创建虚拟网络。
创建虚拟网络需要指定网络的拓扑结构、路由规则和安全策略等参数。
b. 配置虚拟网络:创建虚拟网络后,我们可以对虚拟网络进行配置。
配置包括调整虚拟网络的带宽、QoS和安全设置,以及管理虚拟网络上的虚拟机和物理主机等资源。
c. 管理虚拟网络:管理虚拟网络主要包括监控虚拟网络的运行状态,检测和修复网络故障,以及调整虚拟网络的参数和性能等操作。
vmdk写入原理
vmdk写入原理vmdk是一种虚拟磁盘文件格式,常用于虚拟化环境中。
它是由VMware公司开发的一种磁盘映像文件,用于存储虚拟机的硬盘数据。
vmdk文件中包含了虚拟机的操作系统、应用程序和数据等信息。
下面将从vmdk文件的创建、写入原理等方面进行介绍。
一、vmdk文件的创建在创建虚拟机时,需要为其分配一块磁盘空间来存储其操作系统和数据。
vmdk文件就是用来模拟这块磁盘空间的文件。
在创建vmdk文件时,需要指定其大小、类型以及存储位置等参数。
二、vmdk文件的结构vmdk文件由多个不同类型的区块组成,每个区块负责存储不同类型的数据。
以下是vmdk文件中常见的几个区块类型:1.描述符区块(Descriptor Block):该区块包含了vmdk文件的元数据信息,比如文件版本、文件大小、虚拟机的硬盘大小等。
2.扩展描述符区块(Extent Descriptor Block):该区块用于存储虚拟磁盘的分配信息,比如磁盘的大小、块大小等。
3.扩展区块(Extent Block):该区块用于存储虚拟磁盘的实际数据,包括操作系统、应用程序和数据等。
三、vmdk文件的写入原理当虚拟机运行时,操作系统和应用程序会向虚拟磁盘写入数据,这些数据最终会被存储在vmdk文件中。
vmdk文件的写入原理如下:1.虚拟机的写入操作:当虚拟机执行写入操作时,操作系统会将数据写入到虚拟磁盘的缓存中。
虚拟机监控程序(VMM)会拦截这些写入操作,并将数据传递给虚拟磁盘驱动程序。
2.虚拟磁盘驱动程序的处理:虚拟磁盘驱动程序会将收到的数据写入到vmdk文件的扩展区块中。
为了提高写入性能,虚拟磁盘驱动程序通常会将数据进行缓存,然后批量写入。
3.写入数据的存储方式:vmdk文件中的扩展区块使用一种称为“写时复制”(Copy-on-Write)的技术来存储数据。
当虚拟机写入数据时,虚拟磁盘驱动程序会将数据写入到新的扩展区块中,而不是直接覆盖原有的数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模拟磁盘文件管理的程序一、课程设计内容⑴自定义磁盘文件管理的数据结构;⑵能够自由创建、修改、删除文件;⑶文件具有一定自定义的属性;⑷能够显示当前系统文件的状态。
二、课程设计的数据结构说明程序中定义了两个类:class file//文件类{private:char name[10]; //文件名public:int tag; //删除标记 1:已删 0:未删file( ){ }char *getname( ){return name;} //获取文件名int gettag( ){return tag;} //获取删除标记int getlength() {return length;} //获取文件大小int getblocknum() {return blocknum;} // 磁盘块数int getblocksum1(){return blocksum1;} //磁盘块号的始点int getblocksum2(){return blocksum2;} //磁盘块号的终点int length,blocknum,blocksum1,blocksum2;void setname(char na[ ] ) {strcpy(name,na);} //设置文件名void delwenjian(){ tag=1; }//设置删除标记 1:已删 0:未删void creatfile(char *na,int L,int num,int s1,int s2) //创建文件void deltefile(char *na) {tag=1; strcpy(name,na);} //删除文件void disp( )//输出文件信息class fdatabase //文件库类{ private:int top; //文件记录指针file f[50];public:fdatabase(){top=-1;} //构造函数int search(char *fname)//按文件名查找int creatfile(char *na,int L,int num,int s1,int s2)//创建文件时先查找是否存在int deltefile(char *na)//删除文件时先查找是否存在void disp() //输出所有文件信息};三、课程设计的模板说明1、初始化,建立文件系统输入磁盘大小(G),每个盘块大小(M),自动建立位示图,位示图字长定为32位输出位示图的行数,以及行号、列号与磁盘块号的转换公式(都从0开始编号)。
2、循环选择执行以下功能1、存储文件输入建立的文件名和文件大小,如果该文件名已经存在,则输出不能建立的信息否则计算所需的磁盘块数为其分配足够多的磁盘块,并记录下来输出所占用的磁盘块号2、删除文件输入要删除的文件名,如果该文件名不存在,则输出删除错误信息,否则收回该文件所占用的磁盘块删除该文件名3、显示位示图情况显示位示图的情况显示剩余磁盘块的数目4、显示文件列表显示文件名,文件大小,占用的磁盘块数目和磁盘块号四、课程设计的源代码#include<iostream.h>#include <math.h>#include<iomanip.h>#include<string.h>#include<fstream.h>int i=0,j=0,sum=0,tt=0,r,ii,k,g,m;int a[100][32];class file//文件类{private:int no; //文件编号char name[10]; //文件名public:int tag; //删除标记 1:已删 0:未删file( ){ }char *getname( ){return name;} //获取姓名int gettag( ){return tag;} //获取删除标记int getno() {return no;} //获取文件编号int getlength() {return length;} //获取文件大小int getblocknum() {return blocknum;} // 磁盘块数int getblocksum1()//磁盘块号的始点{ return blocksum1; }int getblocksum2()//磁盘块号的终点{ return blocksum2;}int length; //文件大小int blocknum;//盘块数int blocksum1;//所占盘块号的始点int blocksum2;//所占盘块号的终点void setname(char na[ ] ) //设置文件名{strcpy(name,na);}void delwenjian(){ tag=1; }//设置删除标记 1:已删 0:未删void creatfile(char *na,int L,int num,int s1,int s2) //创建文件{ tag=0;length=L;blocknum=num;blocksum1=s1;blocksum2=s2;strcpy(name,na);blocknum=length/m; //盘块数=文件大小/盘块大小if(length%m!=0) //盘块数取上整blocknum=blocknum+1;cout<<" 所需磁盘块数:"<<blocknum<<endl<<endl;if((sum+blocknum)<=32) //所有盘块数只占用一行,直接赋值{ for(;j<(sum+blocknum);j++)a[i][j]=1;sum=sum+blocknum; //再进行下面文件的盘块数累加}else{ //占用多行,先赋值整行for(;j<32;j++)a[i][j]=1;i=i+1;for(j=0;j<(sum+blocknum)-32;j++) //再进行剩余项赋值{a[i][j]=1;}sum=sum+blocknum-32;}tt=tt+blocknum; //输出文件所占用的盘块号cout<<" 所占磁盘块号:"<<tt-blocknum<<" to "<<tt-1<<endl; blocksum1=tt-blocknum;blocksum2=tt-1;}void deltefile(char *na) //删除文件{ tag=1;strcpy(name,na);}void disp( )//输出文件信息{cout<<setw(8)<<name<<setw(10)<<length<<setw(18)<<blocknum<<setw(12)<<blocksum1<<" to "<<blocksum2<<endl;}};class fdatabase //文件库类{ private:int top; //文件记录指针file f[50];public:fdatabase() //构造函数{top=-1;}int search(char *fname)//按文件名查找{for ( ii=0;ii<=top;ii++){ if (strcmp(f[ii].getname(),fname)==0 && f[ii].tag==0) return 0;}return 1;}int creatfile(char *na,int L,int num,int s1,int s2)//创建文件时先查找是否存在{ int p;p=search(na);if (p==1){ top++;f[top].creatfile(na,L,num,s1,s2);return 1;}else{cout<<" !!!该文件已存在,不能创建!!!\n\n";return 0; }}int deltefile(char *na)//删除文件时先查找是否存在{int b,p,x=0,n1,n2,q1,q2,t;p=search(na);if (p==0) //若文件存在{ //进行删除文件赋值f[ii].tag=1;b=f[ii].length/m; //盘块数=当前文件大小/盘块大小if(ii==0) // 对第一个删除文件进行赋值for(k=0;k<b;k++)a[x][k]=0;else{n1=(f[ii-1].blocksum2+1)/32; //被查找的文件之前文件所占用的盘块数/32,//大于0表示跨行n2=(f[ii].blocksum2+1)/32; //所有文件所占用的盘块数/32,大于0表示跨行q1=(f[ii-1].blocksum2+1)-n1*32; // 当前文件的开始盘块号q2=(f[ii].blocksum2+1)-n2*32; // 用于跨行后计算盘块号t=n2-n1;if(t==0) //若n2与n1相等,表明当前所有被占用盘块在同一行for(k=q1;k<1+b;k++)a[n2][k]=0;else{ if((f[ii-1].blocksum2+1)%32==0) //前面所占用的盘块数是32倍数{ x=x+n1; //当前文件赋值for(;t-1>=0;t--,x++) //循环进行整行赋值for(k=0;k<32;k++)a[x][k]=0;x=n2; //对剩余项赋值for(k=0;k<b-(t-1)*32;k++)a[x][k]=0;}else //对当前文件前几项赋值{ x=n1;for(k=q1;k<32;k++)a[x][k]=0;x=x+1;int t1=t;for(;t-1>0;t--,x++) //中间整行赋值for(k=0;k<32;k++)a[x][k]=0;x=n2; //最后剩余项赋值for(k=0;k<(f[ii].blocksum2+1)-t1*32;k++)a[x][k]=0;}}return 1; }}else{cout<<"该文件不存在";return 0;}}void disp() //输出所有文件信息{for (int i=0;i<=top;i++)if(f[i].tag==0)f[i].disp();}};void bit_map(int I){int s=0;cout<<"---------------------------------------------------------------"<<endl;for(int p=0;p<I;p++){for(int q=0;q<32;q++)cout<<a[p][q]<<" ";cout<<endl;}out<<"----------------------------------------------------------------"<<endl;for(int p1=0;p1<I;p1++)for(int q1=0;q1<32;q1++)if(a[p1][q1]==1)s=s+1;s=(g*1024)/m-s;cout<<" 剩余盘块数:"<<s<<endl;}void main(){ int I,l,b,i,j,ss1,ss2,sum=0;char fname[20];fdatabase p;file w;cout <<"\t\t************************************************\n"; cout <<"\t\t* *\n"; cout <<"\t\t* 初始化,建立文件系统 *\n";cout <<"\t\t* *\n";cout <<"\t\t************************************************\n";cout <<" 请输入磁盘大小GB: ";cin >>g;cout<<endl;cout <<" 请输入盘块大小MB: ";cin >>m;cout<<endl;I=(g*1024)/(32*m);for( i=0;i<I;i++)for( j=0;j<32;j++)a[i][j]=0;cout<<" 建立的位示图为:"<<endl;bit_map(I);cout<<" 行数:"<<I<<endl;cout <<"\t\t************************************************\n";cout <<"\t\t* *\n";cout <<"\t\t* 行号、列号与磁盘块号的转换公式为: *\n"; cout <<"\t\t* 磁盘块号=行号*32+列号 *\n";cout <<"\t\t* 行号=磁盘块号/32 *\n";cout <<"\t\t* 列号=磁盘块号%32 *\n";cout <<"\t\t* *\n";cout <<"\t\t************************************************\n";char choice;while(choice!='0'){cout <<"\t\t************************************************\n";cout <<"\t\t* *\n";cout <<"\t\t* 文件管理系统 *\n";cout <<"\t\t* *\n";cout <<"\t\t************************************************\n";cout <<"\t\t\t1 存储文件\n\n\t\t\t2 删除文件\n\n\t\t\t3 显示位示图情况 \n\n\t\t\t4 显示文件列表"<<endl;cout <<" 请输入选择项: ";cin >> choice;cout<<endl;switch (choice){case '1':cout <<" 请输入文件名: ";cin>>fname;cout<<endl; //创建文件前,先查找是否有同名文件存在int q;q=p.search(fname);if (q==0){ cout<<" !!!该文件已存在,不能创建!!!\n\n";break;}cout <<" 请输入文件大小MB: ";cin>>l;cout<<endl;if(l>g*1024){cout<<" !!!文件大小超过磁盘最大容量,无法进行分配!!!"<<endl;break;}p.creatfile(fname,l,b,ss1,ss2);break;case '2':cout <<" 请输入文件名: ";cin>>fname;cout<<endl;q=p.search(fname);if (!q==0){cout<<" !!!该文件不存在,无法删除!!!\n\n ";break;}p.deltefile(fname);break;case '3':cout <<"\t\t**************显示位示图如下*********************\n"; bit_map(I);cout<<endl;break;case '4':cout <<"\t\t*************文件列表如下************************\n"; cout<<"---------------------------------------------------------------"<<endl;cout<<setw(10)<<"文件名"<<setw(15)<<"文件大小(MB)"<<setw(15)<<"所占盘块数"<<setw(15)<<"所占盘块号"<<endl;p.disp();cout<<endl;break;default:cout<<"输入错误,请从新输入: \n\n";break;}}}五、课程设计程序运行结果1、初始化,建立文件系统(1)用户根据提示输入磁盘大小(GB)与每个盘块大小(MB);(2)程序首先根据用户输入的磁盘大小(GB)与每个盘块大小(MB),自动建立位示图,即初始化位示图,位示图每一行长度固定为32位(即列固定为32);位示图中每一位表示一个盘块,取值0和1分别表示空闲和占用。