操作系统第二篇【进程管理】

操作系统课设之Windows 进程管理 操作系统课程设计 Windows进程管理 C创建进程 阅读详情

进程的概述

首先,我们要明白一点:程序不能独立运行,作为资源分配和独立运行的单位是进程。操作系统所具有的四大特征也都是基于进程而形成的。

学习进程的前提:

  • 前面也讲了操作系统的发展历史,我们知道未配置操作系统和单批到处理系统的程序是按照顺序执行的。只有前边的程序执行完了,后边的程序才能执行。因此,CPU的利用率是非常低下的。、

  • 为了能更好地描述程序的顺序和并发执行情况,我们先介绍用于描述程序执行先后顺序的前趋图。

  • 所谓前趋图(Precedence Graph),是指一个有向无循环图,可记为DAG(Directed Acyclic Graph),它用于描述进程之间执行的先后顺序。

640?wx_fmt=png

根据前趋图,我们就可以发现程序有以下的三个特性:

  • ① 顺序性:指处理机严格地按照程序所规定的顺序执行,即每一操作必须在下一个操作开始之前结束;

  • ② 封闭性:指程序在封闭的环境下运行,即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它,程序一旦开始执行,其执行结果不受外界因素影响;

  • ③ 可再现性:指只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都可获得相同的结果。

但是,当程序中引入了并发这么一个概念的时候,会给程序带来新的特征:

  • (1) 间断性。

  • (2) 失去封闭性。

  • (3) 不可再现性。

为什么要引入进程:

在多道程序环境下,程序的执行属于并发执行,此时它们将失去其封闭性,并具有间断性,以及其运行结果不可再现性的特征。由此,决定了通常的程序是不能参与并发执行的,否则,程序的运行也就失去了意义。为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了“进程”的概念。

小总结:引入进程就是为了能够让程序能够并发执行!

进程的定义:

  • (1) 进程是程序的一次执行。

  • (2) 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。

  • (3) 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

进程的特征:

除了进程具有程序所没有的PCB结构外,还具有下面一些特征:

  • (1) 动态性。

  • (2) 并发性。

  • (3) 独立性。

  • (4) 异步性。

进程的基本状态和装换

一般而言,每一个进程至少应处于以下三种基本状态之一:
**(1) 就绪(Ready)状态。(2) 执行(Running)状态。(3) 阻塞(Block)状态。 **

640?wx_fmt=png

进程控制

进程控制是指系统使用一些具有特定功能的程序段来创建、撤消进程以及完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。

进程的控制是通过原语实现的。用于进程控制的原语有:创建原语、撤消原语、阻塞原语、唤醒原语、挂起原语和激活原语等。

一般,把系统态下执行的某些具有特定功能的程序段称为原语。
原语可分为机器指令级原语和功能级原语。
前者是一条语句,后者是一段代码。
机器指令级原语的特点是执行期间不允许中断,它是一个不可分割的基本单位。
功能级原语的特点是作为原语的程序段不允许并发执行。

  • 1)活动就绪Readya→静止就绪Readys:Suspend原语

  • 2)活动阻塞Blockeda →静止阻塞Blockeds:Suspend原语

  • 3)静止就绪Readys→活动就绪Readya:Active原语

  • 4)静止阻塞Blockeds→活动阻塞Blockeda:Active原语

640?wx_fmt=png

引起挂起状态的原因:

  1. 1)终端用户的请求。

  2. 2)父进程的请求。

  3. 3)负荷调节的需要。

  4. 4)操作系统的需要。

  5. 5)对换的需要。

进程与进程之间的关系

640?wx_fmt=png
这里写图片描述

在进程有关系的时候有两种关系

  • 互斥(间接制约)

  • 同步(直接制约)

信号量机制

信号量机制进程同步的一个工具,使用它能够合理地分配CPU资源,管理进程

一般地,我们对资源分配的时候,我们有以下的原则:

  • 同步时将信号量设置为0

  • 互斥时将信号量设置为1

  • 有几个进程设置几个信号量

  • 当等于0的时候,表示资源与进程数平衡

  • 当大于0的时候,表示资源多,临界资源有余

  • 当小于0的时候,表示资源少。

