Linux修炼之路之冯系结构,操作系统

目录

一:冯诺依曼体系结构

 1.五大组件

2.存储器存在的意义

3.几个问题

二:操作系统

接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧

一:冯诺依曼体系结构

我们当代的计算机的基本构成都是由冯诺依曼体系结构来进行构成计算机的基本单元,所以计算机就是由一个个的硬件组成的 

 1.五大组件

1.存储器:具体指的是内存

2.输入设备:指鼠标,键盘,摄像头,话筒,磁盘,网卡等

3.输出设备:指显示器,播放器硬件,磁盘,网卡等

4.运算器:对我们的数据进行计算任务(算术运算,逻辑运算)

5.控制器:对我们的计算硬件流程进行一定的控制

输入设备和输出设备共同组成外部设备(外设),控制器和运算器组成cpu

对于五大组件,每个都是一个独立的个体,因此对于计算机来说每个硬件单元都必须用线联系起来

 对于这里的线就是总线,分为系统总线(cpu与内存之间相互交互的线)和IO总线(外设与内存之间相互交互的线)

2.存储器存在的意义

1.对于在冯诺依曼体系结构中的数据的流向

数据先从输入设备加载到存储器中,,然后cpu从存储器中读取数据,经过cpu计算过后,再将数据再次写入存储器中,最后将数据从存储器刷新到输出设备

2.对于上述的过程,可能初识觉得过于复杂了,想直接将数据从输入设备交到cpu中去执行计算,再将计算后的数据直接交到输出设备,我们想如果直接这样的话,岂不会简单很多,省去存储器这一中间介质的转换,但事实上不会这样做的,这是因为外设与cpu的存储速度差距非常大,下面是计算机的存储体系结构

这张图可以看出存储是分级的,而对于cpu的存储速度是纳秒级别的,内存是微秒级别的,外设则是毫秒级别的

所以根据木桶原理,如果cpu直接与外设相连的话,计算机整体的存储效率就会以外设为主,这势必会使计算机整体的存储速度和效率变得低下

所以引入存储器去适配cpu与外设之间的存储速度差,这是计算机整体的存储效率就以存储器为主,比上述过程存储速度和效率会提升很多

但这时我们也会想,有存储器的参与,但相互之间的存储速度和效率差仍然很大,并且是串联的形式,似乎并没有快多少,但其实不然,操作系统会将所有的数据先缓存到对应的内存中,等cpu执行完上一轮计算后,会直接从内存中读取数据进行计算,在cpu读取计算数据的过程中,操作系统会再次预先加载其他的数据,这样计算机整体的存储速度和效率是有很大提升的

3.几个问题

1.对于一个程序在执行执行之前,必须要先加载到内存当中运行,这是为什么?

这是因为在程序中会有大量的数据要在cpu中进行计算,而cpu只会从内存中读取数据,所以程序必须先加载到内存当中,这也是冯诺依曼体系结构所规定的

2.对于前面写的进度条,默认显示的数据,是可能会缓存起来的,那么在哪缓存呢?

当没有强制刷新或者'\n'时,这是数据就会缓存到存储器当中,所以存储器就是一个硬件级别的缓存空间,并且在冯诺依曼体系结构中是处于核心地位的

对于现实中的每一台设备都可以看作是一个冯诺依曼体系结构

二:操作系统

1.操作系统是一款做管理的软件,管理的是相应的硬件和软件

2.概念:任何计算机系统都包含一个基本的程序集合,称为操作系统,广义的操作系统是包括内核(进程管理,内存管理,文件管理,驱动管理)和其他程序(例如函数库,shell外壳等),侠义上的操作系统主要指内核

3.设计操作系统的目的

操作系统会帮助用户管理好下面的软硬件资源,并且为用户提供一个良好(安全,稳定,高效)的运行环境,总结起来就是操作系统通过管理好底层的软硬件资源(手段),为用户提供一个良好的运行环境(目的)

4.计算机的层状体系结构

对于底层硬件是以冯诺依曼体系结构为基础,把 硬件之间互相用总线连接起来的

所有的硬件要被软件访问的话,就得有它所匹配的驱动程序的参与,如果没有的话,则访问不了

用户是不能直接访问硬件的,而是要经过操作系统来完成访问硬件的操作

在操作系统里面会有各种的数据,可是操作系统不相信任何用户,所以用户是不能直接访问操作系统内部的数据的

于是操作系统为了保证自己的数据安全,也为了保证给用户提供服务,操作系统是以接口的方式给用户提供调用的入口,来获取操作系统内部的数据。 对于这里的接口是用c来实现的,由操作系统来提供的自己内部的函数调用

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

5.关于操作系统是如何做管理的

