精华内容
下载资源
问答
  • 进程管理之PV操作个人理解

    千次阅读 2019-07-05 23:48:21
    在了解PV操作之前,我认为有必要先简单理解进程的状态与其之间的转换。 三态模型(图左)中最基本的三...在进程运行过程中,由于自身进展情况及外界环境的变化,这三种状态在一定条件下相互转换。 五态模型则是在三...

    在了解PV操作之前,我认为有必要先简单理解进程的状态与其之间的转换。
    进程图关系转换
    三态模型(图左)中最基本的三个状态:运行、等待和就绪。

    • 运行:进程正在处理机上运行。对于单处理机系统和,处于运行状态的进程只有一个。
    • 等待:进程因发生某事情而暂停执行。
    • 就绪:顾名思义进程已经具备执行条件但并未执行。

    在进程运行过程中,由于自身进展情况及外界环境的变化,这三种状态在一定条件下相互转换。

    五态模型则是在三态模型的基础上增加了新建态和终止态。

    • 新建态:简单理解为进程刚被创建但还没有被提交的状态,等待系统完成创建进程的所 有必要信息。创建进程分为两个阶段,第一个阶段为一个新进程创建必要的管理信息,第二个阶段让该进程进入就绪状态。
    • 终止态:进程已结束运行,回收除进程控制块之外的其他资源,并让其他进程从中收集有关信息。终止进程分为两个阶段,第一个阶段等待操作系统进行善后处理,第二个阶段释放主存。

    由于进程不断创建,主存资源不能满足所有进程运行的要求,则需对某些进程挂起以平衡系统负载,则出现图右的情况。简单理解就是将进程对换到主辅存时进程的状态,这里不过多讲解。

    P、V操作有三个概念需要理解:临界资源、临界区和信号量。

    • 临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等。
    • 临界区:每个进程中访问临界资源的那段代码称为临界区
      有空即进,无空则等;有效等待,让权等待
    • 信号量:是一种特殊的变量(S)。

    信号量机制主要有整形信号量、记录型信号量、信号量集机制。
    这篇主要讲的是整形信号量与P、V操作。

    信号量是一个整形变量,根据控制对象的不同赋不同的值,信号量可分为两类:

    • 公用信号量:实现进程间的互斥,初值等于1或资源的数目。
    • 私用信号量:实现进程间的同步,初值等于0或某个正整数。
      信号量S的物理意义为:S≥0,表示某资源的可用数;S<0,其绝对值表示阻塞队列中等待该资源的进程数。
    (P、V操作流程图)

    P操作定义:S=S-1,若S≥0,则执行P操作的进程继续执行;否则,若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
    V操作定义:S=S+1,若S>0,则执行V操作的进程继续执行;否则,若S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,执行V操作的进程继续执行。


    下面我们来看一道例题加深理解:

    (S1初值为1,S2初值为0)

           先不看P、V,单从生产者和消费者我们不难看出,生产者生产一个产品,并将产品送到缓冲区等待消费者使用,消费者从缓冲区拿走产品并消费产品这么一个流程。
          那么这里有一个问题,假设生产者进程生产一轮送到缓冲区后,消费者进程没有运行,再次执行生产者进程,则缓冲区中的产品则会溢出,反之消费者一直取出产品直至缓冲区为空,同样也会出现问题,PV操作的好处就体现在这里了。

           加入PV操作后,根据流程图公式计算可知,第一轮生产者进程的值为P(S1)为0,P(S2)为1,一个产品被放入缓冲区,当消费者进程没有运行时,生产者进程再次运行后P(S1)为-1时,则符合S<0的判断,并加入进程队列等待,这时就能较好解决产品溢出的问题了。


    以上就是我对PV操作的理解和认识,如有错误可在下方评论我会及时做出修改。

    展开全文
  • 进程与线程区别

    2012-12-01 18:29:50
    进程有三个基本状态:就绪态 运行态 等待态。他们在一定条件下可以切换。 线程:一个进程的多条控制线索。这些控制线索可以并发执行。例如java里面的多线程编程。如我们聊天的QQ,一个进程,但是我们可以同时...

    进程是操作系统的核心概念。


    所谓进程就是说一个可以并发执行的程序在某数据集上的一次执行。简单的说就是程序的一次执行过程。


    进程有三个基本状态:就绪态  运行态  等待态。他们在一定条件下可以切换。


    线程:一个进程的多条控制线索。这些控制线索可以并发执行。例如java里面的多线程编程。如我们聊天的QQ,一个进程,但是我们可以同时视频和发送消息...等等。


    进程是操作系统资源分配的基本单位,每一个进程都有自己独立的地址空间和各种系统资源,如打开的文件和设备等。


    线程基本上不拥有自己的资源,只是在某一时刻运行时,有其资源。



    展开全文
  • 你必须知道495C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    设计一个状态机,用函数表示每种状态,每函数都会返回一指向个状态的函数指针。可我找不到任何方法来声明这样函数——感觉我需要一返回指针函数,返回指针指向又是返回指针函数……,如此...
  • 《你必须知道495C语言问题》

    热门讨论 2010-03-20 16:41:18
    设计一个状态机,用函数表示每种状态,每函数都会返回一指向个状态的函数指针。可我找不到任何方法来声明这样函数——感觉我需要一返回指针函数,返回指针指向又是返回指针函数……,如此...
  • 这完全符合上述引发错误的三个条件。 找到问题的原因,解决方案就明了了(二选一): - 测试结束后,停顿较长时间再关闭 Runner。 - 深拷贝 Runner 发送到 Labor 的数据。 一来是停顿...
  • 设计一个状态机,用函数表示每种状态,每函数都会返回一指向个状态的函数指针。可我找不到任何方法来声明这样函数——感觉我需要一返回指针函数,返回指针指向又是返回指针函数……,如此...
  • 入门学习Linux常用必会60命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至有的系统中会损坏硬件设备(硬盘)。系统关机前使用 shutdown命令,系统管理员会通知所有...
  • 面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装对象,这些对象通过一个受保护接口访问其他对象。 4. 多态性:  多态性是指允许不同类对象对同一消息作出响应。多态性包括参数化...
  • (1)进程的三个基本状态及转换 三个基本状态是等待、执行和就绪,在一定条件下,进程的状态将发生转换。 (2)进程调度算法 主要有先来先服务(FCFS)、时间片轮转法、多级反馈轮转法、优先数法...
  • 6.如图,mydlg.ui 中拖入一Push Button,将其上文本改为“进入主 窗口”,其属性窗口中将其objectName 改为enterBtn,下面Signals and slots editor 中进行信号和槽关联,其中,Sender 设为enterBtn...
  • 真正侯捷《深入浅出mfc》chm版

    热门讨论 2010-05-05 22:08:42
    个进程的诞生与死亡/23 产生子进程/23 一线程的诞生与死亡/24 以_beginthreadex取代CreateThread/25 线程优先权(Priority)/26 多线程程序设计实例/27 第2章 C++ 的重要性质 /29 类及其成员—谈封装...
  • LINGO软件学习

    2009-08-08 22:36:50
    学完本节后,你对基于建模技术集如何引入模型会有一个基本的理解。 2.1 为什么使用集 集是LINGO建模语言基础,是程序设计最强有力基本构件。借助于集,能够用一个单一、长、简明复合公式表示一系列相似...
  • 2.5.1 何种状态下可以为路由器改名? 2.5.2 某公司申请到一C类IP地址,但要连接6个的子公司,最大子公司有 26台计算机,每子公司网段中,则子网掩码应设为? 2.5.3 与10.110.12.29mask 255.255....
  • 银行家算法是从当前状态出发,逐个按安全序列检查各客户中谁能完成其工作,然后假定其完成工作且归还全部贷款,再进而检查能完成工作客户。如果所有客户都能完成工作,则找到一安全序列,银行家才是安全...
  • 岳维功 ortp-realease.pdf

    2020-12-24 04:00:17
    在基于音视频流传输中,防抖动能力是一重要特性,这在一定程度上能够保证 用户有良好体验。在中,是通过模块完成这部分工作。相关数据结构如下 图所小: JitterControl count. JItt comp ts adapt jitt comp ...
  • 4、startup,等于以下三个命令 startup nomount alter database mount alter database open 5、startup restrict 约束方式启动 这种方式能够启动数据库,但只允许具有一定特权用户访问 非特权用户访问时,会出现...
  • 测试覆盖率

    2011-10-28 11:16:51
    例如,四个星期生命周期中,如果缺陷率三个星期中仍然增长,则项目很明显没有按时间表进行。  这一简单趋势分析假定:缺陷是立即关闭,且随后工作版本中对修复进行测试,这样关闭缺陷速率应该...
  • java 面试题 总结

    2009-09-16 08:45:34
    面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装对象,这些对象通过一个受保护接口访问其他对象。 4. 多态性: 多态性是指允许不同类对象对同一消息作出响应。多态性包括参数化多...
  • Toad 使用快速入门

    2008-11-27 15:22:14
    单击总菜单栏上三个按钮:   点击Database - > Procedure Editor , 可以通过Schema browser来调用 b) 一些特点和优点: 1. 强大自定义设置:从保留字显示方式,到自动替换,到各种快捷键定义...
  • 软件工程知识点

    2012-12-02 21:34:25
    因此,需要对准备开发软件系统提出高层模型,并根据高层模型特征,从技术可行性、经济可行性和操作可行性这三个方面,以“可行性研究报告”形式,对项目作出是否值得往进行回答,由此决定项 目是否继续...
  • java面试题

    2018-04-27 19:55:38
    答:Servlet与CGI区别在于Servlet处于服务器进程中,它通过多线程方式允许其service方法,一实例可以服务于多请求,并且其实例一般不会被销毁,而CGI对每请求都产生新的进程,服务完后就销毁,所以效率上...
  • (2) 模拟和分析需求 需求分析和模拟又包含三个层次工作。首先是需求建模。需求模型表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。需求概念模型要求包括实现独立性:不模拟数据...

空空如也

空空如也

1 2 3 4 5
收藏数 81
精华内容 32
关键字:

进程的三个基本状态在一定条件下