记录型信号量机制

  • wait()(P操作)

    • 申请资源,减少

  • signal()(V操作)

    • 释放资源,增加

信号量的应用

  1. 利用信号量实现进程互斥

为使多个进程能互斥地访问某临界资源,只需为该资源设置一互斥信号量mutex,并设其初始值为1,然后将各进程访问该资源的临界区CS置于wait(mutex)和signal(mutex)操作之间即可。

  1. 利用信号量实现前趋关系

还可利用信号量来描述程序或语句之间的前趋关系。设有两个并发执行的进程P1和P2。P1中有语句S1;P2中有语句S2。我们希望在S1执行后再执行S2。为实现这种前趋关系,只需使进程P1和P2共享一个公用信号量S,并赋予其初值为0,将signal(S)操作放在语句S1后面,而在S2语句前面插入wait(S)操作,即

在进程P1中,用S1;signal(S); 

在进程P2中,用wait(S);S2;

640?wx_fmt=png

进程通信

进程通信,是指进程之间的信息交换,其所交换的信息量大小不一。

信号量机制在通信方面的缺点:1) 效率低;2) 通信对用户不透明。

高级进程通信是指用户可直接利用操作系统所提供的一组通信命令,高效地传送大量数据的一种通信方式。(往往我们都是使用高级进程通信的)

进程的通信类型

在进程通信的时候还有几种类型可分:

  • 共享存储器系统

    • 在共享存储器系统中,相互通信的进程共享某些数据结构或共享存储区,进程之间能够通过这些空间进行通信。

  • 消息传递系统

    • 消息传递机制是使用最广泛的一种进程间通信的机制(这种用的多)

    • 操作系统隐藏了通信的细节,简化了通信程序的编制。

  • 管道通信

    • 管道是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。

消息传递系统的实现方法又可以分几种:

  • 直接通信方式

    • 1) 发送原语:Send(Receiver,message);发送一个消息给接收进程

    • 2) 接收原语:Receive(Sender,message);接收Sender发来的消息

  • 间接通信方式

    • 通过信箱:指进程之间的通信,需要通过作为共享数据结构的实体。

在间接通信的方式中,信箱作为的是一个实体

  • 私用信箱

  • 公有信箱

  • 共享信箱

对于信箱而言也有几种关系:

  • 一对一关系

  • 多对一关系

  • 一对多关系

  • 多对多关系


如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:Java3y。为了大家方便,刚新建了一下qq群:742919422,大家也可以去交流交流。谢谢支持了!希望能多介绍给其他有需要的朋友

文章的目录导航:

  • https://zhongfucheng.bitcron.com/post/shou-ji/wen-zhang-dao-hang


操作系统课程设计-进程管理-c++描述 1.目的和要求 通过实验理解进程的概念,进程的组成(PCB结构),进程的并发执行和操作系统进行进程管理的相关原语(主要是进程的创建、执行、撤消)。 2.实验内容 用C/C++语言编程模拟进程管理,至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。 3.设计思路 Process类包括以下字段:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态;和... 阅读详情

相关推荐

高级操作系统——XV6进程管理

源代码阅读: type.h:用于声明一些数据类型的简化名称,和声明页表指针的数据类型。 param.h:主要用于声明基本的一些常量,包括内核栈大小等。 memlayout.h:主要用于声明一些和内存与地址相关的常量与方法,包括虚拟内存转物理内存的方法以及物理内存转虚拟内存的方法等。 defs.h:声明在之后文件中要用到的函数。 x86.h:让c代码使用特殊的x86汇编的一些函数包括outb等,并声...

weixin_45680007的博客 6175

【OS笔记 8】进程的状态及状态转换

