精华内容
下载资源
问答
  • 实验结果表明,可以减少20%~70%被检查进程的停止时间,使得检查点的设置与进程的执行具有一定的并发性。减少被检查进程在设置检查点时的停止时间,适合 实时性和交互性要求较高的进程设置检查点。
  • 理解并发进程

    2019-04-18 18:55:00
    顺序程序设计具有四种特性:(1)执行的顺序(2)环境的封闭(3)结果的确定性(4)过程的可再现。程序顺序执行与其速度无关,即程序的最终输出仅与初始输入数据有关,而与时间无关。 二、并发程序设计: ...

    一、顺序程序设计:

    顺序程序设计具有四种特性:(1)执行的顺序性(2)环境的封闭性(3)结果的确定性(4)过程的可再现性。程序顺序执行与其速度无关,即程序的最终输出仅与初始输入数据有关,而与时间无关。

    二、并发程序设计:

    并发进程的特性:并发进程可能是无关的,也可能是交互的。无关的并发进程是指它们分别在不同的变量集合上的操作,一个进程的执行与其他并发进程的进展无关,即一个进程不会改变另一个与其并发执行的进程的变量。然而,交互的并发进程共享某些变量,一个进程的执行可能会影响其他进程的执行结果,交互的并发进程之间具有制约关系。因此,进程的交互必须是有控制的,否则会出现不正确的计算结果。

    例子:

    并发程序设计:

    在一个单处理器系统中,从磁盘读入数据经加工后打印输出,不采用并发程序设计时,解决这个问题的程序是循环地执行读入一批数据,然后,加工打印输出。执行这个程序时,磁盘机、处理器和打印机顺序执行输入、加工和输出操作。虽然计算机的外围设备和处理器可以并行操作,但执行上述程序时它们只能串行工作。如果采用并发程序设计,解决上述问题的程序由以下两个进程组成。①读盘进程:循环地执行读入一批数据,加工后送入输出缓冲区;②打印进程:循环地执行从缓冲区取出数据打印输出。在打印进程执行打印输出时只需要打印机,而不需要磁盘机和处理器。因此,在打印进程启动打印机后,在打印机输出的过程中可以启动读盘进程输入和加工数据。执行这个程序时,处理器、磁盘机和打印机并行工作,能缩短程序执行的时间,提高计算机系统的效率。

    顺序程序设计:

    a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三部曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。

    转载于:https://www.cnblogs.com/qx77/p/10731593.html

    展开全文
  • 二、并发VS并行 2.1 概念 并发:一个处理器同时处理多个任务。 并行:多个处理器或者是多核的处理器同时处理多个不同的任务。...并行(parallelism)是指同时发生的两个并发事件,具有并发的含义,而并...

    一、线程VS进程

    1.1 基本概念

    进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空 间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。
    线程,在网络或多用户环境下,一个服务器通常需要接收大量且不确定数量用户的并发请求,为每一个请求都创建一个进程显然是行不通的,——无论是从系统资源开销方面或是响应用户请求的效率方面来看。因此,操作系统中线程的概念便被引进了。线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位。

    1.2 颗粒度不同的CPU工作时间段的描述

    首先来一句概括的总论:进程和线程都是一个时间段的描述,是CPU工作时间段的描述。
    下面细说背景:CPU+RAM+各种资源(比如显卡,光驱,键盘,GPS, 等等外设)构成我们的电脑,但是电脑的运行,实际就是CPU和相关寄存器以及RAM之间的事情。
    一个最最基础的事实:CPU太快,太快,太快了,寄存器仅仅能够追的上他的脚步,RAM和别的挂在各总线上的设备完全是望其项背。那当多个任务要执行的时候怎么办呢?轮流着来?或者谁优先级高谁来?不管怎么样的策略,一句话就是在CPU看来就是轮流着来。
    一个必须知道的事实:执行一段程序代码,实现一个功能的过程介绍 ,当得到CPU的时候,相关的资源必须也已经就位,就是显卡啊,GPS啊什么的必须就位,然后CPU开始执行。这里除了CPU以外所有的就构成了这个程序的执行环境,也就是我们所定义的程序上下文。当这个程序执行完了,或者分配给他的CPU执行时间用完了,那它就要被切换出去,等待下一次CPU的临幸。在被切换出去的最后一步工作就是保存程序上下文,因为这个是下次他被CPU临幸的运行环境,必须保存。
    串联起来的事实:前面讲过在CPU看来所有的任务都是一个一个的轮流执行的,具体的轮流方法就是:先加载程序A的上下文,然后开始执行A,保存程序A的上下文,调入下一个要执行的程序B的程序上下文,然后开始执行B,保存程序B的上下文。。。。
    ========= 重要的东西出现了========
    进程和线程就是这样的背景出来的,两个名词不过是对应的CPU时间段的描述,名词就是这样的功能。

    进程就是包换上下文切换的程序执行时间总和 = CPU加载上下文+CPU执行+CPU保存
    

    上下文线程是什么呢?进程的颗粒度太大,每次都要有上下的调入,保存,调出。如果我们把进程比喻为一个运行在电脑上的软件,那么一个软件的执行不可能是一条逻辑执行的,必定有多个分支和多个程序段,就好比要实现程序A,实际分成 a,b,c等多个块组合而成。那么这里具体的执行就可能变成:
    程序A得到CPU =》CPU加载上下文,开始执行程序A的a小段,然后执行A的b小段,然后再执行A的c小段,最后CPU保存A的上下文。
    这里a,b,c的执行是共享了A的上下文,CPU在执行的时候没有进行上下文切换的。这里的a,b,c就是线程,也就是说线程是共享了进程的上下文环境的更为细小的CPU时间段。
    到此全文结束,再一个总结:进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同。

    二、并发VS并行

    2.1 概念

    并发:一个处理器同时处理多个任务。
    并行:多个处理器或者是多核的处理器同时处理多个不同的任务。
    前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生。
    并发性(concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生。
    并行(parallelism)是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行。

    2.2 生动比喻

    你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。
    你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。
    你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。
    并发的关键是你有处理多个任务的能力,不一定要同时。并行的关键是你有同时处理多个任务的能力。所以我认为它们最关键的点就是:是否是『同时』。

    2.3 大神解释

    如果某个系统支持两个或者多个动作(Action)同时存在,那么这个系统就是一个并发系统。如果某个系统支持两个或者多个动作同时执行,那么这个系统就是一个并行系统。并发系统与并行系统这两个定义之间的关键差异在于“存在”这个词。
    在并发程序中可以同时拥有两个或者多个线程。这意味着,如果程序在单核处理器上运行,那么这两个线程将交替地换入或者换出内存。这些线程是同时“存在”的——每个线程都处于执行过程中的某个状态。如果程序能够并行执行,那么就一定是运行在多核处理器上。此时,程序中的每个线程都将分配到一个独立的处理器核上,因此可以同时运行。
    我相信你已经能够得出结论——“并行”概念是“并发”概念的一个子集。也就是说,你可以编写一个拥有多个线程或者进程的并发程序,但如果没有多核处理器来执行这个程序,那么就不能以并行方式来运行代码。因此,凡是在求解单个问题时涉及多个执行流程的编程模式或者执行行为,都属于并发编程的范畴。

    摘自:《并发的艺术》 — 〔美〕布雷谢斯

    2.4 图文并茂

    2.4.1 并发与并行的特点

    在这里插入图片描述
    如上图所示,三段任务A,B,C等待被CPU执行
    并发时特点:1. 单处理器;2. 逻辑上的同步处理。此时,单处理器(CPU)在三个任务之间来回切换。由于CPU的切换速度很快,在用户看来,就像是三个任务在同时进行,但实际上并没有从根本提升处理三个任务的速度,只是由于灵活的切换,可能会减少任务在线程中阻塞的时间。执行完三个任务所需时间为:t_con = t_A + t_B + t_C。
    并行时特点:1. 多处理器;2. 物理上的同步处理。此时,三个处理器同时执行三个任务,是真正意义上的三个任务同时执行(每个任务依然可能会被不同的CPU执行,当然,任务不一定有被其他CPU执行的权限),比如CPU1一会儿执行任务A,一会儿执行任务B,一会儿执行任务C,与此同时,CPU2也一会儿执行任务A,一会儿执行任务B,一会儿执行任务C)。假设三个CPU的处理速度一样,这种情况下,执行完三个任务所需的时间为:t_para = (t_A + t_B + t_C) / 3。

    2.4.2 咖啡馆中的并发和并行

    Erlang 之父 Joe Armstrong 用一张5岁小孩都能看懂的图解释了并发与并行的区别
    在这里插入图片描述

    在这里插入图片描述
    注意:并发和并行都有可能是多线程,CPU在同时执行任务时依然可能存在任务切换,即并发中可能存在着并行。

    2.4.3 并发中可能包含并行

    下图反映了一个包含8个操作的任务在一个有两核心的CPU中创建四个线程运行的情况。假设每个核心有两个线程,那么每个CPU中两个线程会交替并发,两个CPU之间的操作会并行运算。单就一个CPU而言两个线程可以解决线程阻塞造成的不流畅问题,其本身运行效率并没有提高,多CPU的并行运算才真正解决了运行效率问题,这也正是并发和并行的区别。
    在这里插入图片描述
    两个CPU同时执行任务,是并发关系。
    在两个CPU内部,各自的两个线程轮流占用CPU资源来执行自己的操作任务,线程之间是并行关系。

    展开全文
  • 并发并行进程线程

    2020-12-13 11:21:17
    1.概念区分 1.1简单了解多线程【理解】 是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间...动态进程的实质是程序的一次执行过程,进程是动态产生,动态消亡

    1.概念区分

    1.1简单了解多线程【理解】

    是指从软件或者硬件上实现多个线程并发执行的技术。
    具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。

    1.2并发和并行【理解】

    • 并行:在同一时刻,有多个指令在多个CPU上同时执行。

    在这里插入图片描述

    • 并发:在同一时刻,有多个指令在单个CPU上交替执行。

    在这里插入图片描述

    1.3进程和线程【理解】

    • 进程:是正在运行的程序

      独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位
      动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的
      并发性:任何进程都可以同其他进程一起并发执行

    • 线程:是进程中的单个顺序控制流,是一条执行路径

      ​ 单线程:一个进程如果只有一条执行路径,则称为单线程程序

      ​ 多线程:一个进程如果有多条执行路径,则称为多线程程序

      在这里插入图片描述

    展开全文
  • 1.2进程 1.2.1进程的定义及其属性  进程是并发环境下,一个具有独立功能的程序在某个数据集上的一次执行活动,它是操作系统进行资源分配和保护的基本单位,也是...(4)并发性 (5)制约性 (6)共享性 1.
    1.2进程
    1.2.1进程的定义及其属性
          进程是并发环境下,一个具有独立功能的程序在某个数据集上的一次执行活动,它是操作系统进行资源分配和保护的基本单位,也是执行单位。因此,进程不是程序,而是程序的一次执行活动,和传统的程序概念有着本质的区别。

    进程的6个属性:
    (1)动态性
    (2)结构性
    (3)独立性
    (4)并发性
    (5)制约性
    (6)共享性

    1.2.2进程的状态及其转换
    大多数系统中进程都具有以下三种基本状态
    (1)运行态
    (2)等待态
    (3)就绪态
    除了以上两种基本状态之外,进程还具有以下两种状态
    (1)创建态
    (2)终止态


     
        
    展开全文
  • 进程具有以下主要特性: (1)并发性:可以与其它进程一道在宏观上同时向前推进。 (2)动态性:进程是执行中的程序。此外进程的动态性还体现在如下两个方面:首先,进程是动态产生、动态消亡的;其次,在进程的...
  • Java 并发性

    千次阅读 2013-10-27 16:43:37
    每一个进程具有至少一个线程,并且同一个进程中的所有线程共享其资源。了解线程的好处,以及为什么必须安全地使用它们。 阅读: Java 线程简介 2. 掌握高层次的 Java 并发性实用工具 了解如何使用 ...
  • JAVA并发进程VS线程

    2020-10-23 10:53:54
    2. 线程比进程划分更细,执行开销更小,并发性更高 进程是一个实体,拥有独立的资源,而同一进程中的多个线程是共享进程的资源的如下图: JVM在单进程中运行,JVM中的线程共享属于该进程的堆,所以几个线程可以同时访问...
  • 一、并发性(concurrency)和并行性(parallel)是两个概念, 1. 并行 并行是指在同一时刻,有多条指令在多个处理器上同时执行; 2. 并发 并发指在同一时刻,只能有一条指令执行,但多个进程指令被快速轮换...
  • 原文链接:查看原文 感谢公众号“ 路人甲Java”的分享,如有冒犯,请联系删除,快去...并发性:任何进程都可以同其他进程一起并发执行 独立性:进程是系统进行资源分配和调度的一个独立单位 结构性:进程由程序,数据
  • 一、进程的初步认识 1.程序,进程的概念。 程序:程序可以理解是一组静态的代码,是放在磁盘里的可执行文件,是有序代码的集合。 进程:进程可以理解为正在运行...(3)、进程具有独立,进程是可以独立竞争计算机...
  • 并发程序设计

    2021-03-03 05:10:40
    火龙果软件工程技术中心 9.1并发程序的概念大家知道,进程具有并发性。在单处理机环境下,各进程交替占用CPU从而提高了CPU的利用率。在多处理机环境下,各进程可独自在自己占用的处理机上与其它进程在指令级上实现...
  • --并发性:任何进程都可以同其他进程一起并发执行 --独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位; --异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自...
  • 操作系统复习笔记--第三章 进程

    万次阅读 2021-04-07 15:21:10
    进程具有并发性,而程序没有; 进程是竞争计算机系统资源的基本单位,其并发性受到系统本身的制约; 不同的进程可以包含同一程序,只要程序所对应的数据集不同 3、进程状态及其转换||||||| 新的:进程正在被创建...
  • 进程的基本特征是动态性和并发性。同时进程具有顺序性、独立性和异步性等特征。  在进程的定义中,已强调了进程的动态性。即进程是有生命期的,具体表现在:它是由 “创建”而产生,因“调度程序” 调度而运行,...
  • 在计算机科学中,并发性(英语:Concurrency)是指在一个系统中,拥有多个计算,这些计算有同时执行的特性,而且他们之间有着潜在的交互。因此系统可进行的运行路径会有相当多个,而且结果可能具有不确定性。并发...
  • 进程具有并发性、动态性、交互性和独立性等主要特性 并发性:指的是系统中可以有多个进程同时并发执行,相互之间不受干扰 动态性:指的是进程都有完整的生命周期,而且在进程的生命周期内,进程的状态是不断变化的...
  • 并发性:互斥与同步

    2018-05-19 21:24:59
    并发出现的上下文 多个应用程序:多道程序设计技术允许在多个...支持并发进程的基本要求是加强互斥能力,当一个进程被赋予互斥能力时,那么在其活动期间,它具有排斥其他所有进程的能力。这里主要介绍三种实现互斥...
  • 操作系统笔记 第三章进程

    万次阅读 2019-03-11 09:05:38
    一、进程概念 进程是执行中的程序 在单核系统中,1个CPU在一个时间点,只能执行1个进程,因此不可能出现“并行”,只能...(3)进程具有并发性,而程序没有; (4)进程是竞争计算机系统资源的基本单位,其并发性...
  • (2)进程具有并发性,而程序不能并发执行。 (3)进程具有独立性,进程实体是一个能独立运行、独立获得资源和接受调度的基本单位,而程序不能作为一个独立的单位参与运行。 (4)进程 = 程序 + PCB (5)一个程序可...
  • 1 进程是一个动态的概念,是程序的一次执行过程;...2 进程具有并发性,而程序没有。 3 进程是资源分配和调度的独立单位,其并发性受系统约束。 4 一个程序多次执行,对应多个程序;不同进程可以包含于一个程序。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,327
精华内容 530
关键字:

进程具有并发性