操作系统与进程

news2024/9/29 0:50:58

1.操作系统

操作系统是计算机中的一个重要软件,它是一个专门进行管理的软件。操作系统可以通过驱动程序来间接管理外部硬件,也可以为计算机中的程序提供一个稳定的运行环境,从而来方便管理各种程序的运行,让程序之间的运行互不影响。

1.2 驱动程序

驱动程序,简单来说就是搭配外部硬件使用的程序码。

比如,我们将一个特殊鼠标插入计算机中,而此时计算机只会将这个鼠标单作一个普通的鼠标,如果我们想要使用这个特殊鼠标的其他功能,我们就要去官网下载特殊的软件。而这个软件,和我们所说的驱动程序差不多。

一个计算机可以同时运行很多个程序,那么计算机是如何对多个运行的程序进行有效的管理呢?这里就涉及到了进程这个东西。

2. 进程

进程可以理解运行的程序,一个进程对应一个运行的程序,多个进程对应多个运行的程序。

2.1 进程的创建

步骤一:将程序文件存储一份到内存中

当我们点击一个.exe文件时,操作系统会将该文件存储一份到内存中,并将运行该程序所需要的指令和数据也存储一份到内存中。

步骤二:创建PCB

创建PCB是一个关键步骤,PCB(后面会介绍PCB)可以理解为一个很大结构体,里面存储着进程中的很多属性,创建完一个PCB之后,就会根据事先存储的数据将PCB初始化,一个进程就创建完成了。创建完PCB之后就会将该进程链接到存储PCB的数据结构的末端。

 注意事项:内存中可以同时存储多个进程。

2.2 进程的运行

PCB创建完成之后,操作系统就要运行进程。进程的运行涉及到内存与CPU的交涉。操作系统通过与内存交互,找到对应的PCB里面的内存指针,CPU可以通过内存指针找到指令内存区域,此时CPU就会一条一条的读取,分析,运行内存区域里面的指令,此时,这时PCB就运行完成了。

进程的运行会依赖网盘,硬盘等资源,并且进程运行的过程中,涉及到指令的读取,分析和运行,这些涉及指令的操作设计到CPU,所以,进程的运行也占用了CPU的资源。 

所以说,进程是操作系统分配资源的基本单位。

2.3 CPU对进程的分时复用

我们知道一个CPU的逻辑核心一次只能运行一个进程,但是一个计算机中的CPU是有限的,CPU是如何应对多个进程的运行呢?

这里就涉及到了CPU的分时操作。

所谓的分时操作,就是CPU将一段时间分为好几个时间段,每一个时间段用来运行一个进程,由于CPU的计算速度那是相当快,已经远远超出了人类得反应速度,以至于看起来好像是同时执行一样。

像上面一个CPU,通过分时复用的方式来运行多个进程,我们称之为"并发执行”。

多个CPU同时执行多个进程的方式,我们称之为“并行执行”。

2.PCB的介绍 

通过前面C语言的学习,我们知道,结构体是可以存储一些自定义类型数据的属性的。由于PCB也是用来存储进程的各种属性,所以PCB可以看作是一个很大的结构体,里面存储了很多关于PCB的属性。

1.PCB的一些关键要点

1.Pid(进程id)

每一个进程都有属于自己的进程id,可以用来区分其他进程。

如下图

2. 内存指针

由于CPU要运行进程时,要使用运行该进程的指令,所以,在PCB中就存在一个内存指针,该指针指向指令的内存区域,CPU就可以通过该指针来找到并运行指令。

3.文件描述符表

进程在运行的过程中,要经常与硬盘上数据进行交互,由于硬盘上的数据都是以文件的形式存储,所以访问硬盘上的数据时,要先进行打开文件的操作,打开文件获得到的数据都会存储到文件描述符表中,则文件描述符表中的每一项都对应了一个打开的文件。

2. PCB的进一步属性

要完成上面的分时复用,就涉及到了PCB的进一步属性,也就是进程调度。

1.进程状态

进程中有很多状态,其中就绪状态和阻塞状态最为典型。

(1)就绪状态,进程处于就绪状态时,说明该进程可以随时到CPU上执行。

