操作系统原理期末复习

第一章 绪论

什么是操作系统

操作系统是一种控制和管理计算机硬件和软件资源的系统软件。它为用户和应用程序提供了一个接口,使它们能够与计算机硬件进行交互和使用

操作系统的基本类型

操作系统的基本类型包括:

1. 批处理操作系统:这种类型的操作系统可以一次性处理一批作业,通常用于早期的大型计算机系统。

2. 分时操作系统:允许多个用户同时使用计算机系统,通过时间片轮转的方式来分配处理器时间。

3. 实时操作系统:用于需要实时响应的应用,如航空航天、工业控制等领域。

4. 分布式操作系统:用于连接多台计算机,使它们能够共同工作,共享资源和协同处理任务。

5. 网络操作系统:用于管理和控制计算机网络,包括服务器、路由器和交换机等设备。

6. 嵌入式操作系统:专门设计用于嵌入式系统,如智能手机、智能家居设备和汽车控制系统等。

------ChatGPT------

操作系统功能

处理机分配

存储管理

设备管理

软件资源管理

操作系统的特性

并发,共享,不确定性

第二章 操作系统的组织结构

处理机状态

管态(系统态)

在管态下,CPU可以执行指令系统的全集(包括特权指令),程序可以访问计算机的任何资源,其资源访问权限不受限制。通常,操作系统在管态下运行

目态(用户态)

目态又称为常态或用户态,机器处于目态时,程序只能执行非特权指令,不能直接使用系统资源,也不能改变CPU的工作状态,并且只能访问这个用户程序自己的存储空间

        区分内核态和用户态两种操作方式的目的是为了保护操作系统程序。通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”要执行一些特权指令,而“被管理程序”出于安全考虑不能执行这些指令

下列情况下用户态自动转换为管态

1、用户进程访问操作系统,要求系统的某些服务,这种访问成为系统功能调用

2、用户程序执行时发生一次中断

3、在一个用户进程中产生一次错误状态,这种错误被处理为内部中断

4、在用户态下企图执行一条特权指令,视作特殊类型的错误

管态返回用户态也是一种特权指令

特权指令

修改机器状态的指令

修改特殊寄存器的指令

涉及外部设备IO的指令

中断

中断是计算机系统中的一种机制,用于在处理器执行程序的过程中,暂停当前的任务,转而执行与其他硬件设备相关的特定任务。中断可以是由硬件设备(如时钟、键盘、磁盘等)或软件(如操作系统或应用程序)生成的。

恢复现场和保护现场

 在处理中断时,操作系统需要保护当前任务的执行现场(包括程序计数器、寄存器状态、堆栈指针等),以便在中断处理完成后能够恢复到中断前的状态。保护现场的过程包括将当前任务的状态保存到内存中,以便稍后能够恢复。而恢复现场则是指在中断处理完成后,将之前保存的任务状态重新加载到处理器中,以便任务能够继续执行。

向量中断与中断向量

向量中断是一种特殊类型的中断处理机制,它使用中断向量来识别和处理不同类型的中断请求。

中断向量是一个用于标识中断类型的数字或地址,它可以唯一地标识系统中可能发生的不同类型的中断。当处理器接收到中断请求时,会根据中断请求的类型找到相应的中断向量,然后跳转到中断向量指定的位置执行中断处理程序。

因此,向量中断是指使用中断向量来识别和处理中断请求的一种机制。这种机制可以使系统更加灵活地处理不同类型的中断请求,因为每个中断类型都有自己的中断向量,处理程序可以根据不同的中断类型进行特定的处理。

在实际的计算机系统中,中断向量通常是一个地址,处理器在接收到中断请求时会根据中断类型找到对应的中断向量地址,然后跳转到该地址执行中断处理程序。这种机制可以使系统更加高效地处理中断请求,同时也方便了系统的扩展和维护。

------ChatGPT------

第三章 用户界面

操作系统虚拟机的概念

        操作系统虚拟机是一种软件实体,它模拟了一个完整的计算机系统,包括处理器、内存、存储设备和网络接口等。它允许在同一台物理计算机上同时运行多个独立的操作系统实例。这些独立的操作系统实例被称为虚拟机,每个虚拟机都可以运行自己的应用程序和执行任务,就像它是一个独立的计算机一样。

        操作系统虚拟机的概念使得可以在一台物理计算机上同时运行多个操作系统,从而提高了硬件资源的利用率。它还提供了一种隔离和安全性的解决方案,因为每个虚拟机都是相互独立的,彼此之间不会相互影响。这种技术被广泛应用于服务器虚拟化、云计算和开发测试环境等领域。

