【Linux】冯诺依曼体系结构(硬件)、操作系统(软件)、系统调用和库函数 --- 概念篇

news2024/12/1 0:41:04

在这里插入图片描述

👦个人主页:Weraphael
✍🏻作者简介:目前正在学习c++Linux还有算法
✈️专栏:Linux
🐋 希望大家多多支持,咱一起进步!😁
如果文章有啥瑕疵,希望大佬指点一二
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注😍


目录

  • 一、认识冯诺依曼体系结构(硬件)
      • 1.1 体系结构
      • 1.2 体系之间是如何工作的
  • 二、操作系统(软件)
      • 2.1 什么是操作系统
      • 2.2 操作系统为什么要管理
      • 2.3 操作系统是怎么管理
  • 三、系统调用和库函数

一、认识冯诺依曼体系结构(硬件)

1.1 体系结构

我们常见的计算机,如笔记本,台式机等,大部分都遵守冯诺依曼体系

在这里插入图片描述

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

  • 输入设备:键盘、鼠标、摄像头、麦克风、磁盘、网卡等
  • 输出设备:显示器、播放器、磁盘、网卡等
  • 存储器:指的是内存。(注意:磁盘和U盘统称外存)
  • 运算器:对输入的数据进行计算(算术运算、逻辑运算)
  • 控制器:控制计算硬件流程

运算器和控制器合起来叫做中央处理器,也就是我们常说的CPU

注:以上五个部分其实是独立的个体。

所以各个硬件单元必须用“线”链接起来,这些线就是总线

  • 系统总线(CPU和内存)
  • IO总线(内存和外设)

1.2 体系之间是如何工作的

在这里插入图片描述

输入设备的的数据不能直接传送到CPU

  1. 首先通过输入设备传给存储器
  2. 然后由存储器交给CPU
  3. 经过运算后,CPU再交给存储器
  4. 最后才能给输出设备

那么为什么是以上顺序呢?

这就要涉及到存储的效率问题

【金字塔存储体系】

在这里插入图片描述

这是因为外设和CPU速度差距太大了。就类似于木桶原理,如果外设直接和CPU交互,那么计算机整个体系结构的效率就以输入输出的效率为主,效率相当低下;于是就选择既不快,也不快的存储器来当中介。

总之,所有设备都只能直接和内存打交道。

二、操作系统(软件)

2.1 什么是操作系统

概念:操作系统是一款对硬件的管理,也可以是对软件的管理的软件。

2.2 操作系统为什么要管理

以下是操作系统在计算机中所处的层次图:

在这里插入图片描述

最底层就是硬件(眼睛能看的到,摸得着),早期计算机是通过硬件电路来控制的,需要用户手动进行硬件控制。随着科技的发展,硬件变得越来越完善,所以就要有一款软件对硬件进行管理,我们称为操作系统。而硬件也随之变得复杂,功能也越来越多,因此在操作系统和硬件之间还有一个设备驱动。而有这些还是不够的,比如一个电脑,买回来仅仅是铁疙瘩,但是安装操作系统后,就可以开机(应用软件)。因此,在操作系统之上,我们还需要各种不同的应用软件,来满足用户的不同应用场景。

因此,操作系统的【核心工作】(为什么会有操作系统):对下管理好软硬件资源的手段,以达到为用户提供良好的(稳定、快速、安全)操作/使用环境

操作系统给我们提供非常良好的服务,并不代表操作系统会相信我们,反而,操作系统不相信任何人

举例理解:就好比银行给我们提供良好的服务,但所有服务都是基于一个小小的柜台窗口,因为银行在为我们提供服务时要确保自身的安全,因此银行的服务是基于窗口进行的

而操作系统也是一样的,为了保证自己数据安全,也为了保证给用户能够提供服务,操作系统以接口的方式给用户提供调用的入口,来获取操作系统内部的数据(对上提供接口),这种调用称为系统调用。

所以说,所有访问操作系统的行为,都只能通过系统调用完成!

2.3 操作系统是怎么管理

为了让大家更好理解,以学校系统为例。

  • 在学校系统中,我们学生是典型的被管理者,校长是典型的管理者。

但是我们有天天见到校长吗?实际上并没有。因此,校长(管理者)和学生(被管理者)是不需要见面的。

  • 校长和学生不见面,那么校长是如何管理学生的呢?

其实,校长只需要知道你在学校的数据(情况),就能实施某种意义上的管理。因此,管理的本质:通过数据的管理,来达到对人的管理

  • 那么问题来了:校长是如何拿到数据的呢?

这我们都可以想到,通过老师即可。因此,管理和被管理之间还有一个老师。

  • 那么老师是管理者吗?

