介绍冯诺依曼体系结构和操作系统

🌈个人主页:Yui_

🌈Linux专栏:Linux

🌈C语言笔记专栏:C语言笔记

🌈数据结构专栏:数据结构

🌈C++专栏:C++

文章目录

  • [1. 冯诺依曼体系结构](#1. 冯诺依曼体系结构)
  • [2. 操作系统(Operator System)](#2. 操作系统(Operator System))
    • [2.1 如何理解管理](#2.1 如何理解管理)
    • [2.2 为什么要有操作系统](#2.2 为什么要有操作系统)

1. 冯诺依曼体系结构

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

截止目前,我们所认识的计算机,都是由一个个的硬件组成的。各个硬件相互独立存在。

  • CPU:运算器&&控制器
  • 输入设备:话筒,摄像头,键盘,鼠标,磁盘,网卡等
  • 输出设备:声卡,显卡,磁盘,显示器,打印机等
    根据冯诺依曼体系,必须要强调的几点:
  • 这里的存储器指的是内存,具有掉电易失的特点
  • 不考虑缓存的情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 外设(输入或输出设备)要在输入或者输出数据,也只能写入内存或者从内存读取。
  • 所有设备都只能直接和内存打交道。
    考虑到设备中的数据流动,设备间是连接的,通过总线将彼此独立的个体连接,可能有人会说现在电脑中那来那么多线啊,现在的总线都集成在主板中当然就不容易发现,但它们是存在的,本质也是为了让设备间进行数据的来回拷贝。

提问为什么体系结构中要存在内存,直接简化为输入->CPU->输出不是更好吗?

回答:

  1. CPU的处理速度是非常快的,而直接输入数据的速度取决你输入的速度,不可能比CPU的处理速度的,根据"木桶效应"(一只水桶能盛多少水,并不取决于最长的那块木板,而是取决于最短的那块木板。也可称为短板效应。一个水桶无论有多高,它盛水的高度取决于其中最低的那块木板。),输入数据的速度严重拖累的CPU,为了充分发挥CPU的性能,计算机在存储内有一个金字塔的结构:
    计算机存储金字塔 :越往下读取速度越慢,价格越便宜。

因为存储金字塔的缘故,可以同时处理多条信息,将需要先处理的信息的给CPU处理,其他信息存储在CPU的下级芯片内,等待处理。如此一来处理速度就变快了。

  1. 为了让计算机的价格降下来,因为CPU的存储又小又贵,如果内存也用CPU来处理,计算机的价格将变得十分高昂。体系结构存在内存,计算机整体的效率就变成了以内存的访问效率为主。内存的引入把效率问题,转化为了软件问题,它可以让我们的计算机效率还不错,且较便宜,我们才能买的起电脑。
    对冯诺依曼得理解,不能停留在概念上,要深入到软件数据流理解上
    问题:解释你在qq上和朋友聊天过程中,开始你发信息到对面接受到信息时数据得流动过程。
    回答:数据从输出设备(键盘)经过内存到输出设备(网卡)发送到对方设备由输入设备(网卡)接受经过内存到输出设备(显示屏)。

2. 操作系统(Operator System)

概念

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

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

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

设计OS的目的

  1. 与硬件交互,管理所有的软硬件资源。
  2. 为用户程序(应用程序)提供一个良好的执行环境。

定位

  1. 在整个计算机硬件架构中,操作系统的定位是:一个纯正的"搞管理"的软件。

2.1 如何理解管理

操作系统是一个进行着软硬件资源管理的软件。如何理解管理呢?

管理就是做决策和做执行

以校园背景为例:

校长 --- 管理者

辅导员 --- 保证决策落地

学生 --- 被管理者

管理者和被管理者,并不需要见面。

学生和校长也不需要见面。

管理一个人的本质不在于对人做管理,而在于对人的信息(数据)做管理,管理者的核心工作是做决策,根据数据做决策。

就像校长想要开除一个学生,先要根据学生的挂科情况来选择开除谁,也就是根据学生的挂科信息来做决策,如果校长突然想要派一名同学参加程序设计大赛,也需要根据同学的学习成绩来做决策。

管理者在面对大量的被管理者的时候,数据量必然非常大,对人的管理实质是对数据的管理。

那么当数据量大的时候,校长要在怎么管理呢?

因为实质是对信息的管理,为此要先描述,再组织

对学生,我们要知道,学生的姓名、年级、基本信息、成绩信息、表现数据等等,这就是描述过程。

c 复制代码
struct student
{
	char name[10];
	int age;
	char level;
	char number[20];
	int height;
	//...
};

这样校长的决策工作就变成了对链表的增删查改,对学生的管理工作也变成了对链表的增删查改。这就是管理的建模过程。

面向对象的语言也是如此。

先描述的过程:就是面向对象的过程 ------ class 、struct ;再组织的过程:数据结构 ------ STL,如vector、list、stack、map等。

以后只要是进行管理,都要做以下两件事:先描述(class、struct)、再组织(STL容器,数据结构) -》将具体问题,进行计算机级别的建模过程,转换为计算机能够认识的问题。
- 数据结构的本质是对数据进行管理。

2.2 为什么要有操作系统

为了对软硬件进行更好的管理(手段)

对用户提供一个稳定、高效、安全的运行环境(目的)。

系统调用和库函数概念

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

在还没有学习进程前,操作系统是怎么管理进行进行进程管理的呢?当然也是先把进程描述起来,再把进程组织起来。

相关推荐
何不遗憾呢7 分钟前
每日刷题(算法)
算法
立志成为coding大牛的菜鸟.11 分钟前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode
鱼跃鹰飞11 分钟前
Leetcode面试经典150题-130.被围绕的区域
java·算法·leetcode·面试·职场和发展·深度优先
c无序12 分钟前
【Linux进程控制】进程程序替换
linux
liangbm317 分钟前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
潮汐退涨月冷风霜22 分钟前
机器学习之非监督学习(四)K-means 聚类算法
学习·算法·机器学习
GoppViper28 分钟前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
B站计算机毕业设计超人29 分钟前
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
爬虫·python·深度学习·算法·机器学习·自然语言处理·数据可视化
羊小猪~~32 分钟前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
Charles Ray1 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习