一、UNIX文件系统的基本原理    UNIX采用树型目录结构,每个目录表称为一个目录文件。
一个目录文件是由目录项组成的。
每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。
在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;
后14B为文件名,是该文件的外部标识。
所以,文件目录项记录了文件内、外部标识的对照关系。
根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。
UNIX的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。
本次课程设计是要实现一个简单的模拟UNIX文件系统。
我们在磁盘中申请一个二进制文件模拟UNIX内存,依次初始化建立位示图区,I节点区,数据块区。
二、基本要点思路     1、模拟磁盘块的实现:因为文件系统需要从磁盘中读取数据操作数据,在实现时是使用文件来模拟磁盘,一个文件是一块磁盘,在文件中以划分磁盘块那样划分不同的区域,主要有三个区域:位图区,inode索引节点区,磁盘块区。
位图区我是使用一个512byte的数组存放,inode区和磁盘块区我采用一种自认为比较巧妙的方法,就是存放对象列表,之前说过,在本次实验的所有的结构都使用对象进行存储,而inode节点和磁盘块就是两个重要的数据结构,在初始化时我实例化32个inode对象和512个block对象(至于这些类的具体定义下面会提到),然后将这些对象加入各自对应的对象列表中,在存储时,使用java的对象序列化技术将这个对象数组存到磁盘中。
当使用文件系统时,程序会先从磁盘文件中读取出位图数组,inode对象列表,block对象列表,之后的操作就是通过对这些列表进行修改来实现。
使用这种方法可以减小存储的空间(对象序列话技术)而且不需要在使用时进行无用的查找,只要第一次初始化中将这些对象都读取出来。
    2、界面的实现:在实现这个文件系统时使用了两种方案,一种是直接在java控制台来进行输入输出,因为原本想着UNIX文件系统原本也是使用的命令行语句,所以在控制台上实现也很接近。
后来在老师的建议下又将整个程序重新修改,改成在UI界面上进行输入输出,这样确实界面美观舒服了不少,只不过两者用的技术很不一样,前者主要使用的是系统的输入输出流,后者使用java监听器。
    3、权限的实现:在实现多用户的权限方面,我给文件和文件夹各定义了三级权限1、访问:在文件中是可以查看文件的内容,在文件夹中是可以进入该文件夹。
2、修改:文件中是可以对文件进行编辑,文件夹中是可以在该文件夹中创建新的文件或目录。
3、删除:顾名思义。
文件或文件夹的创建者拥有最高级别的权限,只有拥有最高级权限的用户才可以给其他用户针对该文件或文件夹进行授权和授权操作。
在每次对文件或文件夹进行访问修改删除操作时都会检查当前用户在该文件或文件夹所拥有的权限,只有拥有的权限大于想要实现的权限时才可以进行该操作。
2024/2/1 11:25:27 9KB java UNIX操作系统 课程设计
1
2020年五一数学建模A题解题思路最容易建模的是秦皇岛港动力煤价格的主要因素的影响,分别统计2019年5月1日至2020年4月30日一年内影响煤炭价格数据变化,(主要因素包括气候变化、出行方式、能源消耗方式、国际煤炭市场)。
建立预测模型(时间序列预测模型,Elman神经网络预测模型等),预测煤炭价格变化。
2024/1/31 23:08:18 21.98MB 数学建模
1
本人归纳的所有Linux基本命令操作,并有详细操作截图和思路。
适合初学者下载学习。
2024/1/31 14:31:31 247KB Linux 基本命令 实验报告
1
有时候我们客户需求需要将Excel文件转成图片推送给客户,由于Excel貌似不能直接转成图片,该工具包实现思路为先将Excel转成pdf,再由PDF转成图片。
内附效果图,jar包,代码
2024/1/29 13:07:08 16.56MB Excel java
1
本学期又将过去,可以说在紧张忙碌的工作中度过了这一学期的时光。
总体看,我能认真执行学校教育教学工作计划,把新课程标准的新思想、新理念和数学课堂教学的新思路、新设想结合起来,转变思想,积极探索,改革教学,收到很好的效果。
为了克服不足,总结经验,使今后的工作更上一层楼,现对本学期教学工作做出如下总结:一、认真备课。
备课时,不但备学生,而且备教材、备教法。
根据教学内容及学生的实际,设计课的类型,拟定采用的教学方法,每一课都做到“有备而来”,每堂课都在课前做好充分的准备,课后趁记忆犹新,回顾、反思写下自己执教时的切身体会或疏漏,记
2024/1/29 8:56:01 28KB 小学3年级数学-工作总结3
1
内含2021美赛C题第一问代码。
内涵数据整理、可视化、回归、时间序列分析、生长季节的建模实现代码;
第二问代码。
内涵图像处理、词云图、词频统计、回归模型、变量选择、判别分析的建模实现代码。
感兴趣的可以下载学习。
声明:只可自己使用,不可商用。
违者必究。
具体思路分析见下面链接:https://tjxwz.blog.csdn.net/article/details/113722054
2024/1/28 18:58:08 683.58MB 2021美赛C 时间序列 图像处理
1
1.实验内容每一个正规集都可以由一个状态数最少的DFA所识别,这个DFA是唯一的(不考虑同构的情况)。
任意给定的一个DFA,根据以下算法设计一个C程序,将该DFA化简为与之等价的最简DFA。
2.实验设计分析2.1实验设计思路根据实验指导书和书本上的相关知识,实现算法。
2.2实验算法(1)构造具有两个组的状态集合的初始划分I:接受状态组F和非接受状态组Non-F。
(2)对I采用下面所述的过程来构造新的划分I-new.ForI中每个组GdoBegin当且仅当对任意输入符号a,状态s和读入a后转换到I的同一组中;
/*最坏情况下,一个状态就可能成为一个组*/用所有新形成的小组集代替I-new中的G;end(3)如果I-new=I,令I-final=I,再执行第(4)步,否则令I=I=new,重复步骤(2)。
(4)在划分I-final的每个状态组中选一个状态作为该组的代表。
这些代表构成了化简后的DFA M'状态。
令s是一个代表状态,而且假设:在DFAM中,输入为a时有从s到t转换。
令t所在组的代表是r,那么在M’中有一个从s到r的转换,标记为a。
令包含s0的状态组的代表是M’的开始状态,并令M’的接受状态是那些属于F的状态所在组的代表。
注意,I-final的每个组或者仅含F中的状态,或者不含F中的状态。
(5)如果M’含有死状态(即一个对所有输入符号都有刀自身的转换的非接受状态d),则从M’中去掉它;
删除从开始状态不可到达的状态;
取消从任何其他状态到死状态的转换。