首先从生活来说管理者和被管理者是不需要见面的,就像员工与老板是不需要见面的,那么在不见面的情况下,管理者是如何做管理的呢?  其实管理者只要得到被管理者的管理信息,就可以在未来进行管理决策---------------管理的本质就是通过对数据的管理,达到对人的管理

那么既然管理者与被管理者是不见面的,那么管理者的管理信息是怎么得到的呢------通过执行者

比如在公司当中员工人数是庞大的,当要管理员工就要对员工的数据进行统计整理,一般的会整理为excel表格,在表格当中填入员工的相关数据(如姓名,年龄,入职时间,工资卡账号,所属部门,工号等),当要查询某个员工的数据时,就得采用一个个遍历的方式来查找

但这样的话对于管理者去管理查询数据的话,仍是很大的工作量,因此可以采用c语言结构的方式,将相关数据用结构体struct描述起来,将每个员工定义为一个struct结构体对象并用自己的数据进行初始化,但每个员工都是一个独立的结构体对象,因此每个结构体对象当中应该还包括struct people* next的结构体指针,将每个结构体对象连接起来,形成一张员工的单链表,这就叫建模组织的过程       ------------这种方法就叫做先描述再组织

因此对于管理者来说,只要管理好这张员工链表就可以,将对于员工的管理工作转换为对这张单链表的增删改查

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

 对于在计算机层状体系当中,操作系统和硬件并不直接见面,只需要操作系统能获取到硬件的状态数据就能够进行管理的操作,但操作系统系统是不能直接获取硬件的数据的,而是通过由驱动程序来获取硬件的数据,再从驱动程序交到操作系统当中

详细的来说就是,操作系统要管理不同的设备,包括内存,进程,文件和驱动,如操作系统要对硬件做管理,其实在操作系统内部就需要描述这一个个的硬件设备,对于每个硬件设备都使用同样的struct结构体来描述,不同的设备填上不同的属性值,然后给这个设备构建出相应的结构体对象,把每个构建的结构体对象用一种数据结构管理起来,当操作系统要检测某个设备的状态,做出相应的操作,就转换为在操作系统内部对特定设备所维护的数据结构的增删改查

5.计算机管理硬件

  先用struct结构体描述起来,再用链表或者其他高效的数据结构组织起来

6.系统调用和库函数

在开发角度。操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,就叫做系统调用

系统调用在使用上,功能比较基础,对用户的要求也比较高,所以有些开发者对部分系统调用进行了部分的封装,从而形成了库,有了库,就很有利于更上层用户或开发者进行开发

所以库函数和系统调用属于上下层的调用和被调用的关系

7.总结来说,在操作系统内部对被管理对象进行建模,形成对应的某种数据结构,对对象的管理就转化为对某种数据结构的增删改查

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

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

相关文章

【开源】多语言大型语言模型的革新:百亿参数模型超越千亿参数性能

大型人工智能模型,尤其是那些拥有千亿参数的模型,因其出色的商业应用表现而受到市场的青睐。但是,直接通过API使用这些模型可能会带来数据泄露的风险,尤其是当模型提供商如OpenAI等可能涉及数据隐私问题时。私有部署虽然是一个解决…

PY32F003+RTL8710(AT) 实现获取天气情况

一、RTL8710主要AT指令 1、ATSR:模块重启 2、ATSE1:开启回显 3、ATPW1:station模式 4、ATPNssid,password,,:连接到AP 5、ATPK1:设置自动接收 6、ATPC0,v1.yiketianqi.com,80:与网站建立TCP连接 7、ATPT125…

关于pytorch加载模型报错问题

load_net[“params”] 报keyerror 加载模型后查看对应参数是什么 model2 torch.load(m1_path "xxx.pth") print(model1.keys())若输出如下: 已经有相应参数不需要执行 load_net[“params”]若输出如下 则需要load_net[“params”]

Linux-命令上

at是一次性的任务,crond是循环的定时任务 如果 cron.allow 文件存在,只有在文件中出现其登录名称的用户可以使用 crontab 命令。root 用户的登录名必须出现在 cron.allow 文件中,如果这个文件存在的话。系统管理员可以明确的停止一个用户&am…

3D 生成重建014-Bidiff使用二维和三维先验的双向扩散

3D 生成重建014-Bidiff使用二维和三维先验的双向扩散 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 大多数三维生成研究集中在将二维基础模型向上投影到三维空间中,要么通过最小化二维评分蒸馏采样(SDS)损失,要么通过对多视图…

[数据结构] -- 双向循环链表

🌈 个人主页:白子寰 🔥 分类专栏:C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持创作博文(平均质量分82)&#…

从反向传播(BP)到BPTT:详细数学推导【原理理解】

从反向传播到BPTT:详细推导与问题解析 在本文中,我们将从反向传播算法开始,详细推导出反向传播通过时间(Backpropagation Through Time, BPTT)算法。重点讨论BPTT中的梯度消失和梯度爆炸问题,并解释如何解…