有的人想肯定是,因此自己天天在学校都是被老师管hh。但是,老师并不是管理者。

实际上,我们对一个事情的思考分为两种:

  1. 决策(做 or 不做)
  2. 执行(做)

在整个学校系统中,校长是做决策的,而老师才是真正意义上的执行者。

通过以上例子,我们可以得出一下结论:

  1. 操作系统 — 管理者
  2. 驱动程序 — 执行者
  3. 软硬件资源 — 被管理者
  • 接下来又有一个问题:由于学校有成千上万个学生,每个年级的老师将学生的数据全部上报,数据量太大的时候,想要管理者(校长)做出一个决策是非常困难的。

在学校,常见的就是老师发出一个表格给学生来收集信息,比如姓名,性别,年龄,电话等。这个过程就是一个描述的过程。当每个老师将这个表整理好以后再给校长

那么校长面对成千上百万张纸,如何进行高效的数据管理呢?

回想我们一路学习的知识,是不是有一门叫做数据结构。

  • 比如我们用一个链式结构(也可以是别的数据结构),来存储每一个人的信息,这就是描述的过程
  • 接着我们就可以实例化多个对象。再通过多个函数(方法)来进行管理,这个步骤我们称为组织

这样的话,校长就成功的对学生的管理工作,转换成为了对链表的增删改查。

// 描述
struct student
{
	char _college[]; //学院
	char _name[];  //姓名
	char _class[];  //班级
	......
    struct student* next;
};

【总结】

  • 关于如何管理,答案是:先描述,后组织
  • 同时,这就注定了在操作系统中,一定存在了大量的数据结构来对数据进行高效的管理。

三、系统调用和库函数

在这里插入图片描述

  • 系统调用:由于操作系统不相信任何用户,就需要有用户操作接口,供上层开发使用。
  • 库函数:库函数将系统调用进行了封装和抽象,使得程序员能够更加方便地使用高级接口来完成各种任务,而不必关心底层系统调用的具体实现。因此,计算机语言都是建立在操作系统上实现的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1290487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序 分享的两种方式:菜单级和按钮级

按钮级 在使用微信小程序的时候,我们可能会设计到一些视频的一些分享等,那么视频分享也分为两种方式,例如下图,当我们点击的时候,进行一个转发分享的一个操作 那么在原先代码的基础上,我们需要在原先代码的基础上butt…

用PHP与html做一个简单的登录页面

用PHP与html做一个简单的登录页面 login.html的设计 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

lv11 嵌入式开发 PWM 18

目录 1 PWM简介 1.1 蜂鸣器工作原理 1.2 GPIO控制 1.3 PWM控制 2 Exynos4412下的 PWM控制器 2.1 总览 2.2 设置步骤 2.3 功能框图 2.4 特征 3 寄存器介绍 3.1 总览 3.2 TCFG0 一级分频寄存器 3.3 TCFG1 二级分频寄存器 3.4 TCON控制寄存器 3.5 TCNTB TCMPB T…

苹果ios的系统app应用WebClip免签应用开源及方式原理

在移动设备上&#xff0c;为了方便访问我们经常使用的网站或服务&#xff0c;我们经常会希望将其添加到主屏幕上&#xff0c;以便快速启动。虽然我们可以通过使用浏览器书签实现这一目标&#xff0c;但添加一个图标到主屏幕上&#xff0c;使得它看起来与原生App无异&#xff0c…

【EI会议征稿中】第三届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2024)

第三届网络安全、人工智能与数字经济国际学术会议&#xff08;CSAIDE 2024&#xff09; 2024 3rd International Conference on Cyber Security, Artificial Intelligence and Digital Economy 第二届网络安全、人工智能与数字经济国际学术会议&#xff08;CSAIDE 2023&…

ubuntu中显卡驱动,cuda,cudnn安装

1. 在ubuntu中安装显卡驱动 参考&#xff1a;https://blog.csdn.net/m0_37605642/article/details/119651996 2.在ubuntu中安装cuda 参考&#xff1a;https://blog.csdn.net/m0_61431544/article/details/127007300 2.1 安装cuda cuda官网&#xff1a; https://developer.n…

ORACLE数据库实验总集 实验四 Oracle数据库物理存储结构管理

一、实验目的 &#xff08;1&#xff09;掌握 Oracle数据库数据文件的管理 &#xff08;2&#xff09;掌握 Oracle数据库控制文件的管理 &#xff08;3&#xff09;掌握 Oracle数据库重做日志文件的管理 &#xff08;4&#xff09;掌握 Oracle数据库归档管理&#xff0c; 二、…

深入理解 Java 虚拟机(JVM)从入门到精通

