································································

一、冯诺依曼体系

在这里插入图片描述

包括:
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执行完成任务
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