标签:mic 运行 bsp comm 协同 env 创建 进程间通信 分配
一直对这方面的技术只有些模棱两可的了解,但又没有个统一完整的认识,在学习了《Modern Operating System》和《Advanced Programming in the UNIX Environmet》的相关章节后,做一个总结。
进程是可执行程序加载到内存后,在CPU上执行的代码,包括一些相关的资源及状态,是一个动态的,变化的状态。
进程是系统资源分配的基本单位,一个程序要想执行,则必须要加载到内存中,在执行时要有相关的软硬件资源,所以系统要给“进程”分配好所有的资源后,才能使进程达到ready的状态,进而再在CPU上执行。
两个经典的“进程”定义:
进程是一个可执行程序的实例,包含PC值,寄存器值,变量值。
API
fork()
线程是执行的最小单位,是在CPU上运行的实体,是轻量级的进程,之所以产生是因为进程创建及销毁带来大量的系统资源损耗。线程的创建及销毁比进程要快10-100倍。
有了线程可以更好的支撑并行编程,更好的支持SMP处理器,减小上下文切换,性能更高。
分类,根据调度者是在核内还是核外分为
Linux使用混合模型。
POSIX线程模型
进程由于地址空间的隔离,需要某种相互通信的机制,以达到协同工作的目的。
进程通信(Inter Process Communication)存在以下几种:
进程通信主要考虑解决以下问题:
经典问题
进程与进程间通信的方式有:
线程与线程间通信的方式:
第一部分是可以使用进程通信的方式:
第二部分是线程特有的方式:
标签:mic 运行 bsp comm 协同 env 创建 进程间通信 分配
原文地址:https://www.cnblogs.com/Freeee/p/11588423.html