目录 一、JVM内存结构1、堆&#xff08;Heap&#xff09;&#xff08;1&#xff09;特点&#xff08;2&#xff09;堆内存分配&#xff08;3&#xff09;晋升到老年代的方式&#xff08;4&#xff09;堆内存检验方式2、虚拟机栈&#xff08;VM Stack&#xff09;&#xff08;1&…

STM32F407-14.3.14-01生成 6 步 PWM

生成 6 步 PWM 当通道使用互补输出时&#xff0c;OCxM③、CCxE⑥ 和 CCxNE⑤ 位上提供预装载位。发生 COM⑧ 换向事件时&#xff0c;这些预装载位将传输到影子位。因此&#xff0c;用户可以预先编程下一步骤的配置&#xff0c;并同时更改所有通道的配置。COM⑧ 可由软件通过将 …

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含pytho、JS工程源码)+数据集+模型(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 相关其它博客工程源代码下载其它资料下载 前言 本项目基于Keras框架&#xff0c;引入CNN进行模型训练&#xff0c;采用Dropout梯度…

团建策划信息展示服务预约小程序效果如何

团建是中大型企业商家每年举办的员工活动&#xff0c;其形式多样化、具备全部参与的娱乐性。但在实际策划流程及内容时&#xff0c;部分公司便会难以入手&#xff0c;术业有专攻&#xff0c;这个时候团建策划公司便会发挥效果。 如拓展训练、露营、运动会、体育竞技等往往更具…

进程_D1(2023-12-6)

①XMind ②双进程分工同时拷贝一个文件的上下两半部分 int main(int argc, const char *argv[]) {int pid -1;//文件描述符创建&#xff08;便于文件光标移动&#xff09;//① int rfd -1;if( ( rfd open("/root/fork2.c", O_RDONLY) ) -1 ){perror("open …

IntelliJ IDE 插件开发 | (二)UI 界面与数据持久化

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门 前言 在上一篇文章中介绍了在IDEA下开发、运行和安装插件的基本步骤&#xff0c;因此创建项目等基础步骤不再赘述&#xff0c;本文则开始介绍如何进行 UI 界面的开发以及相关数据的持久化存储&#xff…

吴恩达《机器学习》11-3-11-5:类偏斜的误差度量、查准率和查全率之间的权衡、机器学习的数据

一、类偏斜的误差度量 误差度量的关键性 之前的课程中已经提到了误差分析和设定误差度量值的重要性。评估学习算法并衡量其表现需要使用一个实数&#xff0c;这就是误差度量值。然而&#xff0c;在某些情况下&#xff0c;特别是当处理偏斜类时&#xff0c;选择正确的误差度量…

kafka学习笔记--基础知识概述

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…

学习极市开发平台

这是官网的链接&#xff1a;极市开发者平台-计算机视觉算法开发落地平台-极市科技 (cvmart.net) 第一次用这个平台有很多问题&#xff0c;首先在使用这个平台之前&#xff0c;我大部分时候使用的是百度的飞浆平台&#xff0c;也就是BML&#xff0c;去训练一些深度学习的模型。 …

Mac端 DevEco Preview 窗口无法展示,提示文件中的node.dir错误

语雀知识库地址&#xff1a;语雀HarmonyOS知识库 飞书知识库地址&#xff1a;飞书HarmonyOS知识库 DevEco版本&#xff1a;Build Version: 3.1.0.501, built on June 20, 2023 环境信息 问题描述 打开 Preview 标签窗口后&#xff0c;提示Preview failed。 Run窗口提示如下 F…

vue2 echarts饼状图,柱状图,折线图,简单封装以及使用

vue2 echarts饼状图&#xff0c;柱状图&#xff0c;折线图&#xff0c;简单封装以及使用 1. 直接上代码&#xff08;复制可直接用&#xff0c;请根据自己的文件修改引用地址&#xff0c;图表只是简单封装&#xff0c;可根据自身功能&#xff0c;进行进一步配置。&#xff09; …

C#网络应用程序(Web页面浏览器、局域网聊天程序)

目录 一、创建Web页面浏览器 1.示例源码 2.生成效果 二、局域网聊天程序 1.类 2.服务器端 3.客户端 一、创建Web页面浏览器 TextBox 控件用来输入要浏览的网页地址&#xff0c;Button控件用来执行浏览网页操作&#xff0c; WebBrowser控件用来显示要浏览的网页。这个控…

图像处理中的角点检测Python-OpenCV 中的实现

马丁亚当斯 (Martin Adams)在Unsplash上拍摄的照片 一、说明 在图像处理的背景下&#xff0c;“特征”可以直观地理解为图像中易于识别并用于表示图像的独特或独特的部分。将特征视为图像中使其可区分的“地标”或“焦点”。为了使这一点更具关联性&#xff0c;请考虑一下您如…