计算机操作系统相关知识搜集(内容少有原创,摘自网易公开课)

操作系统的重要组成(7个)

A.进程调度子系统。(负责管理进程、调度进程)

B.进程通信子系统。(负责进程间通信的解决方案)

C.内存管理子系统。(负责管理内存与虚存)

D.设备管理子系统。(负责管理各类外围设备的使用)

E.文件管理子系统。(负责管理文件信息、提供系统调用)

F.网络通信子系统。(负责实现网络操作系统)

G.作业控制子系统。(提供用户操作计算机系统)

 

操作系统的类型(2类)

从控制方式看(3种):

A.多道批处理操作系统,采用脱机控制方式。(脱机:程序员通过“作业说明书”的方式来描述对作业的控制方式,而操作员负责成批的加载作业,控制计算机系统。对于程序员来说,他不直接控制操作系统,所以这种控制方式称为脱机控制方式。)

B.分时操作系统,采用交互控制方式。(我们现在所使用的终端,鼠标的交互式的控制方式,它就是典型的分时操作系统。)

C.实时操作系统。(它既支持分时的交互式操作,同时又有大量的进程待命以处理突发的实时任务。)

从应用领域看(4种):

A.服务器操作系统,并行操作系统

B.网络操作系统,分布式操作系统。(网络操作系统与分布式操作系统的一个区别在于透明与非透明。分布式操作系统是透明的。)

C.个人操作系统,手机操作系统

D.嵌入式操作系统,传感器操作系统

 

操作系统的资源  (2类)                                                                                                                   

A.硬件资源:处理器、内存、外设。

B.软件资源:数据、程序。

 

管理计算机系统的软硬件资源(5类)

A.处理器资源管理:哪个程序占有处理器运行?(即,对处理器资源的管理。)

B.内存资源管理:数据/程序在内存中如何分布?(即,对内存资源的管理。)

C.设备资源管理:如何分配和使用设备?(即,对设备资源的管理。)

D.信息资源管理:如何访问文件信息?(即,对信息资源的管理。)

E.信号量资源管理:如何管理进程间的通信?(即,对信号量资源的管理。)

 

对资源管理来说,最基本的工作是屏蔽资源管理使用的底层信息。计算机系统在用户编程时,不仅需要和处理器打交道,还要和各种资源的运用细节打交道。但是,这些细节数量庞大,常常是人力所不能及的。因此,引用设备驱动程序来屏蔽最底层的硬件使用信息。

 

屏蔽资源使用的底层细节

设备驱动程序:最底层的、直接控制和监视各类硬件(或文件)资源的部分。其作用是:隐藏底层硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。

 

资源的共享与分配方式

资源共享方式(2种)

A.独占使用方式。(在一个时间段内只能被一个运行程序独占使用。)

B.并发使用方式。(在一个时间段内允许多个运行程序请求使用。)

 

资源分配策略(对于独占资源就必须进行分配)(3类)

A.静态分配方式。(一个运行程序进入内存前,它所需要的所有资源都分配好了。好处:在这种方式下不会发生死锁。坏处:效率低。)

B.动态分配方式。(对静态分配效率低的改进,谁用谁分配。但是,动态分配方式容易产生死锁。)

C.资源抢占方式。(优先级高的运行程序可以抢占优先级低的运行程序的资源,效率较高,不会产生死锁。但是,对于被抢占资源的运行程序来说,如何回滚是它的一个不利特点。)

 

多道程序同时计算

原因:CPU与I/O速度不匹配的矛盾非常突出。

解决方案:只有让多道程序同时进入内存争抢CPU运行,才能够使得CPU和外围设备充分并行,从而提高计算机系统的使用效率。

 

多道程序同时计算的宏观分析(5步)

第一步:甲、乙两道程序。(执行时有冲突。)

第二步:两道程序独占计算机单道运行时间均为1小时,占用CPU时间均为18分钟,CPU的利用率均为30%。

第三步:按多道程序设计方法同时运行,CPU利用率为50%(因为执行时有冲突,故不可能是代数相加后的60%),由于要提供36分钟的CPU时间,大约运行72分钟。考虑到OS调度开销,实际时间还要长一些,假设为80分钟。

第四步:就处理两道程序而言,效率提高了33%。

第五步:就单道作业而言,执行时间延长20分钟,即延长了33%的执行时间。

总结:但是对于两个程序而言,80分钟的时间把两个程序执行完了,而不是120分钟。故,宏观来看总体时间缩短了,但是从微观看来,每个单道程序的执行时间却延长了。而对于不冲突的两个单道程序而言,从宏观来看总体时间缩短了,从微观来看执行时间无变化。

 

多道程序设计的概念

让多个程序同时进入计算机的主存储器(即内存)进行运算。

 

多道程序设计的优点(亦即特点)(4点)

A.CPU与外部设备充分并行

B.外部设备之间充分并行

C.提高CPU的使用效率

D.增加单位时间内的计算量

 

多道程序系统的实现(3个)

A.为进入内存执行的程序建立管理实体进程

B.OS应能管理与控制进程程序的执行

C.OS协调管理各类资源在进程间的使用。(又分3点)

  a.处理器的管理和调度

  b.主存储器的管理和调度

  c.其他资源的管理和调度。(例如,外设资源。)

 