------ChatGPT------

unix系统调用的分类

第四章 并发控制(进程)

进程的结构与状态

pcb是进程的唯一标识

 原语

一种特殊的系统调用,特点是不可被中断,其操作不可再被划分一气呵成,故而具有原子性。原语会使用“开中断”与“关中断”来保证其操作不会被中断

进程状态转换以及四种进程原语 

 创建原语(create)

其形式为:create(name,priority,start_addr)

name:被创建进程的标识符

priority:进程优先级

start_addr:某程序的开始地址

创建进程时会根据以上参数并从pcb资源池申请一个空的pcb结构

撤销原语(kill / exit) 

其形式为:kill()

撤销进程时会归还自身资源给父进程,并将pcb结构还给pcb资源池,最后从总链中摘除该进程

阻塞原语(susp)

其形式为:susp(chan)

chan:进程等待的原因

进程转入阻塞态的原语,执行该原语时会保留CPU现场,修改进程为阻塞态,然后会将该进程插入chan的等待队列

唤醒原语(wakeup)

其形式为:wakeup(chan)

chan:等待的事件(阻塞原因)

用于将进程阻塞态转为就绪态,原语会在合适的条件后唤醒进程(一般为等待队列的队首的进程),将进程从等待队列中摘除,并置阻塞态为就绪态

进程的同步与互斥

进程同步和互斥是操作系统中的重要概念,用于协调多个进程之间的操作,以确保数据的一致性和避免竞争条件。

        进程同步:进程同步是指多个进程之间按照一定的顺序执行,以确保数据的正确性和一致性。在并发环境下,多个进程可能会访问共享的资源,如果没有合适的同步机制,可能会导致数据的混乱和错误。进程同步可以通过信号量、互斥锁、条件变量等机制来实现,以确保多个进程按照特定的顺序执行,避免数据的冲突和不一致。

        进程互斥:进程互斥是指多个进程之间对共享资源的互斥访问,即同一时间只能有一个进程访问共享资源,其他进程需要等待。这可以通过互斥锁来实现,当一个进程获得了互斥锁,其他进程就无法访问共享资源,直到该进程释放了互斥锁。进程互斥可以避免多个进程同时修改共享资源而导致数据不一致的问题。

总之,进程同步和互斥是操作系统中用于确保多个进程之间协调和合作的重要概念,通过合适的同步和互斥机制,可以确保多个进程之间的正确执行和共享资源的安全访问。

------来自ChatGPT------

 临界资源与临界区

通常把一次仅允许一个进程占用的资源成为临界资源

在每个进程中,访问临界资源的那段程序能够从概念上分离开,称为临界区或临界段

例子:打印机

同步中锁相关

锁机制里,锁作为一个标志用来标识各个共享资源的状态。按照惯例,锁位为“0”时表示资源可用,而锁位为“1”时表示该资源已被占用。使用资源前会进行上锁,释放资源时会开锁

上锁原语(lock)

形式为:lock(w)

w:锁位

功能为检测资源锁位是否为1,是,则会循环检测该锁位直到w变为0,否,则会将w置1即上锁

开锁原语(unlock)

形式为:unlock(w)

w:锁位

功能为将w锁位置为0

信号灯与P、V操作

信号灯类型及其数值意义

整型信号量:一般为int类型,用以表示共享资源数量

记录型信号量:与整型信号量相比多了等待队列

        其类型默认为semaphore(考试时自己造一个信号量结构体也不是不行)

        S>0时,表示还有S个资源

        S=0时,表示已经没有可用资源了

        S<0时,其绝对值表示等待队列的进程数

P操作(wait):以记录型信号量为例

形式为P(S)

执行时先行减去S,再判断,S>=0时进行下一步操作,S<0时将该进程挂起,放入等待队列,修改状态为阻塞态,等待被唤醒

        宏观上看该进程好像被卡在了P操作的死循环

V操作(signal):以以记录型信号量为例

形式为V(S)

执行时先行加上S,再判断,S<=0时表示等待队列中仍有进程,同时等待队列的队首进程会被唤醒,摘出等待队列,修改状态为就绪态,S>0时表示等待队列中无进程,可以进行下一步操作

