0
点赞
收藏
分享

微信扫一扫

冯诺依曼体系结构及操作系统的认识

kmoon_b426 2022-12-07 阅读 134
linux

目录

1.前言

2.冯诺依曼体系结构

2.1.结构构成

在当今所有的计算机中,比如我们常见的:笔记本、电脑,或是我们不常见的:服务器,大部分都遵循着冯诺依曼体系结构,其具体构成如下:
在这里插入图片描述

截止至目前,我们所认识的计算机是由一个个硬件组件组成的

2.2.硬件分析

2.2.1存储器的作用

为何需要内存的存在?

设备速度
CPU(中央处理器)最快
存储器(内存)次快
外设(输入输出设备)最慢

📈内存是计算机的组成部件之一,所以它无法像磁盘、U盘这些外存一样,存放几百G甚至几个T的数据。但是由于内存对于数据的读取与写入的速度较快,所以可以将内存理解为一块缓存空间,在程序需要运行时载入内存后再进行运算。所以内存是外存与CPU进行沟通的桥梁。
但是我们需要注意的是:内存是带电存储,存在断电易失的问题(好比码字码一半,还没点击保存就关机了),而外存就能够永久存储

2.2.2CPU

我们知道,CPU是一台计算机的核心,因为它具有很强的运算能力。但是其实CPU是很的,它只能被动地接受别人的指令和数据,然后听从命令去执行指令,计算数据🧮🧮

2.3.实际分析

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流的理解上

请解释,从你登录上qq打开窗口,开始给好友发消息,到好友收到到消息数据流动过程?如果发送的是文件呢?

3.操作系统

3.1.是什么

概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:

设计OS的目的

定位

3.2.为什么

操作系统对于一台计算机来说是必不可少缺一不可的🎯

假如没有操作系统的管理,一台计算机也只是一堆废铁,各种硬件不会自己运转自己相互配合运作的,计算机可能连开机都无法实现。如果没有操作系统,各个应用软件将无法自主去调用计算机硬件的各种资源,程序无法自己跑去内存中缓存,CPU也无法读取数据进行运算执行…

总而言之,操作系统对于计算机来说,是游走于硬件和软件直接的一位管理者,负责管理计算机的正常运行。所以在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件。

3.3.操作系统怎么进行管理

3.3.1管理的本质

操作系统所谓的管理,即是(对下)合理地管理软硬件资源(手段),(对上)为用户提供良好的、稳定的、安全的…执行环境(目的)

那么我们先来了解一下操作系统对底层硬件的管理结构

在这里插入图片描述

我们已知,操作系统是管理底层硬件的管理者,那么底层硬件就是被管理者,可操作系统和底层硬件的联系真的如图那么简单码?

通过以上例子的理解,或许我们应该对操作系统管理的体系再次更新

在这里插入图片描述

其实上面的例子还挺形象的不是嘛…
驱动程序驱动各类硬件运转 ------> 辅导员驱动学生学习...

3.3.2管理的方法

通过以上例子的理解,管理的方法即是:通过各种具体数据归类描述成各种对象类型,再进行组织管理
📌总结起来就是六个字:先描述,再组织

而我们操作系统对任何资源的管理都是遵循着那六个字的管理理念

  • 先描述:我们利用面向对象的思想,将要管理的对象描述成一种类型,该类包含对象的各种属性。由硬件的各种数据抽象出来的结构体:
struct dev
{
    //硬件信息
    int type;  //设备类型
    int status;//设备状态
    ...        //其他属性
    struct dev* next;//下一个设备的地址
}
  • 再组织:我们根据具体情况选择一种数据类型,将我们描述出来的管理对象组织起来,利用数据类型的各类便利接口,将数据管理转化为对对象的增删查改:
//伪代码
//创建一个链表
list<dev> dev_list;

struct dev disk_dev;//创建磁盘对象
dev_list.insert(disk_dev);//插入磁盘节点

struct dev keyboard_dev;//创建键盘对象
dev_list.insert(keyboard_dev);//插入键盘节点

dev_list.earse(disk_dev);//删除磁盘节点
...

完成了描述与组织两部分工作后,对于各类硬件的管理也更加的有条不紊和便捷,这便是数据结构的魅力。因此不论是什么软件什么系统…数据结构都是必不可少的利器之一,假如没有数据结构,很多工作将会十分麻烦与复杂。

总结

计算机管理硬件

3.4.系统调用

了解完操作系统如何管理硬件之后,那操作系统又是如何管理软件的呢?

操作系统向下管理底层硬件的调控,而上层有各类软件需要调用硬件资源、使用者的指令、需求…这些也需要操作系统来管理。那么难不成我们作为使用者或者某个软件需要调控计算机的资源时,我们可以直接进入内部进行调用吗?


  • 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
  • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

3.5.最终体系

在这里插入图片描述

了解完操作系统的管理体系后,再看看这句前文出现过的话,你是否能够更深刻地体会呢🌈

操作系统所谓的管理,即是(对下)合理地管理软硬件资源(手段),(对上)为用户提供良好的、稳定的、安全的…执行环境(目的)

举报

相关推荐

0 条评论