【Linux】冯诺依曼体系和操作系统:

服务器 0

在这里插入图片描述

1.冯诺依曼体系结构:

1.1体系概述理清:

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

  • 🔥我们将冯诺依曼体系结构分为输入设备、输出设备、存储器和CPU

image-20230415103207014

  • 上述部分的常见硬件:

输入设备:键盘、话筒、摄像头、网卡、磁盘

输出设备:显示器、磁盘、网卡、声卡音响

外设一般都会比较慢一些,以磁盘为例

相对于内存,磁盘较慢,但是价格并不贵,三五百块钱就可以买到一块512G的硬盘,贵一点的话可能像磁盘,价格在900 ~ 1200不等,但是它们都有一个优点就是:存储容量大、可以长久保存数据不丢失!

内存还不是最快的,CPU最快

❓那我们为什么还需要内存呢?

因为外设较慢,CPU很快,但是整体的效率以外设的速度为准,这样就不太合适,为了解决这个问题,就出现内存。

💡内存的存在就可以大大缓解外设的效率低的问题,内存的存在可以对数据进行预加载,CPU以后在进行数据计算的时候,根本不需要访问外设,只要访问内存就可以了

1.2内存的重要性:

我们是否可以不要寄存器,让CPU直接和外设链接呢?

image-20230504154714424

对于像【磁盘】这种外围设备来说虽然它有着大容量的内存,但是读写速度却非常慢,机械硬盘读写速度平均60---80M每秒;固态硬盘不同品牌型号之间,平均大约在150---300M每秒

但是对CPU来说,也就我们上面说到过的运算器 + 控制器,它的运算速度读者可以自行去网上看看,那比磁盘不知道要快出多少倍了。那一个写入很慢,一个读入很快,真的可以兼容吗?

大家应该都听过木桶效益,木桶效益的时候,能乘多少水取决于最短的木板,而不是最长的木板,磁盘内存和CPU同样的道理

木桶效应 的图像结果

我们的外设很慢,而CPU非常快,这样就会照成我们计算机的运行速度由外设来决定,CPU的高速运转将没有优势

此时就还是需要使用到冯诺依曼体系结构中的【存储器】,也就是我们俗称的内存

,因为对于内存这个东西,它虽然比CPU来得慢一些,但是却比磁盘快多了,它们三者的速度大概可以像下面这样对比

CPU —— 纳秒(ns) 内存 —— 微秒(us) 外设 —— 毫秒(ms)

我们可以知道CPU和外设差距是非常大的,因此我们需要内存这个东西来进行过渡

因为有了内存的存在,虽然它掉电易失,但还是局部短时间的存储,因此外设可以将数据暂存到内存中,此时,CPU后面想要去处理这些数据的话直接去内存中拿就可以了,无需再与外设进行交互造成不兼容的问题

  • 🔥在数据层面,一般CPU不和外设沟通,直接和内存打交道

❓可执行程序是不是一个文件?为什么我们的程序,必须先被加载到内存中的呢?

💡可执行程序是一个文件。我们的代码编译后,有CPU执行,CPU会向内存索要数据,冯诺依曼体系结构决定的

❓在硬件层面,单机和跨主机之间,数据流是然后流向的?

💡以播放网易云音乐为例,把软件加载到内存,然后CPU执行这个,当我点击播放,在将网络从输入设备加载到内存,然后做一堆计算,然后通过输出设备播放

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

❓请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发一个消息(在吗?),到他的到消息之后的数据流动过程。如果是在qq上发送文件呢

image-20230504165327078

💡==在吗?==通过我的电脑的输入设备加载到内存后,由CPU计算,再反馈给输出设备(网卡),通过网络传递给朋友的电脑的网卡(输入设备),以同样的方式,==在吗?==被加载到内存由CPU计算,传给显示器,出现朋友的QQ聊天界面上,文件也是同样的道理

2.操作系统:

2.1操作系统的概念:

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

内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库,shell程序等等)

操作系统是一款进行软硬件资源管理的软件

image-20230505084212431

2.2设计OS的目的和定位

先看这一张思维导图,我们再详细展开讲解。

image-20230505084630239