多道程序的实现要点(4点)

A.如何使用资源:调用操作系统提供的服务例程(通过调用操作系统提供的服务来解决陷入系统问题。)

B.如何复用CPU资源:调度程序(在CPU空闲时,选择一个运行进程去占有CPU。这就是进程调度!)

C.如何使CPU与I/O设备充分并行:需要引入设备控制器、甚至是通道(专用的I/O处理器。)

D.如何让正在运行的程序让出CPU:中断(任何一个程序在程序设计时,在其执行时是不可能主动让出CPU的,这种情况就是有也是非常极端的。绝大多数情况是通过硬件所设计的中断进程来使正在运行的进程让出CPU!)

 

计算机系统操作方式

A.OS(操作系统)规定了合理操作计算机的工作流程。

B.这样的工作流程是由OS(操作系统)的操作接口(即,系统程序)所提供的。

  a.OS(操作系统)提供给用户的功能级接口,为用户提供的解决操作计算机和计算共性问题的所有服务的集合。

C.OS(操作系统)程序包括两类作业级接口

  a.脱机作业控制方式作业控制语言

  b.联机作业控制方式操作控制命令

 

脱机作业方式

A.OS(操作系统):由操作系统提供一个叫做作业说明语言的控制程序包。

B.用户:用作业说明语言来编写作业说明书,确定作业加工控制步骤,并与程序数据一并提交。

C.操作员:将从程序员那里接收的作业说明书程序和数据,通过控制台成批的输入作业。

D.OS(操作系统):通过作业控制程序自动控制、解释作业说明书,从而使得作业能够自动的执行。

总结:脱机作业控制方式是批处理操作系统的作业控制方式。现如今这种操作系统很少见。但是,依旧保留着这种脱机作业控制方式的影子。例子:UNIX的shell程序、DOS的bat文件。

 

联机作业控制方式

计算机:提供终端。(键盘、鼠标、显示器。)

用户:登录计算机系统。

OS(操作系统):提供命令解释程序(允许用户输入命令。)

用户:通过联机的输入命令,直接控制作业步的执行。(一个命令执行一次。)

总结:我们现在使用的图形化工作方式,其实是把这样的命令图形化而已,其本质还是联机作业控制方式。例如:分时OS(操作系统)的交互控制方式。

 

无论是脱机作业控制方式还是联机作业控制方式,它们都需要提供对命令的解释。这样的命令可能是一个作业步,也可能是一条输入的命令,或者是我们双击鼠标提交的命令。

 

命令解释程序

概念:它是接受和执行一条用户提出的对作业进行加工和处理的命令。(或称为程序包。)

作用:当一个新的批作业被启动,或新的交互型用户登录操作系统时,操作系统就会自动地执行命令解释程序的主框架,负责读入控制卡或命令行,做出相应的解释,并予以执行。

会话语言:可编程的命令解释程序。

总结:如今,命令解释程序已经扩大到图形化的命令控制方式,甚至是多通道交互的命令控制方式。

 

一个命令解释程序无论以何种形式(脱机、联机、图形化、多通道)表现出来,它的处理过程都是类似的。

 

命令解释程序的处理过程

A.OS(操作系统)先启动命令解释程序,输出命令提示符,等待键盘中断输入一条命令、批处理作业中的一个行接收符、鼠标双击一个图标(选择一个菜单项)、多通道模式识别。

B.每当用户输入一条命令(暂存在命令缓冲区)并按回车换行时,申请中断.

C.CPU响应后,将控制权交给命令解释程序,接着读入命令缓冲区内容,分析命令,接受参数,执行处理代码。

 

前台命令和后台命令

在操作和控制计算机时,有前台和后台的区别。

A.前台命令:命令之间必须严格的按序执行。(即,一个作业步接着一个作业步的顺序执行或者一个命令接着一个命令的顺序执行。)

B.后台命令:当一个命令启动后,无论它是否执行结束都可以接收下一条命令。

 

操作系统的人机交互部分

A.操作系统的人机交互部分用于改善人机界面,为用户使用计算机提供良好的环境

B.人机交互设备包括传统的终端设备新型的模式识别设备

C.操作系统的人机交互部分用于控制人机交互设备的运行理解并执行人机交互设备传来的命令

D.人机交互功能是决定计算机系统友善性的重要因素,也是当今操作系统的研发热点

 

计算机最早的控制方式是简单批处理控制方式和多道批处理操作系统方式引进的脱机控制方式。1960年后,分时操作系统的出现带来了人机交互的概念。但最初的人机交互是非常简单的,它是行命令控制方式(整个屏幕只有一行命令,编译一个文件时只能一行一行的编译。)进入1970之后,出现了全屏幕控制方式(编译一个文件时,成批的处理。)

 

人机交互控制方式

A.行命令控制方式

B.全屏幕控制方式

 

斯坦福研究所提出的发展计划

A.始于1960年代,1980年代广泛应用。

B.强调人机交互的中心是人,而不是技术或设备。

C.代表性成果:鼠标、菜单和窗口控制(单窗口)。

 

人机交互的发展 ------WIMP界面

A.缘起:70年代后期Xerox的原型机Star。

B.特征:窗口(Windows)、图标(Icons)、菜单(Menu)和指示装置(Pointing Devices)为基础的图形用户界面WIMP。

