操作系统-进程

操作系统知识点整理(完整版)408必看 第一章 操作系统概述 1)一个完整的计算机系统是由硬件系统和软件系统两大部分组成 2)计算机软件是指程序和与程序相关的文档的集合 3)按功能可把软件分为“系统软件”和“应用软件”两部分 系统软件:操作系统语言处理程序,数据库管理系统 应用软件:各种管理软件,用于工程计算的软件包,辅助设计软件 4)通常把未配置任何软件的计算机称为“裸机” 5)操作系统可以被看作是计算机系统的核心,统管... 阅读详情

操作系统-进程

进程

概念
  • 在多道程序的环境下,允许多个程序并发执行,此时他们将失去封闭性,并具有间断性及不可再现性的特征;为了更好地描述和控制程序的并发执行,实现并发性和共享性,引入进程
  • 为了使参与并发执行的程序能独立的运行,为进程配备了进程控制块–PCB(Process Control Block);利用PCB描述进程基本情况和运行状态进而控制和管理进程;PCB是进程存在的唯一标志
  • 程序段,相关数据段和PCB构成进程映像(进程实体)
  • 所以创建进程实际上就是创建进程映像中的PCB;撤销进程就是撤销进程的PCB
  • 进程的定义
    • 程序的一次执行过程
    • 一个程序及其数据在处理机上顺序执行时发生的活动
    • 进程是具有独立功能的程序在一个数据集合上运行的过程;是系统进行资源分配和调度的独立单位

特征
  1. 动态性: 进程是动态产生和消亡的,有着创建,活动,暂定,终止等过程,具有一定生命周期
  2. 并发性: 多个进程实体同时存在于内存中,能在一段时间内同时运行; 引入进程的目的就是使程序能够与其他程序并发执行,提高资源利用率
  3. 独立性: 进程实体是一个能独立运行,独立获得资源和接收调度的基本单位
  4. 异步性: 进程按各自独立的,不可预知的速度向前推进; 异步会导致执行结果的不可再现性,所以必须配置相应的进程同步机制
  5. 结构性: 每个进程都配置一个PCB对其进行描述

状态与转换
  1. 创建态: 进程正在被创建,尚未转到就绪态,创建过程: 申请一个空白PCB,向PCB写入一些控制和管理进程的信息,然后由系统为该进程分配运行时资源,最后转为就绪态
  2. 就绪态: 进程获得了除处理器的一切资源,一旦得到处理器,就开始运行; 系统中处于就绪态的进程可能有多个,组成就绪队列
  3. 运行态: 进程正在处理器上运行
  4. 阻塞态: 又称等待态。进程正在等待某一资源而暂停运行,比如等待IO处理; 即使处理器空闲也不能运行
  5. 结束态: 进程正在从系统中消失,可能是正常结束或其他原因中断退出; 进程需要结束时,首先置该进程为结束态,然后再进一步处理资源回收与回收等工作

avator

  • 就绪态->运行态: 就绪态的进程被调度后获得处理器资源(分派处理器时间片),进程转为运行态
  • 运行态->就绪态: 运行态的进程的时间片用完,不得不让出处理器,进程转为就绪态
  • 运行态->阻塞态: 进程请求的某一资源的使用和分配发生时,进程转为阻塞态; 进程以系统调用的形式请求操作系统提供服务,这是一种特殊的,由运行用户态程序调用操作系统内核过程的形式
  • 阻塞态->就绪态: 进程等待的事件或者资源到来时,中断处理程序把相应阻塞态进程转为就绪态

进程创建
  • 允许一个进程创建一个另一个进程,成为父子进程,子进程可以继承父进程拥有资源,子进程撤销时,从父进程获得的资源归还给父进程,父进程撤销时,也撤销其所有的子进程
  • 创建新进程:
    • 为新进程分配唯一的进程标识号,并申请一个空白PCB(PCB有限),若PCB申请失败,则创建失败
    • 为进程分配资源,为进程的程序和数据分配必要的内存空间(在PCB中体现),若内存空间不足,处于阻塞态,等待内存资源
    • 初始化PCB,包括初始化标志信息,处理器状态信息,控制信息以及进程优先级
    • 若就绪队列未满,则插入就绪队列,等待被调度执行

进程切换
  • 进程切换指处理器从一个进程的运行转到另一个进程上运行:
    • 保存处理器上下文,包括程序计数器和其他寄存器
    • 更新PCB消息
    • 把进程的PCB移入相应队列,如就绪,阻塞等队列
    • 选择另一个进程运行,并更新其PCB
    • 更新内存管理的数据结构
    • 恢复处理器上下文

进程阻塞与唤醒
  • 阻塞原语:
    • 找到要被阻塞进程的标识号对应的PCB
    • 若为运行态,保护现场,转为就绪态,停止运行
    • 将该PCB插入响应事件的等待队列,将处理器资源调度给其他就绪进程
  • 唤醒原语:
    • 在该事件的等待队列找到相应进程的PCB
    • 将其从等待队列移出,置为就绪态
    • 将该PCB插入就绪队列,等待调度

进程终止
  • 正常结束: 进程的任务已完成,准备退出运行
  • 异常结束: 运行时,发生了异常事件使得无法继续运行,如存储区越界,非法指令,运行超时,算术运算错等
  • 外界干预: 应外界的请求而终止运行,如操作员或操作系统干预,父进程请求或父进程终止
  • 终止过程(撤销原语):
    • 根据被终止状态的标识符,检索PCB,读出该进程状态
    • 若被终止状态处于执行状态,则立即终止,将处理器资源分配给其他进程
    • 若有子孙进程,则将其所有子孙进程终止
    • 将该进程的资源或归还给其父进程或操作系统
    • 将该PCB从所在队列删除

进程控制块PCB
  • 进程创建时,操作系统会为其创建一个PCB,该结构常驻内存,任意时刻都可存取,进程结束时删除;PCB是进程存在唯一标志,是进程实体的一部分
    • 进程描述信息:
      • 进程标识符 – 标识各个进程
      • 用户标识符 – 进程归属的用户,为共享和保护服务
    • 进程控制和管理信息:
      • 进程当前状态 – 描述进程状态信息,作为处理器调度依据
      • 进程优先级 – 优先级高的可以优先获得处理器
    • 资源分配清单: 用于说明有关内存地址空间和虚拟地址空间的状况,所打开文件列表和所使用的的输入输出设备信息
    • 处理器相关信息: 处理器中各寄存器的值,进程被切换时,处理器状态信息被保存在相应的PCB中,以便该进程重新执行时能从断点执行
  • 为了方便和管理,组织PCB有两种方式
    • 链接方式: 将统一状态的PCB链接成一个队列,不同状态不同队列,阻塞态的进程可根据阻塞原因分为多个队列
    • 索引方式: 将同一状态的进程组织为一个索引表,表项指向相应PCB,不同状态对应不同索引表

进程通信
  • 共享存储

    • 通信的进程之间存在一块可直接访问的共享空间,通过对这片共享空间进行读写完成进程之间信息交换
    • 低级的共享是基于数据结构的共享; 高级共享是基于存储区的共享
    • 操作系统只负责为通信进程提供可共享使用的存储空间和同步互斥工具,数据交互由用户自己安排
      avator
  • 消息传递

    • 直接通信: 发送进程把消息发送给接收进程,并将它挂在接收进程的消息缓冲队列上,接收进程从缓冲队列取消息
    • 间接通信: 发送进程把消息发送到中间实体,接收进程从实体取得消息,中间实体一般称为信箱,又称信箱通信方式,比如电子邮件系统
  • 管道通信

    • 管道: 用于连接一个读写进程以实现进程通信的一个共享文件,又名pipe文件;以字符流形式写入
    • 有固定的读出和写入端,不能更改;
    • 只能用于父子进程或者兄弟进程之间通信
    • 管道是固定大小的缓冲区,Linux中是4KB大小
    • 管道读取是一次性动作,数据一旦被读取就要从管道内丢弃,以释放空间写入更多数据
      avator
操作系统之进程管理习题 操作系统进程管理习题详解 阅读详情

相关推荐

操作系统之进程描述详解

进程的描述操作系统的控制结构操作系统作为资源管理和分配程序,其本质任务是自动控制程序的执行,并满足进程执行过程中提出的资源使用要求,因此操作系统的核心控制结构是进程结构,资源管理的数据结构将围绕进程结构展开。为了有效的管理进程和资源,操作系统必须掌握每一个进程和资源的当前状态,通过构造一组表来管理和维护进程和每一类资源的信息,操作系统的控制表分为四类: 1. 进程控制表:来管理进程及其相关信息

总结沉淀 2408

道德经解析(2)---定力

怡红楼是青楼。 青楼的姑娘天天都得用胭脂水粉。 “听香阁”的胭脂水粉,闻名天下。“听香阁”的老板张大富,富甲天下。 怡红楼是“听香阁”的客户,“听香阁”的老板张大富却是“怡红院”的常客。 此时,张大富正在怡红院点姑娘。 “就小红吧。”张大富说。 “哎呦,真不巧,今天小红已经有客人了,张老板,可以换个其他人吗?”老鸨娇滴滴的声音,摇晃着肥大的屁股,热情火辣。 “那就翠翠好了。”张大富说,“翠翠也不错...

binbin2000的专栏 4605

操作系统实验之进程控制

操作系统实验之进程控制

LucianaiB的博客 1755

hexo+github搭建博客(手把手超详细)

hexo+github搭建博客 hexo+github搭建博客 1. Git配置和SSH链接 2. hexo安装 3. 修改主题 4. 部署 5. 问题 1. Git配置和SSH链接 准备 首先注册github账号github 安装node.js 下载 安装Git 下载 Git配置 桌面右键 Git bash here 进行账户名和邮箱,账户名和邮箱就是你github的账户名和邮箱 格式: git config --global user.name "你的账户名“ git c

怡红院 2819

组态王|通过日历控件选择时间段查询历史报警

哈喽,你好啊,我是雷工!这节记录下查询历史报警信息的功能实现。以下为实现笔记。

做有价值的事,积累有价值的笔记! 3763

利用ORCAD/pspice 仿真分析电路的幅度相位谱

利用ORCAD的pspice仿真分析电路的相位谱1.介绍2.搭建电路原理图3.建立仿真文件,进行交流分析4.仿真、查看输出5.总结 1.介绍 orcad配合pspice一直是电路原理图绘制和仿真的主要工具,pspice工具提供了诸如暂态分析、直流分析、交流分析等多个工具。学校主要教的是multisim,对orcad讲得很少,最进要利用orcad对运放构成的电路的频响、相移特性进行分析,发现资料幅度...

qq_40011737的博客 1万+

操作系统对程序提供服务的方法

操作系统管理硬件 回到hello程序的例子,外壳(shell)没有直接访问磁盘,hello程序也没有直接访问显示器。取而代之的是,它们都是依靠操作系统提供的服务来达到的上述功能。我们可以把操作系统看成是应用程序和硬件之间插入的一层软件,所有应用程序对硬件的操作都必须通过操作系统。 操作系统有两个基本功能: 防止硬件被失控的应用程序滥用 向程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备 操作系统通过几个基本的抽象概念(进程、虚拟存储器和文件)来实现这两个功能 如图所示,文件是对I/O设

MZ21G的博客 1738

SAP开发顾问简历模板范文(精选篇)

SAP开发顾问简历该怎么写呢?

Huanzhucv的博客 1568

操作系统② 进程管理

