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

简介: 1.冯诺依曼体系结构:1.1体系概述理清:我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

1.冯诺依曼体系结构:

1.1体系概述理清:

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

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

  • 上述部分的常见硬件:

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

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

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

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

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

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

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

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

1.2内存的重要性:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.操作系统:

2.1操作系统的概念:

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

内核(进程管理,内存管理,文件管理,驱动管理)

其他程序(例如函数库,shell程序等等)

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

2.2设计OS的目的和定位

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

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

📚例子

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6EyX43qu-1683251638516)(C:\Users\小卢\AppData\Roaming\Typora\typora-user-images\image-20230416143409922.png)]假设我们的校长要在学校举办一个校级的编程笔试,校长先把辅导员小张叫过来,安排辅导员给我们学校学生开会和一些奖励制度,让辅导员去做,然后辅导员就给我(学生)来开会了


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

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

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

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

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

学生的数据:

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

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

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

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

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

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

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

  • 处理器(CPU)管理

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

  • 存储器(内存)管理

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

  • 文件管理

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

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

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

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

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

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

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

  • 命令接口

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

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

  • 脱机命令接口

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

  • 程序接口

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

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

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

📚例子

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

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

行长就是OS(操作系统)

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

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

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

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


相关文章
|
7天前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
|
16天前
|
监控 Shell Linux
探索Linux操作系统下的Shell编程之魅力
【8月更文挑战第4天】本文旨在通过一系列精心设计的示例和分析,揭示在Linux环境下进行Shell编程的独特之处及其强大功能。我们将从基础语法入手,逐步深入到脚本的编写与执行,最终通过实际代码案例展现Shell编程在日常系统管理和自动化任务中的应用价值。文章不仅适合初学者构建扎实的基础,同时也为有一定经验的开发者提供进阶技巧。
28 11
|
6天前
|
安全 Linux Windows
【Linux】Linux操作系统
【Linux】Linux操作系统
|
1月前
|
弹性计算 运维 自然语言处理
阿里云OS Copilot测评:重塑Linux运维与开发体验的智能革命
阿里云OS Copilot巧妙地将大语言模型的自然语言处理能力与操作系统团队的深厚经验相结合,支持自然语言问答、辅助命令执行等功能,为Linux用户带来了前所未有的智能运维与开发体验。
|
16天前
|
监控 Linux Shell
探索Linux操作系统下的进程管理
【8月更文挑战第4天】本文深入探讨了在Linux操作系统下进行进程管理的方法与技巧,通过实例分析展示了如何利用系统命令和脚本来监控、控制进程。文中不仅介绍了基础的进程查看、启动、终止操作,还详细解释了如何通过信号机制处理进程间的通信,以及如何编写自动化脚本以优化日常管理任务。文章旨在为系统管理员和开发人员提供实用的进程管理知识,帮助他们更高效地维护Linux系统。
|
1月前
|
存储 缓存 安全
【Linux】冯诺依曼体系结构与操作系统及其进程
【Linux】冯诺依曼体系结构与操作系统及其进程
132 1
|
19天前
|
监控 Linux Shell
深入理解Linux操作系统的进程管理
【7月更文挑战第31天】在Linux操作系统中,进程管理是核心功能之一,它负责创建、调度和终止进程。本文将探讨Linux如何通过fork()系统调用实现进程创建,展示如何使用ps命令查看进程信息,并解释如何在shell脚本中处理后台进程。最后,我们将讨论进程优先级的概念及其在nice命令中的应用。
16 0
|
20天前
|
缓存 监控 安全
探索Linux操作系统的内存管理机制
在计算机科学的世界中,内存管理是操作系统核心功能之一,它直接影响系统的性能和稳定性。Linux操作系统以其高效的内存管理而闻名,其设计哲学和技术实现为开发者和系统管理员提供了极大的灵活性和控制力。本文将深入探讨Linux内存管理的基本原理、关键技术以及面临的挑战,同时通过实际案例分析,展示如何优化内存使用,提升系统性能。
|
1月前
|
弹性计算 运维 自然语言处理
属于Basis运维的、在Linux平台上运行的大模型测评 OS Copilot智能助手测评
OS Copilot是阿里云为Linux打造的智能操作系统助手,基于大模型,助用户进行自然语言问答、命令执行和系统运维。它简化了Linux操作,适合新手和运维人员。测评者作为IT架构师,发现OS Copilot使非技术背景人员也能操作Linux,接入命令可在官方文档找到。测试显示,通过"co"命令可与OS Copilot交互,实现生产任务融合。该工具提高了工作效率,尤其是对于遗忘具体命令时,非常有帮助。文档清晰,适合生产环境使用,值得进一步探索。
54 0
|
1月前
|
安全 Linux 网络安全
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上
部署07--远程连接Linux系统,利用FinalShell可以远程连接到我们的操作系统上