当前位置:文档之家› 实验二 磁盘空间管理算法

实验二 磁盘空间管理算法

实验二 磁盘空间管理算法
实验二 磁盘空间管理算法

实验二UNIX磁盘空间管理算法

(一) 实验目的

掌握UNIX外存空间管理中的分组链接算法。

(二) 实验内容

编写C语言程序,模拟UNIX磁盘空间管理中使用的分组链接法。

1.定义一个记录磁盘块号的堆栈S—free[10],以及记录栈中现有磁盘块数的变量S—nfree。

2.定义一个由40个元素构成的结构数组block[40]用作磁盘块存放。

struct size

{ int blocl[10];

}

struct blocd

{ struct size a[10];

//用于在空闲磁盘块号链中存放磁盘块号

}block[40];

3. 假设系统中文件的最大容量为100个磁盘块,且最多只有5个文件,定义一个由5个元素构成的结构数组file[5]用于记录各个文件占用的磁盘块,。

struct File

{ int fileblocd[100];

//用于记录分别分配给文件的磁盘块号

}file[5];

4. 编写函数init( )完成空闲磁盘块号堆栈、空闲磁盘块号队列及记录文件占用磁盘块状态的file结构数组。

5. 编写函数alloc(fileno,blockd),完成磁盘块的分配操作。其中的参数fileno 为文件序号,用于指定需要分配的文件。

6. 编写函数free(fileno),完成文件占用磁盘块的释放操作。其中的参数fileno 为文件序号,用于指定需要释放磁盘块的文件。

7. 编写main( )函数完成下列操作:

?调用init( )函数完成初始设置。

?从终端输入命令,控制磁盘块的分配与回收操作。

(三) 实验要求

1.在程序运行的结果中应包含磁盘块的分配与回收操作。

2.可根据输入的文件名、文件大小进行模拟磁盘分配,并在每次分配与回收

后显示分配与回收是否成功,以及分配、回收的磁盘块号。

3.在程序执行过程中,至少应包含分配不成功一次的信息。

4.可以查看当前磁盘块的使用情况:哪些块空闲,哪些块被哪些文件占用。

(四) 实验学时 6

DES算法实验报告

DES算法实验报告 姓名:学号:班级: 一、实验环境 1.硬件配置:处理器(英特尔Pentium双核E5400 @ 2.70GHZ 内存:2G) 2.使用软件: ⑴操作系统:Windows XP 专业版32位SP3(DirectX 9.0C) ⑵软件工具:Microsoft Visual C++ 6.0 二、实验涉及的相关概念或基本原理 1、加密原理 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。 三、实验内容 1、关键代码 ⑴子密钥产生

⑵F函数以及加密16轮迭代 2、DES加密算法的描述及流程图 ⑴子密钥产生 在DES算法中,每一轮迭代都要使用一个子密钥,子密钥是从用户输入的初始密钥产生的。K是长度为64位的比特串,其中56位是密钥,8位是奇偶校验位,分布在8,16,24,32,40,48,56,64比特位上,可在8位中检查单个错误。在密钥编排计算中只用56位,不包括这8位。子密钥生成大致分为:置换选择1(PC-1)、循环左移、置换选择2(PC-2)等变换,分别产生16个子密钥。 DES解密算法与加密算法是相同的,只是子密钥的使用次序相反。 ⑵DES加密算法 DES密码算法采用Feistel密码的S-P网络结构,其特点是:加密和解密使用同一算法、

管理信息系统实验报告

