1、一个进程可以有多个线程,但至少有一个线程;而一个线程只能在一个进程的地址空间内活动。
2、资源分配给进程,同一个进程的所有线程共享该进程所有资源。
3、CPU分配给线程,即真正在处理器运行的是线程。
4、线程在执行过程中需要协作同步,不同进程的线程间要利用消息通信的办法实现同步。
从一定意义上讲,进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。
在引入线程的 *** 作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。
1.进程是具有独立功能的程序在某个数据集合上的一次执行过程。
2.线程是进程内的一个执行实体(控制流)。
3.进程&线程联系和区别:
(1)调度:线程是处理器调度分配的基本单位。
(2)并发性:进程之间可并发执行,同一进程内的各线程之间也可并发执行。
(3)拥有资源:进程是拥有资源的独立单位,线程一般不拥有资源,但它可以共享进程的资源。
(4)系统开销:进程切换开销>>线程切换开销。
二.进程的状态转换 1.三态模型(1)运行(running)态:进程占有处理器正在运行。
(2)就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行。
(3)等待(wait)态:又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。
2.五态模型新建态:进程刚被创建时的状态,尚未进入就绪队列。
终止态:进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被 *** 作系统及有终止权的进程所终止时所处的状态。进入终止态的进程以后不再执行,但依然保留在 *** 作系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后, *** 作系统将删除该进程。
3.缺弧原因就绪态不能转换为阻塞态:
因为阻塞态是进程在运行时主动发生的:
- 在程序执行阻塞I/O中的read、recv等系统调用时,进程将会一直处于阻塞直到数据到来或者到达设定的超时时间。
- 进程可以执行sleep系统调用来显式进入阻塞。
处于就绪态的进程无法执行任何造成其阻塞的代码,故无法转换为阻塞态。
阻塞态不能转换为运行态:
阻塞态到达运行态需要满足两个条件:
- 申请的资源被满足或等待的事件发生
- 进程被调度
而在状态发生转换的一刻我们不能同时满足两个条件(即使你认为能,但在计算机中并不存在真正的“同时”,两个条件满足到来的电信号一定会有先后顺序),因此我们不能直接让阻塞态到运行态。
三.进程控制块的作用进程控制块记录了 *** 作系统所需的,用于描述进程的当前情况,以及控制进程运行的全部信息。 *** 作系统是根据PCB来对并发执行的进程进行控制和管理的。
1.标识信息:用于唯一的标识一个进程,分为用户使用的外部标识符和系统实用的内部标识号。
2.现场信息:保留进程在运行时存放在处理器现场中的各种信息。
3.控制信息:包括进程调度的相关信息,进程组成信息,进程间的族系信息等。
四.算法:会写出调换顺序 1.先来先服务调度算法(FCFS) 2.短作业优先调度算法(SJF) 3.最短剩余时间调度算法(SRTN) 4.高响应比优先调度算法(HRRN) 四种算法区别 5.时间片轮转调度算法(RR) 6.优先级调度算法(非抢占式) 7.优先级调度算法(抢占式) 8. 多级反馈队列调度算法 五.计算公式
课后习题答案: *** 作系统第五版费祥林-课后习题答案参考_蚂蚁文库
仅为个人复习自用。
学习内容来自王道视频讲解,课本为《 *** 作系统教程第五版》费翔林编著。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)