目录
(使用方法可参考:子进程计算斐波那契数列并放入共享进程,父进程将共享进程内的斐波那契数列输出)
一、进程与线程(process and thread)
1、进程的概念:
我们首先先引入进程实体的概念:进程实体由进程PCB、数据段、程序段三部分组成。
而进程是进程实体的运行过程,是系统进行调度和资源分配的基本单位。
2、进程的状态与转换:
进程三个基本状态
就绪态:进程获得除处理机外的一切资源、一旦得到处理机就可立即执行
执行态:进程正在处理机上运行。
阻塞态:进程正在等待某一事件的完成,此时即使处理机空闲,进程也不能运行。
注意区分:就绪态VS阻塞态
进程的状态转换:
运行态到阻塞态:运行过程中发现需要某些资源,因而主动将自己阻塞(记录型信号量实现非让权等待)
运行态到就绪态:时间片时间到不得不让出处理机。
阻塞态到就绪态:得到某些资源后,将其唤醒(被动行为,需要其他进程的协助)
就绪态到执行态:被调度得到处理机资源
3、进程控制:
1.进程创建(fork):
允许父进程创建子进程。子进程可以继承父进程拥有的资源。当子进程被撤销时,应将获得的资源全部还给父进程;当父进程被撤销时,旗下的所有子进程都需被杀死。
触发创建进程的事件:中断用户登录系统、作业调度、系统提供服务、用户程序的应用请求
2.进程终止:
触发事件:正常结束、异常结束(越界、非法指令等)、外界干预
3.进程的阻塞和唤醒:
4.进程切换:
4、进程组织:
1.进程PCB:是进程存在的唯一标志
2.程序段:
3.数据段:
5、进程通信:
PV是低级通信,高级通信方式主要有以下三种:
1.共享存储:通过系统操作开辟一块独立的进程空间
(使用方法可参考:子进程计算斐波那契数列并放入共享进程,父进程将共享进程内的斐波那契数列输出)
2.消息传递:
直接通信:
间接通信:通过“邮箱”进行通信
3.管道通信:
采用半双工通信
6、线程概念与多线程模型:
引入线程的目的:减小程序在并发执行是的时空开销,提高操作系统的并发性能。
1.线程的基本概念 :
轻量级“进程”,基本不拥有资源,但可与其他线程共享进程的全部资源。拥有TCB,用来进行表示。
2.线程与进程的区别:
(1)调度:在引入了线程的操作系统中,进程是拥有系统资源的基本单位,线程是进行调度的基本单位。
3.线程的属性:
(1)同一进程的不同线程可以共享该进程的资源
(2)线程是处理机调度的基本单位
4.线程的实现方式:
(1)用户级线程
(2)内核级线程
5.多线程模型:
(1)多对一:
优点:线程管理是在用户空间进行的,因而效率比较高。
缺点:一个线程在使用内核服务时被阻塞整个进程都会被阻塞;多个线程不能并行地运行在多处理机上。并发度不高
(2)一对一:
优点:当一个线程被阻塞后,允许另一线程继续执行,并发能力比较强
缺点:没创建一个用户级线程都需要创建一个内核线程与其对应,创建线程的开销比较大
(3)多对多:
6.补充知识点:
(1)为什么要引入进程?
在多道程序引入后,多个程序可以并发执行,此时程序将失去封闭性,并具有间断性和不可再现性。因此引入进程来更好的进行程序管理。
(2)进程和程序的根本区别是:静态和动态的区别;
(3)操作系统是根据(进程PCB)来对并发执行的进程进行调度
(4)父进程创建子进程和主程序调用子程序有什么不同?
答:父进程创建子进程后二者并发执行;而主程序调用子程序之后,本身会暂停在调用点,子进程执行,直到子程序返回主程序才开始执行。
二、处理机调度
1、调度的基本概念:调度时机、切换与过程
2、调度的基本准则:调度方式;典型的调度算法
三、进程同步
1、进程同步的概念
2、实现临界区互斥的基本方法
3、信号量;管程;经典同步问题
4、例题+知识点
1.区分临界区和临界资源
2.用PV操作实现同步,信号量初值为_____;
3.对于两个并发进程,设互斥信号量为mutex=1,若mutex=0,说明__________;
若mutex=-1,说明__________;
4.信号量:某博物馆最多容纳500人,有一个出入口,该入口一次允许一人通过,使用信号量实现该过程。
临界资源: semophore入口 mutex=1;
semophore空间 N=500;
visitor(){
while(1){
P(N);
P(mutex);
进入;
V(mutex);
参观;
P(mutex);
离开;
V(mutex);
V(N);
}
}