一、对实习目的认识 ERP模拟实习(实验)是在学生学习《生产运作管理》等相关课程的基础上,为使学生加深对理论教学的理解,配合教学内容所开设的实验教学环节。通过对与企业主要业务有关的各子系统的认知与操作,使学生了解ERP系统的基本构成与操作方法,能够增强学生计算机的应用能力,培养学生分析问题与解决问题的能力,有利于对理论教学内容的消化与吸收,并为今后从事实际工作打下一定的基础。 本实习是以广州五羊-本田公司某个月份的实际主要业务为基础,通过模拟实习,使学生在参与营销、技术、采购、设备、生产、品质、仓库、财务、人事等各个环节的实际操作过程中,熟悉各职能部门是怎样独立运作,部门之间是怎样相互协调关系。把企业作为整体系统适应外部环境变化的条件,应该如何有效地进行现代企业管理的运作。为便于实习,对每一个功能模块操作,提出较为具体的要求: 通过基础数据模块的实习,理解基础数据在企业管理中的作用。 通过营销管理模块的实习,掌握销售合同的签定,按客户订单组织生产的一般流程,掌握客户管理的基本内容与要求,了解售后服务的主要业务,明确营销管理在企业管理中的重要地位。 通过生产管理模块的实习,掌握生产计划的制定方法,以及按生产计划组织生产过程的一般流程,了解物料清单和物料需求计划的基本内容。 通过采购管理模块的实习,掌握物料采购的一般流程;理解物料供应的基本要求。 通过仓库管理模块的实习,掌握库存管理的一般流程,了解库存控制的方法。 通过品质管理模块的实习,理解品质管理的体系包括品质的控制、品质保证、品质工程三个重要组成部分的基本要求;掌握物料、产品质检的一般流程;了解质检技术标准。 通过财务管理模块的实习,掌握应收款和应付款业务处理流程;掌握成本核算的内容及要求;掌握财务成果核算的要点,了解资金筹备和运用的价值分析。 学生通过以上模块的实习,能够了解现代企业管理的一般流程,并能整合所学的管理理论知识,掌握现代企业管理的实用工具与方法,成为企业所需要的实用管理人才。 二、对《企业管理教学模拟实习软件》的整体设计思想的认识 现代企业管理教学模拟实习多媒体教学系统分为“实习目的、企业背景简介、企业流程介绍、模拟实习”四个部分;在模拟实习部分中包括十三个功能模块,每个模块都配有详细的操作说明以及相应的理论知识同时提供了完整的在线帮助、数据导入、数据流程图和教学案例等;完全模拟一个大型企业整体运作过程,学生可自行设计数据进行教学与实习,使教学与实习更贴近于实际。 我们通过对企业管理教学系统的操作学习,学生能够充分体验到企业在以销定产经营模式中,销售定单的变动将引起生产计划、物料分解、采购计划、库存管理、质量管理及相应的财务、设备、人事等各个环节的变化,反映出整个系统

模拟UNIX系统成组链接法实现磁盘存储空间的管理组织

