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

文章目录

冯·诺依曼体系结构

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

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

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

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

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

操作系统

概念

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

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

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

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

操作系统的作用

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

定位

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

机制

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

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

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

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

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

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

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

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

操作系统如何管理硬件

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

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

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

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

先描述,再组织。

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

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

相关推荐
长弓聊编程17 分钟前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
cherub.25 分钟前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热1 小时前
路由基础(全)
linux·网络·网络协议·安全
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
我们的五年1 小时前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
IT果果日记2 小时前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教2 小时前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特2 小时前
环境变量简介
linux
小陈phd2 小时前
Vscode LinuxC++环境配置
linux·c++·vscode