整型信号灯的PV操作

信号量机制实现进程同步 

在进程同步中,P、V操作更像是进程的封锁,开始是在封禁状态,除非设计者希望的在前面的操作运行完毕后,向下一个操作发送“开工”的准许,下一个操作才能开始。

多进程同步

每两个操作之间都要设置信号量,在操作前设置P操作(即该操作执行的先决条件)

在操作后执行V操作(即指定哪些后操作的“允许执行”)

第五章 资源分配与调度

死锁的概念及必要条件

死锁是指在并发系统中,多个进程或线程因相互竞争系统资源而陷入一种永久性的阻塞状态的情况。当每个进程都在等待其他进程释放资源,而自己又不释放已经占有的资源时,就会发生死锁。

死锁发生的必要条件包括:

  1. 互斥条件:资源只能被一个进程占用,其他进程需要等待。

  2. 请求与保持条件:一个进程因请求资源而阻塞时,仍继续占有已获得的资源。

  3. 不剥夺条件:已经分配的资源不能被强制性地抢占,只能由占有它的进程主动释放。

  4. 环路等待条件:若干进程之间形成一种头尾相接的循环等待资源的关系。

当这四个条件同时满足时,就有可能发生死锁。死锁的发生会导致系统资源无法被有效利用,进程无法继续执行,从而影响整个系统的正常运行。

-------ChatGPT------

 解决死锁的策略

发生死锁时,可以通过撤销发生死锁的全部进程;从某个中间点重启各死锁进程(可能会再次陷入死锁);逐个撤销死锁进程直到死锁不再存在;逐个剥夺某些资源直到死锁不再发生

死锁的预防

静态避免

预先分配所有共享资源,该资源全程只为分配的进行服务

        缺点:1、用户在作业运行前可能提不出他的作业所需的全部资源

        2、用户必须等待直到所有要求的资源分配好了才能运行,实际上某些资源后期才能用到

       3、 一个作业运行期间对某些设备的使用很少,甚至可能不会用到,例如报错时打印错误码

动态避免

即资源的动态分配

 死锁的避免

银行家算法

银行家算法是一种用于避免死锁的算法,最初由艾兹格·迪杰斯特拉(Edsger W. Dijkstra)提出。该算法用于确保在分配资源给进程的过程中,不会导致系统进入死锁状态。

银行家算法基于以下假设:

  1. 每个进程在运行之前必须申请它所需要的最大资源数,并且在运行过程中不会改变这个数。
  2. 每个进程在开始运行之前必须申请它所需要的所有资源。
  3. 每个进程在运行完毕后必须释放它所占有的所有资源。

银行家算法的主要思想是,在分配资源给进程之前,模拟一下系统的状态,判断分配资源是否会导致系统进入不安全状态,如果会,就不予分配。如果分配资源不会导致系统进入不安全状态,就进行资源分配。

具体来说,银行家算法包括以下步骤:

  1. 初始化:系统初始化时,需要知道每类资源的总数、每个进程的最大需求量、每个进程已分配的资源量等信息。
  2. 检查可分配:当一个进程请求资源时,系统首先检查分配给这个进程资源后,系统是否处于安全状态。即检查系统是否有足够的资源分配给这个进程,且分配后系统不会进入不安全状态。
  3. 分配资源:如果分配资源不会导致系统进入不安全状态,就进行资源分配;否则,推迟分配,直到系统状态安全为止。
  4. 运行进程:进程运行中,如果进程释放了资源,系统需要重新检查是否有其他进程可以获得这些资源,以确保系统仍然处于安全状态。

银行家算法通过对系统状态的合理模拟和判断,避免了资源分配导致系统进入不安全状态,从而预防了死锁的发生。这种算法在操作系统和并发编程中有着重要的应用价值。

------ChatGPT------

安全序列 

死锁的检测

第六章 处理机调度 

作业调度和进程调度的任务与联系

作业调度和进程调度都是操作系统中的调度算法,但它们针对的对象不同,任务也有所区别。

作业调度是指对作业(Job)的调度和分配,作业是用户需要在计算机上运行的程序或任务的集合。作业调度的任务是根据不同的调度算法,将作业分配给可用的计算资源(如CPU、内存等),以便在系统中进行并发执行。

进程调度则是指对进程(Process)的调度和分配,进程是程序在计算机上执行时的实例。进程调度的任务是根据不同的调度算法,决定哪个进程可以获得CPU的使用权,以实现多个进程的并发执行。

