您好,欢迎访问三七文档
读书笔记——《操作系统》《操作系统》目录1操作系统发展史2进程和线程3内存管理4文件系统(Linux)5设备管理1操作系统发展史1.1引言操作系统诞生距今已经有了几十年的时间,它是计算机资源的管理者。最初的人们是没有操作系统来对计算机加以控制的,一直都处于人工管理方式来对计算机进行操作和管理,人机交互之间出现了人工手动的低速和计算机的高速处理形成了尖锐的矛盾,资源利用率非常的低,从而导致计算机的效率十分低下。为了解决人工干预和CPU速度不匹配的矛盾,提高计算机的使用效率,后来出现了世界上第一个的操作系统——脱机输入/输出,用户先将卡片输入到纸带机,然后通过卫星机的处理,将纸带的数据高速写入磁带,主机运行时再将磁带上的数据高速读入内存,输出也可以这样中转,由于数据的读取和写入是脱离主机运行的,所以这样的处理方式称为脱机输入/输出方式。虽然脱机输入输出方式进一步提高了计算机的运行效率,但是在计算机工作过程中还是需要人工进行干预,后来就出现了批处理系统。在批处理系统中,操作员将一批作业输入进磁带中,然后运行第一个程序,当第一个作业完成后自动读入下一个作业,直至所有作业全部完成。由于该类系统的内存中只能保持一个作业运行,所以这类系统又称为单通道批处理系统。到了20世纪60年代出现了多道批处理系统能够做到计算机内存中的作业并发执行。直到后来出现的分时操作系统能够让多个用户共同使用一个操作系统可以随时和计算机进行交互,并且让各个用户都感受不到其他用户的存在。随着计算机技术的发展,越来越多的用户希望操作系统能够实时地对用户进行反馈,在1980年,为了让计算机能够实时地反馈,后来又出现了实时操作系统,对冶炼、发电、炼油、化工、机械加工等的自动控制起到了重要作用。1.2无操作系统1)手工特点:(1)用户独占全机(2)CPU等待人工操作问题:(1)计算机处理能力低(2)计算机工作效率低2)脱机输入/输出方式特点:数据的输入输出是在脱离主机的控制下完成的,通常是在外围机的控制下完成的优点:(1)减少了CPU的空闲时间,缓和了人机矛盾(2)提高了I/O速度1.3单道批处理系统特点:利用磁带将若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序自动依次处理。批:供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用相同的系统软件。批作业组成:用户程序、数据、作业说明书(作业控制语言)特征:(1)自动性—顺利情况下,磁带上的作业能自动地逐个依次进行(2)顺序性—先调入内存地作业先完成(3)单道性—内存中仅有一道程序运行,当该程序完成或发生异常时,才调入其后继程序进入内存执行。1.4多道批处理系统背景:60年代硬件两重大发展:中断技术和通道技术1.4.1中断技术中断处理过程:中断请求,中断响应,中断点(暂停当前任务并保存现场),中断处理例程,中断返回(恢复中断点地现场并继续原有任务)。中断分类:硬件中断,包括硬件故障中断、I/O中断和外部中断;软件中断,包括程序中断(例如地址越界虚存管理中缺页等)和访管中断(由访管指令产生,程序员使用访管指令向操作系统请求服务,产生一个中断事件(自愿中断),将操作系统转换为核心态)。1.4.2通道(又称I/O处理机)实际上是一台功能单一、结构简单的I/O处理机,它单独与CPU,并直接控制外部设备,与内存进行数据传输。有专用的I/O处理器,可与CPU并行工作。具有自己的指令,可编程实现各种复杂的I/O处理。多道程序设计原理:在计算机内存中同时存放几道相互独立的程序,它们在管理程序的控制下相互穿插地运行,共享CPU和外设等资源。优点:(1)资源利用率高—CPU和内存(2)系统吞吐量大—吞吐量指单位时间内处理作业的个数缺点:(1)用户交互性差—作业完成或出错时,才与用户交互(2)作业平均周转时间长—短作业的周转时间明显增长。核心技术:(1)作业调度—作业的现场保护和恢复。(2)资源共享—-资源的竞争与同步。(3)内存使用—由CPU执行的程序提供足够的内存。(4)内存保护–系统存储区和各应用程序存储区不可冲突,即存储保护。(5)文件非顺序存放、随机存取。出现的问题:(1)处理机管理问题—多道程序之间如何分配被它们共享的处理机。(2)内存管理问题—为每道程序分配必要的内存空间。(3)I/O设备管理问题—多种I/O设备供多道程序所共享。(4)文件管理问题—系统中大量的程序和数据一文件形式存在,如何组织。(5)作业管理问题调度方式:CPU有两种作业调度的方式,非抢占方式和抢占方式。1.4分时系统1)用户需求:(1)人机交互(2)共享主机(3)方便上机2)实现方法:(1)及时接收—系统配置多路卡,与各终端连结,每个终端配置一个缓冲区,暂时接受各用户键入的命令和数据(2)及时处理—每个用户键入命令后,能控制自己作业的运行,并及时得到处理。各作业都必须在内存中,在响应周期内都能得到执行。方法:将响应周期分为很短的时间片,每个作业占用一个时间片轮流执行,不允许某个作业长期占用处理机。3)特点:(1)多路性—多用户同时操作使用计算机(2)独占性—各终端用户感觉到自己独占了计算机(3)及时性—用户请求在很短时间内响应(4)交互性4)调进和调出(实现分时系统的重要方式):(1)主存–后援存储器方式–内存只存放一个当前执行作业,其他外存上(2)多流调入调出方式—主存中同时存在一个当前执行作业和多个后备作业5)响应时间:用户发出一条值另到系统处理完这条指令并做出回答所需要的时间。响应时间T与时间片q和用户个数n之间的关系为T=nq。1.5实时系统主要用于过程控制、事务处理等有实时要求的领域,一般有特殊用途。分类:(1)实时控制—宇航自动控制、生产过程控制(2)实时信息处理系统—飞机订票、股票交易特征:(1)实时时钟管理(2)中断管理(3)系统容错管理(4)多重任务管理(5)系统生成能力1.6网络操作系统在通常操作系统的基础上提供了网络通信和网络服务功能的操作系统。网络的组成:(1)主机(HOST)—组成网络的独立自主的计算机系统(2)子网—在主机之间传递信息,提供通信服务(3)协议功能:(1)高效可靠的网络通信(2)对网络中共享资源有效的管理(3)提供电子邮件文件传输等服务(4)网络安全管理(5)提供互操作的能力1.7分布式操作系统(1)以计算机网络为基础的计算机系统,包含多台处理机,每台处理机完成一部分功能。(2)功能:进程迁移、分布式同步、任务分配、资源管理。(3)特征:资源共享透明、自治性、高可靠性。1.8多处理机系统特点:提高系统的吞吐量、提高系统可靠性。类型:(1)紧密耦合—各处理机之间通过快速总线或开关阵列相连,共享内存,整体系统由一个统一的OS管理(一个OS核心)(2)松散耦合—各处理机带有各自的存储器、I/O设备和操作系统,通过通道或通信线路相连,每个处理机独立运行OS(3)非对称式多处理–主从模式,主处理器只有一个,运行OS,管理整个系统的资源,为从处理器分配任务;从处理器可有多个,执行应用程序或I/O处理(4)对称式多处理—OS交替在各个处理器上执行,任务负载较为均衡,性能调节容易。1.9嵌入式操作系统在各种设备、装置或系统中,完成特定功能的软硬件系统。应用有掌上电脑、工业设备、军事设备等。2进程和线程2.1进程和线程的定义进程:进程是操作系统中定义拥有资源和调度基本单位线程:线程是操作系统中调度的基本单位,线程不能拥有资源,可以看成轻量级的线程。2.2操作系统中对进程和线程的描述2.2.1进程和线程实体描述进程和线程均是OS中的运行实体,都是调度和分派的基本单位。OS定义了PCB(Proccesscontrolblock,进程控制块)描述进程实体。OS定义TCP(Threadcontrolblock,线程控制块)描述线程实体OS在创建进程/线程的时候必须创建对应的PCB以及TCP。PCB和TCP中存储的内容高低相似,本文仅描述PCB的具体内容,TCP的相关的内容可类比。PCB的主要内容:(1)进程标识符,主要用于操作系统以及用户定位不同的进程,是进程的唯一标识。(2)处理机状态,在发生进程切换时保存当前处理器寄存器相关信息。处理机状态信息也用于进程调度时恢复现场信息。(3)进程调度信息,主要保存服务进程调度的相同统计值。比如当前进程状态,进程优先级,已执行CPU时间,已等待CPU时间等信息,进程阻塞原因等信息内容。(4)进程控制信息:主要保存进程执行相关的信息,比如:(1)程序和数据的内存地址(2)同步和通信机制(3)进程和线程运行所需要的资源清单。2.2.2进程和线程的状态描述创建状态:进程刚创建的时候的状态,此时操作系统刚给线程分配完PCB等空间。就绪状态:进程创建完毕后,获取了除CPU外,需要的所有资源。执行状态:处于就绪状态的进程获取了CPU时间片后切换至执行状态。当进程所获时间片消耗完毕后,将切换至就绪状态等待下一次时间片分配。阻塞状态:处于执行状态的进程,发生了某种使进程暂停执行的事件,放弃CPU的执行时间,进入阻塞状态。比如竞争临界资源,等待IO等事件。位于阻塞状态的进程,获取到等待资源后,将进入就绪状态等待CPU分配时间片。2.3进程的多层调度从硬盘上的可执行文件摇身转为内存中的执行进程涉及到如下两层调度。(1)作业调度:作业调度是将硬盘上执行文件调度到内存中成为进程的过程,经历过该调度的进程处于就绪状态等待分配CPU资源。当有多个作业请求调度时,有许多经典算法可以采用。先来先服务算法:按照作业请求调度的先后顺序执行调度。优先级调度算法:每个作业均存在优先级,按照作业的的优先级进行调度。短作业有限算法:有限调度执行时间比较短的作业。(2)进程调度:进程调度是指在就绪队列中排队的就绪进程获取CPU时间片资源的过程。进程调度算法是需要介绍的重点,从较大的方向上分,其主要包括两类:基于优先权调度的算法,该调度算法主要区分以下四种概念。静态优先权调度:静态优先权是指,该进程所分配的优先权在运行的过程中是不可变化的,从始至终就是初始化的大小。动态优先权调度:进程调度的优先权可以依据运行时的情况动态改变。比如提高排队时间过长的进程优先权。这样能避免饥饿进程。抢占式调度:当前执行进程的优先权若小于排队进程进程的优先权,当前执行进程将让出CPU时间,退出执行。非抢占式调度:当前进程一旦获取了CPU执行时间后,便不会因为优先权的原因让出CPU时间。除非主动结束执行或者遇见异常情况。基于时间片轮转调度算法基于时间片的调度算法将就绪进程排列成一个队列,为队列中每个就绪进程分配指定的时间片资源。若在规定的时间片内进程未执行完毕,那么该进程将再次加入队列的尾部等待下一次时间片资源分配。上述只是基于时间片的调度算法的一般思想,在实际工业场景下过于粗糙。下面介绍一种较为常用的多级反馈队列调度算法具有更大的实用价值。2.4进程/线程之间的同步机制进程与进程之间的同步,线程和线程之间的同步基本一致。本文以线程和线程之间的同步为例子介绍同步概念。线程同步的概念:线程之间并不是孤立的执行,而是有序协作的向前推进执行。经典的进程同步问题:1.消费者与生产者问题消费者线程和生产者线程同时访问一个总大小为N的临界资源池。当资源池中资源数目为N时,生产者线程不能往其中添加数据,此时临界资源池记为满状态。当资源池中资源数目为0时,消费者线程不能从资源池中拿去数据,此时临界资源池记为空状态。在这样一个场景下,需要实现三个点:(1)消费者线程和生产者线程临界资源池的访问是互斥的。(2)临界资源池在满状态时,生产者线程放入数据操作必须阻塞,等待资源池非满状态时才能继续放入(3)临界资源池空状态时,消费者线程取数据的操作必须阻塞,等待资源池非空状态时才能继续取出。解决方法:互斥锁以及条件变量2.读者-写者问题对于一个文件,存在多个线程同时读取以及多个线程同时写入。在这种条件下要求对文件的访问不能混乱。那么要求读线程和写线程必须满足如下要求:读线程和写线程之间对文件的访问是互斥的写线程之间对文件的访问是互斥的读线程之间对文件的访问不需要互斥
本文标题:操作系统-读书笔记
链接地址:https://www.777doc.com/doc-6047081 .html