type
slug
status
summary
icon
category
date
tags
password

1.0 概念

  • 操作系统定义:操作系统是一组控制和管理计算机软硬件资源、合理地对各类作业进行调度以及方便用户使用程序集合。是计算机硬件和应用之间的一层系统软件,它需要管理硬件并向用户提供软件接口。
  • Unix是一个多用户、多任务操作系统。
    • POSIX是指:Portable Operating System Interface of Unix(Unix的可移植的操作系统接口)。
  • Linux是一套类UNIX操作系统,是一个多用户多任务支持多线程多CPU的操作系统。
  • HAL:抽象硬件层(Hardware Abstraction Layer)。
  • 裸机:完全无软件的计算机系统。
  • 扩充机器:通常把覆盖了软件的机器称为扩充机器或虚机器。
  • 单道批处理系统:在单道批处理系统中,系统对作业的处理都是成批进行的,且在内存中始终仅存一道作业运行(与多道批处理的本质区别),运行结束或出错,才自动调另一道作业运行。
  • 多道批处理系统:在内存中存放多道作业运行,运行结束或出错,自动调度内存中的另一道作业运行、
  • 实时系统:实时系统是指计算机及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的运行
  • 临界资源:把在一段时间内只允许一个进程访问的资源,称为临界资源。如打印机、栈、表格等
 
 

1.1 操作系统的目标和作用

1.1.1 操作系统的目标

  • 方便性:操作系统使计算机更易于使用(因为操作系统向用户提供了友好的接口)
  • 有效性:操作系统允许以更有效的方式使用计算机系统资源。
    • 提高系统资源利用率
    • 提高系统的吞吐量(Throughput:系统在单位时间内成功处理并完成的请求数量或传输的数据量)
  • 可扩展性:在操作系统中,允许有效地开发,测试和引进新的系统功能。(操作系统时长更新)
  • 开放性:实现应用程序的可移植性和互操作性,要求具有统一的开放的环境。(能够使不同的应用跑在同一个操作系统上)
notion image
 

1.1.2 OS的作用

  • OS作为用户与计算机硬件系统之间的接口
    • 也就是说操作系统应隐藏复杂的、困难的、丑陋的、特殊的硬件细节呈现给程序(程序员)良好、清晰、优雅、一致的抽象(抽象实际上就是接口)。
    • 更直白的说,操作系统的任务就是创建好的抽象,并实现和管理所创建的抽象。这个是自顶向下的观点,也就是面向用户的观点
💡
  • OS需要提供的接口有:
    • 计算机用户需要的用户命令(面向用户):由OS实现的所有用户命令构成的集合被称为用户接口(Interface)/命令接口。
    • 应用软件需要的System Call(系统调用)(面向其他软件):由OS实现的所有系统调用构成的集合被称为API(Application Programming Interface)/ 程序接口。
      • Q:如何实现系统调用——将内核程序和用户程序隔离,也就是分为内核态和用户态。
  • OS作为计算机系统资源的管理者(软硬件资源)
    • 也就是说操作系统应在相互竞争的程序之间有序地控制对硬件设备的分配。这个是自底向上的观点,也就是从硬件资源角度来说的
    • 资源管理的内容——操作系统需要管理哪些资源?
      • 进程管理:OS需要管理处理机(运算器、控制器),用于分配和控制处理机。
      • 内存管理:OS需要管理存储器,主要负责内存的分配和回收。
      • 文件系统:OS需要管理文件,负责文件的存取、共享和保护。
      • IO系统:OS需要管理IO设备,负责I/O设备的分配与操纵。
      • 对于多用户系统,需要管理共享资源,避免发生冲突
    • 资源管理实现多路复用(共享)的方法:
      • 在时间上复用:当一种资源在时间上复用时,不同的程序“轮流”使用它。例如CPU、打印机等。(想想时间片轮转)
      • 在空间上复用:每个客户都得到资源的一部分;例如内存、磁盘等
  • OS用作扩充机器(也就是裸机上的一台虚拟机)
    • 操作系统用作扩充机器功能,使其便于使用
    • 在裸机上覆盖管理软件,实现对设备的操作,并向上提供一组操作命令。(也就是自顶向下、面向用户的观点)
    • 隐藏对设备操作的具体细节,实现对硬件操作的多个层次的抽象。(也就是自底向上、面向硬件资源的观点)
    • 通常把覆盖了软件的机器称为扩充机器或虚机器。