它们之间的联系在于,作业调度和进程调度都是为了有效地利用计算资源,提高系统的吞吐量和响应速度。作业调度通常在批处理系统中使用,而进程调度则在多道程序系统和交互式系统中使用。两者都涉及到选择合适的调度算法,以最大程度地提高系统的效率和性能。

------ChatGPT------

作业调度

作业的状态

作业控制块

        作业进入系统时创建作业控制块jcb,只有当作业退出系统时jcb才被撤销

 作业调度算法

先来先服务

该算法按照进程进入就绪队列的先后顺序进行选择。对于进程调度来说,一旦一个进程得到处理机,它就一直运行下去,直到该进程完成任务或者因等待某事件而不能继续运行,才会让出处理机

短作业优先

每个任务请求包含有请求时间(即向系统提交的请求的时间)和持续时间(即完成任务所需时间)。当前任务完成后,SJF策略会选择最短持续时间执行任务,若最短持续时间相同,则选择最早请求时间的任务。任务等待时间为请求时间和实际开始时间之差

响应比高者优先调度算法(HRRN)是一种介于先来先服务(FCFS)与短作业优先(SJF)之间的折中算法。该算法既考虑作业等待时间又考虑作业运行时间,既照顾短作业又不使长作业等待时间过长,从而改进了调度性能。

响应比高者优先

响应比高者优先调度算法的基本思想是把CPU分配给就绪队列中响应比最高的进程。响应比定义为(等待时间+要求服务时间)/ 要求服务时间,即RR=(w+s)/s=1+w/s。其中,等待时间是指进程在就绪队列中等待的时间,要求服务时间是指进程需要的执行时间。因此,响应比一定是大于1的。

当一个进程加入到就绪队列时,调度程序会计算其响应比,并将其按照响应比从高到低排序。当CPU空闲时,调度程序会选择响应比最高的进程执行。如果多个进程的响应比相同,则选择等待时间最短的进程执行。

这种算法既考虑了作业的等待时间,又考虑了作业的运行时间,因此照顾了短作业,又不致使长作业等待时间过长。对于长作业来说,该算法实现了较好的折中。

优先调度算法

优先调度算法是一种常用的进程调度算法,其基本思想是根据进程的优先级来决定下一个要执行的进程。在优先调度算法中,每个进程都会被分配一个优先级,优先级越高的进程会被优先执行

进程调度

进程状态变迁图 

可剥夺性指的是进程能够被其他进程从运行态剔出来,被剥夺的进程会进入就绪队列

第七章 主存管理

分区基本放置策略

页式存储管理

页表(页面映像表)

组成:页号+主存块号

页式地址转换

 逻辑地址转物理地址

越界中断一般指偏移量超越了页表长度

页面置换策略

 OPT(最佳置换算法)

        OPT算法是一种理想化的页面置换算法,可以作为其他算法的性能上限进行比较。一般会将不再被使用或者长期不会被使用的页面替换出去

FIFO(先进先出算法)

选择最早进入内存的页面进行置换

LRU(最近最久未使用算法)

选择最长时间未被访问的页面进行置换。它需要维护一个页面访问历史记录,一般通过栈或计数器来实现

在做题时需要使用*号标记下一次即将被替换的页面

段氏系统

段氏地址变换

 段氏地址结构:段号(s)+段内位移(w)

物理地址为基址+段内位移

第八章 IO管理

缓冲技术

 什么叫缓冲?为何引入缓冲技术

缓冲技术是指在数据传输或处理过程中引入缓冲区(即缓冲存储器)以暂时存储数据的一种技术。缓冲区是一块内存区域,用于临时存放数据,以便在数据传输或处理过程中进行调节和优化。

引入缓冲技术的主要目的包括:

1. 平衡数据传输速度:在数据传输过程中,缓冲技术可以平衡数据的生产和消费速度。当数据的生产速度和消费速度不匹配时,缓冲区可以暂时存储多余的数据,以避免数据丢失或传输错误。

2. 提高系统性能:通过缓冲技术,可以减少数据传输过程中的等待时间,从而提高系统整体的数据处理效率和性能。

3. 数据交互的协调:在数据处理过程中,缓冲技术可以协调不同组件之间的数据交互,使数据在不同组件之间的传输更加平滑和高效。

4. 数据预处理:缓冲技术还可以用于对数据进行预处理,例如对输入数据进行缓存和排序,以提高数据处理的效率和质量。

