计算机操作系统

文章详细介绍了操作系统的运行机制,包括CPU的用户态和核心态,以及如何通过程序状态字寄存器(PSW)切换状态。特权指令的执行权限和中断机制的作用,特别是中断如何驱动CPU从用户态切换到核心态进行系统管理。同时,文章阐述了进程的概念,进程实体的组成(PCB、程序段、数据段),以及进程的状态转换(运行态、就绪态、阻塞态)。最后提到了进程的创建和终止状态,以及进程状态转换图。
摘要由CSDN通过智能技术生成

操作系统的运行机制和体系结构

运行机制

非特权指令:“人畜无害”,安全的指令,程序可以随便用

特权指令:危险的指令,只允许某些程序的调用

问:CPU怎么判断当前是否可以执行特权指令呢? 这就引出了CPU的两种状态,用户态,还有核心态。

用户态:当CPU处于用户态时,CPU只能执行非特权指令

核心态:而当CPU处于核心态时,CPU能执行非特权指令和特权指令

问:那CPU怎么知道自己位于哪个状态呢? 其实CPU中有一个寄存器 — 程序状态字寄存器(PSW),当该寄存器的值是0时,表示CPU处于用户态;而当为1时,表示CPU处于核心态。

应用程序:应用程序运行于用户态,只能执行非特权指令。

内核程序:内核程序是操作系统的管理者,运行于核心态,所以可以执行特权指令和非特权指令。

img

大内核:CPU不必在用户态(处理人员)和核心态(管理人员)之间来回切换,这样可以提高工作的效率,但是结构(分工)有些混乱。 微内核:CPU必须来回切换用户态(处理人员)和核心态(管理人员,财务人员),工作效率降低了,但是结构(分工)很清晰。

中断机制

中断机制的诞生

发生了中断就意味着需要操作系统的介入,开展管理工作。由于操作系统的管理工作(比如分配打印机设备等)需要使用特权指令,所以CPU状态要从用户态切换到核心态,使操作系统获得计算机的控制权。有了中断机制,计算机才能实现多道程序的并发运行。

常见的中断

时间片用完之后的中断 CPU收到计时部件发出的中断信号,切换到核心态对中断进行处理。这个中断是为了告诉正在运行的程序:“你的运行时间到了,让别的程序运行吧!”。 这个中断的目的是:实现计算机中多道程序的并发运行。

输出指令引起的中断 运行中的程序请求输出,CPU也会切换为核心态对中断进行处理。 假如该程序要求输出到打印机,CPU会向打印机发出信号,让打印机开始工作。而且该程序也会暂停运行,等待打印机工作完成。该程序暂停了,说明CPU空闲了,那总不能让CPU傻傻的在那里等吧。于是CPU会切换为用户态,转入另外一个程序,运行它的指令。 而等到打印机工作完成,打印机设备会向CPU发出中断信号,这个中断信号表示:“你给我的工作我已经完成了”,CPU收到中断信号后,会切换到核心态处理中断。 这个中断的目的是:提高计算机资源(CPU资源,打印机资源…)的利用率。

中断与CPU状态的切换

  • 用户态 -> 核心态 中断是用户态到核心态切换的唯一途径。

  • 核心态 -> 用户态 核心态到用户态的切换只需要通过CPU执行一个特权指令,将程序状态字(PSW)的标志位设置为用户态。

中断的分类

中断分为2类,内中断和外中断。我们可以通过中断信号的来源来判断。

内中断 内中断的信号来自与CPU内部。 (与当前执行的指令有关,比如输出指令或整数除0指令,CPU运行这条指令的时候会产生一个内中断信号) 外中断 外中断的信号来自于CPU外部。 (与当前执行的指令无关,比如打印机输出完成之后发出的外中断信号)

外中断的处理过程

1、执行完每条指令之后,CPU会检查当前是否有外部中断信号。 2、如果检测到外部中断信号 (比如打印机工作完成了),则需要保护被中断进程的CPU环境 (如程序状态字PSW, 程序计数器PC,各种通用寄存器的值)。 3、根据中断信号类型转入相应的中断处理程序。 4、恢复原进程的CPU环境并退出中断处理程序,返回原进程继续往下执行。 在这里,进程可以理解为正在运行的程序。

进程

什么叫进程

进程是程序的一次执行过程。 程序强调的是静态性,它只是安安静静的躺在外存(如硬盘)之中,而当双击运行这个程序时,该程序会被操作系统载入到内存,生成相应的进程;而进程强调的是动态性,CPU会不断访问内存,执行进程的指令,完成进程的所提出的任务。

