计算机如何工作
进程执行一会儿后,可能失去CPU,一段时间后继续使用进程会回到CPU上执行,就必须延续之前的状态而不能从头开始,进程在cpu运行过程中,cpu的各种寄存器就表示当前进程运行的"中间状态",目前常见操作系统:Windows系列,Unix系列,Linux系列(后端开发,服务器程序使用的主要系统),Mac OS系列,鸿蒙系列等,系统之间彼此不兼容。cpu的寄存器:cpu进行存储数据的位置,访问速度快于内
································································
一、冯诺依曼体系

包括:
1.CPU中央处理器:进行各种算术运算,逻辑判断(代码内容都是CPU运行)
cpu的频率:
基频/默频:3.9GHz,相当于一秒钟能算39亿次
睿频/加速频率
2.存储器:内存和外存(主要为硬盘)
区别
- 内存读写速度快,硬盘慢
- 内存存储空间比较小,硬盘大
- 内存成本高于硬盘
- 内存存储数据不持久,一断电就没了,硬盘存储数据持久,断电依然不会丢失
- 存储空间:硬盘>>内存>>CPU 数据访问速度:CPU>>内存>>硬盘
3.输入设备:用户给计算机发号指令的设备,例如键盘鼠标
4.输出设备:计算机给用户汇报结果的设备,例如显示器
二、CPU执行指令的过程
一条指令=4位操作码(opcode)+4位操作数
操作码相当于函数名,操作数相当于函数参数
简化版本指令表:
| 指令(instruction) | 功能说明 | 4位 opcode | 操作的地址或者寄存器 |
|---|---|---|---|
| LOAD_A | 从 RAM(内存) 的指定地址,将数据加载到 A 寄存器 | 0010 | 4位 RAM 地址 |
| LOAD_B | 从 RAM 的指定地址,将数据加载到 B 寄存器 | 0001 | 4位 RAM 地址 |
| STORE_A | 将数据从 A 寄存器写入 RAM 的指定地址 | 0100 | 4位 RAM 地址 |
| ADD | 计算两个指定寄存器的数据的和,并将结果放入第二个寄存器 | 1000 | 2位的寄存器 ID + 2位的寄存器 ID |
cpu的寄存器:cpu进行存储数据的位置,访问速度快于内存,存储空间更小更贵,主要是cpu进行执行指令各种运算时,存储临时数据,起到辅助作用。
流程:
读取指令->解析指令(根据指令表理解指令)->执行指令
理解一段指令(程序)如何执行:

