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

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

概念比較

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

线程:把进程程作为分配资源的,而把线程作为独立执行和独立调度的基本单位。

线程能够创建和撤消线程,从而实现程序的并发执行。一般。线程具有就绪、堵塞和执行三种基本状态。

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

形象比較

进程和线程

大家都上过体育课。假设一个体育课就算是一个学校这个大系统的进程的画。那么线程就是体育课中的各个活动,有的人玩足球,有的人玩篮球,可是不论篮球课,还是体育课,他们都是体育课的一部分,他们也就是线程,是线程的组成部分。

1、这些线程(各种活动)共享者这个进程的资源(操场),并且线程(活动)必须依赖于进程,离开以后就没有存在的意义了(由于逃课是不正确的)。

2、这些线程能够同步运行,一个进程(体育课),线程(体育活动)能够在一节课上,当然也能够你先上篮球课。我后玩足球,他们并无详细的时间性限制。

3、他们依靠代码来控制逻辑顺序,不能中途插入一个线程(活动),而是靠代码逻辑(学校的上下课铃声或者老师)来控制的,一旦代码出现有误(学校设施有误)。那么这个线程必将陷入一片混乱。

4、对于体育课这个进程。线程(体育活动)是未知的,仅仅有在学校在开学的时候分配好的时候才干确定谁先进行什么课程。

管程

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

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

小结

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

时间: 2024-08-28 21:51:40

软考之进程,线程,管程比較的相关文章

# 进程/线程/协程 # IO:同步/异步/阻塞/非阻塞 # greenlet gevent # 事件驱动与异步IO # Select\Poll\Epoll异步IO 以及selectors模块 # Python队列/RabbitMQ队列

1 # 进程/线程/协程 2 # IO:同步/异步/阻塞/非阻塞 3 # greenlet gevent 4 # 事件驱动与异步IO 5 # Select\Poll\Epoll异步IO 以及selectors模块 6 # Python队列/RabbitMQ队列 7 8 ############################################################################################## 9 1.什么是进程?进程和程序之间有什么

初识进程 线程 协程(三):协程

协程:(又称微线程,也是交替运行) 进程-->线程-->协程 协程就是充分利用cpu给该线程的时间,多个协程只使用一个线程,某个任务遇到阻塞,执行下一个任务.如果一个线程只执行一个任务,比较容易进入阻塞队列,如果这条线程永远在工作(协程:一个线程执行多个任务),永远不会进入阻塞队列. 适用场景:    当程序中存在大量不需要CPU的操作时(IO) 特点: 每次都能从上次暂停的位置继续执行 三种实现方式: 1.yield(生成器) 生成器:一边计算一边循环的机制 def a(): ......

进程线程协程那些事儿

一.进程与线程 1.进程 我们电脑的应用程序,都是进程,假设我们用的电脑是单核的,cpu同时只能执行一个进程.当程序出于I/O阻塞的时候,CPU如果和程序一起等待,那就太浪费了,cpu会去执行其他的程序,此时就涉及到切换,切换前要保存上一个程序运行的状态,才能恢复,所以就需要有个东西来记录这个东西,就可以引出进程的概念了. 进程就是一个程序在一个数据集上的一次动态执行过程.进程由程序,数据集,进程控制块三部分组成.程序用来描述进程哪些功能以及如何完成:数据集是程序执行过程中所使用的资源:进程控制

python的进程/线程/协程

1.python的多线程 多线程就是在同一时刻执行多个不同的程序,然而python中的多线程并不能真正的实现并行,这是由于cpython解释器中的GIL(全局解释器锁)捣的鬼,这把锁保证了同一时刻只有一个线程被执行. 多线程的特点: 线程比进程更轻量级,创建一个线程要比创建一个进程快10-100倍. 线程共享全局变量. 由于GIL的原因,当一个线程遇到IO操作时,会切换到另一个线程,所以线程适合IO密集型操作. 在多核cpu系统中,最大限度的利用多核,可以开启多个线程,开销比进程小的多,但是这并

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

在操作系统中,遇到了三兄弟,看起来好像,晕了好长时间,在今天把他大概能弄明白了,故此把这篇文章献给还在迷茫在他们三兄弟之间的你们!因为他们都有一个程字,所以我们在学习的在刚刚学习的时候难免会把他们搞混,因为运用本来对操作系统不能理解很透彻的我们来解释这三个兄弟确实难了点,所以我们就用以前的知识来举例说明. 概念比较 进程:是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时所发生的活动. 线程:把进程程作为分配资源的,而把线程作为独立运行和独立调度的基本单位.线程可以创

软考路——进程与线程

一.进程 1.概念 程序是一组指令的有序集合.进程(Process)是具有一定独立功能的程序在一个数据集合上的一次运行活动.是系统进行资源分配和调度的一个独立单位. 程序本身没有任何运行的含义,只是一个静态实体.而进程则不同,它是程序在某个数据集上的执行,是一个动态实体.它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程. 2.特性 (1)结构性 进程包含程序及其相关数据结构.进程的实体包含进程控制块(PCB),程

进程线程协程

一.进程 各个进程拥有自己的代码段. 进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度. 二.线程 线程比进程轻量级,线程的切换cpu花费比进程小,线程能加大系统的并行度. 一个进程的各个线程之间是共享代码段的,各个线程都有一个程序计数器来指向下一条应该执行的指令. 线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的). 三.协程 协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度.

进程,线程,协程的相关解释 《转载》

自己不太懂这一块,转发和大家一块分享!!! 进程,由OS来管理,每个进程都有自己独立的内存空间,进程之间通讯主要是通过信号传递的方式来实现的,实现方式有多种,信号量,管道,事件等,任何一种方式的通讯效率都需要过内核,导致通讯效率比较低.由于是独立的内存空间,所以上下文切换的时候需要保存当先调用栈的信息,cpu各寄存器的信息,虚拟内存,以及打开的相关句柄等信息,所以导致上下文切换的代价非常高,因此进程并不适合大量创建. 线程:也是由OS来管理的,一个进程可以拥有多个线程,但是其中每个线程会共享父进

进程线程协程的区别

一.概念 1.进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信.由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈.寄存器.虚拟内存.文件句柄等)比较大,但相对比较稳定安全. 2.线程 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存