(2)阻塞状态,进程处于阻塞状态,说明该进程此时不适合到CPU上执行。

2.进程的优先级

进程的运行也是有优先级的,有些进程的优先级高,就可以多吃到一些CPU的资源。

比如,假如我们电脑上在同时运行着黑悟空和qq两个进程,这时肯定是黑悟空的这个进程的优先级高,它就能多吃到CPU上的资源点。这就好比我们宁愿qq消息的接受延迟几秒,也不要游戏延迟几秒,因为可能就是这几秒,会导致游戏的失败。

3.进程的上下文

当一个进程执行了一段时间,失去CPU之后。过一段时间,当该进程重新运行之后,它会接着上次的状态继续执行,而不是重新开始执行。

这就涉及到了进程中的上下文机制。

由于CPU中有很多寄存器,寄存器中存储了进程运行的中间状态,当一个进程失去CPU时,操作系统就会将寄存器存储的中间状态的值填写到内存(该内存是指PCB中对应的属性)中,当这个进程重新执行时,操作系统就会重新将PCB对应的属性值重新填写到寄存器中,使得该进程能够接着上次的状态去执行,而不是冲头开始执行。

4.进程的记账信息

进程的记账信息主要用于统计功能,当一个进程已经长时间没有吃到CPU的资源时,此时,CPU就会倾斜一些资源给该进程。

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

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

相关文章

用于探索和测试API的开源IDE工具-Bruno

1、前言 在进行软件开发与测试过程中,无论是开发人员还是测试人员,都会或多或少地进行接口调试与接口测试。尤其针对那种测试流程规范性很高的项目,测试人员进行接口测试是不可或缺的一部分。而这其中,大多数都会使用 Postman 作…

.Net 基于IIS部署blazor webassembly或WebApi

1.安装IIS(若安装,请忽略) 选择:控制面板–>程序–>程序和功能 选择:启动或关闭Windows功能,勾选相关项,再点击确定即可。 2.安装Hosting Bundle 以.net6为例,点击连接https://dotnet.microsoft.com/en-us/download/dot…

免费的录屏软件有哪些?可以试试这4款。

录屏软件已经被用于很多的领域和场景当中,能够帮助我们进行在线教学,线上培训,游戏直播与分享,视频记录等等。并且很多的录屏软件都有免费的功能,它们让大家的录屏变得更加的方便。如果大家需要录屏工具的话&#xff0…

828华为云征文|基于华为云Flexus X实例部署Uptime-Kuma服务器监控面板

目录 前言 一、Flexus云服务器X介绍 1.1 Flexus云服务器X实例简介 1.2 Flexus云服务器X实例特点 1.3 Flexus云服务器X实例场景需求 二、Flexus云服务器X购买 2.1 Flexus X实例购买 2.2 重置密码 2.3 登录服务器 三、Flexus X安装uptime-kuma面板 3.1 uptime-kuma介绍 3.2 uptim…

现在增长空间原来在这里

我们常常说,现在的经济形势不太好,赚钱太难了,卷得太厉害了。只能出海去卷,或者是到老年人的群体里去卷银发经济。 但是,现在就有一个巨大的市场,等待着大家去挖掘。这就是下沉市场。 以前我们也提过下沉…

[Admin] Things Need to Know

List View Bulk Actions Highlight: To take bulk actions on all of the available records in a list, you click the bulk action button without selecting any records.

无人机之数据处理技术篇

一、数据采集 无人机通过搭载的各种传感器和设备,如GPS、加速度计、陀螺仪、磁力计、激光雷达(LiDAR)、高光谱相机(Hyperspectral)、多光谱相机(Multispectral)以及普通相机等,实时采集飞行过程中的各种数据。这些数据包括无人机的位置、速度、高度、姿态…

无人机侦测:频谱无线电侦测设备技术详解

无人机侦测中的频谱无线电侦测设备技术是一项复杂而关键的技术,它主要通过分析无线电频谱中的信号来探测和识别无人机。以下是该技术的详细解析: 一、技术原理 频谱探测技术:该技术通过分析信号在频域上的分布和特性,来识别、测…