我们先用一个简单的例子来理解

📚例子

以下谁是管理者?校长,管理者做的事情是决策

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6EyX43qu-1683251638516)(C:/Users/小卢/AppData/Roaming/Typora/typora-user-images/image-20230416143409922.png)]

假设我们的校长要在学校举办一个校级的编程笔试,校长先把辅导员小张叫过来,安排辅导员给我们学校学生开会和一些奖励制度,让辅导员去做,然后辅导员就给我(学生)来开会了

就比如我们上大学,修了多少学分,挂了多少学分,校长就可以通过教务系统直接看到,校长不跟你接触,但是辅导员天天跟你接触,辅导员通过让你们填表得到信息,假设校长是一个程序员,校长想要学生的班级姓名电话成绩紧急联系人,讲这些抽象成一个类,

image-20230416144045580

管理者和被管理者,其实是不需要直接沟通的!

❓管理者和被管理者都没有直接沟通,他如何管理我呢?

💡管理的本质:对被管理对象的数据做管理!!!

管理者是如何拿到被管理者的数据呢?

学生的数据:

struct student{	string Name;	int Class;	int phone[12];	int score;	int parenter_phone[12];	struct student* next;};

管理的本质:先描述,再组织

我们可以把学生理解为硬件(软件也可以),校长就是操作系统,辅导员就为硬件驱动

image-20230416153040789

❓操作系统为什么要对软硬件资源进行管理?

💡操作系统对下进行管理好软硬件资源(手段),对上给用户提供良好(安全、稳定、高效、功能丰富等)的执行环境

  • 🔥操作系统作为计算机系统资源的管理者

操作系统是一款进行软硬件资源管理的软件

image-20230505092510417

  • 处理器(CPU)管理

在多道程序环境下,cpu的分配和运行都以进程(或线程)为基本单位,因此对cpu的管理可理解为对进程的管理。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。附上一张图理解对进程的管理。

image-20230505093149685

  • 存储器(内存)管理

为多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。

image-20230505093434448

  • 文件管理

计算机中所有的信息都是以文件的形式存在的,操作系统中负责文件的管理的部分称为文件系统,文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护

image-20230505093934821

  • 设备管理

设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓存管理、设备分配、设备处理和虚拟设备等功能。

image-20230505094120857

  • 🔥操作系统作为用户与计算机硬件系统之间的接口

为了让用户方便、快捷、可靠的操作计算机硬件并执行自己的程序,操作系统提供了用户接口

操作系统提供的接口分为两类:命令接口和程序接口

命令接口:用户可以直接使用的,利用这些操作命令来组织和控制作业的执行

程序接口:用户通过程序间接使用的,编程人员可以使用它们来请求操作系统服务

image-20230505094627448

  • 命令接口

命令接口分为两类:联机命令接口和脱机命令接口,用户可以直接调用

联机命令接口:又称交互式命令接口,适用于分时或实时系统的接口,由一组键盘操作命令组成。用户输入一条指令,操作系统就执行一条指令;

  • 脱机命令接口

又称批处理接口,使用于批处理系统,由一组作业控制命令组成。用户输入一堆指令,操作系统运行一堆指令。在操作系统运行这些命令时用户不可干预。

  • 程序接口

程序接口:由一组系统调用(也称广义指令)组成

用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,只能通过用户程序间接调用

如使用各种外部设备、申请分配和回收内存及其它各种要求

📚例子

就银行,银行有电脑、服务器、桌椅板凳、仓库、员工宿舍….

IT部门,后勤部门,保安,阿姨

image-20230416154434192

行长就是OS(操作系统)

就拿取款来说,你去取500块,银行行长会跟你说,你的500在金库里面,你进门右转就是金库,你进去后拿了你的500块就出来吗? 不可以根本不可能

操作系统给我们提供非常良好的服务,并不代表OS会想想我们,反而操作系统不相信任何人!!!

  • 🔥计算机软硬件体系结构:
    image-20230416155702410

  • 🔥计算机的体系的结构是层状的,一般不可以跳过某个层

image-20230418145410652
在这里插入图片描述

也许您对下面的内容还感兴趣: