操作系统-读书笔记(共22页).doc

上传人:飞****2 文档编号:14425505 上传时间:2022-05-04 格式:DOC 页数:22 大小:211KB
返回 下载 相关 举报
操作系统-读书笔记(共22页).doc_第1页
第1页 / 共22页
操作系统-读书笔记(共22页).doc_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《操作系统-读书笔记(共22页).doc》由会员分享,可在线阅读,更多相关《操作系统-读书笔记(共22页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上读 书 笔 记 操作系统专心-专注-专业操作系统目录1 操作系统发展史2 进程和线程3 内存管理4 文件系统(Linux)5 设备管理1 操作系统发展史1.1引言 操作系统诞生距今已经有了几十年的时间,它是计算机资源的管理者。最初的人们是没有操作系统来对计算机加以控制的,一直都处于人工管理方式来对计算机进行操作和管理,人机交互之间出现了人工手动的低速和计算机的高速处理形成了尖锐的矛盾,资源利用率非常的低,从而导致计算机的效率十分低下。为了解决人工干预和CPU速度不匹配的矛盾,提高计算机的使用效率,后来出现了世界上第一个的操作系统脱机输入/输出,用户先将卡片输入到纸带机

2、,然后通过卫星机的处理,将纸带的数据高速写入磁带,主机运行时再将磁带上的数据高速读入内存,输出也可以这样中转,由于数据的读取和写入是脱离主机运行的,所以这样的处理方式称为脱机输入/输出方式。虽然脱机输入输出方式进一步提高了计算机的运行效率,但是在计算机工作过程中还是需要人工进行干预,后来就出现了批处理系统。在批处理系统中,操作员将一批作业输入进磁带中,然后运行第一个程序,当第一个作业完成后自动读入下一个作业,直至所有作业全部完成。由于该类系统的内存中只能保持一个作业运行,所以这类系统又称为单通道批处理系统。到了20世纪60年代出现了多道批处理系统能够做到计算机内存中的作业并发执行。直到后来出现

3、的分时操作系统能够让多个用户共同使用一个操作系统可以随时和计算机进行交互,并且让各个用户都感受不到其他用户的存在。随着计算机技术的发展,越来越多的用户希望操作系统能够实时地对用户进行反馈,在1980年,为了让计算机能够实时地反馈,后来又出现了实时操作系统,对冶炼、发电、炼油、化工、机械加工等的自动控制起到了重要作用。1.2 无操作系统1)手工 特点:(1)用户独占全机(2)CPU等待人工操作 问题:(1)计算机处理能力低(2)计算机工作效率低 2)脱机输入/输出方式 特点:数据的输入输出是在脱离主机的控制下完成的,通常是在外围机的控制下完成的 优点:(1)减少了CPU的空闲时间,缓和了人机矛盾

4、(2)提高了I/O速度1.3 单道批处理系统特点:利用磁带将若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序自动依次处理。 批:供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用相同的系统软件。 批作业组成:用户程序、数据、作业说明书(作业控制语言) 特征:(1)自动性顺利情况下,磁带上的作业能自动地逐个依次进行(2)顺序性先调入内存地作业先完成(3)单道性内存中仅有一道程序运行,当该程序完成或发生异常时,才调入其后继程序进入内存执行。1.4多道批处理系统背景:60年代硬件两重大发展:中断技术和通道技术1.4.1中断技术中断处理过程:中断请求,中断响应,中断点(暂停当前

5、任务并保存现场),中断处理例程,中断返回(恢复中断点地现场并继续原有任务)。 中断分类:硬件中断,包括硬件故障中断、I/O中断和外部中断;软件中断,包括程序中断(例如地址越界虚存管理中缺页等)和访管中断(由访管指令产生,程序员使用访管指令向操作系统请求服务,产生一个中断事件(自愿中断),将操作系统转换为核心态)。1.4.2通道(又称I/O处理机)实际上是一台功能单一、结构简单的I/O处理机,它单独与CPU,并直接控制外部设备,与内存进行数据传输。 有专用的I/O处理器,可与CPU并行工作。具有自己的指令,可编程实现各种复杂的I/O处理。多道程序设计原理:在计算机内存中同时存放几道相互独立的程序

6、,它们在管理程序的控制下相互穿插地运行,共享CPU和外设等资源。 优点:(1)资源利用率高CPU和内存(2)系统吞吐量大吞吐量指单位时间内处理作业的个数 缺点:(1)用户交互性差作业完成或出错时,才与用户交互(2)作业平均周转时间长短作业的周转时间明显增长 。核心技术:(1)作业调度作业的现场保护和恢复。(2) 资源共享-资源的竞争与同步。(3) 内存使用由CPU执行的程序提供足够的内存。(4) 内存保护系统存储区和各应用程序存储区不可冲突,即存储保护。(5)文件非顺序存放、随机存取。 出现的问题:(1)处理机管理问题多道程序之间如何分配被它们共享的处理机。(2) 内存管理问题为每道程序分配必

7、要的内存空间。(3) I/O设备管理问题多种I/O设备供多道程序所共享。(4) 文件管理问题系统中大量的程序和数据一文件形式存在,如何组织。(5)作业管理问题调度方式:CPU有两种作业调度的方式,非抢占方式和抢占方式。1.4 分时系统1)用户需求:(1)人机交互(2)共享主机(3)方便上机 2)实现方法:(1)及时接收系统配置多路卡,与各终端连结,每个终端配置一个缓冲区,暂时接受各用户键入的命令和数据(2)及时处理每个用户键入命令后,能控制自己作业的运行,并及时得到处理。各作业都必须在内存中,在响应周期内都能得到执行。方法:将响应周期分为很短的时间片,每个作业占用一个时间片轮流执行,不允许某个

8、作业长期占用处理机。 3)特点:(1)多路性多用户同时操作使用计算机(2)独占性各终端用户感觉到自己独占了计算机(3)及时性用户请求在很短时间内响应(4)交互性 4)调进和调出(实现分时系统的重要方式):(1)主存后援存储器方式内存只存放一个当前执行作业,其他外存上(2)多流调入调出方式主存中同时存在一个当前执行作业和多个后备作业 5)响应时间:用户发出一条值另到系统处理完这条指令并做出回答所需要的时间。响应时间T与时间片q和用户个数n之间的关系为T=nq。1.5 实时系统主要用于过程控制、事务处理等有实时要求的领域,一般有特殊用途。 分类:(1)实时控制宇航自动控制、生产过程控制(2)实时信

9、息处理系统飞机订票 、股票交易 特征:(1)实时时钟管理(2)中断管理(3)系统容错管理(4)多重任务管理(5)系统生成能力1.6 网络操作系统在通常操作系统的基础上提供了网络通信和网络服务功能的操作系统。 网络的组成:(1)主机(HOST)组成网络的独立自主的计算机系统 (2)子网在主机之间传递信息,提供通信服务(3)协议 功能:(1)高效可靠的网络通信 (2)对网络中共享资源有效的管理(3)提供电子邮件文件传输等服务 (4)网络安全管理 (5)提供互操作的能力1.7 分布式操作系统(1)以计算机网络为基础的计算机系统,包含多台处理机,每台处理机完成一部分功能。 (2)功能:进程迁移、分布式

10、同步、任务分配、资源管理。 (3)特征:资源共享透明、自治性、高可靠性。1.8 多处理机系统特点:提高系统的吞吐量、提高系统可靠性 。类型:(1)紧密耦合各处理机之间通过快速总线或开关阵列相连,共享内存,整体系统由一个统一的OS管理(一个OS核心)(2)松散耦合各处理机带有各自的存储器、I/O设备和操作系统,通过通道或通信线路相连,每个处理机独立运行OS(3)非对称式多处理主从模式,主处理器只有一个,运行OS,管理整个系统的资源,为从处理器分配任务;从处理器可有多个,执行应用程序或I/O处理(4)对称式多处理OS交替在各个处理器上执行,任务负载较为均衡,性能调节容易。1.9嵌入式操作系统在各种