由于多个进程在并发执行时共享系统资源,致使它们在运行过程中呈现间断性的运行规律,所以进程在其生命周期内可能具有多种状态。 一、进程的三种基本状态 1. 就绪状态 进程已分配到除CPU之外的所有必要资源,只要再获得CPU,便可立即执行。 2. 执行状态 进程已获得CPU,正在执行。(多处理机系统中,则有多个进程处于执行状态) 3. 阻塞状态 正在执行的进程由于发生某时间(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态,即进程的执行受到阻塞。 二、三种基本状态的转换 三、创建状态和终止状态

qq_43722079的博客 3205

操作系统之进程管理习题

操作系统进程管理习题详解

qq_51481704的博客 7277

信号量实现前驱关系

利用信号量实现前驱关系 信号量也可以用来描述程序之间或者语句之间的前驱关系。图2-8给出了一个前驱图,其中S1, S2, S3, …, S6是最简单的程序段(只有一条语句)。为使各程序段能正确执行,应设置若干个初始值为“0”的信号量。例如,为保证S1 -> S2、 S1 -> S3的前驱关系,应分别设置信号量a1、a2。同样,为了保证 S2 -> S4、S2 ->S5、S3 -> S6、S4 -> S6、S5 -> S6,应设置信号量bl、b2、c、d、e。

Leeyy 1万+

操作系统实验一:进程管理

操作系统实验

liu97_的博客 4853

Java操作系统课设之模拟进程管理系统

使用Java实现的操作系统课设之模拟进程管理系统,是博主的一个课设.

利用信号量实现进程互斥(操作系统)

小时,准点时)将观察者的计数值打印输出,每次打印后把计数值清。可完成对每小时中卡车流量的统计。观察者进程能识别卡车,并对通过的卡车计数;某交通路口设置了一个自动计数系统,该系统由。“观察者”进程和“报告者”进程。报告者进程定时(可设为每隔。

公众号:风景邮递Yuan的博客 3402

【JAVA版】操作系统课程设计题目四单处理器系统的进程调度源码&详细实验报告

实现了如下四种调度算法的模拟: (1)时间片轮转调度 (2)优先数调度 (3)最短进程优先 (4)最短剩余时间优先 模拟过程使用了JProgressBar作为进程状态条,更为直观地观察到每个进程的执行状态。 程序用户说明: 1、在上图标号1处输入要创建随机进程的个数,仅可输入正数,非正数会有相关提示。然后点击标号2处的“创建进程”按钮,随进创建的进程显示在程序界面的中央窗口,如标号3所示。 2、创建好随机进程后,在标号4的单选框选择将要模拟执行的调度算法,然后点击标号5处的“开始模拟”,程序开始执行。标号3的列表会显示相应的调度变化。 3、模拟过程中,可以继续添加新的进程,操作同上。 4、 一个算法模拟执行完毕之后,可以点击标号6的“复位”按钮,可以重置列表的内容为程序模拟运行前的内容。复位成功后,可以继续选择其他调度算法进行模拟。 5、标号7显示为程序模拟过程中的时间,从1秒开始累计。 6、点击标号8的“清空”按钮,可以清空类别的进程,以便程序的下次执行。 题目要求: 题目四 单处理器系统的进程调度 一 、 课 程 设 计 目 的 1. 加深对进程概念的理解, 明确进程和程序的区别。 2. 深入了解系统如何组织进程、 创建进程。 3. 进一步 认识如何实现处理器调度。 二 、 课 程 设 计 内 容 编写程序完成单处理器系统中的进程调度, 要求实现时间片轮转、 优先数、 最短进程优 先和最短剩余时间优先四种调度算法。 实验具体包括: 首先确定进程控制块的内容, 进程控 制块的组成方式; 然后完成进程创建原语和进程调度原语; 最后编写主函数对所作工作进行 测试。 模拟程序只对你所设置的“ 虚拟 PCB” 进行相应的调度模拟操作, 即每发生“ 调度” 时, 显示出当前运行进程的“ 进程标识符”、“ 优先数”、“ 剩余运行时间” 等, 而不需要对系 统中真正的 PCB 等数据进行修改。

操作系统学习(二)--进程描述和执行

这是操作系统系列第 2 篇。 如果你想知道操作系统每天都在做些什么,那就打开你的资源监视器: 资源监视器截图,Windows 10 单独通过这一张图,我们就能够总结出操作系统的几个重要功能: 进程管理 线程管理 内存管理 I/O 管理(包含了磁盘调度) 文件管理,这一功能在图里没有表现出来,但我相信每个使用计算机的人都知道它。 为什么我要从进程开始讲起呢? 原因很简单,我们每天使用计算...

tobe98的博客 1434

进程管理系统(java程序+设计文档)

一个java写的进程管理系统,包含了源程序和设计文档,对于java核心的学习有帮助。

操作系统作业(进程控制管理实现)

实验要求:进程控制管理实现 ●基本要求:利用简单的结构和控制方法模拟进程结构、进程状态和进程控制。 ●参考资料: 用PCB表示整个进程实体,利用随机数方法或键盘控制方法模拟进程执行中产生的事件。或者利用鼠标或者键盘中断的基于图形接口方式的进程控制管理。 1、 定义PCB(可以采用静态结构或动态结构):包括理论PCB中的基本内容,如内部ID、外部ID、进程状态、队列指针。由于无法实现真正的进程创建功能,在实验中只需建立PCB,用它代表完整的进程。 2、 定义进程状态转换方式:进程的状态转换是由进程内部操作或操作系统的控制引起,由于无法实现这些功能,学生可以采用随机数方法或键盘控制方法模拟,并实现对应的控制程序。随机方法指产生1-6的随机数,分别代表创建进程(c)、结束进程(e)、进程阻塞(b)、激活进程(w)、调度进程(p)、时间片到(t)等事件;键盘模拟方法指定义6种按键代表以上6种事件。 3、 根据四种事件处理就绪队列、阻塞队列和当前执行中的进程。 每次事件处理后应形象地显示出当前系统中的执行进程是哪一个,就绪队列和阻塞队列分别包含哪些进程。 自己做的 java图形界面 增加了内存管理的模拟并采用了最佳适应算法。

操作系统实验一 进程管理

实验一 进程管理 1.目的和要求 通过实验理解进程的概念,进程的组成(PCB结构),进程的并发执行和操作系统进行进程管理的相关原语(主要是进程的创建、执行、撤消)。 2.实验内容 用C语言编程模拟进程管理,至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。 3.实验环境 Windows操作系统、VC++6.0 C语言 4.实验提示 PCB结...

雪之下 1万+

操作系统课程设计进程管理(内含源代码和设计报告)

要求:要求设计一个允许n个进程并发运行的进程管理模拟系统。该系统包括有进程创建、撤销、阻塞、唤醒;进程的同步控制。进程调度算法可以选择优先级调度,时间片轮转,短进程优先等。每个进程用一个PCB表示,其内容根据具体情况设置,系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观察进程的运行过程及系统的管理过程。

操作系统——进程管理篇

主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能管程是一种特殊的软件模块,有这些部分组成:1.局部于管程的共享数据结构说明;2.对该数据结构进行操作的一组过程;3.对局部于管程的共享数据设置初始值的语句;4.管程有一个名字。管程的基本特征:1.局部于管程的数据只能被局部于管程的过程所访问;2.一个进程只有通过调用管程内的过程才能进入管程访问共享数据:3.每次仅允许一个进程在管程内执行某个内部过程。

m0_63596031的博客 4882

java语言操作系统课程设计模拟进程管理系统源码.zip

java语言操作系统课程设计模拟进程管理系统源码 需求分析 实现n个进程并发运行; 实现进程创建、撤销、阻塞、唤醒; 实现进程的同步; 实现优先级调度、时间片轮转、短进程优先等调度算法; 系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况; 系统设计 针对需求1、2: 为实现多个进程并发运行需要建立管理对象和进程对象的联系以便对运行的进程进行管理,故可以在管理对象中设置就绪、阻塞、运行队列来容纳进程,从而方便的进行管理; ①创建:初始化刚建立的进程对象,并插入就绪队列; ②撤销:根据获取的交互信息在队列中查找要删除的进程,将对象移除即可; ③阻塞、唤醒:利用系统提供的线程类模仿进程,直接启动相关的系统调用即可使线程暂停或恢复,从而达到阻塞和唤醒的目的; 针对需求3 :通过编写P、V原语来实现进程的同步; 针对需求4:为进程管理器类编写调度函数,调度函数中内置上述三种算法,进程管理对象根据交互得到的信息决定使用哪一种调度算法; 针对需求5:为了能够及时的表征程序运行状态和提供良好的交互接口,可以利用Java.awt图形用户接口来编写一个动态的可视化交互界面。

闲鱼客户端三重动态签名机制解析:x-sign、x-mini-wua与x-umt

在移动客户端安全通信中,设备级动态签名已成为主流App防范自动化攻击的核心手段。其原理是将设备指纹、运行时行为与可信硬件标识深度融合,生成不可复用、不可跨端、不可静态伪造的请求凭证。这类机制超越传统Token或Session鉴权,具备强上下文绑定性与实时熵值校验能力,广泛应用于电商、社交及开放平台等高风险接口场景。技术价值体现在有效识别模拟器、无头浏览器与集群化爬虫,同时保障多端一致性与合规数据对接。本文聚焦闲鱼客户端实际落地的x-sign(带设备上下文的混合签名)、x-mini-wua(小程序行为水印)与

weixin_35732273的博客 495

【操作系统】进程管理

进程基本概念:进程,进程实体(PCB,数据段,程序段),进程特性,进程的组织方式(队列方式,索引方式) 线程基本概念:线程属性,多任务与多线程,线程与进程的对比,线程实现方式(用户级,内核级线程),线程模型(一对一,多对一,多对多) 进程状态与进程调度:进程状态(五状态模型,进程状态切换,进程控制原语,调度与原语),进程调度算法,题型(甘特图) 死锁:死锁必要条件,死锁预防,避免死锁(银行家算法) 进程的同步与互斥:信号量机制,生产者消费模型,读者写者模型,哲学家模型,管程 进程间的通信:PV,高级通信方式

努力,奋斗! 5415

锁定放大器

锁定放大器

qq_46757048的博客 4706

操作系统概论【二】- - 进程管理

感谢内容提供者:金牛区吴迪软件开发工作室 接上一篇:操作系统概论【一】 - - 操作系统概述 文章目录第二章、进程管理一、进程的描述1. 为什么要引入进程的概念?a.程序的顺序执行b.程序的并发执行c.进程的概念2. 进程的定义3. 进程的特征4. 进程与程序的比较5.进程控制块6. 进程的状态7. 进程的组织三种组织方式:二、进程的控制1. 创建a.什么情况下需要创建新进程?b.如何创建新进程? | 创建新进程的步骤?2. 阻塞a.什么情况下会进行进程的阻塞呢?b.完成进程阻塞的过程?3. 唤醒a.进.

吴小迪的博客 1万+

别再为H桥烧MOS管发愁了!手把手教你用IR2104搭建稳定电机驱动(附自举电路详解)

本文详细解析了使用IR2104半桥驱动芯片构建高可靠H桥电机驱动电路的全过程。从芯片内部架构、自举电路原理到PCB布局技巧和实战调试方法,帮助工程师彻底解决MOS管烧毁问题。重点讲解了自举电容选型、死区时间控制等关键设计要点,并附有示波器实测波形分析,是电机驱动设计的实用指南。

我的博客 739

【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)

本专栏整理了《深度学习时间序列预测案例》,内包含了各种不同的基于深度学习模型的时间序列预测方法,例如LSTM、GRU、CNN(一维卷积、二维卷积)、LSTM-CNN、BiLSTM、Self-Attention、LSTM-Attention、Transformer等经典模型,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 4万+
上一篇: 操作系统第四篇【处理机调度】
下一篇: 操作系统第五篇【死锁】
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值