【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会想想我们,反而操作系统不相信任何人!!!

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

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


相关文章
|
11天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
34 1
|
13天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
13天前
|
搜索推荐 Linux
深入理解Linux操作系统的启动过程
本文旨在揭示Linux操作系统从开机到完全启动的神秘面纱,通过逐步解析BIOS、引导加载程序、内核初始化等关键步骤,帮助读者建立对Linux启动流程的清晰认识。我们将探讨如何自定义和优化这一过程,以实现更高效、更稳定的系统运行。
|
11天前
|
存储 缓存 网络协议
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####
|
12天前
|
缓存 监控 网络协议
Linux操作系统的内核优化与实践####
本文旨在探讨Linux操作系统内核的优化策略与实际应用案例,深入分析内核参数调优、编译选项配置及实时性能监控的方法。通过具体实例讲解如何根据不同应用场景调整内核设置,以提升系统性能和稳定性,为系统管理员和技术爱好者提供实用的优化指南。 ####
|
14天前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
17天前
|
消息中间件 安全 Linux
深入探索Linux操作系统的内核机制
本文旨在为读者提供一个关于Linux操作系统内核机制的全面解析。通过探讨Linux内核的设计哲学、核心组件、以及其如何高效地管理硬件资源和系统操作,本文揭示了Linux之所以成为众多开发者和组织首选操作系统的原因。不同于常规摘要,此处我们不涉及具体代码或技术细节,而是从宏观的角度审视Linux内核的架构和功能,为对Linux感兴趣的读者提供一个高层次的理解框架。
|
18天前
|
人工智能 安全 Linux
Linux操作系统的演变与未来趋势###
本文深入探讨了Linux操作系统从诞生至今的发展历程,分析了其开源模式对技术创新和IT行业的影响,并展望了Linux在未来技术生态中的角色。通过历史回顾、现状分析和未来预测,本文旨在为读者提供一个关于Linux操作系统全面而深入的视角。 ###
|
18天前
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
27 2
|
18天前
|
缓存 网络协议 Linux
深入探索Linux操作系统的内核优化策略####
本文旨在探讨Linux操作系统内核的优化方法,通过分析当前主流的几种内核优化技术,结合具体案例,阐述如何有效提升系统性能与稳定性。文章首先概述了Linux内核的基本结构,随后详细解析了内核优化的必要性及常用手段,包括编译优化、内核参数调整、内存管理优化等,最后通过实例展示了这些优化技巧在实际场景中的应用效果,为读者提供了一套实用的Linux内核优化指南。 ####
43 1