2024/1/27 6:58:27 1KB DFA化简 C++ 编译原理
1
一.插件目的::1.我们使用的U3D引擎产生的游戏资源包容量太大,故全方位优化动画资源;
2.在max曲线编辑器内,点取轴向太过麻烦,费事,直观清除帧大大提高效率。
如:二:插件设计思路1.动画关键帧的原理:Key帧是记录骨骼bone的位移,转换,缩放的信息的,会产生容量,所以一套骨骼会产生很多关键帧,使文件增大,有的动作,部分轴向不参与动画,却又记录了下来,比如:胳膊的挥动,只是旋转在作用,移动缩放根本没有作用,又比如:一个bone垂直接触了地面,只是移动在作用,所有旋转缩放没有作用,如下图:注:横向是时间长度,纵向数值大小。
有动画的,才会有高低起伏的,平的曲线,没有起伏,但是参与了关键帧的记录,是会产生字节的,移动旋转缩放的XYZ都会在视图中出现,所以:假如移动的XY有动画,但Z也有动画,可并没有任何作用,为了减少导出FBX的容量,就把Z轴的删掉,整体是这样的思路,UI菜单决定由我来删除哪个需要删除,1.当我鼠标选取一个或多个Bone对象,之后点选UI界面,由我选择清除哪个轴向,快捷删除轴向帧。
比如我选择了5根骨骼,点击了”MOVE::XYZ下的ClearZAxis“,所以,这5根骨骼的位移的Z轴全部清除,同理我点击了”MOVE::XYZ下的ALL“,那5根骨骼位移的XYZ轴动画都被清除;
三:使用方法。
全部:就是整个max文件里面所有没有变化信息的轴向选择的:就是只针对选中的骨骼单个或者多个的轴向信息。
清理:清除完成,可以在曲线编辑器内部查看操作图解:1.拖入插件进入max直接点击清除就行,导出FBX文件容量会小,省资源用的。
01.jpg02.jpg03.jpg04.png
2024/1/26 1:01:51 271KB 动作优化 优化 动作 max
1
(提供源码较为清晰的爬虫基本原理和思路)通过url地址爬取房源信息并且保存至本地。
可直接使用,爬取字段包括物品信息、物品价格、区域、浏览人数等字段。
2024/1/24 19:48:55 731KB 爬虫 C# 源码 图片
1
Sigmund教授所编写的拓扑优化经典99行程序,是我们拓扑优化研究的基础;
每一个新手入门都会要读懂这个程序,才能去扩展,去创新;
99行程序也有好多个版本,用于求解各种问题,如刚度设计、柔顺机构、热耦合问题,但基本思路大同小异等;
99行程序按照今天的观点来看,有可以改进的地方,针对99行程序的改进后来又出现了88行程序等等。
本文主要对拓展的伸臂梁结构用99行程序做简单的优化
2024/1/24 0:25:25 476KB 拓扑优化99行
1
共 835 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