什么叫进程实体

随着计算机的发展,计算机可以支持多道程序并发运行了,那操作系统怎么去记录这些进程的程序段和数据段的位置呢? 操作系统可以构建一个叫进程控制块(PCB)的数据结构来存放这些信息。

在这里插入图片描述

所以,当程序运行的时候,操作系统会为该进程构建一个叫进程控制块(PCB)的数据结构,用以记录该进程的各种信息。 而进程实体 = PCB + 程序段 + 数据段。 (进程实体 别名 进程映像)

进程与进程实体的关系

由上文可知,程序段、数据段、PCB三部分组成了进程实体(进程映像)。所以,在引入进程实体概念之后,我们可以把进程定义为:进程是进程实体的运行过程, 是系统进行资源分配和调度的一个独立单位。

但是,在一般情况下,我们把进程实体就称为进程,例如: 所谓的创建进程, 实际上是创建进程实体中的PCB,而撤销进程,实际上是撤销进程实体的PCB。 (PCB是进程存在的唯一标志)

注意: 严格来说,进程实体和进程并不一样,进程实体是静态的,而进程是动态的。因此我们可以说:进程由程序段、数据段和PCB三部分组成。

下面说说PCB的存储信息与分类。

PCB的存储信息与分类

分类方式一

在这里插入图片描述

分类方式二

img

进程的组织方式

一个操作系统中通常由数十、数百乃至数千个PCB。为了对它们进行有效的管理,操作系统应该用适当的方式把这些进程的PCB组织起来。 注意:进程的组成讨论的是一个进程内部由哪些部分组成的问题,而进程的组织讨论的是多个进程之间的组织方式问题。

进程的组织方式有两种,链接方式和索引方式,下面对这两种方式进行简单介绍。

链接方式 链接方式会按照进程的状态将PCB分为多个队列,操作系统持有各个队列的指针。 (进程的状态有:阻塞态,就绪态,运行态…,之后会介绍是什么意思)

在这里插入图片描述

以上所有的信息都被放置于内存之中。阻塞队列可能还会被划分为因等待什么事件而阻塞。

索引方式 索引方式会按照进程的状态将PCB建立几张索引表,操作系统持有各个索引表的指针。 (进程的状态有:阻塞态,就绪态,运行态…,之后会介绍是什么意思) 以上所有的信息都被放置于内存之中。阻塞队列可能还会被划分为因等待什么事件而阻塞。

进程的特征

进程和程序有所联系也有所区别,相比于程序,进程拥有以下特征。

学习提示:由于异步性会导致并发进程执行结果的不确定性,所以操作系统需要提供"进程同步"机制来解决异步问题,具体会在之后的"进程同步"中学习。

进程状态

导言

在上篇说到,进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时又需要等待CPU的服务,可见,进程存在多种状态。为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。 下面介绍进程的三种基本状态和另外两种状态。

三种基本状态

运行态 进程拥有了CPU资源和其他所需资源。(比如打印机资源,当打印机准备好,打印机才能为该进程服务) 就绪态 进程拥有了其他所需资源,但还没拥有CPU资源。(当打印机准备好,该进程等待CPU的调度) 阻塞态 进程既没有CPU资源也没有其他所需资源。(当打印机资源在准备的时候,该进程不占用打印机资源,而且CPU会执行其他进程的指令)

img

另外两种状态

当我们刚开始运行程序的时候,操作系统需要为该进程分配所需的内存空间等系统资源,并为其创建、初始化PCB。(如 分配进程标识符PID),此时,该进程就处于创建态。而当进程结束时 (正常结束或者由于bug导致进程无法继续执行下去,如 整数除0错误),操作系统会回收分配给该进程的系统资源以及撤销该进程的PCB…,目的是为了撤销该进程,此时,该进程就处于终止态。

创建态 进程正在被创建,操作系统为该进程分配系统资源、初始化PCB。 终止态 进程正在被撤销,操作系统会回收该进程拥有的系统资源、撤销PCB。

在这里插入图片描述

进程状态的转换

看下图。

在这里插入图片描述在这里,进程由"运行态–>阻塞态"是进程主动请求的,是一种主动行为。 (比如 进程主动请求打印机资源,由于打印机资源的准备需要花时间,所以,CPU会执行"原语",让该进程会进入阻塞态) 但是,进程由"阻塞态–>就绪态"不是进程自身控制的,是一种被动行为。(比如 请求的打印机资源准备好了,那打印机会给CPU发信号。之后,CPU会执行"原语",让进程会进入就绪态)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值