概述
- 前趋图:起始结点,终止结点,重量(终止时间)
- 顺序执行特征:顺序性、封闭性、可再现性
- 程序间可并发执行,只要程序间不存在前趋关系。如
其中,s1: a = x + 2; s2: b = y + 4; s3:c = a + b; s4:d = c + b 因此,s1与s2无前趋关系,s1和s2可以并发执行
- 并发执行的特征:间断性、失去封闭性、不可再现性
如:两个程序A,B. A:N = N + 1; B:print(N);N = 0;
情况1: N = N + 1发生在print(N)之前,则N的值变化为:N+1,N+1,0
情况2: N = N + 1发生在print(N)与N=0之间,则N的值变化为:N,N+1,0
情况3: N = N + 1发生在N=0之后,则N的值变化为:N,0,N+1
计算结果与并发程序的执行速度有关!!!
- 进程控制块PCB(Process Control Block):描述进程的基本情况和活动过程,进而控制和管理进程
- 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
- 进程的特征:动态性、并发性(程序没有建立PCB,不能参与并发执行)、独立性、异步性(按各自独立的、不可预知的速度向前推进)
- 进程在并发执行时共享系统资源
- 进程的三种基本状态:
- 就绪状态:已分配除CPU之外的所有必要资源;就绪队列
- 执行状态
- 阻塞状态:由于一些原因阻塞进程,使得进程暂停,等待一段时间后可能引发进程调度;阻塞队列,根据阻塞原因的不同可能有多个阻塞队列
- 三态五换:
- 另两种常见状态:
- 创建状态
- 终止状态:进入终止状态的进程以后不能再执行
- 引入挂起(Suspend)操作的原因
- 终端用户的需要
- 父进程的请求
- 负荷调节的需要
- 操作系统的需要
- 挂起原语:Suspend 激活原语:Active
- 活动就绪 -------》 静止就绪(不会再被调度执行):使用Suspend
- 活动阻塞 -------》 静止阻塞:在阻塞状态时使用Suspend。当处于静止阻塞的进程在其所期待的事件出现后,它将从静止阻塞变为静止就绪
- 静止就绪 -------》 活动就绪:使用Active
- 静止阻塞 -------》 活动阻塞:使用Active
- PCB的作用:
- 作为独立运行基本单位的标志
- 能实现间断性运行方式(PCB保留CPU现场信息)
- 提供进程管理所需要的信息,如该进程所需要哪些资源
- 提供进程调度所需要的信息
- 实现与其他进程的同步与通信
- PCB的组织方式
- 线性方式
- 链接方式:具有相同状态的PCB放在一起;阻塞状态的PCB会因为其阻塞原因不同而有多个阻塞队列
- 索引方式
- 处理机的执行状态:系统态(管态、内核态)、用户态(目态)
- 操作系统三中最基本的支撑功能:中断处理、时钟管理、原语操作
- 子进程可以继承父进程所拥有的资源。当子进程被撤销时,应将其从父进程那里获得的资源归还给父进程。进程不能拒绝其子进程的继承权
- 在Windows中,不存在任何进程层次的概念,所有的进程都具有相同的地位。句柄;句柄可传递
- 引起创建进程的事件
- 用户登录
- 作业调度
- 提供服务
- 应用请求
- 进程创建的过程:
- 申请空白PCB
- 为新进程分配其运行所需的资源
- 初始化PCB
- 将新进程插入就绪队列(如果可以插入)
- 并发进程的两种形式的制约关系
- 间接相互制约关系:访问临界资源
- 直接相互制约关系
- 每个进程访问临界资源的代码称为临界区
while(true){
进入区(判断是否可以进入临界区)
临界区(对临界资源操作)
退出区(退出临界区)
剩余区
}
- 同步机制应遵循的规则
- 空闲让进
- 忙则等待
- 有限等待:避免进程陷入死等状态
- 让权等待:在有限时间到后,若进程还未进入自己的临界区,应释放处理机,该进程转为就绪状态
- 锁机制、信号量机制(不是太明白,争取之后在JAVA的学习中弄明白)
- 信号量只能通过两个原子操作wait(s)和signal(s)来访问,俗称为P、V操作
- 四种信号量
- 整型信号量
- 记录型信号量:整型信号量 + 进程链表指针
- AND型信号量:一次分配进程所需所有资源,避免死锁
- 信号量集:一次可申请多个资源
- 线程:作为调度和分派的基本单位
- 进程拥有系统资源,而线程本身并不拥有系统资源
- 一个进程下的多个线程共享该进程所拥有的资源
- 同一进程下的所有线程都具有相同的地址空间
- 每个进程都拥有一个独立的地址空间和其他资源
- 每个线程都有用户自己的一个堆栈以及一个核心栈
- 由进程为其下的线程提供资源和运行环境
- Java的运行环境是单进程多线程
- 进程是一个可拥有资源的基本单位
- 线程是独立运行的基本单位
- 线程必须依赖于进程而存在
最后
以上就是生动树叶为你收集整理的学习笔记之汤小丹《计算机操作系统第四版》----第二章 进程的描述与控制的全部内容,希望文章能够帮你解决学习笔记之汤小丹《计算机操作系统第四版》----第二章 进程的描述与控制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复