notion image
 

1.2 操作系统的发展过程

1.2.1 无操作系统

  • 人工操作方式:一台计算机的所有资源由用户独占,降低了计算机资源利用率,人操作慢,出现了严重的人机矛盾
    • 输入输出方式:穿孔卡片
    • 主要矛盾:人机矛盾,也就是CPU和I/O设备速度不匹配
    • 提高效率的途径:脱机I/O、批处理
  • 脱机输入输出方式
    • 输入输出方式:在外围计算机的控制下,实现输入输出,而不是直接依赖主机。如下图脱机IO示意图:
      • notion image
        有点像存储器的分层结构,速度不匹配就在中间加一层
        (寄存器(CPU内部),高速缓存(Cache,L1/L2/L3),主存储器(RAM),辅助存储器。缓存-主存层次:Cache解决CPU与主存的速度差异,主存-辅存)
        notion image
    • 主要解决了CPU与设备之间不匹配的矛盾,提高了I/O速度。

1.2.2 单道批处理操作系统

  • 单道批处理系统定义:内存中始终仅存在一道作业运行,运行结束/出错才自动调另一道作业运行。
  • 单道批处理系统主要特征:
    • 自动性:因为当当前内存内的进程结束/出错时,会自动调度另一个进程。
    • 顺序性:所有进程都是顺序执行的
    • 单道性:任何一个时刻,内存中都只有一个进程
  • 单道批处理系统主要优点:减少人工操作,解决了作业的自动接续。
  • 单道批处理系统主要缺点:平均周转时间长(一个进程从被创建到执行可能要等很久),没有交互能力(没有交互能力是因为没有办法及时处理用户的输入,因为处理用户输入的这个进程也是需要排队的,这就导致系统也无法及时返回给用户信息。说白了就是因为单道批处理系统是非抢占式的),资源利用率不高(CPU\内存,内存中始终仅存在一道作业进行)