要求:模拟UNIX系统的空闲块成组链接法,实现磁盘存储空间的管理。 [提示]: (1) 假定磁盘存储空间已被划分成长度为n的等长块,共有M块可供使用。UNIX系统中采用空闲块成组链接的方法来管理磁盘存储空间,将磁盘中的每N个空闲块(N

开始时,空闲块号是顺序排列的,但经若干次的分配和归还操作后,空闲块的链接就未必按序排列了。 用二维数组A:array [0…M-1] of array [0…n-1]来模拟管理磁盘空间,用A[i]表示第I块,第0块A[0]作为专用块。 (3) 成组链接的分组情况记录在磁盘物理块中,为了查找链接情况,必须把它们读入主存,故当磁盘初始化后,系统先将专用块内容复制到主存中。定义一个数组MA存放专用块内容,即MA: =A[0]。申请一块磁盘空间时,查MA,从中找出空闲块号,当一组的空闲块只剩第一块时,则应把该块中指出的下一组的空闲块数和块号复制到专用块中,然后把该块分配给申请者。当一组的空闲块分配完后则把专用块内容(下一组链接情况)复制到主存,再为申请者分配。分配算法如下图。

采用成组链接的分配算法 (4) 归还一块时给出归还的块号,若当前组不满规定块数时,将归还块登记入该组;若当前组已满,则另建一新组,这时归还块作为新一组的第一块,应把主存中登记的一组链接情况MA复制到归还块中,然后在MA重新登记一个新组。归还一块的算法如下图。

管理信息系统实验报告

实验一认识计算机硬件和网络结构 一、实验题目 认识计算机硬件和网络结构。 二、实验课时 2课时。 三、实验目的 认识计算机的主要构成部件、功能、型号、在计算机机箱内的位置、网络结构等。 四、实验内容和要求 1、利用多媒体演示计算机的主要组成部件:机箱、主板、CPU、内存条、硬盘、软驱、光驱、插槽、BUS总线、串行接口、并行接口、USB接口等; 2、打开机箱,实物展示并讲解个部件的功能及其连接; 3、机箱、主板、CPU、CPU风扇、内存条、显卡、网卡等分别如下所示。 机箱主板

内存条显卡网卡无线网卡 CPU CPU风扇硬盘 机箱背面并行接口串行接口USB接口 4、观察每个部件在机箱的位置,并掌握每个部件的功能和基本知识。 5、观察实验室网络结构图。 6、结合某网吧的例子更好地理解网络结构。 Parallel port Serial port USB port Keyboard and mouse ports

7、独立完成上述内容,并提交书面实验报告。 五、实验体会 通过本次实验,我了解了计算机的各种硬件和网络结构。知道了各种硬件的形状、功能、特征等。还知道了网络结构的流程、大体构造。这使我对计算机有了初步的认识,为以后更进一步的学习打下了坚实的基础。也为我以后的学习和生活提供了方便。 1、cpu——中央处理器,是一台计算机的运算核心和控制核心。 2、硬盘——是电脑的主要存储媒介之一。 3、主板——又叫主机板、系统板或母板,安装在机箱内,是微机最基本也是最重要的部件之一。 4、机箱——作为电脑配件的一部分,它起的主要作用是放置和固定各电脑配件,起到一个承托和保护作 用。 5、内存条——是连接CPU和其他设备的通道,起到缓冲和数据交换作用。

操作系统磁盘管理(借鉴资料)

1.需求分析 (1)设计内容和要求(包括原始数据、技术参数、条件、设计要求等)设计内容: 1)采用空白文件目录结构管理磁盘空间,实现磁盘空间的分配和回收; 2)采用空白块成组链接结构实现磁盘空间的分配和回收; 3)采用位示图结构实现磁盘空间的分配和回收。 基本要求: 1)具有创建文件、空间分配、删除文件、释放空间等基本功能; 2)把文件目录、磁盘空间管理的数据结构变化情况显示出来。 (2)需求分析内容 1)空白文件目录是管理磁盘空间的一种方法,该方法将文件存储设备上的每个连续空闲区看作一个空白文件,系统为所有空白文件单独建立一个目录,每个空白文件在这个目录中占一个表目.表目的内容至少包括第一个空白块的地址(物理块号),空白块的数目。 2)位示图是另一种常用的管理磁盘空间的方法,该方法通过建立一张位示图来表示为l 时表示该块已分配,当某位为0时表示该块空闲。 3)位示图是利用二进制的一位来表示磁盘中的一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时,表示已经分配。有的系统把“0”作为盘块已分配的标记,把“1”作为空闲标志(它们的本质上是相同的,都是用一位的两种状态标志空闲和已分配两种情况)磁盘上的所有盘块都有一个二进制位与之对应,这样,由所有盘块所对应的位构成一个集合,称为位示图。 1.1小组分工 温庭栋任务为:采用空白文件目录结构管理磁盘空间; 魏子育任务为:采用空白块成组链接结构实现磁盘空间的分配和回收; 卫虹任务为:采用位示图结构实现磁盘空间的分配和回收; 2.总体设计 (1)磁盘存储空间管理是文件系统的重要内容 采用空白文件目录结构管理磁盘空间,实现磁盘空间的分配和回收空白文件目录法进行空间分配时,需要建立相关的数据结构,记录目前空白区域和已使用区域,假设开始时全部区域空闲。当有文件需要存储时,先检查空白文件目录,找到适合区域立即分配,并修改空

实验四RSA加解密算法的实现

实验四 RSA加解密算法的实现 一.实验目的 1、对算法描述可进行充分理解,精确理解算法的各个步骤。 2、完成RSA软件算法的详细设计。 3、用C++完成算法的设计模块。 4、编制测试代码。 二.实验内容 1.实验原理及基本技术路线图(方框原理图) 加密过程: 第一步,用户首先输入两个素数p和q,并求出 n = p*q,然后再求出n的欧拉函数值phi。 第二步,在[e,phi]中选出一个与phi互素的整数e,并根据e*d ≡1(mod phi),求出e的乘法逆元。至此我们已经得到了公开密钥{e,n}和秘密密钥{d,n}。 第三步,让用户输入要进行加密的小于n一组正整数(个数不超过MAXLENGTH=500),输入以-1为结束标志,实际个数存入size中,正整数以clear[MAXLENGTH]保存。 第四步,对第三步所得的明文clear[MAXLENGTH]进行加密。遍历clear[size],对每一个整数用以下算法进行加密,并将加密后的密文保存在Ciphertext[MAXLENGTH]中。 注意:此处不能用m2[j] = clear[j] ^ e整数的幂,因为当e和clear[j]较大时,会发生溢出,至使出现无法预料的结果。 第五步,输出加密后的密文。 解密过程: 第一步,根据在以上算法中求出的解密密钥[d,phi],对加密后的密文Ciphertext[MAXLENGTH]进行解密,结果保存在DecryptionText[MAXLENGTH]中,算法如下: 第二步,输出对加密前的明文和加密并解密后的密文进行比较,判断两个数组是否一致,从而得知算法是否正确。

