
操作系统笔记
文章平均质量分 92
Zevalin爱灰灰
如果能找到就好了
展开
-
操作系统理论 第一章(操作系统引论)—第一节(操作系统的目标和作用)
操作系统(Operating System,OS)控制和管理整个计算机系统的硬件和软件资源,它合理地组织调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境,它是。可扩充性的好坏与OS的结构有着十分紧密的联系,由此推动了OS结构的不断发展:从早期的无结构发展成模块化结构,进而又发展成层次化结构,近年来OS已广泛采用了微内核结构。此时用户所看到的机器是一台比裸机功能更强、使用更方便的机器,换言之,在裸机上铺设的I/O软件隐藏了I/O设备的具体细节,向上提供了一组抽象的I/O设备。原创 2024-03-24 12:50:29 · 767 阅读 · 0 评论 -
操作系统理论 第一章(操作系统引论)—第二节(操作系统的发展过程)
当计算机被用于生产过程的控制,形成以计算机为中心的控制系统时,该系统应具有能实时采集现场数据,并对所采集的数据进行及时处理,进而能够自动地控制相应的执行机构,使之具有按预定的规律变化的功能,确保产品的质量和产量;类似地,也可将计算机用于对武器的控制,如火炮的自动控制系统、飞机的自动驾驶系统,以及导弹的制导系统等。人—机交互的关键在于,用户键入命令后,能对自己的作业及其运行及时地实施控制或进行修改,因此各个用户的作业都必须驻留在内存中,并能频繁地获得处理机运行,否则用户键入的命令将无法作用到自己的作业上。原创 2024-03-24 15:14:46 · 1127 阅读 · 0 评论 -
操作系统理论 第一章(操作系统引论)—第三节(操作系统的基本特性)
当正在执行的进程提出某种资源要求时,如打印请求,而此时打印机正在为其它进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,并释放出处理机,直到打印机空闲,并再次获得处理机时,该进程方能继续执行。对于内存中的每个进程,在何时能获得处理机运行,何时又因提出某种资源请求而停,以及进程以怎样的速度向前推进,每道程序总共需要多少时间才能完成等等,都是不可预知的,也就是说,这样,多个程序便可同时执行。,这里所谓的“同时”在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。原创 2024-03-24 16:06:16 · 823 阅读 · 0 评论 -
操作系统理论 第一章(操作系统引论)—第四节(操作系统的主要功能)
②脱机命令接口:又称批处理命令接口,适用于批处理系统,它由一组作业控制命令(或称作业控制语句)组成,脱机用户不能直接干预作业的运行,应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统,当系统调度到该作业时,由系统中的命令解释程序,对作业说明书上的命令或作业控制语句逐条解释执行,从而间接地控制作业的运行,直到遇到作业结束语句时系统才停止该作业的运行。(1)设备分配的基本任务是根据用户进程的I/O请求、系统的现有资源情况以及按照某种设备分配策略,为之分配其所需的设备。原创 2024-03-24 21:36:33 · 876 阅读 · 0 评论 -
操作系统理论 第一章(操作系统引论)—第五节(OS结构设计)
(1)客户机:通常在一个LAN网络上连接有多台网络工作站(简称客户机),每台客户机都是一个自主计算机,具有一定的处理能力,客户进程在其上运行,平时它处理一些本地业务,也可发送一个消息给服务器,以请求某项服务。(2)服务器:通常是一台规模较大的机器,在其上驻留有网络文件系统或数据库系统等,它应能为网上所有的用户提供一种或多种服务。原创 2024-03-24 23:46:50 · 989 阅读 · 0 评论 -
操作系统理论 第二章(进程的描述与控制)—第一节(前趋图和程序执行)
在前趋图中,把没有前趋的结点称为初始结点,把没有后继的结点称为终止结点。此外,每个结点还具有一个重量,用于表示该结点所含有的程序量或程序的执行时间。(1)间断性:在多道程序设计的环境下,程序的并发执行,以及为完成一项任务而相互合作,这些程序之间要共享系统的资源,形成了相互制约的关系,(2)封闭性:程序在封闭的环境下运行,即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它,为此,在系统中引入了。一个应用程序由若干个程序段组成,每一个程序段完成特定的功能,它们在执行时,都需要。原创 2024-03-25 12:50:19 · 1391 阅读 · 0 评论 -
操作系统理论 第二章(进程的描述与控制)—第二节(进程的描述)
(1)对于进程的定义,从不同的角度可以有不同的定义,其中较典型的定义有:①进程是程序的一次执行。②进程是一个程序及其数据在处理机上顺序执行时所发生的活动。③进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。(2)为了使参与并发执行的每个程序(含数据)都能独立地运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。原创 2024-03-25 14:38:09 · 1080 阅读 · 0 评论 -
操作系统理论 第二章(进程的描述与控制)—第三节(进程控制)
进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。进程控制一般是由OS的内核中的原语实现的原语是由若干条指令组成、能够完成一定功能的程序段,算是一种特殊的程序,其执行必须一气呵成,这个需要用关/开中断实现(进入原语程序后关闭中断,让它的所有动作不可分割地进行完,再打开中断)。原语处于操作系统最底层,是最接近硬件的部分,其运行时间较短,且调用频繁。原创 2024-03-25 17:07:44 · 941 阅读 · 0 评论 -
操作系统理论 第二章(进程的描述与控制)—第四节(进程同步(上))
例如,有两个相互合作的进程——输入进程A和计算进程B,它们之间共享一个缓冲区,进程A通过缓冲向进程B提供数据,进程B从缓冲中取出数据,并对数据进行处理,但如果该缓冲为空,计算进程因不能获得所需数据而被阻塞,一旦进程A把数据输入缓冲区后便将进程B唤醒,反之,当缓冲区已满时,进程A因不能再向缓冲区投放数据而被阻塞,当进程B将缓冲区数据取走后便可唤醒A。为了保证这些进程能有序地运行,对于系统中的这类资源,必须由系统实施统一分配,即用户在要使用之前,应先提出申请,而不允许用户进程直接使用。原创 2024-03-25 23:00:03 · 1239 阅读 · 0 评论 -
操作系统理论 第二章(进程的描述与控制)—第五节(进程同步(下))
为实现这种关系,两个进程需共享两个公用信号量,其中empty的初值为1,表示x允许被赋新值,full的初值为0,表示x暂时不允许打印,初始状态下进程P2可以给x赋新值(empty的值由1变为0),执行完进程P2后full的值变为1,此时进程P1可以打印x(full的值由1变为0),打印完成后empty的值变为1。显然,当进程同时要求的共享资源越多,发生进程死锁的可能性就越大。③Swait(S, 1, 0),当S>=1时,允许多个进程进入某特定区,当S变为0后,阻止任何进程进入某特定区,相当于可控开关。原创 2024-03-26 12:22:07 · 960 阅读 · 0 评论 -
操作系统理论 第二章(进程的描述与控制)—第六节(经典进程的同步问题)
①只要有一个Reader进程在读,便不允许Writer进程去写,因此仅当readcount=0,表示尚无Reader进程在读时,Reader进程才需要执行wait(wmutex)操作,若wait(wmutex)操作成功,Reader进程便可去读,相应地,做readcount+1操作。进餐毕,放下筷子继续思考。例如,wait(empty)在计算(生产者)进程中,而signal(empty)则在打印(消费者)进程中,计算进程若因执行wait(empty)而阻塞,则以后将由打印进程将它唤醒。L, RN, 0);原创 2024-03-26 13:52:38 · 1552 阅读 · 0 评论 -
操作系统理论 第二章(进程的描述与控制)—第七节(进程通信)
进程通信是指进程之间的信息交换。由于进程的互斥与同步需要在进程间交换一定的信息,故不少学者将它们也归为进程通信,但只能把它们称为低级进程通信。以信号量机制为例来说明,它们之所以低级的原因在于:①效率低,生产者每次只能向缓冲池投放一个产品(消息),消费者每次只能从缓冲区中取得一个消息。②通信对用户不透明,OS只为进程之间的通信提供了共享存储器,关于进程之间通信所需之共享数据结构的设置、数据的传送、进程的互斥与同步,都必须由程序员去实现。原创 2024-03-26 15:48:57 · 905 阅读 · 0 评论 -
操作系统理论 第二章(进程的描述与控制)—第八节(线程的基本概念)
在多线程OS中,是把线程作为独立运行(或称调度)的基本单位,此时的进程已不再是一个基本的可执行实体,虽然如此,进程仍具有与执行相关的状态,例如所谓进程处于“执行”状态,实际上是指该进程中的某线程正在执行。(2)线程除了拥有自己的少量资源外,还允许多个线程共享该进程所拥有的资源,这首先表现在:属于同一进程的所有线程都具有相同的地址空间,这意味着线程可以访问该地址空间中的每一个虚地址,此外,还可以访问进程所拥有的资源,如已打开的文件、定时器、信号量机构等的内存空间和它所申请到的I/O设备等。原创 2024-03-26 16:46:39 · 851 阅读 · 0 评论 -
操作系统理论 第二章(进程的描述与控制)—第九节(线程的实现)
(1)在OS中的所有进程,无论是系统进程还是用户进程,都是在操作系统内核的支持下运行的,是与内核紧密相关的,而内核支持线程KST同样也是在内核的支持下运行的,它们的创建、阻塞、撤消和切换等,也都是在内核空间实现的。(3)内核支持线程的主要缺点是:对于用户的线程切换而言,其模式切换的开销较大会一个进程中,从一个线程切换到另一个线程时,需要从用户态转到核心态进行,这是为用户进程的线程在用户态运行,而线程调度和管理是在内核实现的,系统开销较大。而在内核支持线程方式中,则进程中的其它线程仍然可以运行。原创 2024-03-26 23:14:03 · 857 阅读 · 0 评论 -
操作系统理论 第三章(处理机调度与死锁)—第一节(处理机调度的基本概念)
在批处理系统中,不仅需要进程调度,而且还需要作业调度,由作业调度按一定的调度算法,从外存的后备队列中选择一批作业调入内存,并为它们建立进程,送入就绪队列,然后才由进程调度算法按照一定的进程调度算法(最常用的是最高优先权优先调度算法),选择一个进程,把处理机分配给该进程。对于大、中型计算机而言,CPU价格十分昂贵,致使处理机的利用率成为衡量系统性能的十分重要的指标,而调度方式和算法又对处理机的利用率起着十分重要的作用,如果单纯是为使处理机利用率高,应尽量多地选择计算量大的作业运行。原创 2024-03-27 09:38:29 · 1077 阅读 · 0 评论 -
操作系统理论 第三章(处理机调度与死锁)—第二节(作业与作业调度)
作业调度的主要任务是根据JCB(作业控制块)中的信息,检查系统中的资源能否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源,然后再将新创建的进程排在就绪队列上等待调度。在采用这种算法时,要先知道每个作业的运行时间,但即使是程序员也很难准确估计作业的运行时间,如果估计过低,系统就可能按估计的时间终止作业的运行,但此时作业并未完成,故一般都会偏长估计。(2)优先级调度算法可作为作业调度算法,也可作为进程调度算法,当把该算法用于作业调度时,原创 2024-03-27 12:19:49 · 687 阅读 · 0 评论 -
操作系统理论 第三章(处理机调度与死锁)—第三节(进程调度)
(1)在时间片轮转调度算法中做了一个隐含的假设,即系统中所有进程的紧迫性是相同的,但事实并非如此,为了满足实际情况的需要,在进程调度算法中引入优先级,从而形成优先级调度算法(高优先权优先调度算法)。(2)此算法常用于批处理系统中,作为作业调度算法(PSA和HRRN),也作为多种操作系统中的进程调度算法,还可用于实时系统中。当该算法用于进程调度时,它分为非抢占式优先权算法和抢占式优先权调度算法两种。原创 2024-03-27 13:18:17 · 1389 阅读 · 0 评论 -
操作系统理论 第三章(处理机调度与死锁)—第四节(实时调度)
由于在实时系统中都存在着若干个实时进程或任务,它们用来反应或控制某个(些)外部事件,往往带有某种程度的紧迫性,因而对实时系统中的调度提出了某些特殊要求,前面所介绍的多种调度算法并不能很好的满足实时系统对调度的要求,为此需要引入一种新的调度,即实时调度。(1)该算法是根据任务的截止时间确定任务的优先级,任务的截止时间愈早,其优先级愈高,具有最早截止时间的任务排在队列的队首。调度程序在选择任务时,总是选择就绪队列中的第一个任务,为之分配处理机。原创 2024-03-27 14:32:22 · 786 阅读 · 0 评论 -
操作系统理论 第三章(处理机调度与死锁)—第五节(死锁概述)
(1)死锁(Deadlock)是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种状态时,若无外力作用,它们都将无法再向前推进。(2)死锁的起因通常是源于多个进程对资源的争夺,不仅对不可抢占资源进行争夺时会引起死锁,而且对可消耗资源进行争夺时,也会引起死锁。原创 2024-03-27 15:25:43 · 1108 阅读 · 0 评论 -
操作系统理论 第三章(处理机调度与死锁)—第六节(预防死锁)
假如某进程已请求到一些序号较高的资源,后来它又想请求一个序号低的资源时,它必须先释放所有具有相同和更高序号的资源后,才能申请序号低的资源,这样在所形成的资源分配图中不可能会出现环路,因而摒弃了“循环等待”条件。②尽管在为资源的类型分配序号时,已经考虑到大多数作业在实际使用这些资源时的顺序,但也经常会发生这种情况——作业使用各类资源的顺序与系统规定的顺序不同,造成对资源的浪费。当一个已经保持了某些不可被抢占资源的进程,提出新的资源请求而不能得到满足时,它必须释放已经保持的所有资源,待以后需要时再重新申请。原创 2024-03-27 15:42:32 · 958 阅读 · 0 评论 -
操作系统理论 第三章(处理机调度与死锁)—第七节(避免死锁)
最有代表性的避免死锁的算法是Dijkstra的银行家算法,起这样的名字是由于该算法原本是为银行系统设计的,以确保银行在发放现金贷款时,不会发生不能满足所有客户要求的情况。原创 2024-03-27 21:25:24 · 733 阅读 · 0 评论 -
操作系统理论 第三章(处理机调度与死锁)—第八节(死锁的检测与解除)
系统死锁可利用资源分配图来描述,该图由表示进程的圆圈和表示一类资源的方框组成,其中方框中的一个点代表一个该类资源,请求边是由进程指向方框中的。终止(或撤消)系统中的一个或多个死锁进程,直至打破循环环路,使系统从死锁状态解脱出来。让一个或多个死锁进程回退到足以避免死锁的地步,这要求系统记录进程的历史信息,设置还原点。③在经过一系列简化后若能消去图中的所有的边,使所有进程结点都孤立,则称该图是可完全简化的,反之是不可完全简化的。从一个或多个进程中抢占足够数量的资源,分配给死锁进程,以解除死锁状态。原创 2024-03-27 21:41:48 · 492 阅读 · 0 评论 -
操作系统理论 第四章(存储器管理)—第一节(存储器的层次结构)
存储器管理的主要对象是内存,至于外存,它主要用来存放文件,所以外存的管理归为文件管理的内容。操作系统对内存的划分和动态分配,就是内存管理的概念。内存管理的功能有:①内存空间的分配和回收:由操作系统完成主存储器空间的分配和管理,使程序员摆脱存储分配的麻烦,提高编程效率。②地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址。③内存空间的扩充:利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存。④。原创 2024-03-28 12:35:55 · 1034 阅读 · 0 评论 -
操作系统理论 第四章(存储器管理)—第二节(程序的装入和链接)
如下图所示,在由编译程序所产生的所有目标模块中,使用的都是相对地址,其起始地址都为0,每个模块中的地址都是相对于起始地址计算的,在链接成一个装入模块后,原模块B和C在装入模块的起始地址不再是0,而分别是L和L+M,所以此时须修改模块B和C中的相对地址,即把原B中的所有相对地址都加上L,把原C中所有相对地址都加上L+M。即在装入一个目标模块时,若发送一个外部模块调用时间内,将引起装入程序去找出相应的外部目标模块,并把它装入内存,然后按上图所示的方式修改目标模块中的相对地址。原创 2024-03-28 13:12:52 · 1001 阅读 · 0 评论 -
操作系统理论 第四章(存储器管理)—第三节(连续分配存储管理方式)
该算法又称为分类搜索法,是将空闲分区根据其容量大小进行分类,对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表,系统中存在多个空闲分区链表,同时在内存中设立一张管理索引表,该表的每一个表项对应了一种空闲分区类型,并记录了该类型空闲分区链表表头的指针。它的优点是可使剩下的空闲区不至于太小,产生碎片的可能性最小,对中、小作业有利,同时,最坏适应分配算法查找效率很高,因为该算法要求将所有的空闲分区按其容量以从大到小的顺序形成一空闲分区链,所以查找时只要看第一个分区能否满足作业要求即可。原创 2024-03-28 14:40:42 · 1646 阅读 · 0 评论 -
操作系统理论 第四章(存储器管理)—第四节(覆盖与对换)
在进行换出时,应先申请对换空间,若申请成功就启动磁盘,将该进程的程序和数据传送到磁盘的对换区上,若传送过程未出现错误,便可回收该进程所占用的内存空间,并对该进程的进程控制块和内存分配表等数据结构做相应的修改。如果失败,则需先将内存中的某些进程换出,腾出足够的内存空间后,再将进程调入。在对换进程成功地换入一个进程后,若还有可换入的进程,则再继续执行换入换出过程,将其余处于“就绪且换出”状态的进程陆续换入,直到外存中再无“就绪且换出”状态的进程为止,或者已无足够的内存来换入进程,此时对换进程才停止换入。原创 2024-03-28 15:39:16 · 1441 阅读 · 0 评论 -
操作系统理论 第四章(存储器管理)—第五节(存储管理方式(上))
连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。如果允许将一个进程直接分散地装入到许多不相邻接的分区中,便可充分地利用内存空间,基于这一思想而产生了离散分配方式。根据在离散分配时所分配地址空间的基本单位的不同,可将离散分配分为以下三种:①分页存储管理方式。原创 2024-03-28 17:05:00 · 1153 阅读 · 0 评论 -
操作系统理论 第四章(存储器管理)—第六节(存储管理方式(下))
但事实上,大多数代码在执行时都可能有些改变,为此在每个进程中都必须配以局部数据区,把在执行中可能改变的部分拷贝到该数据区,这样,程序在执行时,只需对该数据区(属于该进程私有)中的内容进行修改,并不去改变共享的代码,这时的可共享代码即成为可重入代码。(需要说明的是,可修改的代码是不能共享的)在实现程序和数据的共享时,常常以信息的逻辑单位为基础,而分页系统中的每一页只是存放信息的物理单位,其本身没有完整的意义,因而不便于实现信息的共享,而段却是信息的逻辑单位,有利于信息的共享。原创 2024-03-28 21:15:49 · 1029 阅读 · 0 评论 -
操作系统理论 第五章(虚拟存储器)—第一节(虚拟存储器概述)
虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统,其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却接近于外存。原创 2024-03-29 11:47:52 · 2851 阅读 · 0 评论 -
操作系统理论 第五章(虚拟存储器)—第二节(请求分页存储管理方式)
如果在进程的运行过程中,访问页面成功(即所访问页面在内存中)的次数为S,访问页面失败(即所访问页面不在内存中,需要从外存调入)的次数为F,则该进程总的页面访问次数为A=S+F,那么该进程在其运行过程中的缺页率即为f=F/A。①在进行地址变换时,首先检索快表,试图从中找出所要访问的页,若找到,便修改页表项中的访问位(对于写指令,还须将修改位置成“1”,表示该页在调入内存后已被修改),供置换算法选换出页面时参考,然后利用页表项中给出的物理块号和页内地址形成物理地址。如果该页未被修改过,可不必写回磁盘;原创 2024-03-29 12:41:26 · 1600 阅读 · 0 评论 -
操作系统理论 第五章(虚拟存储器)—第三节(页面置换算法)
在进程运行过程中,若其访问的页面不在内存而需将其调入,但内存已无空闲空间时,需从内存中调出一页程序或数据,送入磁盘的对换区,但应将哪个页面调出,需根据一定的算法来确定。把选择换出页面的算法称为页面置换算法,其好坏直接影响系统的性能。不适当的算法可能会导致进程发生“抖动”,即刚被换出的页很快又要被访问,需要将它重新调入,此时又需要再选一页调出而此刚被调出的页很快又被访问,又需将它调入,如此频繁地更换页面,以致一个进程在运行中把大部分时间都花费在页面置换工作上,我们称该进程发生了抖动。原创 2024-03-29 14:23:12 · 1272 阅读 · 0 评论 -
操作系统理论 第五章(虚拟存储器)—第四节(“抖动”与工作集)
由于虚拟存储器系统能从逻辑上扩大内存,这时只需装入一个进程的部分程序和数据便可开始运行,故人们希望在系统中能运行更多的进程,即增加多道程序度,以提高处理机的利用率,但处理机的实际利用率却如下图中的实线所示,其中横轴表示多道程序的数量,纵轴表示相应的处理机的利用率。,这会使得在系统中排队等待页面调入/调出的进程数目增加,对磁盘的有效访问时间也随之急剧增加,造成每个进程的大部分时回都用于页面的换进/换出,而几乎不能再去做任何有效的工作,从而导致发生处理机的利用率急剧下降并趋于0的情况。原创 2024-03-29 14:38:03 · 847 阅读 · 0 评论 -
操作系统理论 第五章(虚拟存储器)—第五节(请求分段存储管理方式)
当共享该段的进程不再需要该段时,应将该段释放,包括撤消在该进程段表中共享段所对应的表项,以及执count=count-1操作,如果结果为0,则需由系统回收该共享段的物理内存,以及取消在共享段表中该段所对应的表项,否则只取消调用者进程在共享段表中的有关记录。①为共享段分配内存时,对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,再把共享段调入该区,同时将该区的始址填入请求进程的段表的相应项中,还须在共享段表中增加一表项,填写有关数据,把count置为1。而共享是为多个进程所需要的,原创 2024-03-29 15:09:44 · 1288 阅读 · 0 评论 -
操作系统理论 第六章(输入输出系统)—第一节(I/O系统的功能、模型和接口)
显然,对于不同的设备,需要有不同的命令和参数,如果要求程序员或用户编写直接面向这些设备的程序是很困难的,因此I/O系统必须通过对设备加以适当的抽象,以隐藏掉物理设备的实现细节,仅向上层进程提供少量的、抽象的读/写命令,如read、write等。为了对这些千差万别的设备进行控制,通常都为它们配置相应的设备控制器。I/O系统管理的主要对象是I/O设备和相应的设备控制器,其最主要的任务是完成用户提出的I/O请求,提高I/O速率,以及提高设备的利用率,并能为更髙层的进程方便地使用这些设备提供手段。原创 2024-03-29 22:01:45 · 862 阅读 · 0 评论 -
操作系统理论 第六章(输入输出系统)—第二节(I/O设备和设备控制器)
(1)设备控制器的主要功能是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换,它是CPU与I/O设备之间的接口,接收从CPU发来的命令,去控制I/O设备工作,使处理机能够从繁杂的设备控制事务中解脱出来。(2)设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制器可连接多个设备,则应含有多个设备地址,每一个设备地址对应一个设备。(3)可把设备控制器分成两类,一类是用于控制字符设备的控制器,另一类是用于控制块设备的控制器。原创 2024-03-29 22:04:37 · 1373 阅读 · 0 评论 -
操作系统理论 第六章(输入输出系统)—第三节(中断处理程序)
当一个进程请求I/O操作时,该进程将被挂起,直到I/O设备完成I/O操作后,设备控制器便向CPU发送一个中断请求,CPU响应后便转向中断处理程序中断处理程序执行相应的处理,处理完后解除相应进程的阻塞状态。中断的大部分内容在《计算机组成原理》中有详细介绍,比如中断的分类、中断屏蔽、嵌套中断等,这里不再赘述。原创 2024-03-30 13:32:36 · 1197 阅读 · 0 评论 -
操作系统理论 第六章(输入输出系统)—第四节(设备驱动程序)
(1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列。(2)检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式。(3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作,如果设备忙碌,则将请求者的请求块挂在设备队列上等待。(4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。原创 2024-03-30 13:34:24 · 1376 阅读 · 0 评论 -
操作系统理论 第六章(输入输出系统)—第五节(与设备无关的I/O软件)
逻辑设备是抽象的设备名,如/dev/printer,该设备名只是说明用户需要使用打印机来打印输出,但并没有指定具体是哪一台打印机,这样,如果在应用程序中,使用逻辑设备名称请求使用某类设备系统在对它进行设备分配时,先查找该类设备中的第一台,如它已被分配,系统可立即去查找该类设备中第二台,若又被分配,系统接着去找第三台,若它尚未分配,便可将这台设备分配给进程。另一方面,要将抽象的设备名映射到适当的驱动程序上,或者说,将抽象的设备名转换为具体的物理设备名,并进一步可以找到相应物理设备的驱动程序入口。原创 2024-03-30 14:57:32 · 1075 阅读 · 0 评论 -
操作系统理论 第六章(输入输出系统)—第六节(用户层的I/O软件)
在早期的操作中,系统调用是以汇编语言形式提供的,所以只有在用汇编语言编写的程序中,才能直接使用系统调用,这对用户是非常不方便的,后来在C语言中,首先提供了与系统调用相对应的库函数。当系统中引入了多道程序技术后,完全可以利用其中的一道程序来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上,再用另一道程序模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上,这样便可。②为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到假脱机文件队列上。原创 2024-03-30 15:45:44 · 1217 阅读 · 0 评论 -
操作系统理论 第六章(输入输出系统)—第七节(缓冲区管理)
已把全部可用的空缓冲区装满,再无缓冲区可用,此时输入进程应阻塞,直到计算进程把某个缓冲区中的数据全部提取完,使之成为空缓冲区R,并调用Releasebuf过程将它释放时,才将输入进程唤醒。,使全部装有输入数据的缓冲区都被抽空,再无装有数据的缓冲区供计算进程提取数据,这时计算进程只能阻塞,直至输入进程又装满某个缓冲区,并调用Releasebuf过程将它释放时,才去唤醒计算进程。用于收容输入数据的工作缓冲区、用于提取输入数据的工作缓冲区、用于收容输出数据的工作缓冲区、用于提取输出数据的工作缓冲区。原创 2024-03-30 16:31:08 · 1128 阅读 · 0 评论