1.2.3 多道批处理操作系统

  • 多道程序的概念: 在内存中存放多道作业运行,运行结束或出错,自动调度内存中的另一道作业运行。
  • 多道批处理系统主要特征:多道性、无序性、调度性(进程调度和作业调度)。
    • (注意:无序性:程序的执行顺序和完成时间不一定按照提交的顺序。轮流执行:多道批处理系统允许多个程序驻留在内存中,并按照一定的规则轮流使用CPU)
  • 多道批处理系统的优点
    • 提高CPU的利用率。(在单道批处理系统中如果当前处理的进程偏IO,这个时候仍然需要等待进程结束。这个时候CPU是空闲的,利用率就低了)
    • 提高内存和I/O设备利用率(跟提高CPU利用率是一个道理。)
    • 增加系统吞吐量(以上两点将使得并发处理的进程数量变多,进而使得系统的吞吐量增加。)
  • 多道批处理的主要缺点:平均周转时间长(单道批处理系统中的进程可能是要在外存等很久,但是多道批处理系统不仅可能是要在外存等,进入内存也不一定马上被调度),没有交互能力(与单道批处理系统相同,交互能力指用户和系统之间能够进行实时的双向通信)。
  • 多道批处理系统需要解决的6个问题(实际上也就是因为共享所带来的问题。在单道批处理系统中因为只有一个进程在内存中,它就会占有机器的所有资源;但是现在有多个进程在内存中,他们需要共享处理机的资源。)
    • 处理机管理:分配和控制CPU(启动调度时哪些进程需要占用哪些CPU)
    • 存储器管理:内存分配与回收(需要给正在运行的进程分别分配哪些空间)
    • I/O设备管理:I/O设备的分配与操纵(哪些进程需要占用哪些IO设备)
    • 文件管理:文件的存取、共享和保护(进程能读写哪些文件,能否同时读写)
    • 作业管理:如何组织作业运行(如何调度进程)
    • 用户与系统的接口问题:如何让用户方便地与操作系统交互。
  • 单道批处理系统和多道批处理系统的异同:本质上就是当前内存中有几个进程正在执行(实际上在内存中的进程就是在执行的进程了)
    • 单道批处理系统
      • notion image
        也就是所有的进程之间都是串行的(是有顺序性的)
      • 用户程序:运行在用户态,负责发起IO请求。监督程序(调度程序):运行在内核态,负责管理和控制I/O操作。I/O操作:由I/O设备(如磁盘、打印机等)执行的实际输入输出操作。时间轴从左到右(t1到t8),表示事件发生的顺序。
      • 流程分析:t0-t1:用户程序发起一个I/O中断请求,表示需要进行I/O操作(如读取文件或写入数据)。这个请求通过中断机制传递给监督程序。t1-t2:监督程序接收到I/O中断请求后,暂停用户程序的执行。监督程序启动I/O操作,将控制权交给I/O设备。t2-t3:I/O操作开始执行,I/O设备(如磁盘)进行实际的数据传输。t3-t4:I/O操作完成后,I/O设备向监督程序发送一个I/O完成信号(I/O完成中断)。监督程序接收到这个信号后,处理I/O完成中断。
    • 多道批处理系统(不抢占)
      • notion image
        在多道批处理系统中存在一个调度程序,负责在程序之间切换,分配CPU资源。能使得多个进程并发执行。
        • 非抢占式调度:程序一旦获得CPU,会一直运行,直到主动释放(例如发起I/O请求或程序完成执行时)。
        • 多道程序并发:多个程序交替使用CPU和I/O设备,当一个程序等待I/O时,CPU立即分配给其他就绪程序,以提高资源利用率。
        • IO请求:程序与外部设备(键盘/鼠标/磁盘)之间的数据传输。输入操作:从外部设备读取数据到计算机内存。输出操作:将数据从计算机内存写入外部设备。
        t1:CPU执行程序A的任务(获得CPU),t2:程序A发起IO请求,CPU释放,IO操作开始。但CPU不会等待IO完成,反而是让其他程序运行,t2时CPU执行程序B的任务。t3:程序B发出IO请求,将CPU释放,CPU执行程序C。………在程序D发起IO请求之后,释放CPU,此时只有A在就绪队列里(多个时应该比较优先级),这个时候CPU处理程序A.当A完成时,释放CPU,此时就绪队列只有C(C的IO完成),然后C再运行。
  • PS:单道批处理系统和多道批处理系统都是非抢占式的(这里讲的都是单核的处理器),因为进程只有当运行结束(需要等待IO等)或者出错的时候才会进行重新调度。也就是说当前的进程只能主动释放CPU,其他的进程是没有办法抢占CPU的。
 

分时操作系统

  • 分时系统的产生:是因为用户要求人机交互、共享主机、便于用户上机(因为分时所以用户的请求相较于单道和多道能够较快的被响应)。如UNIX,MIT。
  • 分时系统实现中的关键问题:
    • 及时接收:实现多个用户的信息及时接收。
    • 及时处理:及时控制作业的运行。
  • 分时系统实现的方法
    • 简单分时系统
    • 简单分时系统(单道分时系统)如下:
      • notion image
        此时在操作系统内部就好像是一个单道系统,因为每一个时刻内存中都只有一个进程,当时间片到达的时候,就需要去外存中取另一个进程。
    • 具有“前台”和“后台”的分时系统
    • 前台后台分时系统如下:
      • notion image
        可以理解为前台服务执行了之后才会执行后台的任务。这个时候操作系统内部就会有两个进程,并且这两个进程的优先级规定很明确(也就是一定要先执行前台然后再执行后台)
    • 多道分时系统
      • notion image
        多道分时就是在某一个时刻内存中可能有多个进程。不难发现,从上到下的区别就是,内存中某时刻应该有几个进程,进程的优先级是否严格规定。
  • 分时系统的特点
    • 多路性:一个主机与多个终端相连(分时服务)
    • 独立性:彼此独立操作,互不干扰(这是一个操作系统最基本的要求吧)
    • 及时性:系统能在很短的时间得到回答
    • 交互性:能实现人机对话(区别于批处理系统)
 