C.得益:Apple最初采用并大力推动。

D.时间:1990年代开始广泛使用。

E.不足:不允许同时使用多个交互通道,从而产生人机交互的不平衡。

 

为了支持多通道交互,有两类系统。

 

人机交互的发展------多媒体计算机系统(第一类系统)

A.缘起:1985的MPC。(多媒体个人计算机。)

B.设计思路:把音频视频、图形图像和人机交互控制结合起来,进行综合处理的计算机系统。(为了实现这样的人机交互方式,就需要一个综合的多媒体硬件平台。包括在处理器、总线和内存方面考虑如何调整计算机系统的设备的设置。)

C.构成:多媒体硬件平台、多媒体OS(操作系统)、图形用户接口、多媒体数据开发工具。

D.功能:提供与时间有关的时变媒体界面。(时变媒体:既控制信息呈现,又控制信息何时呈现以及如何呈现。)

总结:人机交互界面需要使用多种媒体,同时支持多种通道交互整合,改善用户体验。

 

人机交互的发展------虚拟现实系统(第二类)

A.缘起:1980年代的虚拟现实新型用户界面。

B.VR技术:VR通过计算机模拟三维世界。VR技术基本思路:根据观察点观察点改变的导航对周围对象的操作,在三维空间中模拟临境(身临其境)的感觉。(因此,虚拟现实系统又称为临境系统。)

C.支持:多通道交互整合,提供良好的用户体验。以及支持用户主动参与的高度自然的三维HCI,以及语音识别、头部跟踪、视觉跟踪、姿势识别等新型HCI。允许用户产生模糊、不精确的输入。

总结:VR 是 Virtual Reality 的简称,直接翻译成中文就是“虚拟现实”。

 

操作系统的程序接口(又称为:系统调用)

概述:它是操作系统实现某种特定功能的过程;为所有运行程序提供访问操作系统的接口。

 

系统调用的实现机制

A.陷入处理机制:计算机系统中控制和实现系统调用的机制。(它是一种硬件机制。作用是使得用户程序陷入操作系统,请求操作系统为其服务。)

B.陷入指令:也称为访管指令,或异常中断指令。是计算机系统为系统调用而引起处理器中断的指令。(其作用是为了触发陷入处理机制。)

C.系统调用编号:每个系统调用都事先规定了编号,并在约定寄存器中规定了传递给内部处理程序的参数。

 

系统调用的实现要点

A.编写系统调用处理程序

B.设计一张系统调用入口地址表, 每个入口地址指向一个系统调用处理程序,并包含系统调用自带参数的个数

C.陷入处理机制需要开辟现场保护区,以保存发生系统调用时的处理器现场。

 

系统调用的流程是由计算机硬件和操作系统软件共同完成的。陷入是由硬件完成的,具体的查找入口地址、系统调用服务的处理是由操作系统软件来做的。

 

处理部件的简单示意

  CPU包括算术逻辑单元和控制逻辑单元。控制逻辑单元中的一个主要组成部分是指令译码器【ID】(负责指令的执行),指令放在指令寄存器【IR】(负责指令的存放)当中。程序计数器【PC】指向下一条要执行指令的内存地址。算术逻辑单元在执行完成后,将会把结果汇总到标志寄存器【flag】中。通过内存地址寄存器【MAR】和内存数据寄存器【MDR】来实现指令对内存数据的访问。

  上述关键部件(算术逻辑单元、指令译码器、指令暂存器、程序寄存器、标志寄存器、内存地址寄存器、内存数据寄存器)由CPU得内部总线连在一起。【上述关键部件都在CPU内部,尤其是内存地址寄存器、内存数据寄存器,不要以为带内存两个字就是内存中的。】

  CPU通过系统总线来访问主存储器【即,CPU和主存是挂在系统总线上的。】要访问内存的数据时,要设置好地址和数据,然后根据控制发出信号来完成数据的读取或者是写回。

  时钟等外部信号通过控制单元来反映到处理器现场当中。

  CPU在工作时,在其内部还有与I/O设备交互的部件(但是常常在CPU的简明示意图中没有画出。)例如,I/O地址寄存器【IOAR】和I/O数据寄存器【IODR】。在程序设计时,还会用到数据寄存器、地址寄存器和Cache等。

  由此可以看出,一个CPU现场当中Cache、寄存器以及连接线路的多寡直接决定了这个CPU的计算性能及其造价。

 

编程会用到的寄存器有两类。第一类就是用户可见寄存器(即,在机器语言编程中经常会用到的一系列的通用寄存器&地址寄存器等等。),第二类是控制与状态寄存器。

 

用户可见寄存器

A.作用:可以使程序员减少访问主存储器的次数,提高指令执行的效率。

B.分类:第一类是数据寄存器。(用来存储数据的,也称为通用寄存器。例如,通常所说的AX、BX、CX、DX。)第二类是地址寄存器。(有3类:①索引寄存器【SI、DI】②栈指针寄存器【SP、BP】③段地址寄存器【CS、DS、SS、ES】)

 

控制与状态寄存器

A.作用:用于控制处理器的操作;主要被具有特权的操作系统程序使用,以控制程序的执行。(程序计数器【PC】、指令寄存器【IR】都属于控制与状态寄存器。)

