一、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
病人进入某医院急诊部的规律服从10分钟的指数分布。
假定病人被区分为三类:A、B、C。
急诊部通常为病人提供三个阶段的服务。
每一种病人通过这些服务的具体顺序和服务时间如下表。
所有的服务都以分钟计算。
假定病人从一个阶段转送到另一个阶段的时间是常数3分钟。
建立这个急诊部的模拟模型并模拟其操作4800分钟。
用“set”命令来采集每一种病人的平均服务周期以及每一阶段的资源负荷率。
2024/1/30 8:54:14 1015KB 医院急诊部系统模拟 arena
1
根据HP原厂工程师的指导,把每一步的详细配置过程按配置顺序都用QQ进行了截图,并在每张截图下面都有详细说明,没接触过3PAR的人用这个手册完全可以完成初始化的配置过程,包括加主机、加CPG、加VV、映射,另外还包括这个存储的一些特殊概念的描述。
因为是一点点做出来的,而且很详细。
2024/1/27 10:18:42 1.29MB HP 3PAR 配置 向导
1
一列货车共有n节车厢,每个车厢都有自己的编号,编号范围从1~n。
给定任意次序的车厢,通过转轨站将车厢编号按顺序重新排成1~n。
转轨站共有k个缓冲轨,缓冲轨位于入轨和出轨之间。
开始时,车厢从入轨进入缓冲轨,经过缓冲轨的重排后,按1~n的顺序进入出轨。
缓冲轨按照先进先出方式,编写一个算法,将任意次序的车厢进行重排,输出每个缓冲轨中的车厢编号。
2024/1/27 4:58:32 113KB 算法 数据结构 火车厢重排
1
升级目录点击展开介绍快速简单的存储。
一个Node.js包装器,用于兼容abstract-leveldown存储,这些存储遵循的特性。
LevelDB是Google构建的简单键值存储。
它已在GoogleChrome和许多其他产品中使用。
LevelDB支持任意字节数组作为键和值,包括奇异的get,put和delete操作,批处理的put和delete,双向迭代器以及使用非常快的算法的简单压缩。
LevelDB存储按关键字按字典顺序排序的条目。
这使levelup的(将LevelDB迭代器公开为)成为非常强大的查询机制。
最常见的存储是,它提供与LevelDB的纯C++绑定。
诸如在浏览器或为一个内存中存储。
它们通常支持键和值的字符串和缓冲区。
对于一组更丰富的数据类型,您可以使用来包装存储。
建议使用包来入门。
它方便地捆绑levelup,和。
它的主要输出是levelup即,您可以执行vardb=require('level')。
支持平台我们旨在支持ActiveLTS和当前Node.js版本以及浏览器。
要获得基础存储的支持,请
2024/1/19 9:11:39 66KB nodejs javascript level browser
1
本书以九九度供求信息网、BCTY365网上社区、办公自动化管理系统、电子商务平台网、网络在线考试系统、物流配送信息网、学校图书馆管理系统、博客管理系统、企业快信系统、online影视365等10个实际项目开发程序为案例,从软件工程的角度出发,按照项目的开发顺序,系统、全面地介绍了程序开发流程。
从开发背景、需求分析、系统功能分析、数据库分析、数据库设计、网站开发到网站发布,每一过程都详细地进行了介绍。
  本书附有配套光盘,光盘中提供有10多个小时的教学视频录像、编程词典的体验版学习软件,还提供了书中所有案例的全部源代码,所有源代码都经过精心调试,在WindowsNT、WindowsServer2003、Linux、Unix操作系统下全部通过,保证能够正常运行。
  本书案例涉及行业广泛,实用性非常强,通过本书的学习,读者可以了解各个行业的特点,能够针对某一行业进行网站开发,也可以通过光盘中提供的案例源代码和数据库进行二次开发,以减少开发系统所需要的时间。
1,中小型企业内部自动化办公管理………PHP源码2,网上社区系统……………………………PHP源码3,供求信息网………………………………PHP源码4,网络在线考试网站………………………PHP源码5,电子商务购物商城系统…………………PHP源码6,物流配送信息网…………………………PHP源码7,图书馆管理系统…………………………PHP源码8,个人博客网站系统………………………PHP源码9,企业快信使用…………………………PHP源码10,影视在线online播放系统………PHP源码学习交流所用
1
解析modbus报文,用来测试寄存器的数据类型,或者解析值支持类型有1bit,int16,int16hint32四种顺序排列float32四种顺序排列
2024/1/15 17:49:08 3.84MB modbus 数据类型解析
1
ntmain(intargc,char*argv[]){inte;SqStackl1;Linkstl2;Queuel3;LinkQueuel4;coutle;couta;coute;Push(l1,e);}while(le--){Pop(l1,e);coute;push(l2,e);}while(le--){pop(l2,e);coute;Push1(l3,e);}while(le--){Pop1(l3,e);coute;push1(l4,e);}while(le--){pop1(l4,e);cout<<e<<"";}break;}system("PAUSE");return0;}
2024/1/12 17:07:23 826B 入栈、出栈
1
本文档主要通过对共享单车管理系统进行分析,通过项目前景分析、系统的需求获取,使用UML建模语言用例图、顺序图、通信图、状态机图、活动图、类图、构件图、部署图多方面来对整个系统进行分析,对UML建模语言这门课程的课程设计具有参考意义
2024/1/8 19:00:11 482KB UML 共享单车管理系统 课程设计
1
2003年第一期至2020年4月7日,包含销售日期,期数,中奖数据,出球顺序,销量,1等至6等中奖数。
2024/1/4 22:53:55 460KB 双色球
1
共 714 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