首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Linux】冯诺依曼体系结构和操作系统

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

作者头像
青衫哥
发布2023-03-31 09:17:06
发布2023-03-31 09:17:06
7550
举报
文章被收录于专栏:C++打怪之路C++打怪之路

目录

一、冯诺依曼体系结构

1.组成

2.各结构特性

二、操作系统

1.概念

2.设计OS的目的

3.如何理解 "管理"

4.系统调用


一、冯诺依曼体系结构

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

1.组成

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

  • 输入单元:包括键盘, 鼠标,扫描仪, 写板等
  • 中央处理器(CPU):含有运算器和控制器等
  • 输出单元:显示器,打印机等

注意:

  1. 上图所说的存储器是内存,内存里的数据掉电易失去。
  2. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  3. 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。这里的外设是相对于内存和CPU而言的。有些输入设备也是输出设备,例如:磁盘。
  4. 一句话,所有设备都只能直接和内存打交道

2.各结构特性

结构

作用

速度

CPU

计算

非常快

存储器(内存)

临时存储

外设

永久存储

较慢

CPU其实很笨,只能被动的接受别人的指令、数据,所以CPU必须先认识别人的指令,CPU有自己的指令集(精简指令集和复杂指令集),我们写代码、编译的本质就是生成二进制可执行文件来让CPU来识别指令。

为什么会有内存这个东西呢?直接让外设和CPU打交道不好吗?

这是因为CPU和外设的处理速度差太多了,就像我们熟知的短板效应, 如果直接让外设和CPU打交道,那就太浪费CPU的资源了。所以我们能够知道,在数据层面CPU只和内存打交道,目的是为了提高整机效率。

程序要运行必须要加载到内存中!CPU要读取我的代码我的数据,只能从内存中读取!这是由体系结构规定的。

外设中的数据在内存中输入输出的过程,叫做IO的过程。

那么谁来帮我们处理内存中的数据呢?操作系统!


二、操作系统

1.概念

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

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

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

2.设计OS的目的

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

3.如何理解 "管理"

以学校为例,校长需要管理全校所有的学生,但是校长并不需要直接和学生见面来管理学生,学生所有的数据,早就已经被校方拿到了手里,而且一直在更新,学校管理学生的本质其实是管理学生的数据。而校长只需要对重大事情做决策即可。做完决策之后,各班主任就会按照学生的数据来进行相应的管理并反馈给校长。

管理学生的数据,分为两步:

  1. 先描述
  2. 再组织

学生虽然不同,但是信息种类都是一样的,例如:都有姓名、性别、种族、身高、体重等等。我们通过描述出一个学生结构体,再通过合适的数据结构知识将学生信息组织起来。

同样的,操作系统管理硬件,是不需要直接和硬件打交道的。,每个硬件会有对应的描述结构体,驱动程序拿到对应硬件的数据传递给操作系统,操作系统通过管理对应的描述结构体来组织管理这些硬件。

总结:

  1. 管理的本质:对数据做管理
  2. 管理的方法:先描述,再组织。

4.系统调用

如果任何人都可以随意操作系统中的数据,那么操作系统很容易被破坏。然而操作系统还需要为我们提供一系列的服务。为了解决这个问题,操作系统提供了很多接口供我们使用,这种调用操作系统接口的方式叫做系统调用

我们通过指令操作、编程操作和使用界面实际上都是通过不同的方式去调用系统接口来实现我们的目的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、冯诺依曼体系结构
    • 1.组成
    • 2.各结构特性
  • 二、操作系统
    • 1.概念
    • 2.设计OS的目的
    • 3.如何理解 "管理"
    • 4.系统调用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档