2.所用仪器、材料(设备名称、型号、规格等) 计算机一台、vc6.0 3.实验方法、步骤 #include #include using namespace std; #define MAXLENGTH 500 //明文最大长度,即所允许最大整数个数 int size = 0;//保存要进行加密的正整数的个数 int p, q; //两个大素数 int n, phi; //n = p * q,phi = (p-1) * (q-1) 是n的欧拉函数值 int e; //{e, n}为公开密钥 int d; //{d, n}为秘密密钥 int clear[MAXLENGTH], Ciphertext[MAXLENGTH];//分别用于存放加//密前的明//文和加密后的密文int DecryptionText[MAXLENGTH];//存放解密后的明文 //////////////////////////////////////////////////////////// //以下为加密算法 void Encryption() {//加密算法 cout << " 请输入两个较大的素数:" ; cin >> p >> q ; cout << " p = " << p << ", q = " << q << endl; n = p * q;//求解 n, phi = (p - 1) * ( q - 1 );//求解 n 的欧拉函数值 cout << " n = " << n << ", phi = " << phi << endl; cout << " 请从[0," << phi - 1 << "]中选择一个与 " << phi << " 互素的数 e:"; cin >> e; float d0; for( int i = 1; ; i++) {///求解乘法逆元 e * d ≡ 1 (mod phi) d0 = (float)(phi*i+1) / e; if( d0 - (int)d0 == 0 ) break; } d = (int)d0; cout << endl; cout << " e = " << e << ", d = " << d << endl; cout << " 公开密钥 Pk = {e,n} = {" << e << "," << n << "}" << endl; cout << " 秘密密钥 Sk = {d,n} = {" << d << "," << n << "}" << endl; cout << endl;

数据加密实验报告

实验报告 课程:计算机保密_ _ 实验名称:数据的加密与解密_ _ 院系(部):计科院_ _ 专业班级:计科11001班_ _ 学号: 201003647_ _ 实验日期: 2013-4-25_ _ 姓名: _刘雄 _ 报告日期: _2013-5-1 _ 报告评分:教师签字:

