11-进程调度的时机,方式,切换与过程
进程调度进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机
需要进行进程调度与切换的情况(进程调度的时机)1. 当前运行的进程主动放弃处理机
进程正常终止
运行过程中发生异常而终止
进程主动请求阻塞(如等待I/O设备)
2. 当前运行的进程被动放弃处理机
分给进程的时间片用完
有更紧急的事情需要处理(如I/O中断)
有更高优先级的进程进入就绪队列
不能进行进程调度与切换的情况
在处理中断的过程中:中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换
进程在操作系统内核程序临界区中(具体解释见下文)
在原子操作过程中(原语)。原子操作不可中断,要一气呵成,所以运行过程中不可进行进程调度或切换
进程在操作系统内核程序临界区中不能进行进程调度和切换。临界资源:一个时间段内只允许一个进程使用的资源,各个进程需要互斥的访问临界资源
临界区:访问临界资源的代码
内核程序临界区一般是用来访问某种内核数据结构的,比如进程的就绪队列(由各就绪进程PCB组成)
假如某进程当前正处在内核程序临界区,并且正在/之前访问就绪队列,则该进程会对就绪队列进行上锁操作 ...
10-处理机调度的概念与层次
调度概念当有多项任务需要处理时,由于资源有限,所有任务无法同时处理,此时就需要确定某种规则来决定各项任务的执行顺序,这就是调度
在多道程序系统中,进程的数量往往多于处理机个数,这样不可能同时并行处理各个进程
处理机调度,就是从就绪队列中按照一定的算法选择一个进程并将处理机分配给该进程使用,以实现进程的并发执行
调度的三个层次高级调度(作业调度)
由于内存空间有限,有时无法将用户提交的作业全部放入内存,因此就需要确定某种规则来决定作业调入内存的顺序,即高级调度
高级调度(作业调度)。按一定的原则从外存上处于后备队列(存储所有还没有进过内存的任务)的作业中挑选一个或多个作业,给他们分配内存等必要资源,并建立相应进程(建立PCB),以使他们获得竞争处理机的权利
高级调度是辅存(外存)与内存之间的调度。每个作业只调入一次,调出一次。作业调入时会建立相应的PCB,作业调出时才撤销PCB。高级调度主要是指调入的问题,因为只有调入的时机需要操作系统来确定,但调出的时机必然是作业运行结束才调出。(即对于每项任务,高级调度只执行一次)
中级调度(内存调度)
引入了虚拟存储技术之后,可将暂时不能运行的进程 ...
9-线程概念与多线程模型
线程概念线程是一个基本的CPU执行单元,也是程序执行流的最小单元
引入线程后,不仅是进程间可以并发执行,一个进程的不同线程之间也可以并发执行,提高了系统的并发度,使得一个进程内可以并发执行多项任务(例如QQ可以同时视频聊天,发送文件等等)
引入线程后,进程只作为除CPU以外的系统资源的分配单元(如打印机,内存地址空间等),即除CPU以外的系统资源还是直接分配给进程而不是某个线程
引入线程机制后,发生的变化
线程的属性
线程是处理机调度的单位
多CPU计算机中,各个线程可以占用不同的CPU
每个线程都有一个线程ID,和线程控制块(TCB)用来进行区分
线程同样有就绪,阻塞,运行三种基本状态
线程几乎不拥有系统资源
同一进程的不同线程间可以共享进程的资源
由于同一进程的不同线程间共享内存地址空间,所以各个线程间通信甚至无需系统干预
同一进程中的线程间进行切换,不会引起进程切换
不同进程中的线程进行切换,会引起进程切换
切换同进程中的线程,系统开销很小
切换进程,开销较大
线程的实现方式
用户级线程用户级线程由应用程序通过线程库实现,所有的线程管理工作都是由应用程序负责的(线程的创建,撤销 ...
8-进程的状态,控制与通信
进程的状态和转换进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时需要等待CPU服务,显然进程的状态是在不断变化的。为了方便对各个进程的管理,操作系统将进程合理的划分为几种状态
进程的三种基本状态运行态 Running占有CPU,并在CPU上运行。
单核处理器下,同一时刻最多只有一个进程处于运行态,双核环境下可以有两个进程处于运行态
就绪态 Ready已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
注意这里所说的具备运行条件是指进程已经拥有了除CPU以外的所有需要的资源,包括所需要的设备的控制权限,缺少的只有CPU的控制权
阻塞态 Waiting/Blocked又称等待态,因等待某一事件而暂时不能运行
例如,等待操作系统分配打印机的控制权限,读取磁盘操作的请求等。CPU是计算机中最昂贵的不见,为了提高CPU利用率,需要先将其他进程所需资源分配到位,才能得到CPU服务
进程的另外两种状态创建态 New也称新建态,进程正在被创建,操作系统为进程分配资源,初始化PCB的阶段
终止态 Terminated进程正在从系统中撤销,操作系统回收进程拥有的资源,撤销PCB
...
7-进程
进程程序的定义: 就是一个指令序列
早期的计算机,只支持单道程序。同一时间内只能有一道程序执行,此时计算机的CPU,内存以及I/O设备都由该程序单独使用,所以此时程序的代码放在程序段内,程序运行的数据放在数据段内,二者可分别置于内存的首尾两侧。
在引入多道程序技术后,同一时间可能有多道程序执行,此时内存中存放了各个程序的程序段和数据段,如果不引入其他数据结构便无法找到对应程序的存放位置。所以系统为每个运行的程序都配置一个数据结构,称为进程控制块PCB(Progress Control Block),用来描述进程的各种信息(如程序代码的存放位置)
进程实体由PCB,程序段,数据段三部分构成,也称为进程映像
一般情况下,我们可以把进程实体简称为进程。我们平常所说的创建进程,指的就是创建进程实体中的PCB,而撤销进程,是指就是撤销进程实体中的PCB
PCB是进程存在的唯一标志
进程定义
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设 ...
6-系统调用
系统调用系统调用是操作系统提供给应用程序(开发人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务
程序接口由一组系统调用组成
系统调用的概念和作用应用程序通过系统调用请求操作系统的服务。系统中各种共享资源都由操作系统统一掌管,因此用户程序想要执行与资源有关的操作(例如存储分配。I/O操作,文件管理等)都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作
如果没有系统调用存在,各个应用程序就可能会产生非法争夺共享资源的情况发生,例如多个应用同时对一个文件进行读写操作这显然是十分危险的
系统调用分类(依照功能分类)
设备管理:完成设备的请求/释放/启动等功能
文件管理:完成文件的读/写/创建/删除等功能
进程控制:完成进程的创建/撤销/阻塞/唤醒等功能
进程通信:完成进程之间的消息传递/信号传递等功能
内存管理:完成内存的分配/回收等功能
由于系统调用涉及到对系统资源的管理,对进程的控制,这些功能需要执行一些特权指令,所以系统调用的相关处理需要在核心态下进行
系 ...
5-中断和异常
中断和异常本质发生中断就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(如进程切换,分配I/O设备等)需要使用特权指令,所以需要CPU由用户态切换到核心态。中断可以使CPU从用户态切换到核心态,是操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行
概念
中断发生时,CPU立即进入核心态
中断发生后,当前进程暂停运行,并由操作系统内核对中断进行处理
对于不同的中断信号,会进行不同的处理
用户态切换到核心态是通过中断实现的,并且中断是唯一的实现方式
核心态到用户态的切换只需要执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”即可
中断的分类内中断也称为异常,例外,陷入
信号来源:CPU内部,与当前执行的指令有关
内中断还细分为
自愿中断:指令中断,如系统调用时的访管指令(陷入指令,trap指令)
强迫中断:硬件故障(如缺页中断),软件中断(如除0)
内中断另一种分类方式:
陷阱,陷入(trap):有意而为之的异常,如系统调用
故障(fault):由错误条件引起的,可能被故障处理程序修复,如缺页
终止(abort):不可恢复的致命错误造成的结果 ...
4-操作系统的运行机制以及体系结构
运行机制指令的概念“指令”就是处理器(CPU)能够识别,执行的最基本命令
一般而言,指令可以由高级语言(C,Java,C++)翻译而来,一条高级语言的代码翻译过来可能对应多条指令
一些诸如基本运算的指令(加减乘除)不会影响到系统的安全性,但也有一些指令具有很高权限,例如内存清零指令,如果所有用户都可以执行任意指令,势必会影响到系统的安全性,因此就需要对指令进行分类
指令的分类
特权指令:不允许用户程序使用,如内存清零指令
非特权指令:如普通的运算指令(加减乘除)
经过分类后我们还需要考虑,CPU如何判断当前状态是否可以执行特权指令
处理器的两种状态
用户态(目态):此时CPU只能执行非特权指令
核心态(管态):此时CPU特权指令和非特权指令都可以执行
处理器的状态由程序状态字寄存器(PSW)中的某个标志位来标识,如0为用户态,1为核心态
两种程序
内核程序:操作系统的内核程序是系统的管理者,既可以执行特权指令,又可以执行非特权指令,运行在核心态
应用程序:为了保证系统安全运行,只能执行非特权指令,运行在用户态
操作系统的内核
上图中所提到的原语具有原子性,即其运行只能一次全部执行 ...
3-操作系统的发展与分类
操作系统的发展与分类手工操作阶段主要矛盾:用户独占全机,人机速度矛盾导致资源利用率极低(计算机的高速与人手工输入的低速)
批处理阶段:单道批处理系统引入了脱机输入/输出技术(通过磁带完成),并通过监督程序(操作系统的雏形)控制作业的输入,输出
主要优点:解决了一定程度上的人机矛盾,资源利用率有所提升
主要缺点内存中只能有一道程序运行,该程序运行结束后才能执行下一道程序(所有程序只能串行执行)。CPU仍有大量时间是在等待I/O完成。资源利用率依然很低
批处理阶段:多道批处理系统每次向内存中输入多道程序,此时操作系统正式诞生,并且引入了中断机制,由操作系统控制这些程序的运行流程,所有程序并发执行
主要优点多道程序并发执行,共享计算机资源,资源利用率大幅提升。CPU和其他资源保持忙碌状态,系统吞吐量增大
主要缺点用户响应时间长,没有人机交互功能(用户提交自己的作业到内存中执行后不能控制任务执行,只能等待计算机完成)
示例
分时操作系统计算机以时间片为单位轮流为各个用户/任务服务,各个用户可以在自己所在时间片内通过终端与计算机进行交互
主要优点用户请求可以及时被响应,解决了人机交互的问题, ...
2-操作系统的四个特征
操作系统的特征操作系统共有四个特征,分别是并发,共享,虚拟和异步。其中,并发和共享是操作系统最基本的特征,且二者互为存在条件
并发指两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,但微观上是交替发生的
与之相对应的重要概念就是“并行”,并行指两个或多个事件在同一时刻同时发生
对于操作系统来说,并发性是指计算机系统同时存在着多个运行程序
一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行,使其在宏观上看起来是同时执行的
共享共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
一共有两种资源共享方式:
互斥共享方式指系统中的某些资源,虽然可以提供给多个进程使用,但同一时间段内只允许一个进程访问该资源(例如:相机资源,当我们在微信中使用相机资源进行视频聊天时,我们就无法在QQ中调用相机资源进行操作)
同时共享方式系统中的某些资源,允许一个时间段内多个进程“同时”对该资源进行访问(例如:硬盘资源,同一时间段内,多个程序可以同时对硬盘资源进行写入或读取等操作,这些操作看起来就像是同时进行的一样)。这里的“同时”也是宏观上 ...