天津做胎儿鉴定网站,广州古德室内设计有限公司logo,宁波关键词优化时间,wordpress自动播放音乐目录
进程
首先我们要了解一下什么是进程#xff1f;
那如何管理进程#xff1f;
PCB中比较重要的属性
进程调度
为什么要进行进程调度#xff1f;
状态
优先级
上下文
拓展介绍一下寄存器
记账信息 进程
首先我们要了解一下什么是进程#xff1f;
简单来说…目录
进程
首先我们要了解一下什么是进程
那如何管理进程
PCB中比较重要的属性
进程调度
为什么要进行进程调度
状态
优先级
上下文
拓展介绍一下寄存器
记账信息 进程
首先我们要了解一下什么是进程
简单来说进程跑起来的程序
我们打开任务管理器每一个跑起来的进程都是一个应用程序 那如何管理进程
1.先描述使用PCB结构进程管理块 表示出进程的各种属性。
2.后组织使用双向链表把这些PCB结构串起来。
PCB中比较重要的属性 1.pid进程标识符2.内存指针进程持有的内存资源3.文件描述符表进程持有的硬盘资源4.状态 这些用来完成’‘进程调度” 和进程持有的CPU资源密切相关 5.优先级 6.上下文7.记账信息 接下来我们具体介绍用来完成进程调度的这几个属性
进程调度
为什么要进行进程调度
因为进程太多CPU核心数太少分不过来狼多肉少。
这就需要让这些进程轮番在CPU上执行。只要轮转速度够快那在用户眼中宏观上这些进程看起来就是“同时”执行的。
这个“同时”只是看起来同时实际上并不是同时的这个就叫做 “并发” 那如果两个进程同时在两个CPU上执行在微观上也是同时的这个叫做 ”并行“。
但在程序员的角度来看是感受不到到底是“并发”执行还是”并行“执行我们通常用”并发“这个概念来表示”并行“和“并发”。
状态
1.就绪状态
这个进程随时可以去CPU上执行 或者 这个进程正在CPU上执行
一个CPU同一时刻只能有一个进程执行那其他进程就得排队那一个进程下车下一个进程就立即补上来。
2.阻塞状态
程序有时候要等待一些其他的条件其他条件必备才能执行比如说等待用户输入这个用户一直不输入那就得等待阻塞了直到用户输入我们才能获取到数据。 还有一些其他的状态不太重要就不介绍了。
优先级
优先把资源分配给谁谁
这个好理解就比如现在同时运行一个游戏和一个QQ那此时我们就希望游戏持有更多的运算资源保证流畅QQ的话能收到消息就好那游戏的优先级就高于QQ
上下文
进程从CPU离开之前需要保持现场把当前CPU中各种寄存器的状态都记录到内存中
等到下次进程回到CPU上执行的时候此时就可以把保存的这些寄存器的值恢复回去进程就会沿着上次执行到的位置继续往后执行。
就像玩游戏里的存档读档。 拓展介绍一下寄存器 CPU中有一些寄存器没有特殊含义就只是用来保存运算的中间结果的 还有一些寄存器有特定含义特定作用 保存当前执行到哪个指令也叫程序计数器是一个2字节/4字节/8字节 的整数这个整数保存的是一个 内存地址这个地址就是程序下一条要执行的指令的所在位置维护栈相关的寄存器 (有了这个 才知道一个方法执行完毕后要回到哪里执行通过这一组一般是两个维护当前程序的”调用栈“栈也是一块内存这个内存里就保存当前这个程序方法调用过程中的一系列的关系也包含局部变量和方法参数......)其他的通用寄存器 一般是用来保存计算的中间结果的。 ps程序计数器: exe里面就包含了指令 和 数据把exe 运行起来操作系统就会把指令和数据加载到内存中就会有一个内存地址
那此时CPU就会从内存中取指令然后在执行指令
初始情况下程序计数器就指向进程指令的入口
每次取完一条指令程序计数器的值都会自动更新
默认情况下直接指向下一条顺序执行
但是如果遇到 跳转类指令jmp(无条件跳转jcmp(有条件跳转call函数调用就会被设置成跳转到的地址
这些都是操作系统自动的。 记账信息
通过优先级机制对不同的进程分配了不同权重的资源
但这个机制有可能会出现极端的情况所有的资源都给了某个进程其他进程一点都没分着
那就要用到记账信息记账信息会记录当前进程持有 CPU 的情况在CPU 执行多久了就可以作为操作系统调度进程的参考依据
╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯完╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯╰(*°▽°*)╯