11、设备、装置或系统中,完成特定功能的软硬件系统。应用有掌上电脑、工业设备、军事设备等。2 进程和线程2.1进程和线程的定义进程:进程是操作系统中定义拥有资源和调度基本单位线程:线程是操作系统中调度的基本单位,线程不能拥有资源,可以看成轻量级的线程。2.2 操作系统中对进程和线程的描述2.2.1进程和线程实体描述进程和线程均是OS中的运行实体,都是调度和分派的基本单位。OS定义了PCB(Proccess control block,进程控制块)描述进程实体。OS定义TCP(Thread control block,线程控制块)描述线程实体OS在创建进程/线程的时候必须创建对应的PCB以及TCP。P

12、CB和TCP中存储的内容高低相似,本文仅描述PCB的具体内容,TCP的相关的内容可类比。PCB的主要内容:(1)进程标识符,主要用于操作系统以及用户定位不同的进程,是进程的唯一标识。(2)处理机状态,在发生进程切换时保存当前处理器寄存器相关信息。处理机状态信息也用于进程调度时恢复现场信息。(3)进程调度信息,主要保存服务进程调度的相同统计值。比如当前进程状态,进程优先级,已执行CPU时间,已等待CPU时间等信息,进程阻塞原因等信息内容。(4)进程控制信息:主要保存进程执行相关的信息,比如:(1)程序和数据的内存地址(2) 同步和通信机制(3)进程和线程运行所需要的资源清单。2.2.2 进程和线

13、程的状态描述创建状态:进程刚创建的时候的状态,此时操作系统刚给线程分配完PCB等空间。就绪状态:进程创建完毕后,获取了除CPU外,需要的所有资源。执行状态:处于就绪状态的进程获取了CPU时间片后切换至执行状态。当进程所获时间片消耗完毕后,将切换至就绪状态等待下一次时间片分配。阻塞状态:处于执行状态的进程,发生了某种使进程暂停执行的事件,放弃CPU的执行时间,进入阻塞状态。比如竞争临界资源,等待IO等事件。位于阻塞状态的进程,获取到等待资源后,将进入就绪状态等待CPU分配时间片。2.3 进程的多层调度从硬盘上的可执行文件摇身转为内存中的执行进程涉及到如下两层调度。(1)作业调度:作业调度是将硬盘

14、上执行文件调度到内存中成为进程的过程,经历过该调度的进程处于就绪状态等待分配CPU资源。当有多个作业请求调度时,有许多经典算法可以采用。先来先服务算法:按照作业请求调度的先后顺序执行调度。优先级调度算法:每个作业均存在优先级,按照作业的的优先级进行调度。短作业有限算法:有限调度执行时间比较短的作业。(2)进程调度:进程调度是指在就绪队列中排队的就绪进程获取CPU时间片资源的过程。进程调度算法是需要介绍的重点,从较大的方向上分,其主要包括两类:基于优先权调度的算法,该调度算法主要区分以下四种概念。静态优先权调度:静态优先权是指,该进程所分配的优先权在运行的过程中是不可变化的,从始至终就是初始化的

15、大小。动态优先权调度:进程调度的优先权可以依据运行时的情况动态改变。比如提高排队时间过长的进程优先权。这样能避免饥饿进程。抢占式调度:当前执行进程的优先权若小于排队进程进程的优先权,当前执行进程将让出CPU时间,退出执行。非抢占式调度:当前进程一旦获取了CPU执行时间后,便不会因为优先权的原因让出CPU时间。除非主动结束执行或者遇见异常情况。基于时间片轮转调度算法基于时间片的调度算法将就绪进程排列成一个队列,为队列中每个就绪进程分配指定的时间片资源。若在规定的时间片内进程未执行完毕,那么该进程将再次加入队列的尾部等待下一次时间片资源分配。上述只是基于时间片的调度算法的一般思想,在实际工业场景下

