精华内容
下载资源
问答
  • 内存层次模拟器 模拟多级缓存、TLB、页表、主存、磁盘不同写策略的操作,保证一致性。 LRU 是替换算法。
  • 一个突出的示例是磁盘使用情况图表(有关此示例,请参见 ): 特征 HPie试图成为 直观且易于使用:设置数据和matplotlib ,生成第一张图所需的行不超过两行( 最小示例)。 灵活且健壮:只要有意义, HPie类的...
  • 多级缓存设计

    2018-04-19 11:29:00
    多级缓存设计的学习笔记 整理一下实际工程中用到过的一些缓存。作为一个后端程序员,用了反向顺序,...1.3 本地磁盘缓存 1.4 分布式缓存 1.4.1 Redis 1.4.2 Memcached 2. 接入层缓存,Nginx Nginx 缓存配置 3...

    多级缓存设计

    整理一下实际工程中用到过的一些缓存,从客户端到服务端。

    1. 客户端缓存

    页面缓存

    - HTML5中使用本地缓存localStorage
    - 开启离线缓存步骤:1. 准备资源列表清单文件;2. 页面中添加manifest属性,指定缓存清单文件的路径
    

    浏览器缓存

    - 浏览器与服务器约定的规则
    

    APP上的缓存

    -  APP可以将内容缓存在内存、文件或本地数据库中
    -  数据库缓存方法:存放文件相关信息(URL、路径、下载时间、过期时间),需要注意清理机制。
    -  IOS开发中,SDWebImage-图片缓存框架
    

    2. CDN

    • 将图片、JS、音频等放在CDN上,能提高访问速度、降低成本、也提高了系统的吞吐量。笔者就遇到过一次因为某个活动页面的图片链接没有替换成CND链接,用了应用内链接,上线直接冲垮网站的情况。

    CDN方案

    • 国内很多CDN厂商
    • Amazon CloudFront,不过看了下cn区的还没有这个服务。

    3. 接入层缓存,Nginx

    • Nginx能有效地直接处理静态内容,适合给前端服务器当缓存。

    Nginx 缓存配置

    1. 在http配置快中添加proxy_cache_path,配置缓存所在文件系统路径、缓存区名称、大小。
    2. 配置proxy_cache
    • 一个简单的中文参考: https://leokongwq.github.io/2016/11/25/nginx-cache.html

    4. 应用层缓存

    4.1 堆内缓存

    • Guava cache, 简单易用
    import com.google.common.cache.CacheBuilder;
    import com.google.common.cache.CacheLoader;
    import com.google.common.cache.LoadingCache;
    
    private final LoadingCache<String, Product> productCache = CacheBuilder.newBuilder()
            .softValues()
            .expireAfterWrite(TimeUtils.FIVE_MINUTE_IN_SECONDS, TimeUnit.SECONDS)
            .build(
                    new CacheLoader<String, Product>() {
                        @Override
                        public Product load(String productId) throws Exception {
                            return productDao.getByProductId(productId);
                        }
                    }
            );
    

    4.2 堆外缓存

    Ehcache的 BigMemory

    4.3 本地磁盘缓存

    local redis cache

    4.4 分布式缓存

    Redis

    • 需要学习的内容有很多,包括常用命令、数据结构、主从复制、持久化、高可用、集群、扩容、内存管理、集群监控等

    Memcached

    • 包括 安装使用、内存管理、缓存策略、分布式集群、分布式算法等

    5. 数据库缓存

    MySQL查询缓存

    查看 Query Cache 是否合理

        - SHOW VARIABLES LIKE '%query_cache%' 
        - SHOW STATUS LIKE '%cache%'
    

    InnoDB 缓存性能

        - SHOW VARIABLES LIKE '%innodb_buffer_pool%' 
        - SHOW STATUS LIKE '%innodb_buffer_pool_read%'
        - 缓存命中率: (Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads)/Innodb_buffer_pool_read_requests*100%
        - 根据命中率调节innodb_buffer_pool_size
    

    大型网站的系统架构示意图

    前端页面缓存
        → Web服务器集群
            → 分布式文件系统
            → 动态页面组件缓存
            → 数据库接入层 → 数据库集群
            → 数据缓存、分布式缓存
    
    展开全文
  • 磁盘管理

    2020-11-08 23:37:20
    磁盘 磁盘的俯视图 操作系统最直接的使用磁盘 找到指定柱面上的磁道 旋转相应的磁头 找到相应扇区后,将数据读入内存缓冲区(磁生电),在内存缓冲区中修改数据后再写回磁盘对应位置(电生磁) 通过盘块号读写磁盘 ...

    磁盘

    1. 磁盘的俯视图在这里插入图片描述
    2. 操作系统最直接的使用磁盘在这里插入图片描述
      1. 找到指定柱面上的磁道
      2. 旋转相应的磁头
      3. 找到相应扇区后,将数据读入内存缓冲区(磁生电),在内存缓冲区中修改数据后再写回磁盘对应位置(电生磁)
    3. 通过盘块号读写磁盘
      在这里插入图片描述
      1. 磁盘驱动负责用程序提供的block计算出柱面、扇区等数据来对磁盘进行读写

      2. 磁盘访问时间 = 写入控制时间 + 寻道时间 + 旋转时间 + 传输时间

      3. 在这里插入图片描述

      4. 在这里插入图片描述
        S:扇区号

      5. 盘块可以是几个连续的扇区

    多个进程使用磁盘

    1. 在这里插入图片描述
    2. 磁盘调度算法
      1. FCFS:响应队头请求在这里插入图片描述在这里插入图片描述
      2. 短寻道优先(Shortest-seek-time first):先响应最近的请求在这里插入图片描述
      3. SCAN在这里插入图片描述
      4. 电梯算法在这里插入图片描述

    从生磁盘到文件

    1. 文件:建立字符流到磁盘盘块的映射关系在这里插入图片描述
    2. 文件与磁盘的映射关系:
      1. 连续结构实现文件:在这里插入图片描述映射表:
        在这里插入图片描述
      2. 链式结构实现文件在这里插入图片描述映射表:在这里插入图片描述
      3. 索引结构实现文件:在这里插入图片描述
      4. 实际系统中使用的是多级索引在这里插入图片描述

    目录与文件系统

    1. 文件系统:在这里插入图片描述
    2. 目录树在这里插入图片描述
    3. 实现目录在这里插入图片描述在这里插入图片描述通过"/“的FCB找到”/"的数据块,再通过数据块找到my的FCB在FCB数组中的位置,之后找到my的FCB又去找对应的my的数据块最后通过该数据块找到data的FCB然后在data的数据块中找到a的FCB最后通过a的FCB找到对应的数据块然后进行操作在这里插入图片描述ps:i节点就是FCB数组,超级块记录两个位图有多大就可以定位到FCB数组的开头("/"的FCB)

    总结

    在这里插入图片描述

    展开全文
  • 多级hash

    千次阅读 2013-04-26 22:33:15
    一般地,公司内部都有集中固定型号的服务器,每种都有其性能极限,一般包括但不限于CPU计算能力、网卡收发包能力、内存容量以及磁盘容量和他的读写速度。多级hash即与内存容量有关。假设一台del

    我在以前的博客《sdk的windows版本点击打开链接 中稍微的介绍了一些多级hash的信息,现在尽自己所知详尽地予以介绍。

    现在的服务器网络数据收发与存储没有不做缓存的,不做缓存不能发挥机器的高性能。一般地,公司内部都有集中固定型号的服务器,每种都有其性能极限,一般包括但不限于CPU计算能力、网卡收发包能力、内存容量以及磁盘容量和他的读写速度。多级hash即与内存容量有关。假设一台dell服务器内存是8G,如果用多级hash做缓存,那么就可以考虑给缓存的容量是6G,即一般内存容量的3 / 4 或者 2 / 3考虑用作缓存的极大容量。某种服务器为某种业务服务,简单的认为业务的值是key-value形式,一般地,key肯定有固定大小Ksize,value最大值也有极限值Vsize_max。


    由上面的一段文字,如果把多级hash作为服务器的缓存,你应该明白这个缓存有两个特点:第一,缓存有极限容量;第二,每个key-value元素有固定大小(Ksize + Vsize_max)。


    如果不考虑多级hash,只考虑上面两个特点,数据结构中最简单的hash表就可以胜任,不是么?不考虑在大内存中CPU对不懂缓存单元的寻址并把数据load到CPU cache中的时间差异(局部性原理),即认为在任何时刻CPU对缓存所有单元的访问速度是一个常数,hash表确实是极为完美的。


    一个简单的数组型hash表确实完美,但是hash表天生缺陷之一就是存储位置冲突。不考虑不同的值计算出同一个key值,我们认为不同的值有不同的key。若一个hash表的元素都存在其数组arr[hash.size]中,在简单的hash表中必有函数计算一个元素的存储位置时候,其简单的计算公式如key % hash.size。此时由于hash.size大小固定,必然存在若干个元素计算出同样的存储位置。不同的人针对这个难题有不同的解决方法。


    我的lisk中就有两种hash结构可以用来解决这个问题,一种是可伸缩的hashtable(以下称之为lisk_hashtable),一种就是多级hash(以下称之为lisk_mul_hash)。lisk_hashtable的特点以后予以介绍,现在先提下它的缺点。在内存允许的情况下lisk_hashtable可以自动扩大或缩小它自身的大小,它的极限大小的计算是不方便的。若极限大小不能方便计算出来存在的情况下,它就不方便作为服务器对外服务的缓存。而结构简单的缓存结构也方便别人维护。额外话题,服务器的特点第一是稳定,第二才是性能,一个性能很好的服务器但是她的服务时好时坏,用户会经常骂娘的,它能服务谁呢?而lisk_mul_hash是不考虑伸缩性的,你可以认为这是它的缺点,但是在服务器缓存极限容量存在的情况下,可伸缩性又有什么用?


    多级hash就能够实现上面提到的服务器缓存的两个特性。多级hash可提供插入、查找和删除操作。


        简单地,我们可以认为多级hash就是一个多维数组,行数一般在10到100之间,列数则不固定,元素大小固定。
        一般网上有一些多级hash实现,你会发现它们的关键实现就是一个多维数组。假若其关键结构是arr[3][10000],若一个元素的key是99995554,则寻找插入过程如下:
    1 在arr[0]的存储位置是99995554 % 10000 = 5554;
          2 如果arr[0]的5554位置已经被占用了,则使用arr[1]的5554位置;
    3 如果arr[1]的5554位置也被占用,则使用使用arr[2]的5554位置。
        上面每行都能存储10000个元素,同一个元素如果计算存储位置,在每一个行可以计算出同样的计算位置。考虑到离散数学中同余原理,每行最大元素数目不同且数字取质数为宜,每行的数字可依次递减。譬如第一行取比10000稍小的质数9973,第二行大小取值9969,第三行取值9949。
        所以若再次计算元素存储位置,则计算过程就稍微改变。计算过程如下:
        1 在arr[0]的存储位置是99995554 % 9973;
        2 如果arr[0]的存储位置99995554 % 9969 被占用,则使用arr[1]的99995554 %  9969位置;
        3 如果同样也被占用,则使用使用arr[2]的99995554 % 9949位置。
        考虑一个问题,上面计算key为99995554的元素的存储位置时, 如果三行的三个位置都被占用了,那么它将被存储到那里呢?这就是多级hash的一个特点,不保证所有元素都被存储下来。如果多级hash设计的好,只有很少量的元素找不到存储位置,他们被称为奇异值,这部分你可以另考虑别的方法来解决。譬如你就直接把他们存到磁盘上,文件分为索引文件和数据文件,分别存储key和value,并把索引文件通过linux的mmap接口映射到内存中来,以方便快速查找。
         即使多级hash中已经插不进新的元素,多级hash内部也肯定还有没有存储元素的位置。
         或者呢?我们可以接受多层hash不能饱和地存下所有元素的特点,其利用率达到85%就可以了,若达到90%就可以认为这个多级hash就可以被缓存不可用了。你需要升级服务器了。
        
        多级hash行数越多,其空间利用率越高,然查找速度便逐渐减慢。反之,行数越少,则多级hash查找速度越快,然空间利用率低下。所以行数应该被控制在50行以内,一般在20至35行之间为宜。


        lisk中多级hash也是一个多维数组,每行数目可以不同。如第一行实际存储数目极限是9973,则只申请9973个位置,可以不用申请10000个位置,以减少元素浪费。

        lisk中多级hash的每行列数目是递增的,lisk/exam/mul_hash_test.c利用随机数测试,这个多级hash几乎可以把所有元素存下来,即利用率几乎可达到100%。但它没有考虑如何存储奇异值。


    其实,关于缓存还有一些额外的话题。不管缓存的内存区是通过共享内存还是其他的os接口获得的,其中少被访问的数据几乎可能将被os swap out到虚拟内存中,一旦有访问者要访问这个数据,os需要先将数据swap in到内存中,然后再返回给访问者。如果平均访问响应时间是100ms,那么对这个数据的相应就可能在1s至2s之间。如果你认为这是不可接受的(其实我也这么认为),就可以通过mprotect接口禁止缓存中的数据被swap out。

            另外,如果银行等部门用C设计缓存时候,其对缓存中数据的可靠性是非常高的,即宁愿访问响应时间稍长一点也不会接受不可靠的数据。不考虑多线程情况,建议对共享内存数据的读取都使用volatile关键字。



    展开全文
  • 多级页表

    千次阅读 2020-03-26 17:20:04
    为啥要有多级页表 假设系统用单页表,现有32位地址空间、大小为4k的页面、PTE(页表条目)的大小为4B 那内存可以分为2^20 个页,即需要2^20 个PTE,那内存中需要一直存在一个2^20*4B(4MB)的页表 那如果是64位机呢?...

    为啥要有多级页表

    假设系统用单页表,现有32位地址空间、大小为4k的页面、PTE(页表条目)的大小为4B

    那内存可以分为2^20 个页,即需要2^20 个PTE,那内存中需要一直存在一个2^20*4B(4MB)的页表

    那如果是64位机呢?(因为64位机虚拟地址空间远远大于物理内存大小,所以目前一般只用2^48位或更少的地址空间)

    即2^52*4B(16777216G)的页表常驻内存中???

    其实页表大小就是内存(可寻址字节数)大小除以页面大小,因为用一个4B的PTE指向了4K的页面,所以页表大小就是虚拟内存大小/2^10 ,即虚拟地址空间越大,页表也随之变大,两者只差2^10倍。

    由此可见,单页表在计算机位数较大时是不合适的

    • PTE为啥大小为4B呢?

    因为地址空间为32位,即32位可以指向虚拟地址空间的任一字节,也就是4B的PTE可以指向任一地址

    多级页表

    因为单页表大小会随着虚拟地址空间的增加而增加,而为了快速查找页表地址连续,一个页表一次会得到被分配的连续内存(即页表就是页表项数组),所以一个页表如果有一个条目(PTE)在使用,整个页表都会加载在内存中

    多级页表其实就是对页表实施分页管理,即内存中只常驻一级页表,一级页表的每个PTE指向一个二级页表的基地址,以此类推,最后一级页表存储物理块号和块内偏移量,因为页和块的大小相等,所以页偏移量和块偏移量相等,只块号不同,即虚拟地址通过查页表就是完成了页号到块号的转换

    页表分级后,使用到的虚拟地址空间对应的一系列页表加载到内存中,其他没用到的页表就可以不占用内存,若内存紧张,还可将虽有映射关系但不常用的页表调换到磁盘上,等到需要时再通过缺页中断调回内存中

    访问多级页表看起来要花费更多的时间去查表,但实际上因为有TLB(快表)的存在,多级页表的地址翻译并不比单页表慢很多

    上面在总结多级页表的查询速度时提到了快表(TLB),正因为有快表的存在才使得多级页表模式下页的查询不会非常慢,因为快表如果缓存了该页的页表项(PTE),MMU会根据快表缓存的物理页号(PPN)计算出物理地址。得到物理地址后,去查高速缓存,若命中则得到数据。在这个过程中:

    • 通过快表得到PPN避免了至少一次内存访问
    • 通过高速缓存得到数据避免一次内存访问

    这就大大加快了计算机获取数据的速度,弥补了多级页表查询速度上的不足

    快表

    集成在cpu内部的一个独立的硬件缓冲区,是cpu的缓存。快表中存储的是页表中最常用的一些页表项(PTE)中的物理页号(PPN)。当cpu访问一个VA(虚拟地址)时,首先通过VA中的VPN(虚拟页号)分为两部分在TLB中查找,若命中,则获得物理页号,否则就得去页表逐级查找。

    此处应有图->快表->va划分
    找不到好的画图工具,图见csapp第九章,574页

    高速缓存

    位于cpu内部,分为很多组,每组又分为多块,块中存储页内给定偏移量的数据(1B)

    高速缓存图,574页

    其实地址翻译就是将虚拟页号转换成物理页号,因为页的大小和块的大小相同,所以其偏移量也相同。在查快表时,VA中的偏移量部分发送至高速缓存去定位目标值,所以当快表命中时,得到的PPN直接可以和高速缓存中查到的块的标志位进行比较,如果相同,则高速缓存命中,否则通过PPN和PPO合成的PA去访问内存获取数据

    高速缓存的标志位就是PPN(物理页号),用来判断是不是要找的物理页,因为高速缓存通过偏移量(VPO)定位,即找到的数据只能确定是这个偏移量的数据,但不知道是哪个块的,只有等到快表中查出的PPN和高速缓存中查到的标志位比对后,才能判断是否缓存命中

    未解决的问题

    为啥。。。哦明白了突然想通啊哈哈哈

    [已解决 ] 原问题:VPN和VPO都是一串二进制为啥不都用VPN找快表和高速缓存

    一个VPN对应很多VPO,即VPN相同VPO不同,

    • 大部分书和博客的页表项都含有页块号(vpn,ppn),但是他俩就是对应位置的数组下标,还有必要存吗?csapp的意思好像是不用存。?
    展开全文
  • CSA磁盘管理

    2021-01-20 19:09:17
    1.添加一块10g大小的磁盘,将磁盘的分区分为一个主分区和一个扩展分区,在扩展分区上分出一个逻辑分区,并格式化为ext4的文件类型(主分区4G大小,两个多级分区分别为6G大小) 打开编辑虚拟机设置, 添加一块10g...
  • 多级缓存实例

    千次阅读 2019-01-15 13:06:06
    一个使用了Redis集群和其他多种缓存技术的应用系统架构。     首先用户的请求被负载均衡...接着,Nginx服务器读取本地缓存,实现本地缓存的方式可以是lua shared dict,或者面向磁盘或内存的Nginx proxy ca...
  • (1) 在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多级目录的文件系统。 (2) 文件物理结构可采用显式链接或其他方法。 (3) 磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理...
  • 访问磁盘次数计算

    万次阅读 多人点赞 2016-10-19 17:46:25
    访问磁盘次数计算1.一个文件系统中,其FCB占64B,一个盘块大小是1KB,采用一级目录。假定文件目录中有3200个目录项,则查找一个文件平均需要访问磁盘(100)次。 分析:FCB是存储在磁盘盘块的。本题主要还是考察名词...
  • 缓存淘汰和多级管理

    2021-01-20 11:43:28
    缓存淘汰和多级管理 在squid中涉及到缓存淘汰算法包括:内存缓存淘汰lru、磁盘缓存淘汰lru。一般做法是:当命中一个缓存后,将lru节点从当前位置删除,然后移动至队头。 淘汰一般是需要在固定的空间个数中淘汰掉某个...
  • (1) 支持多级目录结构,支持文件的绝对读路径; (2) 文件的逻辑结构采用流式结构,物理结构采用链接结构中的显式链接方式; (3) 采用文件分配表 FAT; (4) 实现的命令包括建立目录、列目录、删除空目录、...
  • 本课程设计要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 二、课程设计的要求与数据 1. 在...
  • 磁盘启动次数计算原理总结

    千次阅读 多人点赞 2016-11-20 16:10:36
    磁盘启动次数计算原理总结@(OS)文件管理有三大部分内容: 目录管理 文件存储空间管理 文件共享保护管理 目录管理又细分为: 文件控制块和索引结点 目录结构 单级目录结构 两级目录结构 树形目录结构 文件存储空间...
  • 多级页表的原理

    万次阅读 多人点赞 2017-12-24 20:29:46
    我之前一直有一个疑惑,为什么同样都是把页表存储在内存中,多级页表就比一级页表要省空间? 如果你也有这个疑惑,看完这篇博客你就明白了 先说一些基本概念(参考《现代操作系统》) 虚拟存储器的基本...
  • 多级页表内存

    2021-07-24 16:42:27
    多级页表内存 table of table 二级页表的内存占用 假设虚拟地址空间为32位,即4GB 每个页面映射为4KB,以及每条页表项占4B,也就是32位。 一级页表管理:一个进程需要使用1M个页表项(=4GB/4KB,2^20),即页表(每个...
  • 【Java并发编程】CPU多级缓存

    千次阅读 2019-10-24 18:19:58
    文章目录CPU多级缓存一、CPU缓存的意义二、CPU缓存一致性协议(MESI)三、CPU的乱序执行 CPU多级缓存 一、CPU缓存的意义 CPU多级缓存 属于《计算机组成原理》部分的内容,但却是深入理解Java并发编程绕不开的部分。 ...
  • //这还只是创建了一个对象而已,并没有把它写入磁盘;a.2.创建一个文件夹 //在磁盘中写入: file.mkdir();//不能创建多级目录; file.mkdirs();//可以创建多级目录; 二者都返回一个布尔值,表示是否创建成功; ...
  • 磁盘的管理(二)

    2021-10-04 19:28:27
    文章目录前言一、磁盘文件1.顺序存储结构2.链式存储结构3.索引存储结构二、文件读取磁盘(第三层抽象)1.2.总结 前言 如果让普通用户使用生磁盘(raw disk),许多人连扇区都不知道是什么?要求他们根据盘块号来访问...
  • 利用linux自带的工具对磁盘做软raid
  • 计算访问磁盘

    千次阅读 多人点赞 2020-07-08 17:04:18
    下级文件是目录文件时,指示其第一个磁盘块地址,下级文件是普通文件时,指示其FCB第磁盘地址。每个目录的文件磁盘块的最后4B供拉链使用。下级文件在上级目录文件中的次序在图中为从左至右。每个磁盘块有512B,与...
  • 操作系统之磁盘管理

    千次阅读 2017-07-14 10:43:44
    磁盘存储器具有容量大、存取速度快、支持随机存取的特点,因此被广泛应用于计算机系统中。对于操作系统来说,管理好磁盘的三大要求和目标是: (1)合理有效利用磁盘:采用合理的文件存储空间分配算法,尽量减少...
  • 大流量下多级缓存设计

    千次阅读 2018-04-26 23:24:07
    什么是多级缓存所谓多级缓存,即在整个系统架构的不同系统层级进行数据缓存,以提升访问效率,这也是应用最广的方案之一。我们应用的整体架构如图1所示:图1 多级缓存方案整体流程如上图所示:1)首先接入Nginx将...
  • (1)支持多级目录结构,支持文件的绝对路径访问; (2)文件的逻辑结构采用流式(字节流)结构,物理结构采用链式结构中的显式链方式; (3)磁盘管理采用文件分配表; (4)实现文件操作命令:创建目录、列表目录...
  • 为了解决航空物流领域海量小文件存储效率和访问效率不...实验结果表明,该方法有效提高了小文件的存取效率和磁盘的利用率,显著地降低了网络的带宽占用和集群NameNode的内存消耗,适合解决航空领域海量小文件存储问题。
  • 使用多级RAID

    2006-07-12 09:41:00
    对于大多数O LT P应用程序与数据仓库应用程序,基于硬件的 RAID 0+1磁盘阵列是一种最佳选择。这是因为重复的写操作可以通过高速硬盘控制器在硬件级别上完成,所造成的性能影响可以忽略不计。同时,它所带来的系统...
  • c++创建多级目录

    千次阅读 2014-05-14 16:10:48
    c++创建多级目录 自己写的chuangjian
  • 自定义文件系统下的磁盘访问次数计算

    千次阅读 多人点赞 2016-10-20 15:07:19
    目录表指示下一级文件名及其磁盘地址(各占2B,共4B)。若下级文件是目录文件,指示其第一个磁盘块地址。若下级文件是普通文件,指示其FCB的磁盘块地址。每个目录的文件磁盘块的最后4B供拉链使用。下级目录文件在上级...
  • 4. 文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。目录组织方式可以不使用索引结点的方式,但使用索引结点,则难度系数为1.2。 5...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,721
精华内容 10,288
关键字:

多级磁盘