6.MySQL基本查询

目录 表的增删查改Insert(插入)插入替换插入替换2 Retrieve(查找)SELECT 列全列查找指定列查询查询字段为表达式为查询结果指定别名结果去重 WHERE 条件order by子句筛选分页结果 Update(更新)delete&#…

代码随想录算法训练营第十七天|654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

654.最大二叉树 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大二…

LCD显示屏接口

LCD显示屏接口 设备对外接口:VGA、DVI、HDMIHDMI接口接口定义发展历史HDMI特点HDMI接口类型 设备对内接口:串口、并口小屏(I2C、SPI、UART)中屏:MCU、RGBRGB接口 MCU LCD屏和RGB LCD屏的区别大屏:MIPI、LVD…

OCR Fusion: EasyOCR/Tesseract/PaddleOCR/TrOCR/GOT

文章目录 前言一、基类 OCRExecutorBase二、EasyOCR1.安装2.模型下载3.DEMO 三、Tesseract1.安装2.使用问题3.DEMO 四、PaddleOCR1.安装2.DEMO 五、PaddleOCR(PyTorch移植版)1.代码整理2.DEMO 六、TrOCR1.安装2.模型下载3.DEMO 七、GOT1.安装2.模型下载3…

机器学习(5):机器学习项目步骤(二)——收集数据与预处理

1. 数据收集与预处理的任务? 为机器学习模型提供好的“燃料” 2. 数据收集与预处理的分步骤? 收集数据-->数据可视化-->数据清洗-->特征工程-->构建特征集和数据集-->拆分数据集、验证集和测试集 3. 数据可视化工作? a. 作用&…

这款免费工具让你的电脑焕然一新,专业人士都在用

HiBit Uninstaller 采用单一可执行文件的形式,无需复杂的安装过程,用户可以即刻开始使用。这种便捷性使其成为临时使用或紧急情况下的理想选择。尽管体积小巧,但其功能却异常强大,几乎不会对系统性能造成任何负面影响。 这款工具的一大亮点是其多样化的功能。它不仅能够常规卸…

鸿蒙harmonyos next纯flutter开发环境搭建

公司app是用纯flutter开发的,目前支持android和iOS,后续估计也会支持鸿蒙harmonyos。目前谷歌flutter并没有支持咱们国产手机操作系统鸿蒙harmonyos,于是乎国内有个叫OpenHarmony-SIG的组织,去做了鸿蒙harmonyos适配flutter开发的…

实验2 网络测试命令的使用及对等网组建

实验2 网络测试命令的使用及对等网组建 一、实验目的 1. 熟悉常用网络测试命令的语法及其功能; 2. 掌握常用的网络故障分析及排除的方法; 3. 熟悉Windows中的网络组建及各参数的设置和基本意义。 4.如何在对等网中建立共享及访问对方的共享资源。 二、…

精通推荐算法31:行为序列建模之ETA — 基于SimHash实现检索索引在线化

1 行为序列建模总体架构 2 SIM模型的不足和为什么需要ETA模型 SIM实现了长周期行为序列的在线建模,其GSU检索单元居功至伟。但不论Hard-search还是Soft-search,都存在如下不足: GSU检索的目标与主模型不一致。Hard-search通过类目属性来筛选…

《深度学习》【项目】OpenCV 发票识别 透视变换、轮廓检测解析及案例解析

目录 一、透视变换 1、什么是透视变换 2、操作步骤 1)选择透视变换的源图像和目标图像 2)确定透视变换所需的关键点 3)计算透视变换的变换矩阵 4)对源图像进行透视变换 5)对变换后的图像进行插值处理 二、轮廓检测…

集翼智能视频营销管理平台 丨OPENAIGC开发者大赛企业组AI创作力奖

在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者,希望能带给…

GreenPlum数开手册【语法篇】

GreenPlum数开手册 一、数据类型 1、基本数据类型 类型长度描述范围bigint8字节大范围整数-9223372036854775808 到 9223372036854775807smallint2字节小范围整数-32768到32767integer(int)4字节常用整数-2147483648 到 2147483647decimal可变长用户指定的精度,精…