16、过于粗糙。下面介绍一种较为常用的多级反馈队列调度算法具有更大的实用价值。2.4 进程/线程之间的同步机制进程与进程之间的同步,线程和线程之间的同步基本一致。本文以线程和线程之间的同步为例子介绍同步概念。线程同步的概念: 线程之间并不是孤立的执行,而是有序协作的向前推进执行。经典的进程同步问题:1.消费者与生产者问题消费者线程和生产者线程同时访问一个总大小为N的临界资源池。当资源池中资源数目为N时,生产者线程不能往其中添加数据,此时临界资源池记为满状态。当资源池中资源数目为0时,消费者线程不能从资源池中拿去数据,此时临界资源池记为空状态。在这样一个场景下,需要实现三个点:(1)消费者线程和生产者

17、线程临界资源池的访问是互斥的。(2)临界资源池在满状态时,生产者线程放入数据操作必须阻塞,等待资源池非满状态时才能继续放入(3)临界资源池空状态时,消费者线程取数据的操作必须阻塞,等待资源池非空状态时才能继续取出。解决方法:互斥锁以及条件变量2.读者-写者问题对于一个文件,存在多个线程同时读取以及多个线程同时写入。在这种条件下要求对文件的访问不能混乱。那么要求读线程和写线程必须满足如下要求:读线程和写线程之间对文件的访问是互斥的写线程之间对文件的访问是互斥的读线程之间对文件的访问不需要互斥解决方法: 读写锁2.5 如何避免进程/线程之间的死锁本节从线程的角度来介绍死锁。线程死锁是线程同步不当导

18、致的问题。本节将从线程死锁原因,线程死锁的必要条件,以及规避线程死锁的三个方面来分析。1.线程死锁产生的原因以哲学家就餐问题,来研究线程死锁原因竞争共享资源:哲学家所需要的筷子就是共享资源。倘若哲学家们存在一双私有的筷子那么变不存在死锁问题。进程间推进顺序不合理: 竞争共享资源并不一会导致死锁。在哲学家就餐问题中,如果能够避免同时拿起同一侧筷子这种运行顺序。那么不会发生死锁。尽管进程之间存在共享资源竞争,但是只要推进顺序合理便能避免死锁。2.线程死锁产生的必要条件l 死锁发生具有四个必备条件,当能够同时满足这四个条件时,便有可能发生死锁。l 互斥条件,线程对资源的获取具有排他性,在获取资源的同

19、时独占资源,不允许其他线程访问共享资源。l 请求和保持条件,线程在获取某个资源之后,若再次申请或许新的资源但被阻塞时,并不释放已占有的资源。l 不剥夺条件,线程获取资源之后,不会因为其他线程竞争而放弃资源。只能等到使用完毕或者主动释放。l 环路条件,当线程之间发生死锁的时候,必然存在一个线程-资源之间的环形链路。比如线程P1等到线程P2占用的某个资源,线程P2等待线程P1占用的谋和资源。3. 避免死锁的方法l 预防死锁:通过破坏死锁产生的必要条件,在预防死锁的发生l 避免死锁:在对线程分配资源的时候,计算该次资源分配之后线程是否处于安全状态。处于安全状态则分配资源,否则并不分配资源。避免死锁具

20、有代表性的算法便是银行家算法。这是一种非常经典的预防死锁的方法l 检测和接触死锁:该种方法在进程竞争资源的时候,并不任何预防或者避免死锁的方法。它仅仅提供对死锁的发现机制,在产生死锁之后,通过杀死死锁线程达到接触死锁的目的。2.6 线程/进程之间的通信机制进程/线程之间的同步其实是一种通信机制,但是同步机制只是一种小规模的数据通信。此处介绍的通信机制是应对较大规模的数据传输。此处以进程之间的通信机制为例介绍l 共享存储系统共享存储系统比较容易理解,就是多个进程拥有共同存储空间,通过修改/读取同一块区域达到通信目的。l 消息传递系统消息传递系统是指进程之间通过格式化数据报文交换信息,最容易理解的

