操作系统之CPU管理的直观想法
计算机:是工具,帮助解决实际问题
操作系统,是为了方便使用硬件
计算机模型: 图灵机,模拟人类计算 起初的图灵机就像一个只会做一道菜的厨师
通用图灵机,核心是设置控制器动作(修改控制器),把逻辑读入控制器,把程序载进来,解释执行程序
程序→内存→控制器解释执行→输出结果
用一个IP(PC)指针指向它,取指执行
BIOS:基本输入输出系统
上机后先检查RAM,键盘,显示器,软盘和硬盘, CS:(段寄存器):0XFFFF, 左移四位+IP, IP:(偏移寄存器)0X0000
计算机开机时,从0扇道0扇区(又叫引导扇区),读入0x7c00处 ,一个扇区512个字节
批处理:做完一件事再去做下一件,中间可能会停下来等待
多道程序:多个程序同时出现在计算机中,交替向前进(从这就 开始逐渐引出进程的概念)
分时系统:使用认数增加,一个人可能不停止命令,独占资源,其余人就没办法使用,使用效果差,在服务器上很常见,从而有了分时系统,一个人使用一段时间,就切给另一个人,以前是实在不行再切出去
操作系统要让多个程序合理推进,这就是进程管理
多程序图谱:包括CPU和内存
文件操作视图:方便用户使用,包括:IO设备,磁盘,文件
操作系统管理CPU,引出多进程,管理CPU,就要先使用CPU
CPU工作原理:程序存放在内存中,设置一个地址(假设为50),CPU发出取指指令,先前假设存放在内存中50,内存中50这条指令传回CPU,CPU得到指令,解释执行,CPU会自动取出下一条,继续解释执行
CPU只要给PC设置一个初始值,就会不断地自动取指执行
管理CPU最直观的方法,设好PC的初值,把PC 的初值设为程序的开始地址
IO指令非常慢,要移动磁臂,是机械操作,计算指令快,都是电路,这就引出了CPU的利用率,若每隔几条计算指令就有一条IO指令,CPU就要等待(不可以跳过,可能后续指令要用IO输入的数据),这样CPU效率就不高
通常的办法是设置PC,进行切换,先切出去,过会儿再切回来,但是要记录信息,程序执行到哪里,执行的样子,这些都放在PCB中,如同在看书时,有人敲门,起身开完门后,回来看书不可能再从头开始,脑中肯定也还有印象
这就是并发:同时出发,交替执行。多个程序都放在内存中,一个CPU上交替执行多个程序
操作系统之CPU管理的直观想法的更多相关文章
- 操作系统-CPU管理的直观想法
1. 管理CPU,先要使用CPU 管理CPU的最直观方法 2. 提出问题 有IO指令执行的特别慢,当cpu执行计算指令很快,遇到IO指令cpu进行等待,利用率不高. 使用多道程序.交替执行,这样cpu ...
- 操作系统学习笔记4 | CPU管理 && 多进程图像
操作系统的核心功能就是管理计算机硬件,而CPU就是计算机中最核心的硬件.而通过学习笔记3的简史回顾,操作系统通过多进程图像实现对CPU的管理.所以多进程图像是操作系统的核心图像. 参考资料: 课程:哈 ...
- 系统内存和CPU管理、监控
本博文的主要内容有 .系统内存管理.监控:vmstat和free -mt .系统CPU管理.监控:sar -u.mpstat.uptime linux系统内存和CPU是在系统运行的过程中不断消耗的资源 ...
- Thread.Sleep(0)的意义 操作系统中CPU的竞争策略
在线程的学习中遇到的 不太明白就搜了一下 有一篇觉得写得很好的分享一下 转载:http://www.360doc.com/content/12/1220/07/1054746_255212714.s ...
- 操作系统切换CPU的方式
操作系统切换CPU的方式 1 IO等待切换. 2 时间轮询切换,也就是如果没有IO等待的情况下,就会有时间轮询切换,不让CPU一直处理一个任务 CPU的处理速度是纳秒级别的,所有我们可以同时听歌, ...
- 批量ssh登录,获取操作系统、CPU、内存、硬盘信息<shell>
说明:该脚本读取machine.txt文件中的机器名,然后批量ssh登录,获取每台机器的操作系统,CPU,内存,硬盘等信息. 使用方法:将文件保存为sh,chmod +x filename 为该sh文 ...
- 操作系统管理CPU的直观想法
CPU的工作原理 要想管理CPU,就要先学会如何使用CPU.我们先从一个程序的执行来看看CPU是如何工作的. void main(){ int i , sum; ; i < ; i++){ su ...
- 操作系统 | 结合 CPU 理解一行 Java 代码是怎么执行的
根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示. 我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单 ...
- 操作系统之IO管理
IO系统结构 设备的分类 按数据组织分 块设备: 信息的存取总是以数据块为单位. 它属于有结构设备,如磁盘等. 磁盘设备的基本特征是传输速率较高,以及可寻址,即对它可随机地读/写任一块. 字符设备: ...
随机推荐
- C++ 使用VS2010创建MFC ActiveX工程项目
1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行.这个容器包括WEB网页,应用程序窗体等... Activ ...
- C++学习一explicit
explicit关键字 C++中的关键字explicit主要是用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换.类构造函数默认情况下声明为隐式的即i ...
- get请求中url传参中文乱码问题--集锦
一:get请求url中带有中文参数,有三种方式进行处理防止中文乱码 1.如果使用tomcat作为服务器,那么修改tomcat配置文件conf/server.xml中,在 <Connector ...
- Retrofit 打印log时,中文会显示类似%E8%BE%BD字符
https://blog.csdn.net/honghailiang888/article/details/54289632?utm_source=blogxgwz6 参照Android Retrof ...
- 12.13java过关测试
库存物资管理系统: 1.首先建两个数据表,一个pass用于商品的增删改查,一个passd记录商品的出库与入库信息: 2.建两个实体类,用来传递商品与单据的信息 3.在添加与删除时,填写入库或者出库单据 ...
- Mybatis返回List<Map<K,V>>
最终映射的字段名 会被作为 hashMap 的 key , <!-- TODO 测试返回 HashMap--> <resultMap id="testResultMap&q ...
- Spring启动异常: cvc-elt.1: Cannot find the declaration of element 'beans'(转)
Spring启动异常: cvc-elt.1: Cannot find the declaration of element 'beans' 2008-09-07 22:41 今天把在线聊天室代码改了下 ...
- vue.js 三种方式安装(转)
https://blog.csdn.net/m0_37479246/article/details/78836686
- openstack(Pike 版)集群部署(七)--- Cinder 部署
一.介绍 参照官网部署:https://docs.openstack.org/cinder/pike/install/index-rdo.html 继续上一博客进行部署:http://www.cnbl ...
- 进程实时监控pidstat命令详解
pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存.设备IO.任务切换.线程等.pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行 ...