进程和进程的调度
今天,为大家带来进程和进程的调度的学习
1.认识计算机
2.什么是操作系统
3.什么是进程
4.进程管理
5.进程的属性
6.进程的调度
7.进程调度的过程
8.内存分配
1.认识计算机
计算机的组成有五大部分
1.CPU(是计算机的大脑,负责逻辑运算和控制)
2.内存
3.外存
4.输入设备
5.输出设备
由存储空间排序
硬盘>内存>>cpu
数据访问速度
cpu>>内存>硬盘
2.认识操作系统(OS)
操作系统作系统是一组软件集合,管理计算机软硬件资源,并且协调CPU运行

上述图就是计算机中操作系统所处的位置,可以看出在很关键的位置
对下要管理CPU,内存,外存,以及IO设备,对上要管理各种应用程序
我们所要谈的进程就是基于操作系统来说的,操作系统有一个功能,那就是进程管理
3.什么是进程(process)
进程说的通俗一点就是任务,也就是一个跑起来的程序,可以称为程序
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;
在操作系统内部,进程是操作系统进行资源分配的基本单位。
进程就是跑起来的程序
我们先来看看进程
打开电脑的任务资源管理器

这里有很多正在运行的程序,就称为进程
电脑的这些程序在运行时需要向操作系统申请内存,现在有这么多进程,就需要进行进程管理,这样计算机才能有序工作
4进程的管理:
进程管理分为两步
1.描述一个进程
就是用一个结构体或者一个类将进程的信息表示出来
2.组织一个进程
用数据结构将结构体或者对象放在一起
5进程的属性
既然我们要将进程的结构体(PCB >> process control block )进行组织,那么就得了解它的属性,PCB的属性非常多,我们今天就挑几个典型的来说一说
1.进程标识 pid
每一个进程都必须有唯一的一个身份标识
2.内存指针
进程就是跑起来的程序,跑起来的程序需要占用一定的内存资源,那么内存指针可以告诉操作系统哪部分的内存资源被占用了
3.文件描述符表
没有运行的程序并且在硬盘上存储的就称为文件,当一个文件运行时被标记,文件一旦打开就产生了一个文件描述符,当打开的文件很多的时候,就会标记产生很多文件描述符,这个时候把这些文件描述符放到一个表里面,这个表叫做文件描述符表
4.这个属性,不是一个属性,是一组和CPU资源相关的属性,,这组属性辅助操作系统进行进程调度
(1)进程状态
进程有两种状态,一个是就绪状态,一个是阻塞状态
就绪状态:进程已经准备好,随时可以上CPU执行
阻塞状态:进程还没准备好,暂时无法上CPU执行
(2)进程的优先级
进程的调度不一定公平,会遵循优先级,优先级调度
(3.)进程的上下文
就是记录进程运行到哪里的存档,当A进程突然离开CPU,那么B进程进入CPU执行,执行完后进程A回来继续执行,就从进程A的突然中断的地方继续执行
在进程上来说,就是进程运行中,CPU内部的寄存器存储的值,寄存器有很多作用,在这里的作用就是保存当前进程执行的中间结果,包括了执行到哪一条指令
寄存器有一个存档和读档的操作
所谓存档:进程在中途离开CPU的时候,寄存器会记录进程执行到哪一步了,那么CPU把寄存器上的值存到PCB的上下文中
所谓读档:当进程回到CPU中,CPU将PCB上的存档记录读取到寄存器上
(4)进程的记账信息
记录进程在CPU执行的时间长短,便于操作系统进行进程的调度
6进程调度:当CPU空闲时,操作系统从就绪队列上选择一个进程执行
操作系统使用双向链表组织PCB
进程的创建:创建一个链表结点
进程的销毁:删除一个链表节点
进程列表的遍历:遍历该链表
7.进程的调度过程
1.并行:同一时刻,同一个cpu,两个核心,同时执行两个进程,互不干扰
2.并发:同一个CPU,一个核心,先执行进程1,执行一会儿,再去执行进程2,执行一会儿,再去执行进程3,切换的速度非常快,快到几乎感受不到,所以看起来就像同时执行了
所以,进程的执行采用并行+并发的形式来执行.很多时候,把并行和并发统称为并发,这个并发是宏观意义上的并发
8.内存的分配
操作系统对内存资源的分配是空间模式,即不同的进程在执行的时候使用内存的不同区域,不会互相影响
扩展一下.,操作系统对进程执行分配的内存是虚拟地址,看似是一样的内存地址,但是通过映射到真实内存上,就是不一样的地址,不一样的内存区域
每个进程访问的内存地址都不是真正的物理内存地址
画个图理解一下