21、便是计算机网络数据报文交换。位于不同计算机上应用的通信也是进程通信的一种场景。l 管道通信所谓管道是指用于连接一个读进程和一个写进程以实现他们之间的通信的一个文件。向管道(共享文件)输入的发送进程,以字符流的形式输入大量数据到管道中,从管道接收输出的接收进程,将读取大量数据。3 内存管理3.1 内存管理的概念内存管理的功能有:(1)内存空间的分配与回收:由操作系统完成主存储器空间的分配和管理。(2)地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址。(3)内存空间的扩充:利用虚拟存储技术或自动覆盖技术,从逻

22、辑上扩充内存。(4)存储保护:保证各道作业在各自的存储空间内运行,互不干扰。3.2 内存和地址的分配方式3.2.1 逻辑地址空间与物理地址空间编译后,每个模块都是从0号单元开始编址,称为该目标模块的相对地址(或逻辑地址)。当链接程序将各个模块链接成一个完整的可执行目标程序时,链接程序顺序依次按各个模块的相对地址构成统一的从0号单元开始编址的逻辑地址空间。用户程序和程序员只需知道逻辑地址,而内存管理的具体机制则是完全透明的,它们只有系统编程人员才会涉及。不同进程可以有相同的逻辑地址,因为这些相同的逻辑地址可以映射到主存的不同位置。物理地址空间是指内存中物理单元的集合,它是地址转换的最终地址,进程

23、在运行时执行指令和访问数据最后都要通过物理地址从主存中存取。当装入程序将可执行代码装入内存时,必须通过地址转换将逻辑地址转换成物理地址,这个过程称为地址重定位。3.2.2 内存保护内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。内存保护可采取两种方法:(1)在CPU中设置一对上、下限寄存器,存放用户作业在主存中的下限和上限地址,每当CPU要访问一个地址时,分别和两个寄存器的值相比,判断有无越界。(2)通过采用重定位寄存器(或基址寄存器)和界地址寄存器(又称限长寄存器)来实现这种保护。重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址的最大值。每个逻辑

24、地址必须小于界地址寄存器;内存管理机构动态地将逻辑地址与界地址寄存器进行比较,如果未发生地址越界,则加上重定位寄存器的值后映射成物理地址,再送交内存单元。当CPU调度程序选择进程执行时,派遣程序会初始化重定位寄存器和界址寄存器。每一个逻辑地址都需要与这两个寄存器进行核对,以保证操作系统和其他用户程序及数据不被该进程的运行所影响。实现内存保护需要重定位寄存器和界地址寄存器。重定位寄存器是用来“加”的,逻辑地址加上重定位寄存器中的值就能得到物理地址;界地址寄存器是用来“比”的,通过比较界地址寄存器中的值与重定位寄存器加上逻辑地址的值来判断是否越界。3.2.3 连续分配管理方式连续分配管理方式,是指

25、为一个用户程序分配一个连续的内存空间。它主要包括单一连续分配、固定分区分配和动态分区分配。1. 单一连续分配内存在此方式下分为系统区和用户区,系统区仅提供给操作系统使用,通常在低地址部分;用户区是为用户提供的、除系统区之外的内存空间。这种方式无需进行内存保护。因为内存中永远只有一道程序,肯定不会因为访问越界而干扰其他程序。这种方式的优点是简单、无外部碎片,可以采用覆盖技术,不需要额外的技术支持。缺点是只能用于单用户、单任务的操作系统中,有内部碎片,存储器的利用率极低。2. 固定分区分配固定分区分配是最简单的一种多道程序存储管理方式,它将用户内存空间划分为若干个固定大小的区域,每个分区只装入一道