B.细节:控制与状态寄存器还要记住一些指令执行的关键状态(例如,条件码CC:它是CPU为指令操作结果设置的位,标志正/负/零/溢出等结果。还有类似的标志位:中断位【现在有没有中断发生、有的话中断源是什么?】、中断允许位【有中断请求,现在是否要响应中断?】、中断屏蔽位【是否要暂时屏蔽一个中断?】、处理器模式位【当前处理器处于何种模式】、内存保护位【对一段内存读写以及访问权限的设置】等等。)

 

程序状态字PSW

程序状态寄存器既是操作系统的概念,指记录当前程序运行的动态信息,通常包括:程序计数器、指令寄存器、条件码、中断字、中断允许/禁止、中断屏蔽、处理器模式、内存保护、调试控制。(上述部分构成了一个操作系统的概念,它们记录了当前程序运行的动态信息。);同时PSW也是计算机系统寄存器的概念,是计算机系统专门设置的一组控制与状态寄存器。

 

机器指令

A.概念:机器指令是计算机系统执行的基本命令,是中央处理器执行的基本单位。

B.组成:任何一条机器指令是由一个或多个字节组成的,包括操作码字段、一个或多个操作数地址字段、以及一些表征机器状态字的状态字还有特征码。

C.功能:计算机指令完成各种算术逻辑运算、数据传输、控制流跳转等。

 

机器指令的执行过程

CPU中的控制单元根据程序计数器【PC】取出指令,放入指令暂存寄存器【IR】中,然后对执行机器指令进行译码,进而发出各种控制命令,执行一系列的微操作,从而完成对一条指令的执行。

 

不同的计算机会对计算机指令的执行会细分成不同的方式,下面是一种常用的方式(3步)。

