操作系统与进程

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就会倾斜一些资源给该进程。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

传知代码-基于图神经网络的知识追踪方法(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 1.论文概述 论文链接提出了一种基于图神经网络的知识追踪方法,称为基于图的知识追踪(GKT)。将知识结构构建为图,其中节点对应于概念,边对应于它们之间的…

【JavaEE】——单例模式引起的多线程安全问题:“饿汉/懒汉”模式,及解决思路和方法(面试高频)

阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你! 目录 一:单例模式(singleton) 1:概念 二:“饿汉模…

Enhancing Trust in LLMs: Algorithms for Comparing and Interpreting LLMs

文章目录 题目摘要引言透明度的必要性对信任的追求困惑度测量自然语言处理(NLP)评估指标零投学习绩效少量学习性能迁移学习对抗测试公平和偏见稳健性评估LLMMaps基准测试和排行榜分层分析布鲁姆分类法的可视化幻觉评分知识分层策略利用机器学习模型进行层级生成注意力可视化LLM…

css五种定位总结

在 CSS 中,定位(Positioning)主要有五种模式,每种模式的行为和特点不同,以下是 static、relative、absolute、fixed 和 sticky 五种定位方式的对比总结: 1. static(默认定位) 特性…

阿里云函数计算 x NVIDIA 加速企业 AI 应用落地

作者:付宇轩 前言 阿里云函数计算(Function Compute, FC)是一种无服务器(Serverless)计算服务,允许用户在无需管理底层基础设施的情况下,直接运行代码。与传统的计算架构相比,函数…

【2023工业3D异常检测文献】PointCore: 基于局部-全局特征的高效无监督点云异常检测器

PointCore: Efficient Unsupervised Point Cloud Anomaly Detector Using Local-Global Features 1、Background 当前的点云异常检测器可以分为两类: (1)基于重建的方法,通过自动编码器重建输入点云数据,并通过比较原…

07-阿里云镜像仓库

07-阿里云镜像仓库 注册阿里云 先注册一个阿里云账号:https://www.aliyun.com/ 进入容器镜像服务控制台 工作台》容器》容器服务》容器镜像服务 实例列表》个人实例 仓库管理》镜像仓库》命名空间》创建命名空间 仓库管理》镜像仓库》镜像仓库》创建镜像仓库 使…

【AI】深度学习的数学--核心公式

1 梯度下降 f ( x Δ x , y Δ y ) ≃ f ( x , y ) ∂ f ( x , y ) ∂ x Δ x ∂ f ( x , y ) ∂ y Δ y f(x\Delta x,y\Delta y) \simeq f(x,y)\frac{\partial f(x,y)}{\partial x}\Delta x\frac{\partial f(x,y)}{\partial y}\Delta y f(xΔx,yΔy)≃f(x,y)∂x∂f(x,y)​…

MySQL 性能剖析全攻略

在使用 MySQL 数据库的过程中,性能问题往往是让开发者和管理员头疼的难题。为了有效地解决这些问题,我们需要对 MySQL 进行性能剖析。那么,如何在 MySQL 中进行性能剖析呢?本文将为你详细介绍。 一、为什么要进行性能剖析&#x…

基于安卓开发大型体育场管理系统的设计与实现(源码+定制+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

《开题报告》基于SpringBoot框架的高校专业实习管理系统开题报告的设计与实现源码++学习文档+答辩讲解视频

开题报告 研究背景 在当今高等教育日益普及与深化的背景下,高校专业实习作为学生将理论知识转化为实践能力、提前适应社会工作环境的重要环节,其重要性不言而喻。然而,传统的高校专业实习管理模式往往存在信息不对称、流程繁琐、效率低下、…

SSM+Vue共享单车管理系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作…

代码随想录_刷题记录_第四次

二叉树 — 理论基础 种类: 满二叉树(所有层的节点都是满的,k:深度 节点数量:2^k - 1)完全二叉树(除了最后一层,其余层全满,并且最后一层从左到右连续)二叉搜…

信道衰落的公式

对于天线: 对于天线的面积计算: 天线的接收功率密度: 天线的接收功率: 移动无线信道(I) (xidian.edu.cn)https://web.xidian.edu.cn/zma/files/20150710_153736.pdf 更加常用的考虑了额外的信道衰落pathlo…

2024 maya的散布工具sppaint3d使用指南

目前工具其实可以分为三个版本 1 最老的原版 时间还是2011年的,只支持python2版的maya 2 作者python3更新版 后来作者看maya直到2022上还是没有类似好用方便的工具,于是更新到了2022版本 这个是原作者更新的2022版本,改成了python3&#…

敏感字段加密 - 华为OD统一考试(E卷)

2024华为OD机试(E卷+D卷+C卷)最新题库【超值优惠】Java/Python/C++合集 题目描述 【敏感字段加密】给定一个由多个命令字组成的命令字符串: 1、字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号; 2、命令字之间以一个或多个下划线 进行分割; 3、可…

Study-Oracle-10-ORALCE19C-RAC集群搭建(一)

一、硬件信息及配套软件 1、硬件设置 RAC集群虚拟机:CPU:2C、内存:10G、操作系统:50G Openfile数据存储:200G (10G*2) 2、网络设置 主机名公有地址私有地址VIP共享存储(SAN)rac1192.168.49.13110.10.10.20192.168.49.141192.168.49.130rac2192.168.49.13210.10.10.3…

单体到微服务架构服务演化过程

架构服务化 聊聊从单体到微服务架构服务演化过程 单体分层架构 在 Web 应用程序发展的早期,大部分工程是将所有的服务端功能模块打包到单个巨石型(Monolith)应用中,譬如很多企业的 Java 应用程序打包为 war 包,最终会形…

JSP(Java Server Pages)基础使用二

简单练习在jsp页面上输出出乘法口诀表 既然大家都是来看这种代码的人了&#xff0c;那么这种输出乘法口诀表的这种简单算法肯定是难不住大家了&#xff0c;所以这次主要是来说jsp的使用格式问题。 <%--Created by IntelliJ IDEA.User: ***Date: 2024/7/18Time: 11:26To ch…

线性表二——栈stack

第一题 #include<bits/stdc.h> using namespace std; stack<char> s; int n; string ced;//如何匹配 出现的右括号转换成同类型的左括号&#xff0c;方便我们直接和栈顶元素 char cheak(char c){if(c)) return (;if(c]) return [;if(c}) return {;return \0;/…