过程与程序的差别与联络

1) 过程是程序及其数据在盘算机上的一次运转运动,是一个静态的概念。过程的运转实体是程序,分开程序的过程没有存在的意义。从静态角度看,过程是由程序、数据和过程掌握块(PCB)三局部构成的。而程序是一组有序的指令聚集,是一种静态的概念。
2) 过程是程序的一次履行进程,它是静态地创立和灭亡的,具有必定的生命周期,是临时存在的;而程序则是一组代码的聚集,它是永世存在的,可临时保管。
3) 一个过程可以履行一个或几个程序,一个程序也可以组成多个过程。过程可创立过程,而程序弗成能构成新的程序。
4) 过程与程序的构成分歧。过程的构成包含程序、数据和PCB。

死锁与饥饿

具有等候队列的旌旗灯号量的完成能够招致如许的状况:两个或多个过程有限地等候一个事情,而该事情只能由这些等候过程之一来发生。这里的事情是V操作的履行(即释放资本)。当呈现如许的形态时,这些过程称为死锁(Deadlocked)。
为了加以阐明,思索到一个零碎由两个过程P0和P1构成,每一个过程都拜访两个旌旗灯号量S和Q,这两个旌旗灯号量的初值均为1。

                   P0 () { While (1){ P(S) ; P(Q); // … V(S) ; V(Q) ; } }
                   p1() { While(1){ P(Q); P(S); // … V(Q); V(S); } }

假定过程P0履行P(S),接着过程P1履行P(Q)。当过程P0履行P(Q)时,它必需等候直到过程P1履行V(Q)。相似地,当过程P1履行P(S),它必需等候直到过程P0履行V(S)。因为这两个V操作都不克不及履行,那么过程P0和过程P1就死锁了。
说一组过程处于死锁形态是指:组内的每一个过程都等候一个事情,而该事情只能够由组内的另一个过程发生。这里所关怀的次要是事情是资本的获取和释放。
与死锁相干的另一个成绩是有限期壅塞(Indefinite Blocking)或“饥饿” (Starvation),即过程在旌旗灯号量内无量等候的状况。
发生饥饿的次要缘由是:在一个静态零碎中,关于每类零碎资本,操作零碎需求肯定一个分派战略,当多个过程同时请求某类资本时,由分派战略肯定资本分派给过程的次第。有时资本分派战略能够是不公道的,即不克不及包管等候工夫上界的存在。在这种状况下,即便零碎没有发作死锁,某些过程也能够会长工夫等候。当等候工夫给过程推动和呼应带来分明影响时,称发作了过程“饥饿”,当“饥饿”到必定水平的过程所付与的义务即便完成也不再具有实践意义时称该过程被“饿死”。
例如,当有多个过程需求打印文件时,假如零碎分派打印机的战略是最短文件优先,那么长文件的打印义务将因为短文件的源源不时到来而被有限期推延,招致最终的“饥饿”乃至“饿死”。
“饥饿”并不表现零碎必定死锁,但至多有一个过程的履行被有限期推延。“饥饿”与死锁的次要差异有:

  • 进入“饥饿”形态的过程可以只要一个,而因为轮回等候前提而进入死锁形态的过程却必需大于或等于两个。

  • 处于“饥饿”形态的过程可所以一个停当过程,如静态优先权调剂算法时的低优先权过程,而处于死锁形态的过程则肯定是壅塞过程。

银里手算法的任务道理

银里手算法的次要思惟是防止零碎进入不平安形态。在每次停止资本分派时,它起首反省零碎能否有足够的资本知足请求,假如有,则先辈行分派,并对分派后的新形态停止平安性反省。假如新形态平安,则正式分派上述资本,不然就回绝分派上述资本。如许,它包管零碎一直处于平安形态,从而防止死锁景象的发作。

过程同步、互斥的差别和联络

并发过程的履行会发生互相制约的关系:一种是过程之间竞争运用临界资本,只能让它们逐一运用,这种景象称为互斥,是一种竞争关系;另一种是过程之间协同完成义务,在症结点上等候另一个过程发来的音讯,以便协统一致,是一种协作关系。

功课和过程的关系

过程是零碎资本的运用者,零碎的资本大局部多是以过程为单元分派的。而用户运用盘算机是为了完成一串相干的义务,平日把用户请求盘算机完成的这一串义务称为功课。

1) 批处置零碎中功课与过程的关系(过程组织)

批处置零碎中的可以经过磁记载装备或卡片机向零碎提交批功课,由零碎的SPOOLing 输出过程将功课放入磁盘的输出井中,作为后备功课。功课调剂程序(普通也作为自力的过程运转)每中选择一道后备功课运转时,起首为该功课创立一个过程(称为该功课的根过程)。该过程将履行功课掌握言语说明程序说明该功课的功课仿单。父过程在运转进程中可以静态地创立一个或多个子过程,履行仿单中的语句。例如,对一条编译的语句,该过程可以创立一个子过程履行编译程序对用户源程序停止编译。相似地,子过程也可以持续创立子过程去完成指定的功用。因而,一个功课就静态地转换成了一组运转实体——过程族。当父过程碰到功课仿单中的“撤出功课”的语句时,将该功课从运转形态改动为完成形态,将功课及相干后果送入磁盘上的输入井。功课终止过程担任将输入井中的功课应用打印机输入,收受接管功课所占用的资本,删除功课有关数据构造,删除功课在磁盘输入井中的信息,等等。功课终止过程除去一道功课后,可向功课调剂过程恳求停止新的功课调剂。至此,一道进入零碎运转的功课全体完毕。

2) 分时零碎中功课与过程的关系

在分时零碎中,功课的提交办法、组织方式均与批处置功课有很大差别。分时零碎的用户经过敕令言语逐条地与零碎应对式地输出敕令,提交功课步。每输出一条(或一组)敕令,便直接在零碎外部对应一个(或若干个)过程。在零碎启动时,零碎为每一个终端装备树立一个过程(称为终端过程),该过程履行敕令说明程序,敕令说明程序从终端装备读入敕令说明履行用户输出的每一条敕令。关于每一条终端敕令,可以创立一个子过程去详细履行。若以后的终端敕令是一条后台敕令,则可以和下一条终端敕令并行处置。各子过程在运转进程中完整可以依据需求创立子孙过程。终端敕令所对应的过程完毕后,敕令的功用也响应处置终了。用户本次上机终了,用户经过一条登出敕令即完毕上机进程。
分时零碎的功课就是用户的一次上机交互进程,可以以为终端过程的创立是一个交互功课的开端,登出敕令运转完毕代表用户交互功课的终止。
敕令说明程序流程饰演着批处置零碎中功课掌握言语说明程序的脚色,只不外敕令说明程序是从用户终端接纳敕令。

3) 交互地提交批功课

在同时支撑交互和批处置的操作零碎中,人们可以用交互的方法预备好批功课的有关程序、数据及功课掌握仿单。比方,可用交互式零碎供给的全屏幕编纂敕令编纂好自编的一个气象预告程序,用编译及拆卸敕令将程序酿成可履行文件,用调试敕令停止程序调试。在调试胜利后,用户天天都要做如下任务:预备原始气象数据,运转气象预告履行文件处置原始数据,把后果打印出来等。这时,用交互零碎供给的全屏幕编纂敕令编纂好将要提交的功课掌握仿单文件,如Windows零碎的BAT文件和Linux零碎的sh文件。然后用一条功课提交敕令将功课提交给零碎功课队列中。零碎有专门的功课调剂过程担任从功课队列当选择功课,为被拔取的功课创立一个父过程运转敕令说明程序,说明履行功课掌握仿单文件中的敕令。

转载于:https://blog.51cto.com/12009752/1843735

关于过程和线程的常识点汇总相关推荐

  1. 【Android RTMP】RTMPDump 推流过程 ( 独立线程推流 | 创建推流器 | 初始化操作 | 设置推流地址 | 启用写出 | 连接 RTMP 服务器 | 发送 RTMP 数据包 )

    文章目录 安卓直播推流专栏博客总结 一. Java 层传入的 RTMP 推流地址处理 二. RTMPDump 推流线程 三. 创建 RTMP 对象 四. 初始化 RTMP 对象 五. 设置 RTMP ...

  2. 常用软件-安装过程中的小常识

    常用软件-安装过程中的小常识 主要通过安装金山打字通软件,来讲解我自己安装程序中用到的小技巧. (只适用于电脑小白奥) 完整安装过程 如下是安装金山打字通的完整过程,讲解了我自己的常用小技巧. 1. ...

  3. 主题:成都市华西附二院妈妈分享建卡,产检详细过程、费用以及医院详细汇总

    http://www.babytree.com/chengdu/topic_983419 主题:成都市华西附二院妈妈分享建卡,产检详细过程.费用以及医院详细汇总 一.成都市华西附二院挂号: 1.产科的 ...

  4. 1499飞天茅台脚本使用过程中遇到的Python问题汇总索引目录【淘宝-天猫超市、京东】

    1499飞天茅台脚本使用过程中遇到的Python问题汇总索引目录[淘宝-天猫超市.京东] 1499飞天茅台脚本使用过程中遇到的Python问题汇总索引目录[淘宝-天猫超市.京东] @[TOC] 原文地 ...

  5. java map集合 事务控制_对象回收过程?线程池执行过程? map原理?集合类关系?synchronized 和 volatile ? 同一个类的方法事务传播控制还有作用吗?java 锁...

    1.  对象回收过程? 可达性分析算法: 如果一个对象从 GC Roots 不可达时,则证明此对象不可用. 通过一系列称为GC ROOTS的对象作为起点,从这些起点往下搜索,搜索走过的路径 称为引用链 ...

  6. cpu线程_记w3wp占用CPU过高解决过程Dictionary线程安全

    项目上线以来一直存在一个比较揪心的问题,和一个没有信心处理的BUG,那就是在应用程序启动时有可能会导致cpu跑满99%或持续在一个值如50%左右,这样一来对服务器的压力是非常大的,经常出现服务器无法远 ...

  7. 试简述smtp通信的三个阶段的过程_通信原理简答题汇总

    模拟调制的主要方式有哪些,他们各有什么优点和缺点 AM调制:优点是接收设备简单:缺点是功率利用率低,抗干扰能力差,信号带宽较宽,频带利用率不高.因此,AM制式用于通信质量要求不高的场合,目前主要用在中 ...

  8. 程序员、工程师使用mac电脑过程中遇到的各种坑汇总

    由于mac电脑的电源待机时间超长,操作便利,系统响应快,超能的命令行,便于携带,越来越多程序猿们开始从windows转向mac.鉴于目前大部分应用都是先有windows版本,然后再开发mac版本,因此 ...

  9. 模拟电影院的买票过程演示线程安全问题

    代码如下: package demo2;public class ThreadTest {public static void main(String[] args) {Runnable runnab ...

最新文章

  1. java读取字符串,生成txt文件
  2. Python学习笔记:正则表达式
  3. Android开发之adb命令输入文本到手机输入框中的方法
  4. android 论坛_如何看待百度android吧萎靡现象与吧主的无所作为
  5. SQLServer全文检索无内容
  6. Hive(6)-DML数据操作
  7. assertionerror python_Python 基础(十四): 错误和异常
  8. php和xml区别,html与xhtml和xml有什么区别
  9. [Python] L1-035. 情人节 团体程序设计天梯赛GPLT
  10. CVPR 2022 | 即插即用!南洋理工商汤开源SAM-DETR: 利用语义对齐匹配实现快速收敛的DETR...
  11. 手机图标ui设计尺寸:ui设计app图标尺寸规范
  12. FragmentVisible
  13. VueI18n国际化vm._watchers[0].constructor未定义的解决办法:修改源代码吧
  14. linux 命令行下的复制和黏贴
  15. 2023最新仿蓝奏云合集下载页面系统源码+有PHP后台版的
  16. 做不好资产清点的网络安全防护都是耍流氓
  17. vue-iview异步加载渲染树
  18. 酵母风味的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. python连接mysql的几种方式_Python连接MySQL数据库的多种方式
  20. 计算机科学与技术与光电,光电信息科学与工程考研科目有哪些?

热门文章

  1. 如何生成16位流水号
  2. node模块加载机制。
  3. 洛谷P1482 Cantor表(升级版) 题解
  4. SQL Server-聚焦在视图和UDF中使用SCHEMABINDING(二十六)
  5. HTTP协议编程,实现文件上传,Android客户端代码
  6. SQL:select case when(转)
  7. WebService之Java原生态支持(二)
  8. 解决谷歌浏览器所有页面崩溃问题
  9. Docker的一些理解(二)
  10. 利用Python定时给女友微信发送今日天气情况,异地恋维护感情神器