进程调度的基本过程

1 描述

操作系统引入PCB(实际上是结构体)来表示进程的各个属性

2 组织方法

多个PCB作为双线链表的结点被调度,有新的进程要被运行就插入结点(PCB),旧的进程结束就删除结点(PCB)(实际过程中是一组链表)

3 PCB核心属性

(1)PID:

PCB的身份标识,系统随机分配

(2)内存指针

内存是操作系统的资源内存指针包含了进程要执行的指令和执行指令依赖的数据

(3)文件描述符表

进程在运行的过程中是需要操作文件的,是要和硬盘交互的,每打开一个文件就要往文件描述符表上放以一个结构体(元素)

(4) 并发:

cpu上有多个核,并发则是为了充分利用cpu资源,而并发之所以称之为并发,是因为一个核往往以分时复用的方式来实现多个进程同时运行,分时复用就是在极短的时间内执行一个进程后再去执行另一个,只不过由于时间短,在大尺度上来看,是同时运行

(5) 进程状态:

进程状态分为就绪状态和阻塞状态,处在就绪状态说明进程可以到cpu上执行,或者正在执行,处于阻塞状态说明进程不方便去cpu上执行

(6) 优先级:

程序执行有先后顺序就是由于优先级,而优先级则是写该程序的程序员决定的

(7) 上下文:

由于执行过程中的时间轮转,我们需要对每一次执行存档,而上下文就是指进程在执行的过程中为了下一次执行的存档,该存档在cpu的寄存器中

(8) 记账信息:

操作系统会记录每个进程在cpu上运行的时间,避免有的进程被搁置太久

综上:执行进程的过程中第一步是让该进程变成PCB,放置到相关组件的链表中,接着操作系统再根据该PCB的属性(如上)来实现对该进程执行的处理

相关推荐
007张三丰16 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
weixin_6042366717 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
鹤落晴春18 小时前
【Linux复习】管理SELinux安全性
linux·运维·服务器
lizhihai_991 天前
股市学习心得-AI 产业链核心标的梳理清单
大数据·服务器·人工智能·科技·学习
黄同学real1 天前
解决 Visual Studio Web Deploy 远程发布报 401 未授权 (ERROR\_USER\_UNAUTHORIZED)
服务器
天天进步20151 天前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
Java面试题总结1 天前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器
●VON1 天前
AtomGit Flutter鸿蒙客户端:数据模型
android·服务器·安全·flutter·harmonyos·鸿蒙
酉鬼女又兒1 天前
零基础入门计算机网络:网络层核心任务、三大关键问题、两种服务类型与 TCP/IP 网际层协议体系全解析
服务器·网络·网络协议·tcp/ip·计算机网络·php·求职招聘
Gauss松鼠会1 天前
【GaussDB】GaussDB重要通信参数汇总
服务器·网络·数据库·sql·性能优化·gaussdb·经验总结