下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

软件设计:多进程多线程

作者:留一日白     来源: https://www.cnblogs.com/lyrb/p/10645258.html点击数:906发布时间: 2020-04-04 18:27:10

标签: 操作系统CPU软件开发

  进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

  多进程多线程

  进程——操作系统资源分配的最小单位

  线程——操作系统CPU调度的最小单位

  进程

  进程产生由来:计算机一次只能执行一个任务,如果某个任务需要从I/O设备读取大量数据,此I/O操作过程中CPU是空闲的,可以用来进行其他操作。因此发明了进程,用进程来对应一个任务。

  进程的特点:每个进程有独立的内存空间,进程间互不相关,由操作系统来进行调度。

  多进程并行:当时CPU还没有多核、多线程的概念,为了达到多进程并行运行的目的,采用了分时的方式,即把CPU的时间分成很多片段,每个片段只能执行某个进程中的指令。虽然从操作系统和CPU的角度来说还是串行处理的,但是由于CPU的处理速度很快,从用户的角度感觉像是多进程并行处理。

  进程间通信:由于每个进程有独立的内存空间,进程间互不相关,但是有时候希望两个进程之间能够进行通信。如果不能通信只能是A存储到磁盘,B需要数据再从磁盘读取,效率低且设计复杂。为了解决进程间通信的问题,设计出了包括管道、消息队列、信号量、共享存储等各种方式。

  线程

  线程产生由来:多进程能让多任务并行处理,但是单个进程内部只能串行处理。实际上进程内部的各个子任务并不要求严格按照时间顺序来执行,也需要并行处理。因此发明了线程。

  线程的特点:线程是进程内部的子任务,共享一份进程数据。为了保证共享数据的准确性,又发明了互斥锁机制。

软件设计:多进程多线程_操作系统_CPU_软件开发_课课家

  多道程序在执行时,需要共享系统资源,从而导致各程序在执行过程中出现相互制约的关系,程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的,是动态的过程,而传统的程序本身是一组指令的集合,是一个静态的概念,无法描述程序在内存中的执行情况,即我们无法从程序的字面上看出它何时执行,何时停顿,也无法看出它与其它执行程序的关系,因此,程序这个静态概念已不能如实反映程序并发执行过程的特征。

赞(14)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程