Linux:冯·诺依曼体系结构和操作系统

文章目录

冯·诺依曼体系结构

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

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

  1. 输入单元:包括键盘, 鼠标,扫描仪, 写板,磁盘、摄像头、网卡等
  2. 输出设备:显示器、打印机、播放器、磁盘、网卡
  3. 中央处理器(CPU):CPU中有运算器和播放器,运算器对数据进行计算(算数运算和逻辑运算);控制器对计算机硬件流程进行一定的控制。

在图中我们还可以看到存储器,存储器指的就是内存。不考虑缓存情况,CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)。外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。一句话:所有设备都只能直接和内存打交道。

因为CUP的运行速度很快,而输入输出设备的读取/写入速度很慢,如果直接让CPU和输入输出设备交互,CUP会有很长时间是闲置的,这就造成了资源浪费。而内存的速度介于输入输出设备和CPU之间,所以让内存充当输入输出设备和CUP之间的枢纽可以减少资源浪费,在CPU计算的同时,可以将要处理的数据提前加载到内存中,等CPU要处理时可以直接有内存提供数据,极大提高了运算效率。

操作系统

概念

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

操作系统通过帮助用户管理好软硬件资源,来为用户提供良好的执行环境。

笼统的理解,操作系统包括:

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

操作系统的作用

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

定位

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

机制

图示为冯诺依曼体系结构下的计算机软硬件结构。最底层为一个个硬件,磁盘、鼠标、键盘等,每一个硬件都有自己对应的驱动程序,只有驱动程序才能控制相应的硬件。

操作系统担任底层硬件的管理工作,包括:内存管理,进程管理,文件管理,驱动管理。

所以操作系统管理底层硬件是通过管理硬件对应的驱动来实现的。

这就是操作系统管理底层硬件的结构。

而操作系统为了保证自己内部数据的安全,也为了保证能给用户提供服务,操作系统以接口的方式给用户提供调用的入口,来获取操作系统内部的数据。

系统接口是由操作系统提供的,用C语言实现的,自己内部的函数调用。所有访问操作系统的行为,都只能通过系统调用完成。

所以用户是不能直接对操作系统内部的数据进行操作的,想要对操作系统进行操作,只能通过操作系统提供的系统调用接口。

而有一些程序员又对系统调用接口进行封装,形成了库,用户在编写程序时,可以调用库方法,库方法会调用系统调用接口,通过这样的方式来操作操作系统。

操作系统如何管理硬件

在操作系统中,管理任何对象,最终都可以转化成为对某种数据结构的增删查改。

所以操作系统中存在大量的数据结构。

操作系统管理硬件遵循一个原则:先描述,再组织。

描述指的是用结构体来存储硬件的各种信息,创建一个结构体对象,通过对该结构体对象的增删查改代表对硬件的管理。

先描述,再组织。

描述指的是用结构体来存储硬件的各种信息,创建一个结构体对象,通过对该结构体对象的增删查改代表对硬件的管理。

组织指的是多个结构体对象的管理方式,一般是用链表或其他高效的数据结构。

相关推荐
鹏大师运维几秒前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源3 分钟前
Elasticsearch-linux环境部署
linux·elasticsearch
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq7 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮7 小时前
Linux 使用中的问题
linux·运维
dsywws8 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零9 小时前
【C++】socket套接字编程
linux·服务器·网络·c++