在操作系统中。遇到了三兄弟,看起来好像,晕了好长时间,在今天把他大概能弄明确了,故此把这篇文章献给还在迷茫在他们三兄弟之间的你们。由于他们都有一个程字。所以我们在学习的在刚刚学习的时候难免会把他们搞混,由于运用本来对操作系统不能理解非常透彻的我们来解释这三个兄弟确实难了点,所以我们就用曾经的知识来举例说明。
概念比較
进程:是操作系统结构的基础,是一次程序的运行。是一个程序及其数据在处理机上顺序运行时所发生的活动。
线程:把进程程作为分配资源的,而把线程作为独立执行和独立调度的基本单位。
线程能够创建和撤消线程,从而实现程序的并发执行。一般。线程具有就绪、堵塞和执行三种基本状态。
管程:管程定义了一个数据结构和能为并发进程所运行的一组操作。这组操作能同步进程和改变管程中的数据。
形象比較
进程和线程
大家都上过体育课。假设一个体育课就算是一个学校这个大系统的进程的画。那么线程就是体育课中的各个活动,有的人玩足球,有的人玩篮球,可是不论篮球课,还是体育课,他们都是体育课的一部分,他们也就是线程,是线程的组成部分。
1、这些线程(各种活动)共享者这个进程的资源(操场),并且线程(活动)必须依赖于进程,离开以后就没有存在的意义了(由于逃课是不正确的)。
2、这些线程能够同步运行,一个进程(体育课),线程(体育活动)能够在一节课上,当然也能够你先上篮球课。我后玩足球,他们并无详细的时间性限制。
3、他们依靠代码来控制逻辑顺序,不能中途插入一个线程(活动),而是靠代码逻辑(学校的上下课铃声或者老师)来控制的,一旦代码出现有误(学校设施有误)。那么这个线程必将陷入一片混乱。
4、对于体育课这个进程。线程(体育活动)是未知的,仅仅有在学校在开学的时候分配好的时候才干确定谁先进行什么课程。
管程
管程定义了一个数据结构和能为并发进程所运行的一组操作。这组操作能同步进程和改变管程中的数据管程定义了一个数据结构和能为并发进程所运行的一组操作,这组操作能同步进程和改变管程中的数据
而管程就像是我们上体育课的器材保管室,假设那个进程须要訪问资源(体育器材),都须要先通过管程(器材室)来索要资源(体育器材)。毕竟东西是有限的,须要合理分配。依据情况的不同来进行分配。
小结
这知识我对这三个的理解,线程<进程,或者线程包括于进程。而管程又控制了进程的之心顺序,谁有资源谁就能执行,而线程则是让我们的进程执行的更有效率,我们总不能让一个学校的学生一起在操场各玩各的,这个貌似太乱了。