上船不思岸上人,下船不提船上事
文章目录
- 2.1.1 进程的概念,组成,特征
- 知识总览
- 进程的概念
- 进程的组成——PCB
- 程序是如何运行的
- 进程的组成
- 进程的特征
- 知识回顾
- 2.1.2 进程的状态与转换,进程的组织
- 知识总览
- 创建态,就绪态
- 运行态
- 阻塞态
- 终止态
- 进程状态的转化
- 进程的状态
- 进程的组织方式——链接方式
- 进程的组织——索引方式
- 进程的组织
- 知识回顾
- 2.1.3 进程控制
- 进程控制相关的原语
- 程序是如何运行的
- 知识回顾
- 2.1.4进程通信
- 什么是进程通信
- 进程通信需要操作系统的支持
- 共享存储
- 消息传递
- 直接通信方式
- 间接通信方式
- 管道通信
- 知识回顾
- 王道修正
- 2.1.5 线程的概念
- 知识总览
- 线程的属性
- 2.1.6 线程的实现方式和多线程模型
- 知识总览
- 线程的实现方式
- 用户级线程
- 内核级线程
- 多线程模型
- 知识回顾
- 2.1.7 线程的状态与转换
- 知识总览
- 进程的状态与转换
- 线程的组织与控制
2.1.1 进程的概念,组成,特征
知识总览
进程的概念
区别:
1)进程是动态的;程序是静态的。
(2)进程有独立性,能并发执行;程序不能并发执行。
(3)二者无一一对应关系。
(4)进程异步运行,会相互制约;程序不具备此特征。
但是,进程与程序又有密切的联系: 进程不能脱离具体程序而虚设, 程序规定了相应进程所要完成的动作。
(5)组成不同。进程包含PCB、程序段、数据段。程序包含数据和指令代码。
(6)程序是一个包含了所有指令和数据的静态实体。本身除占用磁盘的存储空间外,并不占用系统如CPU、内存等运行资源。
(7)进程由程序段、数据段和PCB构成,会占用系统如CPU、内存等运行资源。
(8)一个程序可以启动多个进程来共同完成。
联系:进程不能脱离具体程序而虚设, 程序规定了相应进程所要完成的动作。
进程的组成——PCB
PCB简介:
PCB中记录了操作系统所需的,用于描述进程的当前情况以及控制进程运行的全部信息。
PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。
例如,当OS要调度某进程执行时,要从该进程的PCB中查处其现行状态及优先级;在调度到某进程后,要根据其PCB中所保存的处理机状态信息,设置该进程恢复运行的现场,并根据其PCB中的程序和数据的内存始址,找到其程序和数据;
进程在执行过程中,当需要和与之合作的进程实现同步,通信或者访问文件时,也都需要访问PCB;
当进程由于某种原因而暂停执行时,又须将器断点的处理机环境保存在PCB中。
可见,在进程的整个生命期中,系统总是通过PCB对进程进行控制的,即系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的。
所以说,PCB是进程存在的唯一标志。
程序是如何运行的
进程的组成
进程的特征
知识回顾
2.1.2 进程的状态与转换,进程的组织
知识总览
创建态,就绪态
运行态
阻塞态
当操作系统将资源分配给进程2的时候,那么这个进程2等待的事件就已经发生了,此时就会从阻塞态变成就绪态
终止态
进程状态的转化
进程的状态
进程的组织方式——链接方式
进程的组织——索引方式
进程的组织
知识回顾
2.1.3 进程控制
简单来说进程控制就是进程状转换
原语的执行具有原子性,一气呵成 若是不具有原子性,可能导致操作系统中某些关键数据结构信息不统一的情况,这会影响操作系统进行别的管理工作
进程控制相关的原语
作业调度就是从外存中挑选一个程序放入内存让他运行,这里说明一下调度和切换的区别.调度是指决定资源分配给哪个进程的行为,是一种决策行为,切换是指实际分配的行为,是执行行为,一般来说现有资源调度,后有进程切换,
学习技巧:进程控制会导致进程状态的转换.无论哪个原语,要做的无非三类事情:
1.更新PCB中的信息(如修改进程状态标志、将运行环境保存到PCB、从PCB恢复运行环境)
a.所有的进程控制原语一定都会修改进程状态标志
b.剥夺当前运行进程的CPU使用权必然需要保存其运行环境
c.某进程开始运行前必然要恢复期运行环境
2.将PCB插入合适的队列
3.分配/回收资源
。接下来我们就具体学习一下关于进程控制的五种原语,进程的创建、终止、唤醒、阻塞、切换;
阻塞原语是由被阻塞进程自我调用实现的
唤醒原语是由一个被唤醒进程合作或被其他相关的进程调用实现的
下面来解释一下什么是运行环境信息以及进程所需的运行环境
程序是如何运行的
CPU的状态是内核态还是用户态就是保存在程序状态字寄存器PSW中的
,若是执行完指令3之后,另外一个进程开始上CPU运行,另外一个进程同样需要上一个进程同样的寄存器,所以也就可能发生数据的覆盖
知识回顾
2.1.4进程通信
什么是进程通信
进程通信需要操作系统的支持
共享存储
消息传递
直接通信方式
操作系统内核的区域中保存着各个进程的PCB,各个进程的PCB包含一个消息队列,当进程Q要使用直接通信方式的时候,进程P要在自己的地盘来完善这个消息,进程P会使用这个发送原语,这个原语会到进程Q的消息队列中,进程Q会使用接受原语从内核区域中的消息队列中找信息
间接通信方式
管道通信
就像水管一样,水只能从一端流向另外一端其实也就是一个循环队列,与直接通信的区别是读数据很自由,但是管道通信方式中是一个数据流的方式,要求数据的读写一定是先进先出的,
知识回顾
王道修正
2.1.5 线程的概念
知识总览
线程的属性
2.1.6 线程的实现方式和多线程模型
知识总览
线程的实现方式
用户级线程
就像上面举得while的例子,若是某一个线程被阻塞,则整个进程都会被阻塞
内核级线程
也就是操作系统也可以看到的线程
多线程模型