实时操作系统

  • 实时系统的定义:
    • 计算机及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的运行。(及时响应,规定时间内完成,实时控制任务和设备)
  • 实时系统的特点:
    • 多路性:能对多个对象进行控制。
    • 独立性:独立运行,不混淆,不破坏。
    • 交互性:仅限于访问系统中某些特定的专用服务程序。
    • 可靠性:高可靠性,应具有多级容错防护能力。
    • 及时性:不同的系统要求不一样,控制对象必须在截止时间内完成
  • 实时任务的分类:
    • 按照任务执行周期性划分:非周期性任务、周期性任务
    • 按照任务截止时间划分:软实时任务、硬实时任务
 
 

1.3 操作系统的基本特征

  • 并发性(两个基本特征):并发是最重要的特征,其它特征都以并发为前提
    • 并发——并行性和并发性,并发执行的过程。
      • 并行性:是指两个或多个事件在同一时刻发生。 (同时执行,需要多个CPU/核心)
      • 并发性:是指两个或多个事件在同一时间间隔内发生。(交替执行,CPU同一时刻只执行一个任务,但是在任务间快速切换)
      • 任务共行
        • 从宏观上看,任务共行是指系统中有多个任务同时运行
        • 从微观上看,任务共行是指单处理机系统中的任务并发(Task Concurrency:即多个任务在单个处理机上交替运行)多处理机系统中的任务并行(Task Parallelism:即多个任务在多个处理机上同时运行,但每个处理机也只处理一个任务)。
      • 说白了就是任务在一起执行,任务之间可以是并行(多核可能并行,然后对多核中的每一个核上的任务都是并发的),也可以是并发(单核就一定是并发了)
  • 引入进程
    • 程序与进程的区别
      • 程序:静态实体
      • 进程:系统中能独立运行(需要注意的是线程也能独立运行,但是线程是独立运行的基本单位)并作为资源分配的基本单位,由一组机器指令(也就是程序)、数据和堆栈等(还包括了PCB)组成的独立运行的活动实体
  • 引入线程
    • 进程与线程的区别
      • 进程作为资源分配的基本单位
      • 线程作为独立运行和调度的基本单位(线程的资源是从进程上获取的,同一个进程下的线程是在共享进程的资源)
  • 共享性(是两个基本特征之二):是指系统中的资源可供内存中多个并发执行的进程共同使用。
    • 互斥共享方式:
      • 把在一段时间内只允许一个进程访问的资源,称为临界资源。如打印机、栈、表格等
      • 系统中的临界资源可以提供给多个进程使用,但一段时间内仅允许一个进程使用。
    • 同时访问方式:
      • 从宏观上看,资源共享是指多个任务可以同时使用系统中的软硬件资源。
      • 从微观上看,多个进程交替互斥地使用系统中的某个资源。(说白了这个同时访问就是上面的互斥共享,只是宏观上是同时使用某个资源了,例如磁盘)