26、作业。当有空闲分区时,便可以再从外存的后备作业队列中,选择适当大小的作业装入该分区,如此循环。固定分区分配在划分分区时,有两种不同的方法。1)分区大小相等:用于利用一台计算机去控制多个相同对象的场合,缺乏灵活性。2)分区大小不等:划分为含有多个较小的分区、适量的中等分区及少量的大分区。为便于内存分配,通常将分区按大小排队,并为之建立一张分区说明表,其中各表项包括每个分区的起始地址、大小及状态(是否已分配)。当有用户程序要装入时,便检索该表,以找到合适的分区给予分配并将其状态置为“已分配”;未找到合适分区则拒绝为该用户程序分配内存。这种分区方式存在两个问题:一是程序可能太大而放不进任何一个分区中

27、,这时用户不得不使用覆盖技术来使用内存空间;二是主存利用率低,当程序小于固定分区大小时,也占用了一个完整的内存分区空间,这样分区内部有空间浪费,这种现象称为内部碎片。固定分区是可用于多道程序设计最简单的存储分配,无外部碎片,但不能实现多进程共享一个主存区,所以存储空间利用率低。固定分区分配很少用于现在通用的操作系统中,但在某些用于控制多个相同对象的控制系统中仍发挥着一定的作用。3. 动态分区分配动态分区分配又称为可变分区分配,是一种动态划分内存的分区方法。这种分区方法不预先将内存划分,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进程的需要。因此系统中分区的大小和数

28、量是可变的。动态分区在开始分配时是很好的,但是之后会导致内存中出现许多小的内存块。随着时间的推移,内存中会产生越来越多的碎片,内存的利用率随之下降。这些小的内存块称为外部碎片,指在所有分区外的存储空间会变成越来越多的碎片,这与固定分区中的内部碎片正好相对。克服外部碎片可以通过紧凑技术来解决,就是操作系统不时地对进程进行移动和整理。但是这需要动态重定位寄存器的支持,且相对费时。在进程装入或换入主存时,如果内存中有多个足够大的空闲块,操作系统必须确定分配哪个内存块给进程使用,这就是动态分区的分配策略,考虑以下几种算法:1)首次适应(First FIt)算法:空闲分区以地址递增的次序链接。分配内存时

29、顺序查找,找到大小能满足要求的第一个空闲分区。2)最佳适应(Best Fit)算法:空闲分区按容量递增形成分区链,找到第一个能满足要求的空闲分区。3)最坏适应(Worst Fit)算法:又称最大使用算法,空闲分区以容量递减的次序链接。找到第一个能满足要求的空闲分区,也就是挑选出最大的分区。4)邻近适应(Next FIt)算法:又称循环首次适应算法,由首次适应算法演变而成。不同之处是分配内存是从上次查找结束的位置开始继续查找。在这几种方法中,首次适应算法不仅是最简单的,而且通常也是最好和最快的。在UNIX系统的最初版本中,就是使用首次适应算法为进程分配内存空间,其中使用数组的数据结构(而非链表)

30、来实现。不过,首次适应算法会使得内存的低地址部分出现很多小的空闲分区,而每次分配查找时,都要经过这些分区,因此也增加了查找的开销。邻近适应算法试图解决这个问题,但实际上,它常常会导致在内存的末尾分配空间,分裂成小碎片。它通常比首次适应算法的结果要差。最佳适应算法虽然称为“最佳”,但是性能通常很差,因为每次最佳的分配会留下很小的难以利用的内存块,它会产生最多的外部碎片。最坏适应算法与最佳适应算法相反,选择最大的可用块,这看起来最不容易产生碎片,但也却把最大的连续内存划分开,会很快导致没有可用的大的内存块,因此性能也非常差。3.2.3 非连续分配管理方式4 文件系统(Linux)4.1 文件系统介

31、绍 文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识。 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录、挂载基本原理、文件存储结构、软链接硬链接、和常见目录的介绍。相信有了这些知识对于深入的学习linux会有一定的帮助。Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录,最终到达文件。我们可以对文件进行许多操作,比如打开和读写。在Linux文件管理相关

