《操作系统根据复习提纲-整理(共11页).doc》由会员分享,可在线阅读,更多相关《操作系统根据复习提纲-整理(共11页).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第一章 概述1、操作系统的定义管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户方便而有效地使用计算机提供良好运行环境的最基本的系统软件。2、操作系统两大角色大致的作用管理者:管理计算机各种资源服务者:为程序运行创造环境3、现代计算机系统软件的组成结构(正确分类)(1)系统软件:最靠近硬件的软件层,负责管理和控制计算机硬件并对其作首次扩充和改造。 例:操作系统(2)支撑软件:利用系统所提供的扩展指令集,实现一些实用程序,支持应用软件的开发和运行。 例:编译程序、汇编程序、数据库(3)应用软件:解决用户特定的或不同应用所需要的信息处
2、理问题。 例:财务系统、航空订票、上网浏览、电子商务、科学计算4、怎么理解操作系统是一台“虚拟计算机” *操作系统管理好硬件资源,屏蔽了最底层硬件接口使用上的复杂性,然后向上提供了更容易使用的接口。作为一个程序来讲,当你运行的时候,你并不会直接用到硬件接口,你用到的是操作系统提供的接口。感觉上,程序似乎是运行在操作系统这一台“虚拟计算机”上。5、操作系统的管理资源的三种方法(正确区分)(1)资源复用:解决物理资源数量不足的问题。两种基本方法:空分复用共享(内存、磁盘)和时分复用共享(CPU)(2)资源虚化:解决物理资源数量不足,提高操作系统用户服务的能力和水平。(虚拟打印机)(3)资源抽象:处
3、理系统的复杂性,重点解决资源的易用性。(CPU-进程,磁盘-文件,显示器-窗口,物理计算机-虚拟机 )细化理解:之一:资源复用既然资源不够,那就尽量实现共享空分复用共享: 把资源细分成更小的单位,把这些单位分给各个进程使用典型例子:内存,磁盘时分复用共享:资源本身不能再分,那么可以把使用它的时间细分,把时间片分给各个进程,大家轮流用典型:CPU之二:资源虚化这个技术源于以下的问题:如果大家同时都要使用一种独占设备,怎么办?比如多个用户同时请求打印服务通俗地说,所谓虚化,就是创造出一种虚拟的资源,然后将若干个这种虚拟资源,对应于一种实际的真实资源,进程需要使用真实资源时,只需要使用这种虚拟资源即
4、可,由操作系统来负责协调各个虚拟资源同时对真实资源的访问,进程无需关心竞争问题。之三:资源抽象计算机的外围设备,如磁盘,内存等,都有对外的接口,但很难于直接使用,资源抽象就是为了解决这个问思路:对内封装实现细节,对外提供更方便的接口做法:创建软件来屏蔽硬件资源的物理特性和接口细节,简化对硬件操作、控制和使用,使程序员在编程序时,不需要了解硬件知识,而专心于问题的解决。6、三种基础抽象方法(正确区分)(1)进程抽象:对于进入主存的当前运行的程序在CPU上的状态的一种抽象,包括处理器状态和内存状态(2)虚存抽象:物理内存被抽象成一种数组形式的虚拟主存,给进程造成独占整个主存的假象,由操作系统负责管
5、理虚拟主存到真实物理内存的对应。(3)文件抽象:将磁盘、光盘的存储介质设备上存放的信息抽象为一个逻辑字节流,称为“文件”,用户通过创建、打开、读写、关闭等操作来控制文件,或者控制磁盘等的运行。7、操作系统几大主要功能1、处理器管理 2、存储器管理 3、设备管理4、文件管理 5、网络与通信管理 6、提供用户接口8、三种基本的操作系统类型、他们各自使用于什么地方(1)批处理操作系统 适合处理一些事先安排好步骤,无需人工干预,而执行时间长的工作(计算大型的微分方程)(2)分时操作系统 允许多个用户同时连接到操作系统上,进行交互式访问(以时间片形式分给每个用户的每个进程)(3)实时操作系统 有一些应用
6、场合,操作系统在运行时,需要及时快速地响应来自外界的请求,对外部事件和数据,需要进行快速处理并及时给予回应(飞机自动驾驶系统,导弹自动控制系统,银行业务处理系统等)注:除了以上三种基本的类型外,还可以有下面一些类型:微机操作系统:如DOS,Windows,Linux等网络操作系统:如Unix,NetWare,Windows NT等9、系统调用的概念、作用,特别理解它是内核对外的唯一接口(1)概念:给编程使用的接口(2)作用:内核可以基于权限和规则对资源访问进行裁决,保证系统的安全性 对资源进行抽象,提供一致性接口,避免用户在使用资源时发生错误,且使编程效率提高。 PS:系统调用是应用程序获得操
7、作系统服务的唯一途径11、API、库函数与系统调用系统调用尽管已经对内核服务进行了一定的抽象,但还是很难用,需要对其进一步的包装。 API(Application Program Interface)是一个函数定义,说明如何获得给定的服务。库函数与API的概念差不多,都是提供经过包装的、更好用的接口,来为程序员编写程序提供方便库函数和API中,可以是对系统调用的包装,也可以是对其他非系统调用的函数的包装。第二章 处理器管理1、处理器管理的内容处理器管理的主要任务是对处理器进行分配,并对其进行有效的控制和管理。在现代操作系统中,处理器的分配和运行都是以进程为基本单位的,因而对处理器的管理也可以视
8、为对进程的管理。(程是程序的一次执行)2、理解处理器管理在操作系统中的核心地位(1) 处理器管理是操作系统中最核心的部分,因为它管理的也是计算机中最重要的硬件(2) 处理器管理负责管理、调度和分配处理器,并控制程序的执行。(3) 处理器管理的优劣直接影响系统的性能(4) 操作系统中最重要的是处理器管理(5) 处理器管理中最重要的是处理器调度3、特权指令与非特权指令特权指令:仅供内核使用的指令(启动设备、设置时钟、控制中断屏蔽位、清空主存、建立存储键、加载PSW等敏感性操作)非特权指令:非特权指令,是指可以被应用程序使用的一些指令,当然内核也可以使用 PS:如果应用程序执行特权指令,会导致非法执
9、行而产生保护中断,继而转向操作系统的“用户非法执行特权指令”的异常处理程序进行处理4、处理器状态:核心态、用户态,它们之间的切换,尤其是用户态如何转为核心态核心态(管态):运行在内核上,可以执行所有指令,可以访问所有内存与其他资源,可以改变处理器状态用户态(目态):运行在一般应用程序上,只能执行非特权指令,只能访问属于该进程的内存和其他资源,不能改变处理器状态,除非采用特定的方式它们之间的切换(从用户态到核心态):(1)程序请求操作系统的服务,执行系统调用。(2)程序运行时,产生中断或异常事件,运行程序被中断,转向中断处理程序或异常处理程序工作。PS:通过中断机制发生,是用户态到核心态的仅有途
10、径。5、PSW(程序状态字)里面装了什么(系统不一,内容各异)?PSW用来指示处理器状态,控制指令的执行顺序,并且保留和指示与运行程序有关的各种信息,主要作用是实现程序状态的保护和恢复。每个正在执行的程序都有一个与其当前状态相关的PSW,而每个处理器都设置一个硬件的PSW寄存器,一个程序占用处理器执行时,其PSW将占用硬件PSW寄存器。6、中断的概念在程序执行过程中,遇到急需处理的事件时,暂停中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他执行程序。7、中断的分类(按事件的来源和实现的手段)硬中断:由硬件发给CPU的中断(1) 外中断(中断、异步中断)
11、,来自处理器之外的硬件产生的中断信号(键盘中断,设备中断) 可屏蔽中断 不可屏蔽中断:紧急情况,不可忽略,须立即处理(2) 内中断(异常、同步中断),来自处理器内部的硬件产生的中断。不可屏蔽,一旦出现须立即响应,进行处理 访管中断:由执行系统调用而引起 硬件故障中断:电源失效、协处理器错误、奇偶校验错误等 程序性异常:非法操作、地址越界、页面故障、调试指令等软中断:由软件发给软件的中断(1) 信号:用于内核或进程,对某个进程的中断(2) 软件中断:用于硬中断服务程序对内核的中断8、为何外部中断有些可屏蔽,而异常都不可屏蔽 *有一些中断,是比较紧急的情况,是不可以忽略的,CPU在收到这些中断信号
12、后,必须马上进行处理,否则会引起系统的问题,这些就是不可屏蔽中断。9、异常的几种处理方式 故障(Fault):发生问题处理完毕后,再执行一次原来的指令 陷阱(Trap):执行特定的调试指令时触发,被调试的进程遇到所设置的断点处会暂停等待 终止(Abort):某些错误发生后,无法恢复,不会返回原进程,有时甚至需要重启计算机 编程异常(Programmed Exception):用于实现系统调用总结:故障发生后,处理完毕后将原来引发故障的指令再执行一遍陷阱与编程异常发生后,处理完毕之后,执行原指令的下一条指令终止则不再返回原来的指令。11、中断处理的一般过程是指CPU在正常运行程序时,由于内部/外
13、部事件或由程序预先安排的事件,引起CPU暂时停止正在运行的程序,转到为该内部/外部事件或预先安排的事件服务的程序中去,服务完毕,再返回去继续运行被暂时中断的程序,这个过程称为中断。12、时钟中断及其作用(主要的两大作用)时钟是内核进行调度工作的重要工具,利用定时器能够确保内核可以获得控制权(1)规定时间内,内核可以获得CPU控制权(2)获取时间13、进程的概念,进程包括哪些东西(代码,数据,管理结构)进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位。控制块:存储进程的标志信息,现场信息和控制信息,每一个进程分配一个进程控制块 程序块:组成程序的代码
14、集合数据块:全局数据栈:用来管理函数调用关系的结构(通俗讲:进程就是一个正在执行的程序)14、进程与程序的区别与联系(为什么要引入进程)程序:存放在磁盘上的文件进程:运行着的程序实例,包括代码,数据,信号,栈等多种信息在多道程序设计之下,原来的“程序”概念已经不能用来描述这时候的情况了,程序只是一个静态的概念,而进程是一个动态的概念15、进程的几种状态,它们之间的转换(尤其注意,不存在从阻塞态到运行态的转换)(1)运行态(running):满足运行条件、占;(2)就绪态(ready):满足运行条件、不占有;(3)等待态(wait):不满足运行条件、不占有;为了便于管理,特意加了:;新建态(ne
15、w)和终止态(exit),描述进程刚;挂起态(suspend),指暂时把进程换到磁盘缓;(1)就绪执行;处于就绪状态的进程,当进程调度分配了处理机后,该;(2)执行就绪(1)运行态(running):满足运行条件、占有CPU(2)就绪态(ready):满足运行条件、不占有CPU(等待被调度)(3)等待态(wait):不满足运行条件、不占有CPU,也叫睡眠,阻塞为了便于管理,特意加了:新建态(new)和终止态(exit),描述进程刚创建和结束时候的两种状态挂起态(suspend),指暂时把进程换到磁盘缓冲区内(1) 就绪执行处于就绪状态的进程,当进程调度分配了处理机后,该进程便由就绪状态转变成执
16、行状态。(2) 执行就绪处于执行状态的进程在其执行过程中,因分配给它的一个时间片而不得不让出处理机,于是进程从执行状态转变成就绪状态。(3) 执行阻塞正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。(4) 阻塞就绪处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。16、进程的三种上下文(1) 用户级上下文(user level contex):进程自己的代码、数据、栈等(2) 系统级上下文(system level contex):进程陷入内核后,内核所使用的内存管理信息表、核心栈,也包括进程控制块(3) 上下文(register con
17、tex):各个寄存器当时的信息,用于保护和恢复现场17、进程控制块的概念和作用进程存在的唯一标识内核用来记录和刻画进程状态的数据结构管理和调度进程的依据18、 进程切换的过程*19、线程的概念线程是进程中能够并发执行的实体,是进程的组成部分,也是调度和分派的基本单位。 传统的进程,都是运行在同一个处理器上,在同一个进程内,是串行的。PS:线程只有三态(运行、就绪、等待)由于线程不是资源的拥有单位,挂起状态对于线程是没有意义的。20、为什么要引入线程?引入了线程,是为了减少程序并发执行时所付出的时空开销,使得并发力度更细、并发性更好。(实质是把CPU的分配权,进行进一步的细分)对外:就可以把进程
18、的不同部分放到不同的处理器上对内:可以在一个功能暂时不执行时,转而去执行其他的功能21、线程与进程的区别与联系线程与进程的主要区别,就是进程有自己的独立空间,线程没有自己完全独立的空间。 各个线程共享进程的代码区和全局数据区,各个线程执行的代码区的不同代码,访问全局数据的不同数据。22、为什么线程没有挂起态?由于线程不是资源的拥有单位,挂起状态对于线程是没有意义的。(线程的挂起和激活,是随着宿主进程挂起和激活)23、什么叫处理器调度(原因:主存、处理器与作业、进程之间,永远是供不应求的关系)按照何种原则挑选作业进入主存运行,如何把进行分配24、三种调度层次,哪种是必需的?高级调度(作业调度)中
19、级调度(进程调度)低级调度(线程调度) 必须的,但中级和高级调度,则可有可无。25、衡量一个调度算法好坏的标准 资源利用率 吞吐量 公平性 响应时间 周转时间一言蔽之,先公平,后效率26、会计算调度的“平均周转时间”(实际操作)P12227、几种典型的调度算法:先来先服务,短作业优先,时间片轮转,优先级调度,彩票调度(实际操作)P126132第三章 同步、通信与死锁0、并发管理 任何一个时间点有多个进程同时在运行1、并行情况下会出现的问题、原因 *2、同步的目的(书上,课件均无结果,复习课上听到的作为依据)(1)使得并行情况下结果依然保持确定性(2)限制越少越好3、Peterson算法Dekk
20、er算法的演化)一种纯软件算法,通过两个变量来实现互斥访问临界区。是免锁的基本算法之一,这个算法设计得很巧妙,核心就是三个标志位是怎样控制两个方法对临界区的访问的。4、信号量的定义,取值含义,PV操作信号量:表示物理资源的实体,是一个与队列有关的整型变量。取值:用一个结构型数据结构表示,有两个分量(1)信号量的值 (2)信号量队列的指针 PV操作:P(s):将信号量value值减1,若结果小于0,则执行P操作的进程被阻塞,排入与s信号量有关的list所指队列中;若结果大于等于0,则执行P操作的进程继续执行。V(s):将信号量value值加1,若结果不大于0,则执行V操作的进程从信号量s有关的l
21、ist所指队列中释放一个进程,使其转换为就绪态,自己则继续执行;若结果大于0,则执行V操作的进程继续执行。另种说法:信号量:强大的同步原语,既可以用于进程同步,也可以用于进程通信 信号量sem为一个整型变量,对它可以有两个操作:增加(V)、减少(P)P操作(down):sem - 1if ( sem 0 )睡眠V操作(up):sem + 1if ( sem = 0 )唤醒5、PV操作实现生产者消费者问题P179int B;semaphore full;empty=1;full=0;cobeginprocess producer() process comsumer()while (true)
22、while (true)produce(); P(full);P(empty); take() from B;Append() to B; V(empty);V(full); consum(); 6、唤醒睡眠机制实现生产者消费者问题P188189 ?如果生产者发现缓冲区满了,则唤醒消费者,自己睡眠如果消费者发现缓冲区空了,则唤醒生产者,自己睡眠7、几种进程间的通信机制(1)信号通信机制(2)管道通信机制(3)共享主存通信机制(4)信息传递机制(5)信号量机制8、死锁的概念如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面称为死锁。9、死锁产生的四
23、个必要条件、破坏死锁方法的原则(1)互斥条件 (2)占有和等待 (3)不剥夺条件 (4)循环等待这四个条件是死锁发生的必要条件,只要其中有一个不成立,则不会发生死锁解决方法: 死锁防止-分别破坏四个条件之一 死锁避免-可以允许前三个条件发生,但不允许第四个条件发生 死锁检测与恢复-定期检测,发生死锁后采取措施 不采取任何措施破坏条件(1):不大现实的做法,因为资源的独占性通常是不可改变的破坏条件(2):进程运行前,只有资源全部申请到了,才能运行,运行过程中不能再申请新的资源破坏条件(3):当进程去申请新的资源时,必须释放原来占用的资源,重新申请 破坏条件(4):建立一种策略,对资源进行分类,只
24、能按照某种规则进行资源申请 结束所有进程,重启操作系统撤销处于死锁状态的所有进程逐个撤销处于死锁状态的进程,回收其占用的资源,直到死锁解除逐个剥夺处于死锁状态进程占用的资源,直到死锁解除回滚到死锁发生前的状态10、银行家算法的思想系统中的所有进程放入进程集合,在安全状态下系统收到进程的资源请求后,先把资源试探性地分配给它。现在,系统将剩下的可用资源和进程集合中其他进程还需要的资源数作比较,找出剩余资源能满足的最大需求量的进程,从而保证进程运行完毕归还全部资源。这时,把这个进程从进程集合中删除,归还其所占用的所有资源,系统的剩余资源则更多,反复执行上述步骤。最后检查进程集合,若为空则表明本次申请
25、可行,系统处于安全状态,可以真正实施本次分配;否则,只要进程集合非空,系统便处于不安全状态,本次资源分配暂不实施,让申请资源的进程等待。(约束条件 每个客户必须预先说明自己所要求的最大资金量。每个客户每次提出部分资金量申请和获得分配。如果银行家满足客户对资金的最大需求量,那么客户在资金运作后,应在有限时间内全部归还银行。)11、给定一个分配方案,判断是否会产生死锁(实际操作)第四章 存储管理1、编译、链接和加载都干了些什么 *编译、链接与加载编译器完成的是代码的翻译,在链接之前,它不确定具体的地址,而是把需要重定位地址的地方写到符号表里。连接器把各个“可重定位目标文件”组合成一个可执行文件,并
26、确定具体的地址。 加载器根据文件中的地址,以及具体的内存管理方案,把程序加载到特定的位置。编译:将源程序翻译为机器指令,生成目标文件,这些目标文件并不能直接执行。链接:将多个目标文件模块装配成一个完整的程序,它解析符号表,把对符合的引用转换成具体的数值地址。加载:执行程序之前,当获得了一块实际的内存之后,加载器根据该内存的首地址,再次修改和调整可执行文件中的地址,完成地址的最后绑定。2、系统的存储器层次现代的存储器,已经不仅仅指内存了,它包括了寄存器,缓存,内存,磁盘这样一种层次结构特点:(从下往上)访问速度越来越快,容量越来越少,价格越来越贵金字塔型(从下往上)磁带,磁盘,主存储器,高速缓存
27、,3、几种不太主流的内存管理方法:固定分区、可变分;(1)固定分区:主存空间被划分成固定数目、大小不;各作业并发执行;执行方法:根据当天的作业情况,进行分区;建立“主;(2)可变分区:根据作业的大小选择分区,但分区的;执行方法:每当来一个新进程,从可用内存中划分出一;适的区域,则等待别的进程释放内存;(3)伙伴系统:任何尺寸为2i的空闲块,都可以;执行方法:3、几种不太主流的内存管理方法:固定分区、可变分区、伙伴系统(考的不多)(1)固定分区:主存空间被划分成固定数目、大小不等的分区,每个分区可执行一个作业,各作业并发执行。执行方法:根据当天的作业情况,进行分区;建立“主存分配表”;根据待运行
28、作业的内存需求,选择合适的分区,载入运行。(2)可变分区:根据作业的大小选择分区,但分区的划分是根据作业和空余内存来动态分配的。执行方法:每当来一个新进程,从可用内存中划分出一块连续的区域,供进程使用,没有合适的区域,则等待别的进程释放内存。(3)伙伴系统:任何尺寸为2i的空闲块,都可以分解成两个2(i-1)的块,反过来也可以把他们合并起来,这两个块,成为伙伴。执行方法:建立一个空闲数组freei,i=0,N,每个元素表示一个链表,该链表中的元素是大小为2i的分配单元。5、分页系统牵涉到哪些东西(涉及实际操作)(1)页面 (2)页表 (3)页表基址寄存器 (4)MMU6、一级页表、二级页表中虚
29、拟地址到物理地址的映射(联系5,涉及实际操作)7、虚拟空间的大小(实际操作)8、页表项里主要记录了什么记录了物理页面的内存起始地址,以及其他的关于该物理页面的信息9、在Intel处理器下,虚拟地址的构成(一级页表、二级页表)(实际操作)11、段式管理的概念段式管理:一个进程分成几个部分,每一个部分占据一个区(逻辑) 段式管理最大的一个特点:每个段都是一个独立的虚拟地址空间。(这里的“段”,指的是逻辑段,它们也要通过某种映射机制,把逻辑段,映射为物理内存的专门区域)12、段式管理能解决页式管理哪两个问题 *共享内存进程所需内存超过虚拟内存13、段式管理的虚拟空间大小(实际操作)建议:段式与页式联
30、系着记忆长度:页式(固定) 段式(可变)虚拟空间大小:页式(透明,相对固定) 段式(不透明,不定)。 。 。(每一个段长都根据需要,各有长短,但实际上,每一个段最长可以有最大虚拟空间地址 因此采用段式管理,每个进程的虚拟地址空间,可以远大于4G(以32位机器为例))14、段式管理下,虚拟地址的组成(实际操作)(段寄存器、段选择符在实模式下,CS,DS,ES,SS用来存放一个段的基地址在保护模式下,它们存放了新的东西段选择符,里面存放了段表内偏移因为怕不够,Intel又增加了两个段寄存器FS,GS段表、段表项它们的关系跟页表、页表项的关系一样,段表里面放了很多段表项,Intel里叫“段描述符”段
31、描述符里存放了,该逻辑段,会被映射到的物理段的基地址段选择符里存放了应该访问第几个段描述符,即上面图中的“段号”段选择符结构(段表内偏移)段描述符结构(段表项)段表基址寄存器同CR3一样,每一个进程,都有一个段表,他保存的是该进程的段表的基地址)15、根据给定的虚拟地址,算出物理地址(简单的方式)16、虚拟存储虚拟存储器:在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理主存容量大得多的、可寻址的“主存储器”。实际上,虚拟存储器对用户隐蔽可用物理存储器的容量和操作细节,虚拟存储器的容量与物理主存大小无关,而受限于计算机的地址结构和可用的磁盘容量,
32、如Intel x86的地址线是32位,则程序可寻址范围是4GB,Windows 和Linux都为应用进程提供一个4GB的逻辑主存。17、局部性的概念,有什么用*局部性:某存储单元被引用之后,程序倾向于过短时间再次引用该单元(时间局部性),或者倾向于过一段时间引用该单元附近的存储单元(空间局部性)局部性的意义:通俗地说,局部性就是指一块存储单元在某一时刻被引用之后,它周围的一部分,会被引用一段时间,那么,把这部分放入内存,就可以保证程序的运行,即部分装入另外,可以把这一部分需要被引用一段时间的存储单元,放到上一级的缓存中,以加快访问速度18、在现代存储器层次中,当处理器发出一个内存地址调用时,会
33、如何来寻找 *19、缺页中断率的计算公式P264第六章 文件管理1、文件系统是对磁盘使用的抽象(1)文件系统的功能:让人可以方便地存取数据(2)特点:可以看做是对使用磁盘的抽象,使人们可以不用去管磁盘具体是如何来存储,读取数据屏蔽了底层的磁盘使用上面的繁琐细节,而用一种简单的逻辑结构呈现给用户2、文件系统的设计目标让用户可以仅凭文件名来操作文件3、文件系统包括两大基本要素:文件、目录文件:保存的信息的组织形式目录:保存文件的有关信息文件系统就是对文件和目录的组织和操作4、文件的概念,文件名、文件类型、文件属性等文件:由文件名所标识的一组信息的集合(1)文件名:文件主要的存取根据,文件系统的设计
34、目标就是能够按照文件名来操作文件。各个系统对文件名有不一样的安排,比如有些系统有大小写要求,有些对文件名长度有要求,有些系统凭后缀名来识别文件类型,等等(2)文件类型:以Linux为例,一般有以下几种文件类型:普通文件、目录文件、块设备文件,字符设备文件、管道文件、套接字文件等,他们分别有不同的作用(3)文件属性:比如文件的拥有者、组拥有者、文件权限、文件的时间(创建时间、最后访问时间、最后修改时间等)、上锁标志、文件口令等5、文件内容三种访问方式:顺序、随机、索引物理存储分为三种方式:连续(对应随机)、链式(对应顺序)、索引(对应索引)(1)顺序访问:早期的存储介质,如磁带,只能进行顺序访问
35、,即先访问了前面的内容,才能访问之后的内容(2)随机访问:像磁盘,光盘这样的介质,就可以根据位置,直接跳到所在的位置,如果文件系统是在内存中的话,更是可以实现随机访问(3)索引访问:为加快文件的存取,可以建立索引,通过索引来存取文件,这是数据库文件常用的方式6、 目录、目录项的概念,它们里面各存放了什么目录概念:目录就是存放了文件的信息,我们首先通过目录,然后才能找到文件 存放内容:目录中存放了文件,以及其他目录,从而组成了一个树形结构PS:每个目录都有至少有两个特殊的文件:. 指当前目录. 指上级目录目录项:文件信息,有助于找文件7、从抽象观点看,磁盘的组成若从抽象观点看,整个磁盘可以看做一
36、个连续的大的数组(1)主引导记录(Main Boot Record):位于磁盘的最前面的一个扇区,512字节(2)主引导记录中分成三部分:主引导程序,占446字节 分区表,占64字节,每个表项占16字节 魔数,0x55AA(3)引导标记:如果此标记错误,将无法启动(4)分区表,记录之后的磁盘部分分成哪些分区,由于只有4个表项,因此只能有四个分区。为了解决这个问题,引入了“扩展分区”和“逻辑分区”的概念(5)引导程序:系统刚加电时,BIOS中的程序会读取这里面的程序,来进行最初的引导8、以使用inode的文件系统为例,了解一个这样的文件系统的磁盘组成(超级块、inode区,数据区)9、FAT文件
37、系统如何来存文件的内容放在哪文件分配表FAT实际上是一个虚拟的概念,因为硬盘不可能让我们看到它画个表格出来。之所以引入这个概念,是为了提高效率,更好的来管理和使用硬盘。文件分配表要理解起来也不难。我们可以把硬盘看作一块地,这时有张三、李四,王五三个人要分这块地,分别要在这块地上种上黄豆,小麦,水稻,那么怎么样既快又准的分配土地呢?这时你可能会想到我们画张图,然后再按图分,不错,就是这样的。硬盘上要存储一个文件时,也是要预先写一个FAT,这个FAT上有这个文件的位置,起始大小,结束大小等信息。这样硬盘的磁头在寻找这个文件时,只要读出FAT中的相关信息就可以很快定位到这个文件了,大大提高了效率。不
38、知道通过以上比较形象的比喻,你是否明白了。文件管理系统通过FAT来管理文件的方法与硬盘上的文件分配表类似。(PPT里没有 百度的答案 )11、FAT的主要缺陷是什么整表放入内存,占用过大内存13、如何通过给定的路径字符串,找到对应的文件结合例子,具体分析以/usr/bin/mbox为例,说明如何来找到这个文件首先,根目录/的i-node位于分区开始后的固定位置,所以很容易找到/的i-node,从而得到/目录项里的文件有哪些,然后得到/usr这个目录项的磁盘位置查看/usr的目录项,找出其i-node号,然后在i-node表中根据i-node号,找到/usr对应的i-node,查看其内容,找到/
39、usr/bin目录项的磁盘地址依次这么寻找,就能找到mbox这个文件的每一部分具体的磁盘地址14、为何要引入虚拟文件系统现存许多种不同的文件系统,用户可能需要记住不同文件系统的操作命令和方法 在网络环境中,常需要从一个文件系统下去访问另一个未知的文件系统由等等需求,产生了虚拟文件系统(Virtual File system Switch,VFS)15、虚拟文件系统的大致实现虚拟文件系统是内核的一个子系统,提供一个通用文件系统的模型,包括常用的文件系统功能,处理与底层设备相关的细节,为应用程序提供标准接口,即文件系统API。 具体的文件系统尽管可能有不同的操作命令,但通过VFS,都呈献给用户统一的接口。专心-专注-专业