深入理解Windows操作系统机制(三)-LMLPHP

 我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Windows这个我们熟悉的不能再熟悉的系统。

我们每天都在用Windows操作系统,但是其实我们每天直接在打交道的并不是Windows操作系统的内核,而是Windows操作系统的人机交互界面,这个界面其实只是Windows操作系统的一个组件,在Linux上,我们使用Linux系统所使用的界面则只是Linux系统上的一个程序。所以说,我们接触的并不是这些系统的内核。久而久之,我们基本会慢慢把界面里所展示的直观的东西误认为是Windows操作系统本身,其实这是不对的。

我们来重新审视Windows操作系统,看看Windows操作系统本身典型特征和主要功能。由Windows操作系统的功能,可以知道Windows操作系统提供的服务有下面这些:提供了一个用以执行程序的环境,提供的服务有程序执行、I/O操作、文件操作、资源分配与保护、错误检测与排除等。

Windows操作系统借用了多道程序设计的理念,所谓多道程序设计技术就是指在内存中同时存放两道或两道以上的作业,这些作业同时处于运行状态,且它们在管理程序控制下,相互穿插运行。这些作业共享处理器、外设以及其他资源。

Windows操作系统的中断处理程序只能是操作系统程序,不可能是应用程序。中断处理属于系统中会对系统产生重大影响的动作,因此只允许核心态程序执行。而应用程序通常指用户程序,运行在用户态下,不能进行这些操作。

操作系统的主要功能包括处理器(CPU)管理、存储器管理、文件管理和设备管理。数据管理属于文件管理的范畴。网络管理不是操作系统的功能。

30.B。考查并行和并发的概念,多重处理即并行执行,多任务处理即多个进程并发执行。操作系统既可以支持并发执行也可以支持并行执行,A正确。并行执行与并发执行不存在包含关系,B错误。在同一时间间隔内,系统中同时运行多个进程是并发执行的基本概念,C正确。一个CPU可以采用多核架构,可以实现并行执行,D正确。



  31.A。考查操作系统的基本特征。并发性是指宏观上在一段时间内有多道程序在同时运行,但在单处理器系统中,每一时刻仅有一道程序在执行,故微观上这些程序是交替执行的。本题中提到两个或两个以上进程在执行时间上有重叠,即符合并发性的定义,故选A。
  32.【解析】采用层次结构方法可以将操作系统的各种功能分成不同的层次,即将整个操作系统看作由若干层组成,每一层都提供一组功能,这些功能只依赖于该层以内的各层次,最内层部分是机器硬件本身提供的各种功能。操作系统的这种层次结构如图1-8所示。图1-8中,同机器硬件紧挨着的是操作系统的内核,它是操作系统的最内层。内核包括中断处理、设备驱动、CPU调度以及进程控制与通信等功能,其目的是提供一种进程可以存在和活动的环境。内核以外依次是存储管理层、IO管理层、文件管理层、作业管理层、命令管理层。它们提供各种资源管理功能并为用户提供各种服务。命令管理层是操作系统提供给用户的接口层,因而在操作系统的最外层。
  命令管理层
  作业管理层
  文件管理层
  I/O管理层
  存储管理层
  中断处理、设备驱动、进程
  控制与通信、CPU调度等
  裸机
  图1-8计算机层次
  从描述可以看出,按层次结构原则,计算机层次从内到外依次为:裸机、CPU调度、内存管理、设备管理、文件管理、作业管理、命令管理、用户。
  33.【解析】若采用单道方式运行这3道程序,则运行次序为A、B、C,即程序A先进行30ms的计算,再完成40ms的I/O操作,最后再进行10ms的计算;接下来程序B先进行60ms的计算,再完成30ms的I/O操作,最后再进行10ms的计算;然后程序C先进行20ms的计算,再完成40ms的I/O操作,最后再进行20ms的计算。至此,3道程序全部运行完毕。

  操作系统高分笔记(2022版天勤第10版)
  7
  若采用多道方式运行这3道程序,因系统按照A、B、C的优先次序执行,则在运行过程中,无论使用CPU还是1/O设备,A的优先级最高,B的优先级次之,C的优先级最低,即程序A先进行30ms的计算,再完成40ms的1O操作(与此同时,程序B进行40ms的计算),最后再进行10ms的计算(此时程序B等待,程序B的第一次计算已经完成40ms,还剩余20ms);接下来程序B先进行剩余20ms的计算。再完成30ms的I/O操作(与此同时,程序进行20m计算然后等待0各最后行ms的计算(此时程序C执行VO操作10ms,其I/O操作还需 30ms);然后程序C先进行 30ms的I/O操作,最后再进行20ms的计算。至此,3道程序全部运行完毕。
  单道方式运行时,其程序运行时间关系图如图1-9所示,总运行时间如下:
  (30+40+10+60+30+10+20+40+20)ms=260ms
  B
  C
  A
  1O
  BC
  C
  B
  计算
  A
  A
  24
  0
  70
  80
  140
  170 180
  200
  240
  260
  t/ms
  图1-9单道方式运行时的程序运行时间关系图
  多道方式运行时,其程序运行时间关系图如图1-10所示,总运行时间如下:
  (30+40+10+20+30+10+30+20)ms=190ms
  VO
  A
  B
  计算
  A
  B
  A
  B
  B
  0
  30
  7080
  100
  120
  130140
  170
  190
  t/ms
  图1-10
  多道方式运行时的程序运行时间关系图
  34.【解析】只有当所有进程都在等待I/O时,CPU才会空闲下来。因此需要算出所有进程都在等待I/O这种情况发生的概率。本题给出的条件为“用户进程等待1/O的时间为80%”,也就是说进程等待I/O的概率为80%,那么n个进程都同时等待I/O的概率就为(80%),则CPU的利用率u可表示为
  u=1-(80%)"=1-(0.8)"
  在内存为32MB时,可容纳(32-2)/10=3个用户进程,CPU利用率为=1-(0.8)³-48.8%
  在内存再增加32MB时,可容纳(32+32-2)/10=6个用户进程,CPU利用率为и=1-(0.8)6=73.8%

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。

07-16 10:10