32、命令中,我们看到许多对文件进行操作的命令。它们大都基于对文件的打开和读写操作。4.2 Linux文件常见的目录Linux发行版本之间的差别很少,差别主要表现在系统管理的特色工具以及软件包管理方式的不同。目录结构基本上都是一样的。Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。Linux的文件结构是单个的树状结构.可以用tree命令进行展示(默认没有安装)。每次安装系统的时候我们都会进行分区,Linux下磁盘分区和目录的关系如下: 任何一个分区都必须挂载到某个目录上。 目录是逻辑上的区分。分区是物理上的区分。 磁盘Linux分区都必须挂载到目录树

33、中的某个具体的目录上才能进行读写操作。 根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。以下是众多版本的其中一种目录和分区关系:Q:如何查看分区和目录及使用情况?l fdisk查看硬盘分区表l df:查看分区使用情况l du:查看文件占用空间情况Q:为什么要分区,如何分区?l 可以把不同资料,分别放入不同分区中管理,降低风险。l 大硬盘搜索范围大,效率低l 磁盘配合只能对分区做设定l /home /var /usr/local经常是单独分区,因为经常会操作,容易产生碎片。4.3 文件类型l Linux下面的文件类型主要有:l 普通文件:C语言元代码、SHELL脚本、二进制

34、的可执行文件等。分为纯文本和二进制。l 目录文件:目录,存储文件的唯一地方。l 链接文件:指向同一个文件或目录的的文件。l 特殊文件:与系统外设相关的,通常在/dev下面。分为块设备和字符设备。l 可以通过ls l, file, stat几个命令来查看文件的类型等相关信息。4.4 文件存储结构Linux正统的文件系统(如ext2、ext3)一个文件由目录项、inode和数据块组成。目录项:包括文件名和inode节点号。Inode:又称文件索引节点,是文件基本信息的存放地和数据块指针存放地。数据块:文件的具体内容存放地。Linux正统的文件系统(如ext2、3等)将硬盘分区时会划分出目录块、in

35、ode Table区块和data block数据区域。一个文件由一个目录项、inode和数据区域块组成。Inode包含文件的属性(如读写属性、owner等,以及指向数据块的指针),数据区域块则是文件内容。当查看某个文件时,会先从inode table中查出文件属性及数据存放点,再从数据块中读取数据。文件存储结构大概如下:其中目录项的结构如下(每个文件的目录项存储在改文件所属目录的文件内容里):其中文件的inode结构如下(inode里所包含的文件信息可以通过stat filename查看得到):4.5 inode 简介上面我们看到了存储设备的宏观结构。我们要深入到分区的结构,特别是文件在分区中

36、的存储方式。文件是文件系统对数据的分割单元。文件系统用目录来组织文件,赋予文件以上下分级的结构。在硬盘上实现这一分级结构的关键,是使用inode来虚拟普通文件和目录文件对象。在Linux文件管理中,我们知道,一个文件除了自身的数据之外,还有一个附属信息,即文件的元数据(metadata)。这个元数据用于记录文件的许多信息,比如文件大小,拥有人,所属的组,修改日期等等。元数据并不包含在文件的数据中,而是由操作系统维护的。事实上,这个所谓的元数据就包含在inode中。我们可以用$ls -l filename来查看这些元数据。正如我们上面看到的,inode所占据的区域与数据块的区域不同。每个inod

37、e有一个唯一的整数编号(inode number)表示。在保存元数据,inode是“文件”从抽象到具体的关键。正如上一节中提到的,inode储存由一些指针,这些指针指向存储设备中的一些数据块,文件的内容就储存在这些数据块中。当Linux想要打开一个文件时,只需要找到文件对应的inode,然后沿着指针,将所有的数据块收集起来,就可以在内存中组成一个文件的数据了。inode并不是组织文件的唯一方式。最简单的组织文件的方法,是把文件依次顺序的放入存储设备,DVD就采取了类似的方式。但果有删除操作,删除造成的空余空间夹杂在正常文件之间,很难利用和管理。复杂的方式可以使用链表,每个数据块都有一个指针,指