💡
总结:
并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。
  • 并发是指多个任务在同一时间段内交替执行,共享CPU资源。并发需要共享,没有共享资源,任务之间就无法进行有效的协作和通信。
  • 共享是指多个任务可以访问和使用相同的资源。共享促进并发。
  • 虚拟性:是指通过某种技术把一个物理实体变为(映射为)若干个逻辑上的对应物。
    • 时分复用技术
      • 虚拟处理机:分时实现(本质是时间片轮转任务的快速切换)(操作系统对物理CPU的一种抽象,目的是让多个进程或线程“看似”同时运行在独立的CPU上。)
      • 虚拟设备:SPOOLING技术
    • 空分复用技术
      • 虚拟磁盘技术:逻辑分区
      • 虚拟存储器:虚拟存储管理实现
      • (这俩有什么区别吗...虚存不就是将硬盘,或者说外存上的一段进行分区然后映射成主存来扩展了内存吗)
  • 异步性
    • 执行结果不确定,程序不可再现。(因为程序的执行顺序不确定,是异步的,所以结果才会不确定)
    • 异步性:多道程序环境下程序(进程)以异步的方式执行,每道程序在何时执行、各自执行的顺序、完成时间都是不确定的,也是不可预知的。(也就是说如果不去给进程加限制的话,进程之间的执行就是异步的。所以为了使结果确定,并且让程序正常执行,需要给一些进程加上必要的限制,也就是进程同步
    • 所以说异步性是牺牲了程序的顺序这些来换取了性能,我们在这个基础上为了保证程序执行结果是我们想要的,就要加上同步。即在进行进程同步的时候需要最大限度保证异步性,这样性能才是最高的
 
 

1.4 操作系统的主要功能

实际上也就是操作系统的作用——管理硬件资源、提供接口、做扩充机
操作系统的功能:
  • 处理机管理(CPU)
  • 存储器管理
  • 设备管理
  • 文件管理
  • 提供方便用户使用的用户接口。
其中1-4是管理硬件资源(CPU\内存\IO设备),最后一点是提供接口,做扩充机:通过虚拟化技术,操作系统将物理资源映射为多个逻辑资源,从而扩展了计算机的能力。
 
 

1.5 操作系统的结构设计

这玩意应该不考,稍微看一下就好了
  • 传统操作系统结构
    • 第一代的OS是无结构的;
      • 无结构OS简介:在早期开发操作系统时,设计者只是把他的注意力放在功能的实现和获得高效率上,缺乏首尾一致的设计思想。那时的OS是为数众多的一组过程的集合,各过程之间可以相互调用,在操作系统内部不存在任何结构,因此,有人把它称为整体系统结构
      • 无结构OS缺陷:
        • 设计出的操作系统既庞大又杂乱,缺乏清晰的程序结构。
        • 编制出的程序错误很多,给调试工作带来很多困难;增加了维护人员的负担。
    • 第二代OS采用了模块式结构;
      • 模块式结构简介:使用分块结构的系统包含若干module(模块);其中,每一块实现一组基本概念以及与其相关的基本属性。
        • 块与块之间的相互关系所有各块的实现均可以任意引用其它各块所提供的概念及属性。
      • 模块式结构如下图:
        • notion image
      • 模块式OS的优点:
        • 提高了OS设计的正确性、可理解性可维护性
        • 增强了OS的可适应性。
        • 加速了OS的开发过程。(每个模块可以独立开发和测试,因此更易于并行开发。)(分层结构:层与层之间存在调用关系,可能会增加并行开发的复杂性。)
      • 模块式OS的缺点:
        • 对模块的划分及对接口的规定要精确描述很困难。
        • 从功能观点来划分模块时,未能将共享资源和独占资源加以区别。
    • 第三代是层次式结构
      • 层次式结构简介:▪使用分层系统结构包含若干layer(层);其中,每一层实现一组基本概念以及与其相关的基本属性。()
        • 层与层之间的相互关系:
          • 所有各层的实现不依赖其以上各层所提供的概念及其属性,只依赖其直接下层(注意是直接下层)所提供的概念及属性;
          • 每一层均对其上各层隐藏其下各层的存在。
      • 层次的设置时应考虑的几个因素(稍微看看)
        • 程序嵌套。通常OS的每个功能的实现,并非是只用一个程序便能完成的,而是要经由若干个软件层才有可能完成,因此在考虑实现OS时,每个功能可能形成的程序嵌套。
        • 运行频率。将那些经常活跃的模块放在最接近硬件的层
        • 公用模块。把供多种资源管理程序调用的公用模块,设置在最低层,以便调用。
        • 用户接口。命令接口、程序接口以及图形用户接口。这些接口应设置在OS的最高层,直接提供给用户使用。
      • 有一些OS也是模块+层次结构:
        • notion image
      notion image
      A.模块化结构将软件划分为独立的模块,每个模块可以独立开发和测试,因此更易于并行开发。分层结构虽然也有一定的独立性,但层与层之间存在调用关系,可能会增加并行开发的复杂性。B.整体式结构通常更紧凑,函数调用开销小,因此可能具有更好的系统性能。C.分层结构将系统划分为多个层次,每个层次具有明确的接口和职责。D.分层结构的设计原则是高层可以调用低层,但低层不应直接调用高层。
       
  • 现代OS结构是微内核结构
    • 微内核结构简介:所谓微内核技术,是指精心设计的、能实现现代OS核心功能的小型内核,它与一般的OS(程序)不同,它更小更精炼,它不仅运行在核心态,而且开机后常驻内存, 它不会因内存紧张而被换出内存(当进程需要东西的时候,传统操作系统中的一部分长时间无用的部分会被换出内存。这种情况感觉在虚存中的情况比较多。对机器而言,它只知道在内存中的才能执行,通过虚存可以让机器认为一部分外存也是内存。这个时候机器的一个在存储器上的数据移动指令就有可能将进程,甚至是操作系统部分移出真正的内存)
    • 微内核结构的特点
      • 足够小的内核(因为要常驻内存,原有操作系统的大部分都被移动到用户空间)
      • 基于客户/服务器模式(客户发出系统调用就相当于是发出请求,然后系统需要进行模式的切换,内核处理后再将结果返回;用户模块间的通信也是使用消息传递。这不就是纯纯客户端服务器吗)
      • 应用“机制与策略分离”原理(从字面上来理解,机制是不能改的,但是策略是我们自己指定的。在微内核中最基本的操作系统功能就是机制,这些被写在微内核中;而策略就是比较高级的操作系统功能,这些被转移到了用户的空间。所以是机制和策略分离)
      • 采用面向对象技术
    • 微内核结构的优点:灵活/安全…
    • 微内核结构的缺点:性能(客户端服务器模式OS的通病)
  • 客户/服务器模式OS
    • 客户服务器OS如下图:
    • notion image
      这里就相当于用户的进程是一个“客户”,而操作系统就相当于是一个服务器去服务一个个客户,也就是去执行一个个进程,但是这之间的执行关系是需要有类似web中的发送请求应答机制,所以这种模式被称为客户服务器模式。
    • 客户服务器模式OS优点(Client-Server Model)
      • 提高了系统的可扩展性(想要增加操作系统功能的时候就直接再搭一台“服务器”就好了)
      • 增强了系统的可靠性(通过应答机制来实现进程调度就更可靠)
      • 可移植性好
      • 提供了对分布式系统的支持(可以让不同的“服务器”在不同的物理机器上)
    • 客户服务器模式OS缺点
      • 运行效率有所降低:消息传递开销+模式切换开销
  • 面向对象的程序设计技术(这玩意PPT上甚至没有提到操作系统,感觉没啥用。可能意思是在设计操作系统的时候使用面向对象的程序技术吧)(Object-Orientated Programming)
    • 面向对象技术的基本概念:所谓对象,是指在现实世界中具有相同属性、服从相同规则的一系列事物的抽象。其中的具体事物称为对象的实例。OS中的各类实体如进程、线程、消息、存储器等,都使用了对象这一概念,相应地,便有进程对象、 线程对象、 存储器对象等。
    • 面向对象技术的优点
      • 可修改性和可扩充性。由于隐蔽了表示实体的数据和操作,因而可以改变对象的表示而不会影响其它部分, 从而可以方便地改变老的对象和增加新的对象
      • 继承性。继承性是面向对象技术所具有的重要特性。继承性是指子对象可以继承父对象的属性,这样,在创建一个新的对象时, 便可减少大量的时空开销
      • 正确性和可靠性。由于对象是构成操作系统的基本单元,可以独立地对它进行测试,这样,比较易于保证其正确性和可靠性,从而比较容易保证整个系统的正确性和可靠性
 
 
 
 

习题

1.
notion image
答:操作系统是覆盖在硬件上的第一层软件,它管理计算机的硬件和软件资源,并向用户提供良好的界面。操作系统与硬件紧密相关,它直接管理着硬件资源,为用户完成所有与硬件相关的操作,从而极大地方便了用户对硬件资源的使用,并提高了硬件资源的和用率。操作系统是一种特殊的系统软件,其他系统软件运行在操作系统的基础之上,可获得操作系统提供的大量服务,也就是说,操作系统是其他系统软件和硬件之间的接口。而一般用户使用计算机除了需要操作系统支持外,还需要用到大量的其他系统软件和应用软件,以使其工作更加方便和高效。可见,硬件、操作系统、其他系统软件、应用程序和用户之间存在着图1.1所示的层次关系。
 
 
 
2.(最好不看这个题目,很神奇的多道运行但抢占式)
notion image
notion image
注意:当A进行第二次的计算即(70~80ms)时,B虽然此时占领CPU,但是考虑到题目的优先次序执行,这个时候应该CPU应该让给A执行。然后A完成执行释放CPU,CPU继续执行B程序20ms。然后B第一次计算结束时释放CPU,CPU执行C程序20ms后,C需要执行40ms的IO操作,但是此时B正在执行IO操作以及优先级顺序。所以C先需要排队,等待B执行完IO操作130ms时,再执行IO操作。
严格按照非抢占式来说,
30~70msCPU空闲时,选择程序B(优先级更高),在B占用CPU时,A执行完IO操作后(30~70ms),应该进入就绪队列等待B完成计算(30~90ms),然后选择A执行10ms计算(优先级更高)(90~100ms)。B在IO操作(90ms~120ms),此时CPU空闲,就绪队列里选择任务C执行(100ms~120ms),120ms时B完成IO,进入就绪队列,C执行IO(120ms~160ms),然后CPU执行B(120~130ms),然后C完成IO,CPU计算(160~180ms)。
 
3.
notion image
分析如下:
0~60ms:CPU计算P1,然后发起IO请求80ms(60~140ms)
60~120ms:CPU空闲执行P2(P2在5ms到达,CPU被P1占用。从60ms开始执行P2到180ms完成,释放CPU,P2进入IO(180~220ms))
180~200ms:CPU空闲,执行P1第二次计算。在200ms时,就绪队列没有任何任务,CPU等待。
220~260ms:P2完成IO进入就绪队列,此时CPU空闲,执行P2
 
4.
notion image
答案:
在单道批处理系统中,至少执行40min;(所有时间相加即可)
在多道批处理系统中,至少执行24min。多道批处理系统中的两种可能执行情况(也就是谁先谁后。这里由于题目中没有优先级的概念,所以都是非抢占的)
如下:图1为A先执行。CPU计算A任务:19min,A发起IO请求(打印)释放CPU(19~21min);CPU执行B任务:3min,(19~22min),21min时完成IO操作,A进入就绪队列,等待B计算完成。B发起IO请求,释放CPU(22min~38min),A已完成。那就等待B完成IO就好。
图2:CPU先计算B(3min),IO请求(3min~19min),释放CPU执行A(3~22min),执行AIO(22min~24min)
notion image
PS:如果是第一章的这种甘特图的题,就不考虑抢占了
 
问答题:
notion image
notion image
Chapter4:Software System第二章:进程与线程管理
Loading...
🐟🐟
🐟🐟
在坚冰还盖着北海的时候,我看到了怒放的梅花
最新发布
第1章:计算机网络概述
2025-6-30
2-6-1 uC/OSII 在STM32上的移植
2025-6-23
1-6 定时器与PWM
2025-6-21
一些工具
2025-6-21
第5章:链路层和局域网
2025-6-19
第4章:网络层
2025-6-19
公告
🎉 欢迎来到鱼鱼的博客~ 🎉
--- 很高兴认识你~ ---
👏一起成为理想中的自己吧!👏