理解冯.诺依曼体系结构(操作系统和进程)

在这里插入图片描述

一.冯诺依曼体系结构

在这里插入图片描述

  • 冯诺依曼体系结构特性:
    • 冯诺依曼体系结构中的存储器指的是内存——一种硬件级别的缓存空间(介于IO设备与CPU之间,只有数据存储和读写功能,并且具有较高的数据读写速度独立单元)(内存中存储二进制数据)
    • CPU和IO设备之间不能直接进行数据传输,CPU和IO设备之间的数据传输必须经过内存
    • 描述事物属性的数据运算指令(两者本质都是二进制数据)都会被加载到内存中
  • 冯诺依曼体系结构的优势:
    • CPU和IO设备的分离使得计算机的设计和使用变得十分灵活(成本也大幅度降低),无须再根据特定的IO设备和特定的运算指令来设计CPU周围的主板电路,运算指令相关描述型数据被统一加载到内存中形成一个个程序,使得同一个内存+CPU机构可以用于适配各种IO设备来实现各种功能
    • 同时,冯诺依曼体系结构可以充分地发挥CPU的计算性能

二.冯诺依曼体系结构与木桶效应

  • 冯诺依曼体系的精髓在于内存
  • 在冯诺依曼体系结构横空出世之前,在特化的CPU主板上,CPU需要直接从输入设备读取数据,对数据进行运算后需要直接向输出设备写入数据:在这里插入图片描述
  • 受限于设计成本,IO设备的数据读写速度很慢,然而CPU计算速度非常快,在某个数据计算项目中,CPU会经常在快速完成计算后会处于闲置状态,因此即便CPU十分强大,整个计算机体系的效率也会被IO设备的读写效率所限制,这就是体系结构中的木桶效应:
    • 在一个紧密联系的体系中,各个部分结构都可能面临的一个共同问题,即构成体系的各个部分结构往往是优劣不齐的,而劣势部分往往决定整个体系的水平:在这里插入图片描述
  • 内存的出现很好地解决了上述问题.冯诺依曼体系结构的计算机,一旦开始运行,IO设备(包括一些外存设备)就可以随时向内存中写入或读取二进制数据,形成一个个待执行的运算项目(程序),在某些时刻和特定的指令下,CPU向内存拿取数据执行运算,这种体系结构高效的原因在于:
    • 内存与IO设备进行数据交互的过程是时刻都可以进行的(只要计算机在运行),当CPU需要从内存中拿取数据执行运算时,内存中已经加载了很多的数据(即冯诺依曼体系充分利用了各运算操作之间的时间间隔来完成数据的加载)
    • 内存本身是专门为数据存储和读写设计的硬件单元(物理上与CPU关联紧密),与CPU的数据交换效率比较高.

三.操作系统与进程

操作系统

  • 冯诺依曼体系结构的计算机具有如下特点:
    • 一套内存+CPU结构可以用于适配各种IO设备(实现功能前只需将指令集和数据加载到内存中即可),因此一个计算机体系中可能会存在多种IO设备,此时就需要对这些IO设备进行管理(硬件管理)
    • 计算机运行时,内存中会加载进大量运算程序(数据和指令集(本质也是数据)),此时这些程序也需要被管理起来(软件管理)
  • 冯诺依曼体系计算机的复杂性催生出了操作系统,操作系统是专门进行硬件和软件管理的一系列特殊的数据和指令集,操作系统作为一个特殊的软件,在冯诺依曼体系计算机运行时第一个被加载到内存中。
  • 操作系统与计算机体系:在这里插入图片描述
    在这里插入图片描述
  • 操作系是用C语言实现的,它对硬软件资源进行管理之前要对各个硬件软件对象进行描述和组织(这是所有管理行为的前提),所谓描述就是定义描述被管理对象的结构体,再将描述被管理对象的结构体组织进各个数据结构中.
  • 操作系统对硬件的管理实质是管理其驱动程序,因此可以认为操作系统实质上管理的对象都是程序
  • 操作系统对计算机进行管理的本质是对由描述硬软件资源对象的结构体构成的数据结构进行增删查改的操作
    在这里插入图片描述
  • PCB --> process control block(进程控制块)

Linux系统中的进程

  • 当一个程序(二进制数据)被加载进Linux系统中后,Linux系统会自动创建描述该程序的task_struct结构体(进程控制块)并将其组织进各种内核数据结构中;
    • 内存中的task_struct结构体和==其对应的程序(二进制数据)==就构成了Linux系统中的一个进程(二者缺一不可)
  • Linux中的进程控制块在这里插入图片描述
  • Linux进程控制块中的内容在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_73470348/article/details/131681726