38、向属于同一文件的下一个数据块。这样的好处是可以利用零散的空余空间,坏处是对文件的操作必须按照线性方式进行。如果想随机存取,那么必须遍历链表,直到目标位置。由于这一遍历不是在内存进行,所以速度很慢。FAT系统是将上面链表的指针取出,放入到内存的一个数组中。这样,FAT可以根据内存的索引,迅速的找到一个文件。这样做的主要问题是,索引数组的大小与数据块的总数相同。因此,存储设备很大的话,这个索引数组会比较大。inode既可以充分利用空间,在内存占据空间不与存储设备相关,解决了上面的问题。但inode也有自己的问题。每个inode能够存储的数据块指针总数是固定的。如果一个文件需要的数据块超过这一总数,

39、inode需要额外的空间来存储多出来的指针。5 设备管理5.1 设备管理在计算机系统中,除了CPU和内存之外,其余的大部分硬件设备称为外部设备。外部设备包括常用的I/O(输入/输出)设备、外存设备以及终端设备等。5.1.1 I/O设备类型l 按设备的所属关系可以将I/O设备分为两类:系统设备 、用户设备。l 按设备的信息交换的单位可将I/O设备分为两类:字符设备 、块设备。l 按设备的共享属性可将I/O设备分为三类:独占设备 、共享设备 、虚拟设备。5.1.2 设备管理的任务和功能主要任务选择和分配I/O设备以便进行数据传输操作。控制I/O设备和CPU(或内存)之间交换数据。为用户提供一个友好

40、的透明接口,把用户和设备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,由系统按用户的要求来对设备的工作进行控制。提高设备和设备之间、CPU和设备之间以及进程和进程之间的并行操作程度,以使操作系统获得最佳效率。 主要功能提供和进程管理系统的接口进行设备分配实现设备和设备、设备和CPU等之间的并行操作进行缓冲管理 设备控制与驱动5.1.3 设备控制器为实现设备控制器的功能,大多数设备控制器都由以下三部分组成。 (1) 设备控制器与处理机的接口 (2) 设备控制器与设备的接口 (3) I/O逻辑5.1.4 I/O通道虽然在CPU与I/O设备之间增加了设备控制器后,已能大大减少CPU对I/O

41、的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此,在CPU和设备控制器之间又增设了通道。设置I/O通道的目的是为了建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且也希望有关对I/O操作的组织、管理及其结束处理也尽量独立,以保证CPU有更多的时间去进行数据处理。5.1.5 缓冲技术引入缓冲区的主要原因 缓和CPU与I/O设备间速度不匹配的矛盾。 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。 提高CPU和I/O设备之间的并行性。5.1.6 设备驱动设备驱动程序又称为设备处理程序,它是I/O进程与设备控制器之间的通信程序,是一种低级的系统例程。设备驱动程序的处理过

42、程将抽象要求转换为具体要求检查I/O请求的合法性读出和检查设备的状态传送必要的参数工作方式的设置启动I/O设备5.2 设备控制5.2.1 I/O控制方式在I/O控制方式的整个发展过程中,始终贯穿着这样一条宗旨,即尽量减少主机对FO控制的干预,把主机从繁杂的I/O控制事务中解脱出来,以便更多地去完成数据处理任务。 (1)程序I/O方式 (2)中断驱动I/O控制方式 (3)DMA控制方式 (4)I/O通道控制方式5.2.2 虚拟设备技术在设备管理中,通过SPOOLing技术可将一台物理I/O设备虚拟为多台逻辑I/O设备,这就实现了所谓的虚拟设备。 (1)SPOOLing技术的定义为了缓和CPU的高速性与I/O设备的低速性之间的矛盾,曾引入了脱机输入/输出技术。该技术是利用专门的外围控制机,将低速I/0设备上的数据传送到高速磁盘上,或者相反。此时的外围操作与CPU对数据的处理可以同时进行,我们把这种在联机情况下实现的同时外围操作称为SPOOLing(Simultaneaus Periphemal Operating On-Line),或称为假脱机操作。 (2)SPOOLing系统的组成主要由3部分组成 :输入井和输出井输入缓冲区和输出缓冲区输入进程SPi和输出进程SPo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