一. 实验名称 数据加密与解密 二.运行环境 Windows XP系统 IE浏览器 三.实验目的 熟悉加密解密的处理过程,了解基本的加密解密算法。尝试编制基本的加密解密程序。掌握信息认证技术。 四.实验内容及步骤 1、安装运行常用的加解密软件。 2、掌握加解密软件的实际运用。 *3、编写凯撒密码实现、维吉尼亚表加密等置换和替换加解密程序。 4、掌握信息认证的方法及完整性认证。 (1)安装运行常用的加解密软件,掌握加解密软件的实际运用 任务一:通过安装运行加密解密软件(Apocalypso.exe;RSATool.exe;SWriter.exe等(参见:实验一指导))的实际运用,了解并掌握对称密码体系DES、IDEA、AES等算法,及非对称密码体制RSA等算法实施加密加密的原理及技术。 ?DES:加密解密是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位。 ?BlowFish:算法用来加密64Bit长度的字符串或文件和文件夹加密软件。 ?Gost(Gosudarstvennyi Standard):算法是一种由前苏联设计的类似DES算法的分组密码算法。它是一个64位分组及256位密钥的采用32轮简单迭代型加密算法. ?IDEA:国际数据加密算法:使用128 位密钥提供非常强的安全性; ?Rijndael:是带有可变块长和可变密钥长度的迭代块密码(AES 算法)。块长和密钥长度可以分别指定成128、192 或256 位。 ?MISTY1:它用128位密钥对64位数据进行不确定轮回的加密。文档分为两部分:密钥产生部分和数据随机化部分。 ?Twofish:同Blowfish一样,Twofish使用分组加密机制。它使用任何长度为256比特的单个密钥,对如智能卡的微处理器和嵌入在硬件中运行的软件很有效。它允许使用者调节加密速度,密钥安装时间,和编码大小来平衡性能。 ?Cast-256:AES 算法的一种。 (同学们也可自己下载相应的加解密软件,应用并分析加解密过程) 任务二:下载带MD5验证码的软件(如:https://www.doczj.com/doc/8819135076.html,/downloads/installer/下载(MySQL):Windows (x86, 32-bit), MSI Installer 5.6.11、1.5M;MD5码: 20f788b009a7af437ff4abce8fb3a7d1),使用MD5Verify工具对刚下载的软件生成信息摘要,并与原来的MD5码比较以确定所下载软件的完整性。或用两款不同的MD5软件对同一文件提取信息摘要,而后比较是否一致,由此可进行文件的完整性认证。

操作系统文件管理实验报告

操作系统实验报告实验名称:文件管理 专业班级:网络工程1301 学号: 姓名: 2015 年6 月16 日

实验一文件管理 一、实验目的 文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、预备知识 1.VS2010的使用 2.C#的学习 3.文件主目录与子目录的理解 三、实验容与步骤 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write 等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 程序流程图:

逻辑设计: 使用线性数组表表示MFD,泛型数组表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。 物理设计: //主目录 private FileUser[] mfd; //当前用户 private FileUser currentuser; ///

/// 文件 /// public class FileObject { public string filename; public int size=20; public int read=0; public int write = 0; public string author; } /// /// 文件系统用户 /// public class FileUser { public string username;

实验四 公钥加密算法实验(改)

实验四公钥加密算法实验 1、实验目的 掌握消息RSA密钥生成和加密算法的原理。 2、实验环境 硬件:ZXBee CC2530 节点板2 块、USB 接口的CC2530 仿真器,PC 机; 软件:Windows 7/Windows XP、IAR 集成开发环境、串口监控程序。 3、实验原理 RSA算法的关键是生成公钥私钥对。本实验采用了一个简化的算法,通过一个给定的seed(实验组号)搜索两个不同的素数(100以内),并计算出公钥PubliceKey(e,n)和私钥PrivateKey(d,n)。 RSA加/解密公式为C=P e mod n和P=C d mod n,其中的幂指数运算速度慢,可采用下面的公式进行转换: C=P e mod n=((...((P*P mod n)*P mod n)*P mod n)... ...)*P mod n 此外,RSA算法的明文和密文均为0到n-1之间的整数,而一般传送消息的长度单位为字节(8 bits),n 的大小与消息长度难以匹配。因此,本实验采用如下的特殊处理方法: (1)令选定公钥/私钥的n值小于65536,即n值小于16bits的二进制。 (2)将消息的每个字节(8bits)作为一个明文块。 (3)每个明文块进行RSA加密后,得到的密文块为16bits,用2个字节存放。即密文的长度为明文的2倍。 (4)接收方收到的密文,按2个字节为一个密文块进行RSA解密,解密后的结果只保留低8bits。 4、实验步骤 1)本实验程序可在《指导书》4.4节程序上进行修改,可节约时间。信道编号不用更改。

5 代码:

6)修改接收数据函数rfRecvData()。接收节点不断接收各个发送节点发送的信息,先判断数据的第一个字节是不是本站点,如果是再进行解密。通过串口显示结果。

AES加密算法实验报告

四川大学计算机学院、软件学院实验报告 学号::专业:班级:第10 周

在程序运行读取需要加密的图片时,需要进行图片的选取,本次实验中使用在弹窗中选取文件的方式,使用头文件commdlg.h来实现在文件夹中选择需要的文件的选取。 三、加密算法流程 AES加密算法流程如下 字节代替:用一个S盒完成分组的字节到字节的代替; 行移位:进行一次行上的置换; 列混合:利用有限域GF(28)上的运算特性的一个代替; 轮密钥加:当前分组和扩展密钥的一部分进行按位异或。

四、代码实现 cryptograph.h #include #include class plaintext { public: plaintext(); static void createplaintext(unsigned char a[]); static void SubBytes(unsigned char p[16]); static void inSubBytes(unsigned char p[16]); static void ShiftRows(unsigned char e[]); static void inShiftRows(unsigned char e[]); static void MatrixToByte(unsigned char e[]); static void inMatrixToByte(unsigned char e[]); static unsigned char FFmul(unsigned char a, unsigned char b); static void KeyAdding(unsigned char state[16], unsigned char k[][4]); static void KeyExpansion(unsigned char* key, unsigned char w[][4][4]); ~plaintext(); private: }; cryptograph.cpp #include"cryptography.h" using namespace std; static unsigned char sBox[] = {};/定义加密S盒/ unsigned char insBox[256] ={};//定义解密S盒 plaintext::plaintext() {

空闲磁盘存储空间的管理_OS课程设计