使用虚拟地址有效避免了野指针问题以及进程之间会相互干扰的问题
所以,进程有稳定性和独立性,每一个进程都有独立的内存地址空间,不会被干扰到
今天的内容就分享到这里,我们下期再见!!!
相关文章:
进程和进程的调度
今天,为大家带来进程和进程的调度的学习 1.认识计算机 2.什么是操作系统 3.什么是进程 4.进程管理 5.进程的属性 6.进程的调度 7.进程调度的过程 8.内存分配 1.认识计算机 计算机的组成有五大部分 1.CPU(是计算机的大脑,负责逻辑运算和控制) 2.内存 3.外存 4.输入…...
TypeScript 深度剖析:TypeScript 的理解?与 JavaScript 的区别?
一、是什么 TypeScript 是 JavaScript 的类型的超集,支持ES6语法,支持面向对象编程的概念,如类、接口、继承、泛型等 超集,不得不说另外一个概念,子集,怎么理解这两个呢,举个例子,如…...
美颜SDK关键技术讲解——人脸识别与人脸美化
拍摄,自从智能手机普及之后就已经不再是小众爱好,使用手机拍摄记录生活几乎成了人们的日常。在巨量的需求下,美颜工具、美颜SDK已经被广泛应用于各大视频拍摄平台。虽然经常听到美颜SDK,但是大多数人并不了解它,下文小…...
Linux下C/C++ 网络扫描(主机扫描技术)
主机扫描是网络扫描的基础,通过对目标网络中主机IP地址的扫描,从一堆主机中扫描出存活的主机,然后以他们为目标进行后续的攻击。一般会借助于ICMP、TCP、UDP等协议的工作机制,检查打开的进程,开放的端口号等等。 主机…...
无法将“vue-cli-service”项识别为 cmdlet、函数、脚本文件或不是内部命令的原因和解决方案
经常有小伙伴问我说,为什么我们在开发vue项目的时候,需要在package.json的script对象中,去设置命令启动项目,而不是直接的通过"vue-cli-service serve"命令去把项目跑起来。带着这些疑问,小生在此总结了以下…...
逆流程 场景下 处理状态机变化的方案
背景: 针对某些业务场景下,存在逆流程。 比如场景的场景 正向流程如,发起某项申请->对某项申请进行审批。(审批为通过/驳回)。这样这个工作流程就算到最终态。 常见的状态机如, 申请未提交࿰…...
【剧前爆米花--爪哇岛寻宝】Java实现无头单向非循环链表和无头双向链表与相关题目
作者:困了电视剧 专栏:《数据结构--Java》 文章分布:这是关于数据结构链表的文章,包含了自己的无头单向非循环链表和无头双向链表实现简单实现,和相关题目,想对你有所帮助。 目录 无头单向非循环链表实现 …...
学习MvvmLight工具
最近学习了一下MvvmLight,觉得有些功能还是挺有特色的,所以记录一下 首先新建也给WPF程序 然后在Nuget里面安装MvvmLightLib 包,安装上面那个也可以,但是安装上面那个会自动在代码里面添加一些MvvmLight的demo ,安装M…...
基于BiLSTM+CRF医学病例命名实体识别项目
研究背景 为通过项目实战增加对命名实体识别的认识,本文找到中科院软件所刘焕勇老师在github上的开源项目,中文电子病例命名实体识别项目MedicalNamedEntityRecognition。对其进行详细解读。 原项目地址:https://github.com/liuhuanyong/Med…...
05 C语言数据类型
05 C语言数据类型 1、数据类型 编程语言对数据类型分为两派:一种认为要注重,一种认为可以忽视。 C语言类型 1、整数 : char < short < int < long < long long ,bool 2、浮点数:float < double < long doub…...
C++11:右值引用和移动语义
文章目录1. 左值和右值表达式1.1 概念1.2 左值和右值2. 左值引用和右值引用2.1 相互引用2.2 示例代码2.3 左值引用使用场景缺点2.4 右值引用和移动语义小结2.5 移动赋值2.6 右值引用的其他使用场景右值引用版本的插入函数3. 完美转发3.1 万能引用3.2 如何实现完美转发3.3 完美转…...
tcpdump网络抓包工具
tcpdump 是一个强大的网络抓包工具,在分析服务之间调用时非常有用。可以将网络中传送的数据包抓取下来进行分析。tcpdump 提供灵活的抓取策略,支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句来去掉不想要的信…...
MaxCompute SQL中的所有保留字与关键字如下
– MaxCompute SQL中的所有保留字与关键字如下 注意 命名表、列或分区时,不要使用保留字与关键字,否则可能会报错。 保留字不区分大小写。 在对表、列或是分区命名时如若使用关键字,需给关键字加符号进行转义,否则会报错。 % &am…...
Kafka 压缩算法
压缩 (compression) : 用时间换空间的思想 用较小的 CPU 开销获得磁盘少占用或网络 I/O 少传输 Kafka 消息分两层: 消息日志组成 : n 个消息集合消息集合 (message set) 组成 : n 条日志项 (record item)日志项封装了消息 (message)Kafka 在消息集合层上进行写入…...
关于React Hook(18)
useState():👉详情 (必须“有条件地调用”;注意避免冗余状态的产生) 关于useState的两种使用方式的区别:👉详情 关于batch机制:有条件地调用一些状态的set方…...
计算机网络:BGP协议
BGP协议 与其他AS的邻站BPG发言人交换信息。 交换的网络可达性信息,即要到达某一个网络所要经历的一系列AS 发生变化时,更新有变化的部分 BGP协议交换信息的过程:所交换的网络可达性信息就是要到达某一个网络所要经历的一系列ASÿ…...
91. 解码方法 ——【Leetcode每日刷题】
91. 解码方法 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : ‘A’ -> “1” ‘B’ -> “2” … ‘Z’ -> “26” 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法࿰…...
人体存在传感器成品方案,精准感知静止存在,实时智能化感控技术
随着现今智能时代的发展,酒店也越来越趋于智能化,也在不断地推行智慧酒店,这也给人们入住酒店提供了良好的体验。 人体存在感知是智能酒店中极其重要的一项应用技术,只有智能设备通过精准地感知人体存在,才能更好地做…...
mysql连接池的实现
目录 1 池化技术 2 什么是数据库连接池 3 为什么使用数据库连接池 3.1 不使用连接池 3.2 使用连接池 3.3 长连接和连接池的区别 4 数据库连接池运行机制 5 连接池和线程池的关系 6 线程池设计要点 6.1 连接池设计逻辑 构造函数 初始化 请求获取连接 归还连接 析…...
哪种类型蓝牙耳机佩戴最舒服?舒适度最好的蓝牙耳机推荐
如果您想在外出时听自己喜欢的音乐,您需要佩戴耳机,当前的耳机都足够小,可以将它们放在口袋里,即使它们在充电盒中也是如此,舒适度一直都是人们所追求的,舒适之余,佩戴同样稳固更加令人安心&…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...
计算机系统结构复习-名词解释2
1.定向:在某条指令产生计算结果之前,其他指令并不真正立即需要该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方,那么就可以避免停顿。 2.多级存储层次:由若干个采用不同实现技术的存储…...
二维数组 行列混淆区分 js
二维数组定义 行 row:是“横着的一整行” 列 column:是“竖着的一整列” 在 JavaScript 里访问二维数组 grid[i][j] 表示 第i行第j列的元素 let grid [[1, 2, 3], // 第0行[4, 5, 6], // 第1行[7, 8, 9] // 第2行 ];// grid[i][j] 表示 第i行第j列的…...
本地部署drawDB结合内网穿透技术实现数据库远程管控方案
文章目录 前言1. Windows本地部署DrawDB2. 安装Cpolar内网穿透3. 实现公网访问DrawDB4. 固定DrawDB公网地址 前言 在数字化浪潮席卷全球的背景下,数据治理能力正日益成为构建现代企业核心竞争力的关键因素。无论是全球500强企业的数据中枢系统,还是初创…...
Redis专题-实战篇一-基于Session和Redis实现登录业务
GitHub项目地址:https://github.com/whltaoin/redisLearningProject_hm-dianping 基于Session实现登录业务功能提交版本码:e34399f 基于Redis实现登录业务提交版本码:60bf740 一、导入黑马点评后端项目 项目架构图 1. 前期阶段2. 后续阶段导…...
小白的进阶之路系列之十四----人工智能从初步到精通pytorch综合运用的讲解第七部分
通过示例学习PyTorch 本教程通过独立的示例介绍PyTorch的基本概念。 PyTorch的核心提供了两个主要特性: 一个n维张量,类似于numpy,但可以在gpu上运行 用于构建和训练神经网络的自动微分 我们将使用一个三阶多项式来拟合问题 y = s i n ( x ) y=sin(x) y=sin(x),作为我们的…...
