进程学习之基本概念

原创 2018年04月17日 13:51:36

顺序程序和并发程序特征

    顺序程序特征

        1.顺序性

        2.封闭性(运行环境封闭性)

        3.确定性

        4.可再现性

    并发程序特征

        1.共享性

        2.并发性

        3.随机性

进程互斥:

    由于进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程这种关系为进程的互斥。

    系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源。

    在进程中涉及到互斥资源的程序段叫临界区。

进程同步:

    进程同步指的是多个进程需要互相配合共同完成一项任务。

进程间通信的目的:

    数据传输:一个进程需要将它的数据发送给另一个进程。

    资源共享:多个进程之间共享同样的资源。

    通知事件:一个进程需要向另一个过一组进程发送消息,通知它(它们)发生了某种事件(如进程的终止时要通知父进程)。

    进程控制: 有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截一个进程的所有陷入和异常,并且能够及时知道它的状态改变。

进程间通信分类:

    文件

    文件锁

    管道(pipe)和有名管道(FIFO)

    信号(signal)

    消息队列

    共享内存

    信号量

    互斥量

    条件变量

    读写锁

    套接字

System V IPC & POSIC IPC

    system V IPC:

        system V 消息队列

        system V 共享内存

        system V 信号量

    POSIX IPC:

        消息队列

        共享内存

        信号量

        互斥量

        条件变量

        读写锁

IPC对象的持续性:

    随进程持续:一直存在知道打开的最后一个进程结束。(如pipe和FIFO)

    随内核持续:一直持续直到内核自举或显示删除。(如system V消息队列,共享内存,信号量)

    随文件系统持续:一直存在直到显示删除,即使内核自举还存在。(POSIX消息队列、共享内存、信号量如果是使用映射文件来实现)。

死锁:

    死锁是指多个进程之间相互等待对方的资源,而在得到对方资源之前又不释放自己的资源,这样,造成循环等待的一种现象。如果所有进程都在等待一个不可能发生的事情,则进程就死锁了。 

死锁产生的必要条件:

    互斥条件:

        进程对资源进行排它性使用,即在一段时间内某资源仅为一个进程所占用。    

    请求和保持条件: 

        当进程已获得的资源在未使用完之前,不能被剥夺,只能在使用完时由自己释放。

    环路等待条件:

        各个进程组成封闭的环形链,每个进程都等待下一个进程所占用的资源。

防止死锁的办法:

    资源一次性分配(破坏请求和保持条件)

    可剥夺资源:破坏不可剥夺条件

    资源有序分配方法:(破坏循环等待条件)

死锁避免:

    预防死锁的几种策略,会严重的损害系统性能。因此在避免死锁时,要施加较弱的限制,从而获得比较满意的系统性能。

    由于在避免死锁的策略中,允许进程动态的申请资源。因而,系统在进行资源分配之前预先计算资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,进程等待。其中最具有代表性的避免死锁的算法是银行家算法。

信号量:

    信号量和P、V原语由迪杰斯特拉提出。

    信号量:

        互斥:P、V在同一个进程中。

        同步:P、V在不同进程中。

    信号量及其含义:

        s>0:s表示可用资源的个数

        s=0:表示无可用资源,无等待进程。

        s<0:|s|表示等待队列中进程个数。  



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34938530/article/details/79972656

线程的基本概念及线程与进程的关系

关于线程与进程之间的关系,我觉得有一篇文章讲的很生动形象,这里贴出来供大家参考。进程与线程的一个简单解释 关于线程的理解,同样很生动形象的一个例子。我是一个线程 一. 线程、进程与线程的关...
  • zjwson
  • zjwson
  • 2017-01-15 22:24:50
  • 907

Linux暂停和恢复进程

kill -STOP 1234 将该进程暂停。  如果要让它恢复到后台,用kill -CONT 1234 (很多在前台运行的程序这样是不行的)  如果要恢复到前台,请在当时运行该进程的那个终端用j...
  • xiecan512
  • xiecan512
  • 2016-04-12 13:59:23
  • 624

Linux进程的基本概念

1、进程的概念:进程是正在运行的程序实体,并且包括这个运行的程序中占据的所有系统资源,比如说CPU(寄存器),IO,内存,网络资源等。很多人在回答进程的概念的时候,往往只会说它是一个运行的实体,而会忽...
  • SANGLIU
  • SANGLIU
  • 2013-01-07 14:14:41
  • 3074

cocos2dx学习之基本概念

转载自 http://blog.csdn.net/bill_man/article/details/7214035 在cocos2d引擎中,有几个概念,分别是导演,场景,布景和人物角色。 导...
  • chan70707
  • chan70707
  • 2016-07-08 11:11:16
  • 386

进程的基本概念及操作

1.进程的基本概念 进程是一个具有一定独立功能程序的一次运行活动 特点:动态性、并发性、独立性、异步性。 进程三态: 就绪态、执行态、阻塞态。 进程创建后,首先属于就绪态。 就绪态的进...
  • qq_40788950
  • qq_40788950
  • 2017-11-02 16:09:34
  • 37

移动通信原理 很不错的移动通信基础概念入门书籍

  • 2009年07月13日 18:11
  • 488KB
  • 下载

Java学习的基础概念和知识点

static 1、随着类的加载而加载 2、优先于对象存在 3、被所有对象所共享 4、可以直接被类名调用 使用注意: 1、静态方法只能访问静态成员 2、非静态成员可以访问静态成员 3、静态方法中不可以...
  • wj610671226
  • wj610671226
  • 2016-08-15 21:45:53
  • 1863

Linux进程学习---基本概念

最近一周学习了Linux  进程编程的知识,现对其总结如下。  在第一部分中我们先对进程的基本概念以及在Linux 中是如何来现实进程的进行介绍  Tiger-John说明 :  许...
  • twtydgo
  • twtydgo
  • 2016-05-26 17:22:17
  • 127

计算机网络学习笔记--基本概念

    DNS服务器:负责把域名解析成网站的IP地址,以便进行访问。    子网掩码:告诉计算机IP地址中哪是网络部分,哪是主机部分。    路由器的IP地址:一般使用网段中的第一个地址。    网关...
  • qq_28808697
  • qq_28808697
  • 2018-03-28 16:35:23
  • 5

深入浅出MFC文档/视图架构之文档

1、文档类CDocument  在"文档/视图"架构的MFC程序中,文档是一个CDocument派生对象,它负责存储应用程序的数据,并把这些信息提供给应用程序的其余部分。CDocument类对文档的建...
  • zhouqh1982
  • zhouqh1982
  • 2007-01-31 10:46:00
  • 482
收藏助手
不良信息举报
您举报文章:进程学习之基本概念
举报原因:
原因补充:

(最多只允许输入30个字)