OS课程设计 空闲磁盘存储空间的管理 1、课程设计任务、要求、目的 我们组选的题目是第17题:空闲磁盘存储空间的管理:简单方法。 具体要求如下: ●建立相应的数据结构; ●磁盘上建立一个文件,文件长度设为10MB,用该文件来模拟一个磁盘,磁盘的物理块 大小为512字节。 ●建立进程的数据结构; ●时间的流逝可以用下面几种方法模拟:(a)按键盘,每按一次可认为过一个时间单位; (b) 响应WM_TIMER; ●将一批进程对磁盘的请求的情况存磁盘文件,以后可以读出并重放; ●使用两种方式产生进程对磁盘的请求:(a) 自动产生(b) 手工输入 ●显示每次磁盘的请求和空间释放后的相关数据结构的状态; ●显示每次磁盘的请求和空间释放后状态; ●支持的管理方法:空闲表法、空闲链表法、位示图法、UNIX成组链接法。 该课程设计的目的: 磁盘初始化时把磁盘存储空间分成许多块(扇区),这些空间可以被多个用户共享。用户作业在执行期间常常要在磁盘上建立文件或把已经建立在磁盘上的文件删去,这就涉及到磁盘存储空间的分配和回收。一个文件存放到磁盘上,可以组织成顺序文件(连续文件)、链接文件(串联文件)、索引文件等,因此,磁盘存储空间的分配有两种方式,一种是分配连续的存储空间,另一种是可以分配不连续的存储空间。怎样有效地管理磁盘存储空间是操

作系统应解决的一个重要问题,通过这个课程设计可以使我们更好地熟悉掌握磁盘存储管理的原理和分配与回收算法,进一步掌握软件开发方法并提高解决实际问题的能力。 2、原理与算法描述 我们组将题目中所给的方法分为连续存储空间法和链接存储空间法,并选取其中最具代表性的位示图法和UNIX成组链接法(连续存储与链接存储的结合)来进行代码的编写。位示图法原理: 位示图用来指出磁盘块的使用情况,位示图中各个元素的取值只有“0”和“1”两种,其中“1”状态表示相应的磁盘块已经被占用,“0”状态表示该磁盘块空闲。申请磁盘块时,分配函数查询第一个空闲块所属的位置,然后从该位置往后选取对应数目的空闲块进行分配,将相应位置的位示图上相应元素置为“1”。为了编程方便,我们查阅资料,假设一个磁盘有8个柱面,每个柱面有2个磁道,每个磁道有4个物理记录。释放磁盘块时与分配磁盘块是相反的操作,由释放函数找到第一个空闲磁盘块,并从该位置往前一单位将被占用的相应数目的磁盘块释放,将位示图上相应元素置为“0”。 成组链接法原理: 成组链接法常应用于UNIX系统中,其主要思想是将结合顺序表和链表进行择优组合,即定义组内为顺序表,最大值为MAXGROUP,大于MAXGROUP的磁盘块另行分组,构成新的顺序表;但是这些顺序表之间用链表的结构进行连接,相当于添加一个新的节点。 3、开发环境 由于我们只是简单的对磁盘处理进行模拟,所以就在自己的个人PC上进行,用的IDE 是DEV C++(Eclipse上JAVA写的界面被老师打回来了。。。)。

DES加密算法实验报告

苏州科技学院 实验报告 学生姓名:杨刘涛学号:1220126117 指导教师:陶滔 刘学书1220126114 实验地点:计算机学院大楼东309 实验时间:2015-04-20 一、实验室名称:软件实验室 二、实验项目名称:DES加解密算法实现 三、实验学时:4学时 四、实验原理: DES算法由加密、子密钥和解密的生成三部分组成。现将DES算法介绍如下。1.加密 DES算法处理的数据对象是一组64比特的明文串。设该明文串为m=m1m2…m64 (mi=0或1)。明文串经过64比特的密钥K来加密,最后生成长度为64比特的密文E。其加密过程图示如下:

图2-1:DES算法加密过程 对DES算法加密过程图示的说明如下: 待加密的64比特明文串m,经过IP置换(初始置换)后,得到的比特串的下标列表如下: 表2-1:得到的比特串的下标列表

