Linux-1-冯诺依曼体系

前言:

Vue框架:Vue驾校-从项目学Vue-1
算法系列博客友链:神机百炼

冯诺伊曼体系:

组成:

  • 输入设备 + 输出设备

  • 中央处理器:

    1. 运算器:算数运算 + 逻辑运算
    2. 控制器:么时候读入数据 & 什么时候输出数据
  • 存储器:

    1. 具有一定数据存储能力
    2. 通过预存数据来充当高低速设备之间的缓冲设备,如printf()时的无缓冲 / 行缓冲 / 全缓冲
    3. 特指内存,外存属于输入输出设备
  • CPU在数据传输上不直接和外设进行交互,而是通过内存中介

    但是在信号传输上直接和外设交互,如中断信号

概念:

input:

  • 输入input:数据从硬盘/键盘/网卡/话筒/摄像头传递到内存中

output:

  • 输出output:数据从内存传递到硬盘/显示器/音响传递

预存数据:

  • 预存数据:执行当前代码时,大概率执行的是下一行代码,操作系统提前将下一行代码所用的数据装载到内存中

  • 为什么程序运行之前要先加载到内存中?因为CPU只能直接和内存打交道 & 再深层是为了快

    所以就算是.exe文件,也需要先从硬盘加载到内存中,再运行

    也就是说平时打开的应用 占用的是 内存

总线:

  • 所有硬件之间依靠总线连接,IO总线&系统总线(数据 / 地址 / 控制)

实例说明:

发送消息中的硬件过程:

  • 实例1:从QQ聊天窗口给同学发送一条消息的过程:
    消息传输过程

程序运行中的硬件过程:

  • 实例2:分析一段简单的程序:

    int a = 0;
    scanf("%d", &a);
    a += 10;
    printf("%d\n", a);
    
    1. 运行时,exe程序作为一个进程占据部分内存空间
    2. 在内存中开辟一块空间供给变量a
    3. 从键盘输入到a对应内存一个值
    4. a的值从内存放到CPU的运算器中,为其+10,结束后放回内存a
    5. 遇到行刷新,a的值从内存传递到显示器上

发送文件中的硬件过程:

  • 实例3:发送文件:文件先从硬盘拷贝到内存
    文件传输过程

信息传输中的硬件过程:

  • 实例4:键盘打字完成/网卡接收数据完成

    实例1 2 3都主要运用CPU的运算器部分实现数据传输

    计算机内部不只有数据传输,还有信号传输

    当键盘输入完成/网卡接收数据完成后,会向CPU的控制器发送中断信号

计算机层次:

硬件层:

  1. 输入设备 + 输出设备(硬盘/网卡/键盘/鼠标/显示器/话筒/摄像头)

  2. 缓冲内存

  3. 中央处理器:运算器+控制器

驱动层:

  1. 为操作系统提供使用硬件的接口

    不同硬件的驱动不同,同一硬件不同产品的驱动也不同

  2. 驱动存在的意义就是为操作系统和硬件解耦合

操作系统层/OS层:

  1. 文件管理:linux下一切皆文件,包含硬件的驱动
  2. 内存管理:为进程分配内存
  3. 硬件管理:如显示器缓冲区的无/行/全
  4. 驱动管理:和驱动层之间的接口
  5. 进程管理:运行中的程序都存放在内存中,独占一个进程

用户层:

  1. 图形化管理界面gui + 命令行管理command line

  2. 库:很多系统调用接口(函数)的集成,和OS层间的接口

    ​ 由语言开发者提供,防止用户直接接触操作系统

    ​ 常见的库:c语言的libc & c++的libc++

图解四层关系:

四层关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

starnight531

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值