总的来说,引入缓冲技术的目的是为了优化数据传输和处理过程,提高系统的性能和效率。缓冲技术在各种计算机系统、通信系统、存储系统等领域都得到了广泛的应用。

------ChatGPT------

 什么是设备独立性?引入该技术的好处

设备独立性是指程序与具体的物理设备无关,可以在不同的设备上运行而无需进行修改的特性。引入设备独立性的技术可以带来以下好处:

1. 跨平台兼容性:设备独立性使得程序可以在不同的硬件平台上运行,而无需对程序进行修改。这样可以提高软件的可移植性,使得软件能够更容易地在不同的操作系统和设备上使用。

2. 硬件抽象化:设备独立性技术可以将硬件的细节隐藏起来,使得程序开发者无需关心特定硬件的操作细节,从而更加专注于软件的开发和功能实现。

3. 维护和更新的便利性:由于设备独立性技术使得程序与具体硬件无关,因此在硬件更新或更换时,无需对软件进行大规模的修改,从而降低了维护和更新的成本和风险。

4. 提高开发效率:设备独立性可以使得开发人员更容易地编写和测试程序,因为不需要针对不同的设备进行特定的编码和测试。

总的来说,引入设备独立性技术可以提高软件的可移植性、可维护性和开发效率,使得软件能够更容易地适应不同的硬件环境,从而更好地满足用户和市场的需求。

------ChatGPT------

什么是独占设备?对独占设备如何分配

独占设备是指在一段时间内只能被一个进程或任务所占用的设备。这意味着当一个进程正在使用独占设备时,其他进程无法同时访问或使用该设备。典型的独占设备包括打印机、磁带机、光盘刻录机等。

对独占设备的分配通常依赖于操作系统或者资源管理系统进行协调和调度。常用的分配方法包括:

1. 互斥锁(Mutex):操作系统可以使用互斥锁来管理对独占设备的访问。当一个进程占用独占设备时,系统会为该设备加锁,其他进程在尝试访问该设备时会被阻塞,直到设备被释放。

2. 队列调度:操作系统可以维护一个设备访问的队列,按照先进先出(FIFO)或其他调度算法来分配独占设备的使用权。当一个进程释放设备时,系统会从队列中选择下一个等待的进程来获得设备的访问权限。

3. 优先级调度:系统可以根据进程的优先级来分配独占设备的使用权。高优先级的进程可能会优先获得对独占设备的访问权限。

总的来说,对独占设备的分配需要通过合适的调度算法来协调不同进程对设备的访问,以确保设备的合理使用和公平分配。操作系统在这方面扮演着重要的角色,负责管理和调度独占设备的访问。

------ChatGPT------

 什么是共享设备?对共享设备如何分享

共享设备是指可以同时被多个进程或任务访问和使用的设备。与独占设备不同,共享设备允许多个进程同时对其进行读取或写入操作,而不会相互干扰或产生冲突。典型的共享设备包括硬盘、网络接口、内存等。

对共享设备的分享通常需要考虑以下几个方面:

1. 互斥访问:尽管共享设备可以同时被多个进程访问,但在进行写入操作时仍然需要保证互斥访问,以免数据混乱或冲突。通常可以使用互斥锁(Mutex)或者信号量(Semaphore)等机制来实现对共享设备的互斥访问。

2. 同步访问:为了保证数据的一致性,对共享设备的访问通常需要进行同步操作。例如,在多个进程对共享文件进行读写时,需要保证在一个进程进行写操作时,其他进程不会进行读或写操作,以免造成数据不一致。

3. 缓冲区管理:对共享设备的访问可能需要使用缓冲区来缓存数据,以提高效率和减少对设备的访问次数。缓冲区管理需要考虑数据的有效性和一致性,以及对缓冲区的互斥访问。

4. 调度策略:对共享设备的访问可能需要考虑不同进程之间的调度策略,以确保公平性和高效性。例如,可以采用优先级调度或者队列调度来管理对共享设备的访问。

总的来说,对共享设备的分享需要考虑数据的一致性、互斥访问、同步访问和调度策略等方面,以确保多个进程能够安全、高效地共享设备。操作系统和应用程序开发者在这方面扮演着重要的角色,需要设计合适的共享设备管理策略来确保共享设备的正常使用。

------ChatGPT------