该比特串被分为32位的L0和32位的R0两部分。R0子密钥K1(子密钥的生成将在后面讲)经过变换f(R0,K1)(f变换将在下面讲)输出32位的比特串 f1,f1与L0做不进位的二进制加法运算。运算规则为: f1与L0做不进位的二进制加法运算后的结果赋给R1,R0则原封不动的赋给L1。L1与R0又做与以上完全相同的运算,生成L2,R2……一共经过16次运算。最后生成R16和L16。其中R16为L15与f(R15,K16)做不进位二进制加法运算的结果,L16是R15的直接赋值。 R16与L16合并成64位的比特串。值得注意的是R16一定要排在L16前面。R16与L16合并后成的比特串,经过置换IP-1(终结置换)后所得比特串的下标列表如下: 表2-2:置换后所得比特串的下标列表 经过置换IP-1后生成的比特串就是密文e。 变换f(Ri-1,Ki): 它的功能是将32比特的输入再转化为32比特的输出。其过程如图2-2所示:

停车场管理系统实验报告汇总

华北水利水电学院数据结构实验报告 2011~2012学年第二学期2011级计算机专业 班级:**** 学号:***** 姓名:**** - 实验二栈和队列及其应用 一、实验目的: 1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。 2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。 二、实验内容: 1.链栈的建立、入栈、出栈操作。 2.环形队列的建立、入队、出队操作。 3.停车场管理。设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 实现提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表(带头结点)实现。 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。 三、实验要求: 1.C/ C++完成算法设计和程序设计并上机调试通过。 2.撰写实验报告,提供实验结果和数据。 3.写出算法设计小结和心得。 四、程序源代码: 1.#include #include typedef struct stnode { int data; stnode *next;

AES加密算法实验报告

实验报告 学号:姓名:专业:班级:第10周

简介 #in elude vstri ng> #in elude class pla in text { public : plai ntext(); static void createplaintext( unsigned char a[]); 实验内容(算法、 程 序、 步骤 和方 法)

static void SubBytes( unsigned char p[16]); static void inSubBytes( unsigned char p[16]); static void ShiftRows( unsigned char e[]); static void inShiftRows( unsigned char e[]); static void MatrixToByte( unsigned char e[]); static void inMatrixToByte( unsigned char e[]); static unsigned char FFmul( unsigned char a, unsigned char b); static void KeyAdding( unsigned char state[16], unsigned char k[][4]); static void KeyExpansion( unsigned char* key, unsigned char w[][4][4]); ~plai ntext(); private : }; #in elude "" using namespacestd; static unsigned char sBox[] = {}; /定义加密S盒/ unsigned char insBox[256] ={}; //定义解密S盒 pla in text ::plai ntext() { unsigned int p[16]; for (int j = 0; j<200; j++) { p[i] = a[i]; a[i] = a[i + 16]; } void pla in text ::createpla in text( un sig ned char a[]) // 仓U建明文 int i = 0; if ( a[j] == 0) for (; i<16; i++)

ERP系统模拟实验报告

一、实验目的 通过本次实验使学生学会理论联系实际,让同学们了解企业的运营流程,了解各个角色在企业中的工作责任,学会根据市场预测去规划企业未来的发展,制定自己的运营策略。 二、实验地点 三、实验时间 2014年6月23日—2014年7月4日 四、实习组成员 CEO及助理 财务总监及助理 营销总监及助理 生产总监及助理 采购总监及助理 间谍 五、我的职责 我在我们企业中担任的是采购总监这个角色,负责根据生产产能和市场需求情况决定什么时候下原材料订单,要下多少订单,保证生产顺利进行的同时也不能积压原材料库存。 六、实验步骤 第一天,老师给我们介绍了一下沙盘模拟的操作规则,企业的初始状况、股东期望以及企业的财务状况,然后给我们进行了分组,每组大概12人,我们是U4组。 我们组的发展一直都采取的是主动进攻的策略,不管是在新产品研发还是市场开拓上,第一年为了成为P1产品的市场老大投放了9个广告,虽然广告费用并不是最多但由于另一个企业决策失误最终成功取得了P1产品的市场老大的地位,同时我们开始开拓区域、国内、亚洲三个市场,考虑到国际市场的产品利润空间并不是很大并且市场需求也不是很多就主动放弃了国际市场的开拓,并开始研发P2产品。为了保证足够的产能,我们在第二个季度开始筹建两条全自动生产线。由于投入较多,资金周转不开,所以我们在这一年贷了一桶短贷,虽然第二年有沉

