操作系统管理CPU的直观想法
CPU的工作原理
要想管理CPU,就要先学会如何使用CPU。我们先从一个程序的执行来看看CPU是如何工作的。
void main(){
int i , sum;
for(i = ; i < ; i++){
sum = sum + i;
}
printf("%d",sum);
}
如果我们想要执行上面的一个程序,首先我们需要把该程序放到内存中,然后给PC寄存器设置成存放该程序的内存首地址,比如把PC设置成50,CPU通过地址总线找到地址为50的内存,取出第一条指令并执行,并使PC加1指向下一条指令,CPU再取址执行。这个过程CPU是自动取址执行的。
从上面的程序可以知道,如果想让CPU工作起来,只需要给PC寄存器设置一个初值,就可以让CPU自动工作了。
什么是并发
我们来分别运行一下下面两个程序
//程序1
void main(){
int i , sum;
for(i = ; i < ; i++){
sum = sum + i;
}
sum = sum + ; }
//运行时间为:0.324s
//程序2
void main(){
int i , sum;
for(i = ; i < ; i++){
sum = sum + i;
}
//sum = sum + 1;
printf("%d",sum);
}
//运行时间为:0.413s
实际上第二个程序是用一个IO操作指令代替了一条运算指令。上述结果表明执行一条运算指令的时间和执行一条IO指令的时间之比为1:105,IO操作比计算操作慢非常多,一般来说是好几个数量级。在进行IO操作的时候CPU是不工作的,如果让一个程序执行完后再去处理另一个程序,势必会造成CPU的利用率变低。所以为了CPU的利用率,在多道程序之间来回切换着使用CPU使CPU的利用率有效提高是非常重要的。
我们称一个CPU交替执行多个程序为:并发。
进程概念的引入
我们知道要提高CPU的利用率,可以让CPU并发的执行多道程序,那么如何做到并发呢?
需要把程序执行的地址切换到另外一个程序的首地址,然后CPU自动的取址、执行。通过PC寄存器(指示指令在存储器中的存放位置,也就是地址信息,在汇编中用寄存器IP表示PC)进行地址的切换。实际上仅仅切换PC是不够的,还需要还原该程序之前执行的信息,所以每个程序有了一个存放信息的结构:PCB。进程控制块(PCB)相当于一个结构体,包含进程状态程序计数器、CPU寄存器、CPU调度信息、内存管理信息、计数信息、IO状态等信息。
为了与静态程序相区分,我们称运行中的程序为进程。与静态程序相比,进程保存着用于控制和管理进程的所有信息,以便当程序再次执行的时候能够恢复到上次执行的状态进行执行。
多进程视图
我们知道操作系统的核心功能就是管理计算机硬件资源,由如何更好的利用CPU资源引出了对CPU的管理(操作系统对CPU的切换、调度和控制)。由对CPU的管理以便更好的利用CPU资源引出了多进程视图(多个进程在CPU上交替执行的样子)。
操作系统管理CPU的直观想法的更多相关文章
- 操作系统之CPU管理的直观想法
计算机:是工具,帮助解决实际问题 操作系统,是为了方便使用硬件 计算机模型: 图灵机,模拟人类计算 起初的图灵机就像一个只会做一道菜的厨师 通用图灵机,核心是设置控制器动作(修改控制器),把逻辑读入控 ...
- CPU被夺走的三种状态 执行时间久了 IO操作让cpu等待 被优先级高的抢占
CPU被夺走的三种状态 执行时间久了 IO操作让cpu等待 被优先级高的抢占
- 操作系统-CPU管理的直观想法
1. 管理CPU,先要使用CPU 管理CPU的最直观方法 2. 提出问题 有IO指令执行的特别慢,当cpu执行计算指令很快,遇到IO指令cpu进行等待,利用率不高. 使用多道程序.交替执行,这样cpu ...
- 关于CPU的一些操作(CPU设置超频)
常见的几种CPU模式: .ondemand:系统默认的超频模式,按需调节,内核提供的功能,不是很强大,但有效实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率.以这种模式运行不会因 ...
- 操作系统学习笔记4 | CPU管理 && 多进程图像
操作系统的核心功能就是管理计算机硬件,而CPU就是计算机中最核心的硬件.而通过学习笔记3的简史回顾,操作系统通过多进程图像实现对CPU的管理.所以多进程图像是操作系统的核心图像. 参考资料: 课程:哈 ...
- 操作系统--进程管理1--单个CPU情况
1.进程概念 进程:一个正在执行的程序:操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态.而程序只是一段代码,是一个静态的概念 无法准确描述程序执行时候发生的一切.程序代码被加载进内存后就以进 ...
- 系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
前言 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题.当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警. 本文主要针对系统运 ...
- 4.计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动
计算机的启动
- 一次线上redis实例cpu占用率过高问题优化(转)
前情提要: 最近接了大数据项目的postgresql运维,刚接过来他们的报表系统就出现高峰期访问不了的问题,报表涉及实时数据和离线数据,离线读pg,实时读redis.然后自然而然就把redis也挪到我 ...
随机推荐
- 四、命令行模式和Node交互模式
请注意区分命令行模式和Node交互模式. 看到类似C:\>是在Windows提供的命令行模式: 在命令行模式下,可以执行node进入Node交互式环境,也可以执行node hello.js运行一 ...
- 转:Linux下同时启动两个Tomcat进行设置
转: Linux下同时启动两个Tomcat进行设置 解压tar.gz:tar -zxvf apache-tomcat-6.0.41.tar.gz 至相应的路径下,可解压至两个不同的路径或者相同的路径下 ...
- 文件参数化-utp框架之根据yaml文件自动生成python文件+utp运行用例
根据yaml文件自动生成python文件 utp框架: bin目录:存放执行文件(run.py) cases目录:存放生成的用例的python文件(该目录下的文件为根据data目录下的测试用例生成的p ...
- 【转】C#中的combobox里DropDownStyle
源地址:https://blog.csdn.net/cf643487053/article/details/54016822 C#中的combobox控件里DropDownStyle有三种选项 Sim ...
- Ntrip协议使用流程及服务器实现架构
Ntrip协议 在RTK接收机中,有多种方式获取到差分数据:电台.挂外串口.网络等.其中网络方式适合在有网络基准站的地区,省掉携带多一台RTK接收机来完成工作. CORS是网络基准站,通过网络收发GP ...
- 数据结构54:平衡二叉树(AVL树)
上一节介绍如何使用二叉排序树实现动态查找表,本节介绍另外一种实现方式——平衡二叉树. 平衡二叉树,又称为 AVL 树.实际上就是遵循以下两个特点的二叉树: 每棵子树中的左子树和右子树的深度差不能超过 ...
- 关于VisualStudio性能分析数据中的独占样本数和非独占样本数的意义
VisualStudio中自带有Profile工具进行性能性能分析,其中用得比较多的数据是函数调用时间,它主要有独占样本数和非独占样本数两个指标,关于这两个指标代表的意义,MSDN的解释比较文艺: 非 ...
- THU 上机 最小邮票数 暴力枚举
链接:https://www.nowcoder.com/questionTerminal/83800ae3292b4256b7349ded5f178dd1?toCommentId=2533792来源: ...
- 25.Remove Nth Node From End of List(删除链表的倒数第n个节点)
Level: Medium 题目描述: Given a linked list, remove the n-th node from the end of list and return its ...
- HTML 培训教程
HTML培训教程 1. HTML概述 1.1. 什么是 HTML 文件? n ...