进程的初识

news2025/7/17 6:59:12

目录

  • 预备知识 -> 操作系统
    • 操作系统的定义
    • 操作系统的定位
  • 进程
    • 进程的概念
    • 进程调度的过程
    • 进程的管理
      • 描述
      • 组织
    • PCB描述进程的特征
      • 进程调度的相关属性
        • 进程的状态
        • 优先级
        • 上下文
        • 记账信息

预备知识 -> 操作系统

操作系统的定义

操作系统是一个搞管理的软件

  • 对上,要对硬件设备管理
  • 对下,要给软件提供稳定的运行环境
  • 操作系统是软件 硬件 用户之间交互的媒介
    常见的操作系统:Windows linux mac Android(本质上也是linux) IOS(和mac同宗同源)

操作系统的定位

在这里插入图片描述
一个应用程序想要操作一下硬件设备。就需要先通过系统调用,把操作系统命令告诉给系统内核,内核调用驱动程序,进一步的操作操作系统

进程包含线程
一个进程包含一个及以上的线程
进程是资源分配的基本单位
线程是系统调度的基本单位

进程

进程的概念

概念:一个跑起来的程序就是一个”进程“
电脑上有一个.exe 可执行程序。但是没有去运行它,没有运行的就不是进程(没有运行起来的叫做程序)

进程(process)也叫做任务(task)
Ctrl + Alt + delete => 打开任务管理器
在这里插入图片描述
上面每一个运行中的程序就是进程

每个进程都对应一些资源进程是操作系统资源分配的基本单位

进程调度的过程

进程调度是指操作系统按某种策略或规则选择进程占用CPU资源进行运行的过程。

硬件资源,内存,硬盘,网卡都好分。但是cup资源不好分!!
进程有上百个之多,但是cpu市面上流行的电脑都是多核cpu,多核大都是8核或者16核。
在这里插入图片描述
上图就是一个八核电脑。八核cup和几百个进程明显不够分,狼多肉少
这些进程,是希望能够同时运行
但是计算机并不能同时运行,计算机真正做到的是分时复用
分时复用分为并行并发
并行:微观上同一时刻,两个核心上的进程,就是同时进行的
并发:微观上,同一时刻,一个核心中只能运行一个进程,但是它能够对进程快速的进行切换。

比如在cpu核心上,先运行一下qq,再运行一下微信,再运行一下idea…只要切换的速度足够快(我的电脑3.2GHz,每秒运行32亿条指令),宏观上人感知不到,人们看起来感觉好像几个程序在同时运行。就好比电脑屏幕刷新的频率大都是60Hz,屏幕并不是连续的,但是刷新频率大于眼睛的反应,人看电脑屏幕就好像是连续的

并行和并发是由操作系统内核处理的,应用程序(程序员)感知不到,因此我们也把并行和并发统称为并发
除非有显式声明,否则谈到并发,并发 = 并行 + 并发
操作系统里有一个重要的模块调度器,就来负责让有限的CPU来调度执行这么多的进程

进程的管理

进程是一个重要的软件资源,是由操作系统内核负责管理的

管理:组织 + 描述

描述

描述:用结构体(C语言的结构体)来描述进程的属性。
因为操作系统基本上都是C/C++来写的,所以用C语言结构体来描述。
PCB:用来描述进程的这个结构体叫做进程控制块也叫做PCB,这是一个结构体,注意不要和硬件中的PCB板弄混

组织

通过双向链表,把多个PCB串联在一起。(并不是一个单纯的双向链表)

  • 创建一个进程,本质上就是创建一个PCB这样的结构体对象,把它插入到链表中。
  • 销毁一个进程,本质上就是把链表上的PCB结点删掉
  • 任务管理器查看进程列表,本质上就是遍历整个PCB链表

PCB描述进程的特征

pcb中包含的属性非常非常多,下面只介绍最核心的属性

  1. pid 进程身份标识符(唯一的数字)
  2. 内存指针 指向了说内存是那些
  3. 文件描述符表 硬盘上的文件等其他资源 (2和3描述了进程有哪些硬件资源)
  4. 进程调度相关属性:
    • 进程的状态
    • 优先级
    • 上下文
    • 记账信息

进程调度的相关属性

进程通过调度器对其以并行+并发的形式进行调度。但是它也需要PCB对他提供帮助。PCB就记录进程调度的相关属性。

一个很有名的日本游戏叫做约会大作战,里面的男主角五河士道通过与女生约会来拯救世界。假设现在有ABC三个女生,让男主角和他们约会,还不能让他们相互知到对方的存在就需要合理的安排,但是每个妹子的状态不同,有的妹子周二需要上课,有的妹子正在准备和你约会,有的妹子正在和你约会,每个妹子的状态不同所以得记录妹子们的状态,每个妹子不能平均分配时间有的是新攻略的需要多花时间培养感情,有的已经交往了很久有了深厚的感情,就可以先往后放放。每个妹子的约会是有优先级的。和很多女生约会得记录他们的交往的进度和信息,假如A女生说她想去海边旅游了,让你给他准备准备。B女生说亲戚结婚了想让你给她挑一件礼服。但是你没有记录上下文,
A女生问:你准备好了嘛?
主角回答:给你准备了件礼服
B女生问:你准备好了嘛?
主角回答:给你准备了件泳衣
这样就露馅了,所以必须得记录上下文来避免出现错误而导致功亏一篑
主角和ABC交往了一段时间,要每隔一段时间来做个总结,统计一下在每个人身上花费的精力,以此为标准保持好尺度,不能太近也不能太远。

以这个小故事用来理解进程的相关属性

进程的状态

进程的状态主要有下面三种

  • 就绪状态: 随叫随到,进程随时准备好了去CPU上执行
  • 运行状态:正在CPU上执行
  • 阻塞状态:短时间内无法到CPU上执行,比如 进程 正在进行密集的IO操作,读写数据

优先级

先给谁排,后给谁排,给谁排的多一点,给谁排的少点。
进程也是有优先级的,操作系统的调度并不是一碗水端平的

上下文

操作系统在进行进程切换的时候,就需要把执行的中间状态记录下来,保存好。下次这个进程再上CPU上运行时,就可以恢复上次的状态好继续执行下去。
读档,存档
上下文的本质上就是你存档的内容。
进程的上下文,就是cpu各个寄存器1的值。

记账信息

操作系统,统计每个进程在cpu上的时间和指令数目,根据这个来决定下一阶段如何调度。


  1. 各个寄存器 :CPU内置的存储数据的模块,保存的就是程序运行过程中的中间结果
    保存上下文:就是把这些CPU寄存器的值,记录到内存(PCB)中。
    回复上下文:就是把内存中的这些寄存器中的值恢复回去 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么一定要申请专利呢

问题一:如何避免被判为非正常专利? 原本有个发明创造,想申请专利,却被列入非正常申请,甚至违法。以下五种情况一定要注意,千万不能碰。 1、同一单位或个人申请多件明显抄袭现有技术的专利; 2…

如何通过 Java 合并和取消合并 Excel 单元格

在整理 Excel 中的数据时,我们不可避免地需要合并和取消合并单元格。同时,如果需要创建跨列或行的标题,我们可以合并 Excel 单元格以在电子表格中轻松完成此操作。 合并单元格是指将两个或多个单元格合并为一个单元格,而取消合并单…

4.4——数据库和前后端身份认证

目录数据库与身份认证数据库的基本概念什么是数据库常见的数据库及分类传统型数据库的数据组织结构安装并配置 MySQL使用 MySQL Workbench 管理数据库连接数据库了解主界面的组成部分创建数据库创建数据表向表中写入数据使用 SQL 管理数据库在项目中操作 MySQL安装与配置 mysql…

华为机试 - 数大雁

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出。 具体的: 1.大雁发出的完整叫声为”quack“,因为有多只大雁同一时…

怎么还不会进制转换,进来学。

✨进制转换,深度讲解✨特殊的十进制转换(整数)一、十进制转换为其他进制二、其他进制转换为十进制二进制的特殊转换(整数)一、二进制转换为其他进制二、其他进制转换为二进制任意进制的转换(整数&#xff0…

Java项目:JSP高校新生报到迎新管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 辅导员角色包含以下功能: 辅导员登录,学生留言管理,新生报到管理,宿舍分配管理等功能。 财务管理角色包含以下功能: 财务…

一道Android题目逆向动态调试

题目来源于海淀区网络与信息安全管理员大赛,题目中将加密验证算法打包进.so,在程序中动态调用check。 本题目通过System.loadLibrary(“native-lib”)加载了libnative-lib.so文件,该文件通过jeb可以实现提取 图1 题目关键代码 调试环境选择…

【矩阵论】4.矩阵运算——广义逆——定义性质与特殊矩阵的广义逆

4.3 广义逆 4.3.1 定义 若mn矩阵AAmn与矩阵XXnm满足四个条件①AXAA,②XAXX,③(AX)HAX,④(XA)HXA则X为A的加号逆(广义逆),记为XA\begin{aligned} &若 m\times n 矩阵AA_{m\times n} 与矩阵 XX_{n\times m} 满足四个条件\\ &①AXAA,\quad ② XAXX…

以太坊:轻松理解EIP-4844

以太坊:轻松理解EIP-4844 以太坊网络在不断发展,多年来已经提出了许多技术提案。其中一个提案是由Vitalik Buterin提出的EIP-4844,它关注的是分片技术。 什么是EIP-4844,它将如何影响以太坊网络及其用户的未来?以下是…

体系结构28_多处理机(2)

对称式共享存储器体系结构 多处理机Cache一致性 **多个处理器共享一个存储器 **当处理器规模较小时,这种机器十分经济 **支持对共享数据和私有数据的Cache缓存 私有数据供一个单独的处理器使用,而共享数据供多个处理器使用 ** 共享数据进入Cache产生了一…

LeetCode 654.最大二叉树 617合并二叉树 700二叉搜索树中的搜索 98验证二叉搜索树

文章目录654最大二叉树c代码实现python 代码实现617合并二叉树c 代码实现python 代码实现700二叉搜索树中的搜索c代码实现python 代码实现98验证二叉搜索树c 代码实现python 代码实现654最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归…

[附源码]java毕业设计在线购物商城

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]java毕业设计疫情居家隔离服务系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

阿里云与信通院邀您参与云原生安全用户调研

云原生安全建设已经成为企业云原生平台建设、应用云原生化改造进程中的必备项。在云原生的大势所趋下,云的分布式架构、容器化部署、边界消失等特点也带来了有别于传统硬件安全的模式:镜像漏洞、容器逃逸、租户隔离等安全问题威胁着企业的云原生平台和应…

Unity动态创建Avatar骨骼映射

目录前言1 了解Avatar骨骼映射2 动态创建Avatar骨骼映射2.1 寻找相关APIAvatarBuilder.BuildHumanAvatarDeclarationParametersReturnsDescriptionHumanDescriptionDescriptionProperties2.2 创建Skeleton数据2.3 创建Human映射关系2.4 创建Avatar3 总结前言 为了让单个动画可…

Linux(基于Centos7)(四)

文章目录一、任务目标二、任务资讯三、任务实施3-1.RPM软件包管理3-2.YUM方式安装软件一、任务目标 实施该工单的任务目标如下: 知识目标 1.了解RPM提供的功能。 2.了解YUM相对于RPM所具有的优点。 能力目标 1.能够通过RPM安装及管理软件包。 2.能够通过YUM安装及管…

MCE | ATM 激酶活化变单体后的神奇开挂!

ATM (Ataxia-telangiectasia mutated proteins) 是一种丝氨酸-苏氨酸蛋白激酶,是 DNA 损伤应答 (DDR) 的关键调节因子。ATM 是位名副其实的“指挥官”,在 DNA 双链断裂 (DSB) 中,参与细胞周期检查点维护、DNA 损伤修复和端粒维护等&#xff0…

基于Android的个人健康管理系统

目 录 基于Android的个人健康管理系统 Personal Health Management System Based On Android 1 引言 1 1.1 课题背景 1 1.2 编写目的 1 1.3 关于Android 1 1.4 关于MVC框架 3 2 可行性研究 6 2.1 技术可行性 6 2.2 经济可行性 6 2.3 时间可行性 6 3 需求分析 7 4 总体设计 8 …

栈——算法专项刷题(六)

六、栈 6.1后缀表达式 原题链接 根据 逆波兰表示法,求该后缀表达式的计算结果。 有效的算符包括 、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话…

【kafka】五、kafka工作流程

kafka工作流程 工作流程 kafka中消息是以topic进行分类的,生产者生产消息,消费者消费消息,都是面向topic的。 topic是逻辑上的概念,而partition是物理上的概念,每一个partition对应一个log文件,该log文件…