重的还贷负担,但也正是这一桶短贷使我们在第一第二年的现金流始终没有中断,使企业能够持续经营下去。筹集资金在整个六年运作中至为重要。 第二年,我们P2产品研发成功,区域市场开拓完成,并在投放广告、选取订单时又取得了P2产品的本地市场老大,我们开始考虑要不要再研发P3产品,我们企业首次出现了意见不一的情况,由于近几年P3市场价格并不是很大,需求也不是很大,又需要很大的投资,并且已经有其他的企业开始在研发P3产品了,所以最终由CEO拍板决定只做P2,以产能优势取胜,虽然我们又贷了贷款,但这一年我们已经开始盈利了。 第三年,国内市场开拓完成,两条全自动生产线也开始投入生产,由于我们的主打产品已经转移到了P2,并且国内市场的P2价格与需求都良好,所以我们投入了较多的广告费来取得P2产品的国内市场老大以求获得足够的订单。第二季度,我们开始租赁小厂房,筹建三条全自动生产线,扩大产能。这一年,我们两条手工线和一条半自动线用于生产P1产品,另一条手工线和两条全自动生产线都用于生产我们的主打产品P2,虽然我们一直在贷款还款,但企业的发展态势良好,正一步步走上正轨。 第四年,由于资金问题,小产房的三条全自动生产线在第三年第四个季度暂停了一个季度筹建,所以到第四年的第二季度才可以投入生产,但这并没有影响到我们的生产进度。在这一年,我们又继续投入广告成为了P2产品的亚洲市场的老大,保证了我们企业能够获得足够的订单。 由于另一个企业U6小组的发展迅猛,让我们意识到我们企业之后发展的后劲不足,但要研发P3产品,获得利润的周期又太长,所以我们只能依靠获取更多的订单生产足够的P2产品来维持企业的发展。 第五年,最后一条全自动生产线也开始投入生产,此时生产产量已经达到最大化,但由于市场需求不足,导致最后剩余4个产品,所以在第六年我们企业选择了与其他的企业U3小组进行合作,互相帮助拿到自己所需要的订单,这是一个思维的突破。最终我们企业成功拿到了第一的好成绩。 最后,老师给了我们一个下午的时间进行每个组的总结报告,由每个组的代表依次进行上台发言,总结自己企业的具体操作步骤,以及财务状况。 七、实验感悟 在这为期两个周的ERP沙盘模拟实验里,我在游戏的氛围中学到了很多课本上没有的知识,体验了一个制造型企业管理的完整流程,包括物流、资金流和信

DES算法实验报告

DES算法实验报告 导读:就爱阅读网友为您分享以下“DES算法实验报告”的资讯,希望对您有所帮助,感谢您对https://www.doczj.com/doc/8819135076.html,的支持! 实验报告 姓名:xxxx 学号:0XXXXX 班级:XXXXXXX 日期:2013/11/* 题目:DES算法实验 一、实验环境 1.硬件配置: 处理器:Inter(R) Core(TM) i5-2430M CPU @ 2.40GHz (4

CPUs) ,~2.4GHz 内存:2048MB RAM 2.使用软件: (1) 操作系统:win7 旗舰版 (2) 软件工具: Microsoft Visual c++ 6.0 二、实验涉及的相关概念或基本原理 DES是一个分组密码算法,使用64位密钥(除去8位奇偶校验,实际密钥长度为56位)对64比特的数据分组(二进制数据)加密,产生64位密文数据。DES是一个对称密码体制,加密和解密使用同意密钥,解密和加密使用同一算法(这样,在硬件与软件设计时有利于加密单元的重用)。DES 的所有的保密性均依赖于密钥。 DES的加密过程可分为加密处理,加密变换和子密钥生成几个部分组成。 1.加密处理过程(1)初始置换IP。加密处理首先要对64位的明文按表1所示的初始换位表IP进行变换。表中的数值表示输入位被置换后的新位置。

(2)加密处理。上述换位处理的输出,中间要经过16轮加密变换。初始置换的64位的输出作为下一次的输入,将64位分为左、右两个32位,分别记为L0和R0,从L0、R0到L16、R16,共进行16轮加密变换。其中,经过i轮处理后的点左右32位分别为Li和Ri则可做如下定义: Li=Ri-1 Ri=Li-1 ⊕F(Ri-1,K) 其中,F为F变换 (3)最后换位。进行16轮的加密变换之后,将L16和R16合成64位的数据,再按照表2所示的最后换位表进行IP-1的换位,得到64位的密文,这就是DES算法加密的结果。 2.加密变换过程 64位的密钥先由置换选择1减少至56六位,进行循环左移,然后通过置换选择2减少至48位。而通过扩展运算将32位按表3扩展换位表扩展为48位的右半部分通过异或操作和48位的密钥结合,并分成6位的8个分组,通过8个S-盒

操作系统实验报告 实验一 进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5));

相关主题
文本预览
相关文档 最新文档