进程管理 概述 进程与程序 程序(Program):静态,存放在磁盘里的可执行文件,指令的集合 进程(Process):动态,程序的一次执行过程,多次运行同一程序会创建多个进程 进程实体 PCB(进程控制块,操作系统使用)——进程存在的唯一标志 进程描述 PID(进程ID):程序唯一识别符 UID(所属用户ID) 进程调度信息 进程状态 优先级 资源使用统计 事件 进程控制信息 程序段数据段地址 资源分配清单 使用文件 使用内存区域 使用I/O设备 下一个进程PCB指针 进程

SYS_Emulated的博客 363

松灵机器人——ROS下的CAN通讯调试(内含所需调用包,都是操作步骤)

松灵机器人——ROS下的CAN通讯调试(都是操作步骤) 1 代码包地址 scout_ros package:https://github.com/westonrobot/scout_ros.git ugv_sdk-main package:https://github.com/westonrobot/ugv_sdk webots package:https://cyberbotics.com/ 2 硬件准备 2.1 SCOUT MINI 小白车 + 尾部航空插头 + CAN_TO_USB适配器

weixin_48924581的博客 1万+

逆向选择启示录:一个失败高频策略如何意外跑赢市场

本文探讨了高频交易中的逆向选择现象,揭示了一个失败的高频策略如何通过简化意外跑赢市场。通过加密货币市场的实证分析和蒙特卡洛模拟,研究发现低预测性的简单策略反而更具鲁棒性,有效规避了逆向选择风险。文章还提供了小币种做市策略的优化框架和实践建议,为量化交易者提供了宝贵洞见。

weixin_29191669的博客 401

【JavaEE】操作系统与进程

操作系统与进程~

做梦都想要三十万年薪~ 2409

量产导入 | 产品可靠性测试标准完整大集合(JEDEC/IEC/SAE…)

产品可靠性测试是产品质量保证中的重要一环, 包含有Pre-con, aging(寿命)和ESD(静电)等, 下面就收集了权威标准JEDEC全系列, 请参照如下 同时也附上其它的可靠性标准供大家参考及交叉理解, 可能侧重点不同, 大家可以参考下。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1663

操作系统进程

在操作系统中,操作系统需要对各种资源进行管理,大概可以分为以下几类:内存,文件,磁盘,进程。所谓进程就是操作系统有序管理应用程序的执行的方式,来保证以下几点:1、所有资源对多个应用程序是可用的。2、物理处理器在多个应用程序中切换,保证所有程序都在执行中。3、处理器和I/O设备都能得到充分的利用。因此所有现代操作系统都依赖于一个模型,在该模型中,一个应用程序对应一个或多个进程。进程的定义有以下几条:1、一个正在执行的程序。2、一个正在计算机上执行的程序实例。

2301_77109445的博客 1013

在ParaView中编程实现涡量可视化

综上所述,本文介绍了在ParaView中使用编程方式实现涡量可视化的方法,并提供了相应的Python代码示例。通过灵活运用ParaView的编程接口,我们可以根据特定需求定制复杂的数据可视化流程,进一步深入了解和分析流体的旋转行为。ParaView是一款强大的开源数据可视化工具,它提供了丰富的功能和灵活的编程接口,使用户能够定制数据可视化流程。你可以根据需要自定义颜色映射范围和颜色,上述代码中的RGBPoints列表中包含了两个点,分别对应涡量值为0和10时的颜色。在实际使用过程中,你需要替换代码中的。

ByteProwl的博客 1435

【Windows Server 2019】邮件服务器配置与管理——安装及配置Winmail服务器(上)

博文介绍了如何安装邮件服务器 Winmail,如何配置Winmail,包括运行服务器,Winmail管理工具介绍和域名配置。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 2万+

操作系统实验——进程控制