什么是虚拟设备技术?什么是虚拟设备?如何进行虚拟分配

虚拟设备技术是一种通过软件模拟硬件设备的技术,使得操作系统和应用程序可以使用虚拟设备来进行输入、输出或者其他操作,而无需实际的硬件设备支持。虚拟设备技术广泛应用于虚拟化技术、模拟器、仿真器等领域。

虚拟设备是指在实际硬件设备的基础上,通过软件模拟出来的设备。虚拟设备可以是各种硬件设备,比如虚拟磁盘、虚拟网络接口、虚拟打印机等。通过虚拟设备技术,操作系统和应用程序可以像使用实际硬件设备一样使用虚拟设备,而无需关心设备的具体实现和硬件细节。

虚拟分配是指在系统资源有限的情况下,通过虚拟设备技术将资源进行合理分配和利用。虚拟分配可以包括对虚拟设备的虚拟化分配,也可以包括对实际硬件设备的虚拟化分配。

在进行虚拟分配时,通常需要考虑以下几个方面:

1. 资源调度:对于虚拟设备,操作系统需要合理调度虚拟设备的访问,以确保不同应用程序或进程对虚拟设备的使用不会相互干扰。对于实际硬件设备的虚拟化分配,也需要考虑不同虚拟机或容器对硬件资源的合理使用。

2. 性能隔离:在虚拟分配中,需要考虑不同虚拟设备或虚拟机之间的性能隔离,以确保一个虚拟设备或虚拟机的异常情况不会影响其他虚拟设备或虚拟机的正常运行。

3. 资源共享:在虚拟分配中,可以通过资源共享的方式来提高资源利用率,比如多个虚拟设备共享同一块物理硬盘,或者多个虚拟机共享同一块物理内存。

总的来说,虚拟设备技术和虚拟分配技术可以帮助操作系统和应用程序更好地利用有限的资源,在虚拟化环境中进行资源的合理分配和利用。这对于云计算、虚拟化环境、容器化等技术都具有重要意义。

 ------ChatGPT------

第九章 文件系统 

文件系统功能 

  1. 文件和目录管理:文件系统提供了对文件和目录的创建、删除、复制、移动、重命名等操作,以及对这些文件和目录的组织和管理。

  2. 存储空间管理:文件系统负责对存储设备上的空间进行管理,包括分配、回收和整理空间,以便存储文件和数据。

  3. 文件访问控制:文件系统通过权限管理机制控制用户对文件和目录的访问权限,包括读、写、执行等操作的权限。

  4. 文件元数据管理:文件系统维护文件的元数据信息,如文件的大小、创建时间、修改时间、拥有者等属性信息。

  5. 文件的读写操作:文件系统提供了对文件进行读取和写入的接口,以便应用程序可以对文件进行数据的读写操作。

  6. 文件共享和网络支持:一些文件系统支持文件的共享和网络访问,允许多台计算机通过网络访问和共享文件。

  7. 容错和恢复:文件系统通常具有一定的容错能力,能够在存储介质出现错误或损坏时进行数据的恢复或修复。

  8. 提供文件系统接口:文件系统提供了一系列接口和系统调用,供应用程序和操作系统使用,以便对文件系统进行操作和管理。

  9. ------ChatGPT------

文件物理结构

连续文件

由一组分配在磁盘连续区域的物理块组成

如下,文件A为文件名,3表示其下有3个记录,分别占据100,101,102三个位置

优点是连续存取速度快

串联文件

是按顺序由串联的块组成的,每个物理块的最末一个字(或者第一个字)指向后继物理块的位置(类似链表)

优点:易于更改

但是只适合顺序存取方式,不适合直接存取(跟链表查找元素一样要从头开始找)

索引文件

将逻辑文件分为长度为物理块等长的逻辑块,为每个逻辑块建立与物理块的对照表(文件索引表)

优点:可以随机访问文件的任何一部分

UNIX文件系统的主要结构及实现

索引节点

unix系统将目录项中除了名字以外的信息全部移到另一个数据块中,这类数据块会被放到约定的位置,这类数据块就是索引节点,简称i节点,在目录项中只有名字和对应i节点的编号

文件索引结构 

小型文件(最多8个记录,文件最大为512B)

大型文件(最多7*256个记录,文件最大为7*256*512B)

巨型文件(最多为7*256+256*256个记录,文件最大为(7*256+256*256)*512B)

 system V

(图片来源于网络)

  • 18
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值