采用LoRA方法微调llama3大语言模型

文章目录 前言一、Llama3模型简介1.下载llama3源码到linux服务器2.安装依赖3.测试预训练模型Meta-Llama-3-8B4.测试指令微调模型Meta-Llama3-8B-Instruct5.小结 二、LoRA微调Llama31.引入库2.编写配置文件3.LoRA训练的产物 三、测试新模型效果1.编写配置文件2.运行配置文件&…

QT教程-一,初识QT

目录 一,QT是什么?能够使用它做什么? 二,Qt 能够使用的语言 三,Qt主要用于什么领域? 四,Qt开发的软件 一,QT是什么?能够使用它做什么? Qt是一个跨平台的 C 开发库,主…

全球最高点赞记录,世界点赞第一名是谁?世界点赞第一人名字的由来

世界点赞第一人名字的由来: 起源与概念提出: 二十一世纪东方伟大的思想家哲学家教育家颜廷利教授,一位在中国21世纪早期便以其非凡才华和创新精神著称的学者,早在互联网尚未普及的20世纪90年代,就已经提出了“点赞”的…

python爬虫登录到海康相机管理页面

简述 1.最近接到个任务是在管理页面更改相机的某个参数,下载官方的sdk貌似没有提供这个接口,所以只能自己写爬虫登录发请求了。 1.主要步骤 1.1 发送get请求获取到salt,sessionID,challenge等信息 http://admin:123456192.168.…

交叉熵损失函数计算过程(tensorflow)

交叉熵损失函数通常用于多类分类损失函数计算。计算公式如下: P为真实值,Q为预测值。 使用tensorflow计算 import tensorflow as tf import keras# 创建一个示例数据集 # 假设有3个样本,每个样本有4个特征,共2个类别 # 目标标签…

2024最新私有化部署AI大模型,让每个人都有属于自己的AI助理

让每个人都拥有一个属于自己的本地大模型 下载Ollama 下载地址 ​ https://ollama.com/download ​ Ollama支持MacOS、Linux、Windows 解压 下载完成后,会得到一个Ollama-darwin.zip文件,解压后,以Mac为例是一个可运行文件:O…

AI应用案例:服务器智能分析管理系统

服务器硬件配置、性能状态、所运行的应用系统等信息分散于多个不同的信息管理系统。人为查询判断现有的服务器资源是否满足用户需求,且需结合资产管理系统与Maximo基础资源、性能监控、运维管理等各个系统互不关联,数据分散不能为运维管理提供完整一致的…

在Spring 当中存在的八大模式

在Spring 当中存在的八大模式 文章目录 在Spring 当中存在的八大模式每博一文案1. 简单工厂模式2. 工厂方法模式3. 单例模式4. 代理模式5. 装饰器模式6. 观察者模式7. 策略模式8. 模板方法模式最后: 每博一文案 我认为 “知世故而不世故” 才是真正意义上的成熟。回…

【PPT密码】PPT文件的两种不可编辑情况

不知道大家有没有遇到过,PPT文件无法编辑的情况,今天小编分享两种ppt文件不可编辑的原因以及解决方法。 情况一 如果打开ppt文件之后,发现幻灯片某些地方或者每张幻灯片同一个地方,无法编辑,这可能是因为PPT中设置了…

ISCC 2024 部分wp

文章目录 一、Misc1、Number_is_the_key2、FunZip3、擂台—— 重“隐”;4、RSA_KU5、时间刺客6、成语学习7、 精装四合一8、钢铁侠在解密9、有人让我给你带个话10、Magic_Keyboard11、工业互联网模拟仿真数据分析 二、Web1、还没想好名字的塔防游戏2、代码审计3、原…

Python数据分析实验四:数据分析综合应用开发

目录 一、实验目的与要求二、主要实验过程1、加载数据集2、数据预处理3、划分数据集4、创建模型估计器5、模型拟合6、模型性能评估 三、主要程序清单和运行结果四、实验体会 一、实验目的与要求 1、目的: 综合运用所学知识,选取有实际背景的应用问题进行…

【Python】【Scrapy 爬虫】理解HTML和XPath

为了从网页中抽取信息,必须对其结构有更多了解。我们快速浏览HTML、HTML的树状表示,以及在网页上选取信息的一种方式XPath。 HTML、DOM树表示以及XPath 互联网是如何工作的? 当两台电脑需要通信的时候,你必须要连接他们&#xff…

Android Studio实现MQTT协议的连接

1添加依赖 在项目中找到下图文件 打开文件 如下 plugins {alias(libs.plugins.android.application) }android {namespace "com.example.mqtt_04"compileSdk 34defaultConfig {applicationId "com.example.mqtt_04"minSdk 27targetSdk 34versionCo…