首页 > 代码库 > 软考之进程,线程,管程比较

软考之进程,线程,管程比较

在操作系统中,遇到了三兄弟,看起来好像,晕了好长时间,在今天把他大概能弄明白了,故此把这篇文章献给还在迷茫在他们三兄弟之间的你们!因为他们都有一个程字,所以我们在学习的在刚刚学习的时候难免会把他们搞混,因为运用本来对操作系统不能理解很透彻的我们来解释这三个兄弟确实难了点,所以我们就用以前的知识来举例说明。

概念比较

进程:是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时所发生的活动。

线程:把进程程作为分配资源的,而把线程作为独立运行和独立调度的基本单位。线程可以创建和撤消线程,从而实现程序的并发执行。一般,线程具有就绪、阻塞和运行三种基本状态。

管程:管程定义了一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。

形象比较

进程和线程

大家都上过体育课,如果一个体育课就算是一个学校这个大系统的进程的画,那么线程就是体育课中的各个活动,有的人玩足球,有的人玩篮球,但是不论篮球课,还是体育课,他们都是体育课的一部分,他们也就是线程,是线程的组成部分。
1、这些线程(各种活动)共享者这个进程的资源(操场),而且线程(活动)必须依赖于进程,离开以后就没有存在的意义了(因为逃课是不对的)。
2、这些线程可以同步执行,一个进程(体育课),线程(体育活动)可以在一节课上,当然也可以你先上篮球课,我后玩足球,他们并无具体的时间性限制。
3、他们依靠代码来控制逻辑顺序,不能中途插入一个线程(活动),而是靠代码逻辑(学校的上下课铃声或者老师)来控制的,一旦代码出现有误(学校设施有误),那么这个线程必将陷入一片混乱。
4、对于体育课这个进程,线程(体育活动)是未知的,只有在学校在开学的时候分配好的时候才能确定谁先进行什么课程。

管程

管程定义了一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据管程定义了一个数据结构和能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据

而管程就像是我们上体育课的器材保管室,如果那个进程需要访问资源(体育器材),都需要先通过管程(器材室)来索要资源(体育器材),毕竟东西是有限的,需要合理分配,根据情况的不同来进行分配。

小结

这知识我对这三个的理解,线程<进程,或者线程包含于进程,而管程又控制了进程的之心顺序,谁有资源谁就能运行,而线程则是让我们的进程执行的更有效率,我们总不能让一个学校的学生一起在操场各玩各的,这个貌似太乱了。

软考之进程,线程,管程比较