进程、线程、并发、并行

码农天地 -
进程、线程、并发、并行
进程

进程有独立的虚拟地址空间,进程间不可以共享内存,想要和其他进程通信必须使用某种显式的进程间通信(IPC)机制。进程控制和IPC开销比较大。

多进程执行过程

从一个进程到另一个进程的转换是由操作系统内核管理的。当应用程序需要操作系统的某些操作时,比如读写文件,它就执行一条特殊的系统调用指令,将控制权传递给内核。然后内核执行被请求的操作并返回应用程序。

线程

一个进程允许有多个线程,线程由内核自动调度,多个线程共享进程的虚拟地址空间。每个线程都有自己的线程上下文,包括一个唯一的线程ID、栈、栈指针、程序计数器、通用目的寄存器和条件码。线程比进程更高效,在有多个处理器工作时多线程可以大幅提高运行效率。

线程执行模型

每个进程开始时都是单一线程,称之为主线程(main thread)。在某一时刻,主线程创建一个对等线程(peer thread),之后,两个线程并发地运行。因为主线程执行一个慢速系统调用,如read文件或sleep或因为系统的间隔计时器中断,控制就会通过上下文切换传递到对等线程。对等线程执行一段时间后,因为相同的原因控制又回到主线程,依次类推。

并发

术语并发是一个通用的概念,指一个同时具有多个活动的系统。

并行

术语并行指的是用并发来使一个系统运行的更快。并行可以在计算机系统的多个抽象层次上运用:

线程级并发

传统意义上,这种并发只是模拟出来的,是通过在他正在执行的进程间快速切换来实现的。

指令级并行单指令、多数据并行
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。
上一篇: Linux常用指令

Tags 标签

加个好友,技术交流

1628738909466805.jpg