操作系统实验——进程控制 预习内容: 1.进程的概念 ⑴程序的并发执行 ⑵进程的定义 2.进程的描述 ⑴进程控制块 ⑵进程上下文 ⑶进程上下文切换 ⑷进程空间与大小 3. 进程状态及其转换 ⑴进程状态 ⑵进程状态转换 4.进程控制 ⑴进程创建与撤销 ⑵进程的阻塞与唤醒 实验目的与要求(及主要实验仪器、设备): 1、理解进程的概念,明确进程和程序的区别。 2、理解并发执行的实质。 3、 掌握进程的创建、睡眠、撤销等进程控制方法 要求: (1)一台Windows7以上版本操作系统的计算机。 (2)计算机装有Mi

xuanyuanchun的博客 5813

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

操作系统中的进程

文章目录一、操作系统的基本定位二、操作系统中的进程2.1 进程管理2.2 进程属性2.3 并行和并发2.4 进程的独立性2.5 进程间通信 操作系统是计算机中最重要的软件,常见的操作系统有 Windows ,Linux ,iOS,Android等等 一、操作系统的基本定位 基本功能 : 管理计算机中的各种硬件设备 给计算机上的各种软件资源提供稳定的运行环境 在计算机中操作系统处于的位置如下图: 比如,写一个简单的 Java 代码 System.out.println(“hello world”);

weixin_46103589的博客 2680

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

操作系统——进程

本文深入解析了操作系统中的进程概念及其关键特性。文章首先界定进程是程序的动态执行过程,详细介绍了进程控制块(PCB)包含的关键信息。通过对比程序和进程,阐明了动态与静态的本质区别。重点讲解了进程状态转换模型、调度算法(如时间片轮转和优先级调度)以及Linux特有的进程状态分类。文章还提供了Linux进程管理命令和C语言中操作进程的核心系统调用(fork、getpid等),并通过实践案例演示了多进程文件操作。最后简要提及进程内存布局和虚拟内存映射机制,完整呈现了进程从创建到消亡的生命周期。

weixin_72086349的博客 888

操作系统进程线程题库

网络课课后题 1、多道程序设计技术是操作系统中最早引入的软件技术,引入它的目的是 A、提高系统的实时响应速度 B、充分利用内存,有利于数据共享 C、充分利用CPU,提高CPU利用率 D、提高文件系统性能,减少内外存之间的信息传输量 解析: 2、下列关于进程控制块PCB的叙述中,哪一个是错误的? A、操作系统利用PCB描述进程的基本特征 B、一个PCB唯一对应一个进程 ...

闲狗的博客 5743

操作系统之进程

进程是操作系统中的一个基本执行单元,它代表了正在运行的程序的实例。每个进程都有独立的地址空间、资源和控制流。进程不仅包括程序的代码,还包括程序执行时的状态、内存、打开的文件、信号处理器等资源。

llookl的博客 637

操作系统 :进程概念

理解进程的概念不仅有助于我们掌握操作系统的工作原理,还能为后续学习多任务处理、并发编程、内存管理等高级主题奠定坚实的基础。本文将深入探讨进程的方方面面,包括其基本概念、状态管理、优先级调度、地址空间等核心内容,并结合实际示例和代码分析,帮助读者构建完整的知识体系。

m0_74951730的博客 1978

操作系统——进程详解

进程详解

xh1605004242的博客 1176

操作系统与进程调度

如图,进程直接访问内存,如果出现数组越界等等的代码bug,极有可能由一个不相干的进程引起另一个进程的bug,显然这种实现代价是极为糟糕的,使用代价也是非常大的,为了让各个进程之间互不干扰, 就出现了“虚拟地址空间”,每个进程都只能访问到自己的地址空间,成功的完成进程间的隔离。现代的应用,要完成一个复杂的业务需求,往往无法通过一个进程独立完成,总是需要进程和进程进行配合地达到应用的目的,如此,进程之间就需要有进行“信息交换“的需求。进程之间无法互相干扰,大大提高了操作系统的稳定运行!

m0_65038072的博客 1643
上一篇: Java-类加载过程
下一篇: 一文读懂 Java-线程池
广州彭于晏
博客等级 码龄8年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值