A.取指:把机器指令从程序计数器【PC】或高速缓冲寄存器中取出,放入到指令暂存寄存器【IR】中。(这个工作由谁来完成的?

B.解码:由解码器来解译指令暂存寄存器【IR】中的机器指令,从而决定其执行行为。

C.执行:连接到CPU的各个部件,执行运算,产生结果并写回;同时在CC位中设置运算结论的标志;也需要调整程序计数器【PC】,跳转指令会重新设置程序计数器【PC】的值(要跳转到的值),其他指令递增程序计数器【PC】的值。(这个工作由哪些部件完成的,特别是第一步链接各个部件?

 

指令周期

取指解码执行

 

指令流水线

  取指解码执行

       取指解码执行

        取指解码执行

 

特权指令与非特权指令

原因:用户程序并非能够使用全部的机器指令,那些与计算机核心资源相关的特殊指令会被保护。比如,启动I/O指令、置PC指令等等。也就是说,与核心资源相关的指令只能被操作系统使用。

特权指令:只能被操作系统内核使用的指令。

非特权指令:能够被所有程序使用的指令。(疑问:系统程序也可以使用非特权指令?)

 

操作系统通过处理器模式位来界分特权指令与非特权指令的执行。

 

处理器模式

A.概述:计算机系统通过设置特权处理器模式位和非特权处理器模式位来实现特权指令与非特权指令在执行上的管理。

B.分类:现在计算机系统一般设置了4个处理器运行模式(分别为0、1、2、3)。一般对应为:0---操作系统内核、1---系统调用、2---共享库程序、3---用户程序。

C.补充:0模式可以执行全部指令、3模式只能执行非特权指令、其他两种模式执行规定的指令集。一般来说,现代操作系统只是用0和3两种模式(对应于内核模式和用户模式),而不使用1和2模式。只是简单的将指令分为特权指令和非特权指令。

 

处理器模式的切换(简称:模式切换)
概述:包括“用户模式”—>“内核模式”【即,3模式到0模式。】和“内核模式”—>“用户模式”【即,0模式到3模式】的转换。模式切换不是用户程序能够使用的,是由操作系统建议计算机系统所设计的硬件机制来完成模式的切换。

只有中断、异常或系统异常这3个事件能够导致用户程序向操作系统内核的切换,触发由用户模式到内核模式的正向模式切换。

  中断:程序运行时发生并响应中断。

  异常:程序运行时发生异常。

  系统异常:程序请求操作系统服务。

操作系统内核处理完成后,调用中断返回指令来触发:内核模式”—>“用户模式。

 

中断的概念

中断分为广义的中断和狭义的中断。

狭义的中断

概念:源自于处理器之外的中断事件,即与当前运行指令无关的中断事件。如I/O中断、时钟中断、外部信号中断等。

 

广义的中断

概念:指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。

异常:指当前运行指令引起的中断事件。如地址异常(要访问的数据在虚存内,将虚存内的数据调入主存也属于地址异常)、算术异常、处理器硬件故障等。

系统异常:指执行陷入指令而触发系统调用引起的中断事件,如请求设备、请求I/O、创建进程等。系统异常与硬件无关,它是操作系统为用户提供服务而设计的。

重要概念:只有通过中断用户程序才能切换到内核程序中,之后操作系统再挑选另一个用户程序运行,从而实现用户程序的切换。

重要描述:中断是激活操作系统的唯一方式。  

 

中断系统

概念:它是计算机系统响应和处理中断的系统,包括硬件子系统和软件子系统两部分。

中断响应由硬件子系统完成。

中断处理由软件子系统完成。

 

中断响应处理与指令执行周期

A.实现方法:在指令执行周期最后增加一个微操作,以响应中断。

B.具体过程:每条指令在执行完成后检查现在是否允许中断。如果中断不被允许,那么接着执行下一条指令。而在大多数情况下中断是开放的,那么就会进入第四个周期来检查是否有中断出现。如果有中断出现,控制单元会触发相应的硬件线路来启动操作系统的中断处理程序。

 

中断装置

A.概念:计算机系统中发现并响应中断/异常的硬件装置。

B.种类:由于中断源的多种多样,硬件实现的中断装置有多种,分别处理不同类型的中断。这些中断因计算机而异,通常有:

  a.处理器外的中断:由中断控制器发现和响应。

  b.处理器内的异常:由指令的控制逻辑和实现线路发现和响应,这样的机制称为陷阱。

  c.请求操作系统服务的系统异常:处理器执行陷入指令时直接触发,这样的机制称为系统陷阱。

 

中断控制器

中断控制器是CPU中的一个控制部件,包括中断控制逻辑线路和中断寄存器。

中断控制逻辑线路:形成中断的通路。

中断寄存器:记录了具体的是哪个中断(来源)

外部设备向中断控制器发出中断请求IRQ,在中断寄存器中设置已发生的中断。在指令执行周期的最后一个周期(检查中断周期),译码器检查中断寄存器是否有中断发生。如果有不被屏蔽的中断产生,则改变处理器内操作的顺序,引出操作系统中的中断处理程序。

对于狭义的中断来说,检查和响应的过程是同步的过程,而产生中断是异步的过程。这和处理异常陷阱是不一样的,陷阱都是同步的。

 

陷阱与系统陷阱

概述:它是一种硬件装置,是由指令的逻辑实现线路完成的。

执行指令出现异常后,通过线路将异常情况转向操作系统的异常处理程序。

虚拟地址异常发生时,由于它的指令没有执行完。因此它的线路会有所不同,需要重新执行指令,往往越过陷阱独立设置页面异常处理程序。

系统调用:执行陷入指令后,越过陷阱处理,触发系统陷阱,激活系统调用处理程序。

 

陷阱类处理是与中断装置不同的,完全是同步的一种硬件的中断装置。

 

中断响应过程

A.指令结束后,查看中断寄存器中是否有中断。

   如果有中断,再查看是否有被屏蔽的中断,如果所有的中断被屏蔽则暂时不处理,继续执行下一条指令。如果有没被屏蔽的中断,在这些没有被屏蔽的中断中根据优先级选择一个中断执行。如果只有一个中断没有被屏蔽则不用根据优先级选择,直接执行该中断即可。

B.执行中断时,保存当前程序的PSW和PC(当前程序的执行位置)到核心栈。转向操作系统的中断处理程序。

 

中断处理程序

概述:它是操作系统处理中断事件的控制程序,主要任务是处理中断和恢复正常操作。

 

由于硬件实现成本的考虑,不可能把整个处理器现场都保存起来,只保存了PSW和PC。其他的处理器现场信息有中断处理程序保存。保存完处理器现场信息后分析中断源,根据中断源对不同的中断进行分门别类的处理。处理完成后恢复正常操作。恢复正常操作分为两种情况:a.恢复到刚刚中断的用户程序。b.恢复到另一个用户程序。然而无论是哪种恢复,都将从操作系统的内核切换到用户进程。

 

中断屏蔽

当检测到中断时,并不一定要响应中断,可以屏蔽其中的若干个中断。即,当计算机检测到中断时,中断装置通过中断屏蔽位决定是否响应已发生的中断。因此,在中断屏蔽机制的情况下,计算机可以有选择的响应中断。(中断被屏蔽的条件是什么?有谁来执行中断屏蔽位的赋值?

 

中断优先级

当计算机同时检测到多个中断时,中断装置根据一定的机制将这些中断按顺序执行。一种可能的处理次序:a.处理机硬件故障中断事件 b.自愿性中断事件 c.程序性中断事件 d.时钟中断等外部中断事件 e.输入输出中断事件 f.重新启动和关机中断事件

但,不同类型的操作系统会有不同的处理次序。比如,在PC机中重启和关机的优先级最高。而对于很多人同时在使用的大型系统而言,重启和关机的优先级由变成了最低的。

 

中断的嵌套处理

A.当计算机响应中断后,在中断处理过程中,可以再响应其他中断。

B.操作系统是性能攸关的程序,且中断响应处理有硬件要求,考虑系统效率和实现代价问题,中断的嵌套处理应该限制在一定的层数内,如3层。 

C. 中断的嵌套处理改变中断处理次序,先响应的有可能后处理。

 

决定中断处理次序的因素

A.中断屏蔽可以使中断装置不响应某些中断。

B.中断优先级决定了中断装置响应中断的次序。

C.中断可以嵌套处理,但嵌套的层数应该有限制。

D.中断的嵌套处理改变了中断处理的次序。

 

进程的概念(2个)

A.进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。

B.进程是操作系统进行资源分配和调度的一个独立单位。

 

进程的五个实体

A.(OS管理运行程序的)数据结构P。

B.(运行程序的)内存代码C。

C.(运行程序的)内存数据D。

D.(运行程序的)通用寄存器R。

E. (操作系统控制程序执行的)程序状态字信息PSW。

 

进程举例

A.不同程序在不同数据集上运行:构成两个无关进程。

 

B.不同程序在相同数据集上运行:构成两个共享数据的交往进程。

 

 

C.相同代码在不同数据集上运行:构成两个共享代码的无关进程。共享代码称为可再入程序,可再入程序必须是纯代码

 

D.如果可再入程序共享数据区,那么可再入程序不可能正确的运行!而不是等同于一个程序!!!

总结:上述的程序和数据集都是内存级的。如果在不同时段针对同一外存数据文件运行同一外存程序文件,意味着完全不同的进程(P、C、D、R、PSW)。

 

概念级的进程状态

进程在其生命周期中始终处于下面三个状态之一。

A.执行态:指进程占有处理器运行。

B.就绪态:指进程具备运行条件等待处理器运行。

C.阻塞态:指进程由于等待资源、等待输入输出结束、等待信号完成等而不具备运行条件。

 

进程三态模型

A.执行态->阻塞态:当正在执行的进程由于等待资源、等待I/O、等待信号时,进程就会进入到阻塞态。

B.阻塞态->就绪态:当处于阻塞态的进程发生资源满足、I/O结束、信号完成时,进程就会进入到就绪态。

C.就绪态->执行态:当处理器空闲时,从就绪队列中选择一个就绪态进程执行,或者有更高优先级的就绪态进程出现时,更高优先级的就绪态进程抢占处理器资源,由就绪态转变为执行态。相应的被抢占的进程有执行态变成就绪态而不是阻塞态

D.执行态->就绪态:进程执行的时间片到,或被更高优先级的进程抢占时,进程由执行态转变为就绪态。

 

进程挂起的概念

A.由于OS无法预测进程的数目和其所需的资源,计算机系统在运行过程中可能出现资源不足的情况,运行资源不足表现为低能性和死锁两种情况。

B.解决办法:剥夺某些进程的内存及其他资源,调入OS管理的对换区,使这些进程不参加进程调度,在适当的时候在调入内存、恢复资源、参与运行。这就是挂起的概念!

C.挂起与阻塞是有本质区别的。处于挂起状态的进程没有任何资源,而处于阻塞状态的进程拥有已申请到的资源但不具备运行条件而处于阻塞状态。

 

进程挂起的选择与恢复

A.一般将阻塞态进程挂起,使其进入挂起阻塞态。

B.也可以将就绪态进程挂起,使其进入挂起就绪态。

C.特别地,执行态进程也可以挂起自己。

D.阻塞事件结束后,挂起阻塞进程就会进入挂起就绪态。

E.当系统资源许可后,一般选择挂起就绪态进程予以恢复。

F.只有在系统资源极其空闲时,才会预先将挂起阻塞态进程调入内存变成阻塞态。

 

进程控制块(PCB)

概念:OS用于记录和刻画进程状态及环境信息的数据结构。它包括3个部分:标识信息、现场信息、控制信息。  借助PCB,OS可以全面管理进程的物理实体,刻画进程的执行状态,控制进程的执行。

 

标识信息

作用:用于存放唯一标识进程的信息。(4个)

A.系统分配的标识号。

B.系统分配的进程组标识号。

C.用户定义的进程名。

D.用户定义的进程组名。

 

现场信息

作用:用于存放进程运行时的处理器现场信息。(3类)

A.用户可见寄存器内容:数据寄存器、地址寄存器。

B.控制与状态寄存器内容:PC、IR、PSW。

C.栈指针内容:核心栈指针与用户栈指针。

 

控制信息

作用:用于存放与管理、调度进程相关的信息。

A.调度相关信息:状态、等待事件/原因、优先级。

B.进程组成信息:代码/数据地址、外存映像地址。

C.队列指引元:进程队列指针、父子兄弟进程指针。

D.通信相关信息:消息队列、信号量、锁。

E.进程特权信息:内存访问权限、处理器特权。

F.处理器使用信息:占用的处理器、时间片、处理器使用时间/已执行总时间、记账信息。

G.资源清单信息:正占有的资源、已使用的资源。

 

进程映像

概念:某一时刻进程的内容及其执行状态的集合(4个)。包括进程控制块、进程程序块、进程数据块、核心栈四个部分。

A.进程控制块:保存进程的标识信息。

B.进程程序块:进程执行的程序空间。

C.进程数据块:进程处理的数据空间,包括数据、处理函数的用户栈和可修改程序。

D.核心栈:进程在内核模式下运行时使用的堆栈,供中断或系统过程使用。 

重点:进程映像是内存级的物理实体,又称为进程的内存映像。

 

进程上下文

前言:进程的执行需要环境支持,包括CPU现场和Cache中的执行信息。OS中的进程物理实体和支持进程运行的环境合成了进程的上下文。包括3个。

A.用户级上下文:用户程序块、用户数据区、用户栈、用户共享内存。

B.寄存器上下文:PSW、栈指针、通用寄存器。

C.系统级上下文:PCB、内存区表、核心栈。

总结:用户程序执行时考虑的是用户级上下文和寄存器上下文。系统程序在控制程序执行的时候,用户级上下文、寄存器上下文和系统级上下文共同刻画了进程的上下文描述。

 

概念级的OS进程管理软件

关键的进程管理软件包括:

A.系统调用、中断、异常处理程序。

B.队列管理模块。

C.进程控制程序。

D.进程调度程序。(独立进程居多。)

E.进程通信程序。(多个程序包。)

F.终端登录与作业控制程序、性能监视程序、审计程序等外围程序。

 

进程实现的队列模型

等待事件有多种情况。

 

队列管理模块

它是操作系统实现进程管理的核心模块。操作系统建立了多个进程多列,其中包括就绪队列和等待队列。这些队列按需组织为先进先出队列和优先级队列。其中优先级队列在出队时一定从头出,但是入队的时候根据优先级插入到相应位置。队列中的进程可以通过PCB中的队列指引元采用单、双指引元或索引链接。进程与资源队列围绕进程队列全面展开。

 

进程的控制与管理

A.进程创建:进程表中添加一项,申请PCB并初始化,生成标识,建立映像,分配资源,移入就绪队列。

B.进程撤销:从队列中移除,归还资源,撤销标识,回收PCB,移除进程表项。

C.进程阻塞:保存现场信息,修改PCB,移入阻塞队列,调度其他进程执行。

D.进呈唤醒:将进程从等待队列中移出,修改PCB,移入就绪队列。(该进程的优先级高于正在运行进程的优先级时触发抢占。)

E.进程挂起:修改状态并出入相关队列,收回内存等资源送至对换区。

F.进程激活:分配内存,修改状态并出入相关队列

G.其他:修改进程特权。

 

原语进程控制原语

A.进程控制过程中涉及对OS核心数据结构(进程表、PCB池、队列、资源表)的修改。

B.为了防止发生于时间有关的错误,应该使用原语。(不是整个进程控制中都使用原语,而是在进程控制中对核心资源进行操作时才使用原语操作。)

C.原语是又若干条指令构成的,用于完成某种特定功能的程序,执行上具有不可分割性(即,执行过程中不可以被中断)。

D.通过关中断来实现原语。(即,进入原语前关中断,出原语前开放中断。)

E.进程控制使用的原语称为进程控制原语。

F.进程通信使用的原语称为进程通信原语。

总结:原语必须是短小、精悍的程序段。

 

进程切换

A.进程切换指从正在运行的进程中收回处理器,让待运行进程来占有处理器运行。

B.进程切换实质上就是被中断运行进程与待运行进程的上下文切换,处理过程是:

  a.保存被中断进程的上下文。

  b.转向调度进程。

  c.恢复待运行进程的上下文。

 

模式切换

A.进程切换必须在操作系统内核模式下完成,进程切换必然要用到模式切换!

B.模式切换又称为处理器状态切换,包括:

  a.用户模式到内核模式的切换,必然由中断、异常、系统调用所触发。

  b.内核模式到用户模式的切换,通常由中断返回指令触发。

 

模式切换的基本工作任务

A.中断装置完成正向模式切换,包括:

  a.处理器模式转为内核模式。

  b.保存当前进程的PC和PSW值到核心栈。

  c.转向中断、异常、系统调用处理程序。

B.中断返回指令完成逆向模式转换,包括:

  a.从待运行进程的核心栈中弹出PC和PSW值。

  b.处理器模式转为用户模式。

 

进程切换的工作过程

A.中断、异常等触发正向模式切换并压入PSW和PC。

B.保存被中断进程的现场信息。

C.处理具体中断、异常。

D.把被中断进程的系统堆栈指针SP值保存到PCB。

E.调整被中断进程的PCB信息,如进程状态。

F.把被中断进程的PCB加入相关队列。

G.选择下一个占用CPU运行的进程。

H.修改被选中进程的PCB信息,如进程状态。

I.设置被选中进程的地址空间,恢复存储管理信息。

J.恢复被选中进程的SP值到处理器寄存器SP。

K.恢复被选中进程的现场信息进入处理器。

L.中断返回指令触发逆向模式转换并弹出PC和PSW值。

 

进程切换发生的时机

进程切换一定发生在中断、异常、系统调用处理过程中,常见的情况是:

  a.阻塞式系统调用、虚拟地址异常导致被中断进程进入阻塞态

  b.时间片中断、I/O中断后发现更高优先级进程导致被中断进程进入就绪态。

  c.终止系统调用、不能继续执行的异常导致被中断进程进入终止态。

 

不引起进程切换的中断处理流程

一些中断、异常不会引起进程状态转换,不会引起进程切换,只是在处理完成后把控制权交回给被中断进程,处理流程是:

  a.中断或异常触发正向模式切换压入PC和PSW。

  b.保存被中断进程的现场信息。

  c.处理中断、异常。

  d.恢复被中断进程的现场信息。

  e.中断返回指令触发逆向模式转换弹出PC和PSW。

 

单线程结构进程

传统进程是单线程结构进程。它包括一个资源管理者: ①用户地址空间、②进程控制块;和一个执行序列:①用户栈、②核心栈。

 

单线程结构进程的问题

单线程结构进程在并发程序设计上存在问题。主要体现在一下四个方面:

A.进程切换开销大。

B.进程通信开销大。

C.限制了进程并发的粒度。(即,并非无限可分。)

D.降低了并行计算的效率。

 

多线程结构进程

与单线程结构进程相比,依然只有一个资源管理者,但是有多个执行序列,而且每个执行序列中比单线程结构进程的执行序列多了一个线程控制块,这些执行序列共享一个资源管理者所管理的资源。

 

多线程环境下进程的概念

在多线程环境中,进程是操作系统中进行保护和资源分配的独立单位。主要体现在以下两个方面:

A.用来容纳进程映像的虚拟地址空间。

B.对进程、文件和设备的存取保护机制。

 

多线程环境下线程的概念

线程是进程的一条执行路径,是调度的基本单位,同一个进程中的所有线程共享进程获得的主存空间和资源。它具有:

  ①线程执行状态。

  ②受保护的线程上下文,当线程不运行时,用于存储现场信息。

  ③独立的程序指令计数器。

  ④执行堆栈。

  ⑤容纳局部变量的静态存储器。

 

多线程环境下线程的状态与调度

A.线程的状态有运行、就绪和睡眠,但无挂起(因为挂起是与资源有关的,因此只有进程才有挂起。)。

B.与线程状态变化有关的线程操作有:

  ①(线程创建的)孵化、②(进入等待状态的)封锁、③(结束等待状态的)活化、④(从CPU中)剥夺、⑤指派(到CPU上)⑥(线程的)结束。

C.线程的概念最初不是由操作系统提出的,而是由程序设计语言提出来的。因此,线程有两种状态。

  ①在操作系统感知线程的环境下:

    a.处理器调度对象是线程

    b.进程没有三种运行状态的,因为运行状态是在线程上的。(或者说只有挂起状态。)

  ②在操作系统不感知线程的环境下:

    a.处理器调度对象是进程。

    b.多个线程之间通过用户调度程序调度线程。

 

并发多线程程序设计的优点

A.快速线程切换。

B.减少(系统)管理开销。

C.(线程)通信易于实现。

D.并行程度提高。

E.节省内存空间。

 

多线程技术的应用

A.前台和后台的运行。

B.C/S应用模式。

C.加快物理并行速度。

D.设计用户接口。

 

内核级线程KLT(Kernel-Level Threads) 

对于内核级线程来说,线程管理的所有工作由操作系统内核来完成。

操作系统提供了一个用户程序设计接口API,供开发者使用KLT。

每一个内核级线程将由操作系统直接调度。

 

内核级多线程KLT的特点

进程中的一个线程被阻塞了, 内核能调度同一进程的其它线程占有处理器运行。

多处理器环境中,内核能同时调度同一进程中多个线程并行执行。

内核自身也可以用多线程技术实现,能提高操作系统的执行速度和效率。

应用程序线程在用户态运行,线程调度和管理在内核实现,在同一进程中,控制权从一个线程传到另一个线程时需要模式切换,系统开销大。

 

用户级线程ULT(User-Level Threads)

用户空间运行的线程库,提供多线程应用程序的开发和运行支撑环境工作由操作系统内核来完成。

任何应用程序均需通过线程库进行程序设计,再与线程库连接后运行。

线程管理的所有工作都由应用程序完成,内核没有意识到线程的存在。

 

用户级多线程机制的特点

所有线程管理数据结构均在进程的用户空间中,线程切换不需要内核模式,能节省模式切换开销和内核的宝贵资源。

允许进程按应用特定需要选择调度算法,甚至根据应用需求裁剪调度算法。

用户级线程能运行在任何操作上,内核在支持ULT方面不需要做任何工作。(Java语言就是用户级多线程机制。)

不能利用多处理器的优点,操作系统依然调度进程,但仅有一个用户级线程能执行。(没有并行性?

一个用户级线程的阻塞将导致整个进程的阻塞。

 

Jacketing技术

把阻塞式的系统调用改成非阻塞式。

当线程陷入系统时,执行Jacketing程序

由Jacketing程序来检查资源使用情况,以决定是否执行进程切换或传递控制权给另一个线程。

 

ULT适用于解决逻辑并行性问题。

KLT适用于解决物理并行性问题。

 

多线程实现的混合式策略

线程创建是完全在用户空间做的。

单应用的多个ULT可以映射成一些KLT,通过调整KLT数目,可以达到较好的效果,实现物理并行和逻辑并行融合解决问题的方式。

将内核级线程和用户级线程进行绑定。如果将一个内核级线程和一个用户级线程绑定在一起,那么就是标准的内核级线程;如果将所有的用户级线程和一个内核级线程绑定在一起就是标准的用户级线程。

 

多线程实现混合式策略的特点

组合用户级线程和内核级线程的设施

线程创建完全在用户空间完成,线程的调度和同步也在应用程序中进行。

一个应用中的多个用户级线程被映射到一些(小于等于用户级线程数目)内核级线程上。

程序员可以针对特定应用和机器调节内核级线程的数目,已达到整体的最佳效果。

该方法将会结合纯粹用户级线程方法和内核级线程方法的优点,同时减少它们的缺点。

 

 

                                                                                           

                                                                                                                                                                                                                             

 

转载于:https://www.cnblogs.com/CoSoBo/p/6714729.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值