- 从0号地址开始执行:
1.读取指令:00101110
2.解析指令:opcode:0010(从 RAM(内存) 的指定地址,将数据加载到 A 寄存器)
操作数:1110
即把1110(14)地址上的数据读取到寄存器A中
3.执行指令
CPU
A寄存器:00000011 - 默认顺序执行下一条
1.读取指令(读取1号地址):00011111
2.解析指令:opcode:0001 (从 RAM 的指定地址,将数据加载到 B 寄存器)
操作数:1111
即把1111(15)地址上的数据读取到寄存器A中
3.执行指令
CPU
A寄存器:00000011 (13)
B寄存器:00001110 (14) - 默认顺序执行下一条
1.读取指令(读取2号地址):10000100
2.解析指令:opcode:1000 (计算两个指定寄存器的数据的和,并将结果放入第二个寄存器)
操作数:0100两个寄存器编号(01:B)(00:A)
即把A,B两个寄存器数据相加,放到A中
3.执行指令
CPU
A寄存器:00010001 (17)
B寄存器:00001110 (14) - 默认顺序执行下一条
1.读取指令(读取3号地址):01001101
2.解析指令:opcode:0100 ( 将数据从 A 寄存器写入 RAM 的指定地址)
操作数:1101
即把将数据从 A 寄存器写入内存地址1101(13)
3.执行指令
CPU
A寄存器:00010001 (17)
B寄存器:00001110 (14)
地址:13数据:00010001 (17)
-默认顺序执行下一条
1.读取指令(读取4号地址):00000000
程序结束
三、操作系统
1.含义:
一组做计算机资源管理的软件统称。计算机中最重要的“软件”,目前常见操作系统:Windows系列,Unix系列,Linux系列(后端开发,服务器程序使用的主要系统),Mac OS系列,鸿蒙系列等,系统之间彼此不兼容。
2.作用:
1.管理各种硬件设备(通过驱动程序)
2.给各种应用程序,提供一个稳定的运行环境
应用程序工作中互不打扰,即使某个程序出现bug,不影响其他程序
3.主要概念
进程:即一个运行起来的程序,现代计算机可以跑百多个进程很常见,那么就需要管理
如何管理:
1.描述一个进程是什么样
使用结构体,描述进程的核心属性,例如进程控制块(PCB),包含进程中所有关键信息,是进程存在唯一标志
2.把多个进程组织起来
例如,Linux这样系统,使用链表这样的形式,把多个PCB串到一起,便于增删查改
核心操作:
1)创建进程:初始化新的PCB结构体,加入链表中
2)销毁进程:在链表中找到目标进程中的PCB,并将其从链表删除释放资源
3)查看进程列表:遍历链表,提取每个PCB的关键信息(如ID、状态)并展示
PCB
1.pid(进程id)身份标识符(同一时段不同进程不同)
2.内存指针(一组):通过指针进程就找到要执行的指令在哪里,依赖的数据在哪里
3.文件描述符表:进程很多时候要从硬盘中读写数据,而硬盘中的数据是以文件形式组织的,进程读写文件就要打开文件,把文件信息保存到文件描述符表中,表中每个项代表一个对应打开的文件,操作系统会把许多资源抽象成文件,也不一定是硬盘资源
例如:双击一个exe文件(包含要执行的指令和需要的数据),运行一个程序创建一个进程,把exe的指令和数据读取出来存到内存中(CPU执行操作系统的指令完成),**后序进程运行中CPU取出并执行内存中的一条条指令.
一个cpu同一时刻只能执行一个进程,但是为什么我们看来能同时用多个软件?
多任务操作系统(cpu)只有一个核心也能运行多个进程
- 并发执行:进行分时复用,将一个单位时间分成多份运行多个进程,在人类感觉看来是同时执行
- 并行执行:把多个CPU核心上,同时执行多个进程这样方式
两者统称为并发执行,因为并发执行,计算机需要进行进程快速切换,即进程调度
4.进程调度
1)进程状态
两个典型:
- 就绪状态(随叫随到),进程随时可以在CPU执行
- 堵塞状态:进程不适合在CPU执行
2 )进程优先级
优先级高占用cpu多,比如QQ微信可以延缓时间接受信息
3)进程上下文
进程执行一会儿后,可能失去CPU,一段时间后继续使用进程会回到CPU上执行,就必须延续之前的状态而不能从头开始,进程在cpu运行过程中,cpu的各种寄存器就表示当前进程运行的"中间状态"
保存上文:把cpu寄存器的值,保存到内存中(PCB对应属性)
恢复下文:把PCB中保存的属性,填回到cpu的寄存器
4)进程记账信息
具有统计功能,统计每个进程在CPU上运行了多久,如果发现某个进程很久没有吃到CPU,将会适当给这个进程倾斜一些资源.
(进程,PCB,操作系统,CPU)关系总结:
- 每个进程对应一个PCB,所有PCB通过链表(其中一种连接方式)连接在一起.
- 进程是操作系统中,资源分配的基本单位
- 操作系统通过操作链表来管理PCB,进而实现对所有进程的创建,调度,销毁.
- 进程相当于任务;PCB是档案;链表是档案柜;操作系统是档案管理员,创建维护进程的PCB,把PCB放入链表,进行增删查改,从链表中挑选合适的PCB决定哪个进程获取CPU资源,保证每个任务安全,有序运行;CPU就是干活的工人,操作系统把任务交给CPU执行完成任务
更多推荐

所有评论(0)