【Linux从入门到放弃】冯诺依曼体系机构、操作系统及管理的本质_冯诺依曼机构-程序员宅基地

技术标签: 运维  linux  服务器  LINUX从入门到放弃  

‍作者: @情话0.0
专栏:《Linux从入门到放弃》
个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢!

在这里插入图片描述


前言


  在学习linux的过程中,有一个特别重要的知识点就是关于进程的学习,那么在学习进程之前,首先对硬件做一些了解,然后再学习软件,在软硬件都学完之后再取去了解进程的概念。

一、冯诺依曼体系结构

  我们常见的计算机,如笔记本;或者我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
在这里插入图片描述

1.1 冯诺依曼体系组成部分

  1. 输入设备:计算机是对数据做处理的,那么前提条件就是要先将数据给到计算机,就要通过输入设备来完成这个操作,而输入设备一般指的是键盘、鼠标、话筒、摄像头、网卡、磁盘等。
  2. 输出设备:计算机本质是给人提供服务的,在将数据计算完毕之后要将结果呈现给用户,这就需要通过输出设备来呈现给用户,输出设备一般指的是显示器、磁盘、网卡、声卡、音响等。

输入设备和输出设备统称为外围设备,简称外设,它们的数据处理速度相对于内存来说是慢一点的,而CPU是整个结构中速度最快的。

  1. 存储器:也成为内存,输入设备先将数据给到内存,然后CPU再与内存沟通拿数据。
  2. CPU(中央处理器):计算机中最核心的功能块,完成数据的处理工作。含运算器和寄存器等。

1.2 若内存不存在

在这里插入图片描述
  我们都知道,计算机是从输入设备处采集数据,在CPU处完成处理工作,然后再将处理结果给到输出设备,那么我们不要这个内存可以不,当然可以。但是,外设的数据处理速度是特别慢的,而CPU的处理速度又特别的快,这就可以提到 “木桶原理” ,表达的意思就是这个桶能乘多少水不取决于最长的木板长度,而是最短的木板长度。也就表明了整个计算机的处理效率就以外设的处理效率为主的。
  所以,这就需要内存来起到一个中间过渡的作用,缓解 “木桶原理” 带来的效率下降的问题。外设,内存,CPU它们三个之间的数据处理速度是不一致的,有一定的差距。但是内存有一个特点:可以临时存数据,并且速度还不慢,那么就可以在CPU处理A任务的时候,将外设中关于B任务的数据搬到内存当中,当A任务被处理完毕之后就可以直接从内存当中拿到B任务进行处理。因为有了内存的存在,可以对数据进行预加载,CPU以后在进行数据计算的时候不需要访问外设了,直接从内存中拿数据即可。

结论1: 在数据层面,一般CPU不和外设直接沟通而是直接只和内存打交道。

1.3 硬件层面,单机与跨主机之间的数据流向

1.3.1 单机

在这里插入图片描述
  比如说:我们打开视频APP要看电视剧,首先要将这个客户端软件加载到内存中,然后这个软件就可以被CPU执行,然后我们就可以看到这个软件的客户端界面,当点击播放的时候它就从网络中将关于这个视频资源的数据先拿到内存中,再进行数据计算,比如该视频是收费的,在免费播放了五分钟之后就强制关闭了,或者在10分钟的时候加一段30s的广告等等最终将计算结果给到内存然后再给到输出设备(显示器)。

1.3.2 跨主机

你和你的朋友微信聊天,你发送一个干啥着呢?那么整个信息是如何在体系结构中流动的?(不考虑网络的情况,即发出去就可以收到)
在这里插入图片描述

  1. 你通过键盘输入“干啥着呢?”到内存中,然后数据要做计算(因为数据在发送时可不止一条或者你的数据很私密,所以要进行加密),然后将计算之后的结果写回到内存中,然后再将该数据显示到输出设备(将数据刷新到本地的显示器中,同时将该数据发送到网卡中,对应你朋友的输入设备)
  2. 同样先从网卡中获取到数据交到内存中,在CPU拿到数据之后进行解密操作,把数据又给到内存,然后再将数据刷新到输出设备中(你朋友的显示器)

结论2: 外设只和内存打交道(数据层面)

二、操作系统

2.1 概念

  操作系统是一款进行软硬件资源管理软件

2.2 如何理解操作系统对硬件做管理

  谈到管理,举个简单例子:比如在学校这样的场景下,有三种角色:校长,导员,学生,很明显学生是充当被管理者的角色,而管理者是谁呢?校长还是导员呢?按道理来说作为一个大学生来说,四年下来基本上见不到校长的面,那么导员应该是管理者,对不对呢?
  在日常生活中,我们每一个人既是决策者也是执行者,比如:我今天中午要吃什么饭(决策),然后就去吃了(执行)。而作为管理者,大部分工作是拥有决策的能力,而非执行。
  那么很明显校长是决策者,关于学校的一些指令都是校长下发的,而导员只是按照校长的指令行事。

职业 职能
校长 决策
导员 决策并执行
学生 参与执行

2.3 决策者和执行者的关系

注意:以下所有的场景都是在举例。

  比如说在学校里面,一个学生基本上很难见到校长的面,但是为什么校长能把学生管理的如此之好,不管是每天在那间教室上课,在哪个宿舍睡觉,亦或是哪些学生挂科了等等。由此可以间接说明:作为管理者和被管理者,其实是不需要直接沟通的,当然沟通也是没什么问题的。

  管理者和被管理者没有直接沟通,那么它们之间是如何管理的呢?
  在学校里面校长和学生不直接沟通,但是校长他能够知道你名字是什么,电话号码是什么,学号是多少,专业是哪个,科目已经修了多少等等,亦或是在公司里你为这个公司这一年做了多少贡献,迟到或早退了多少次,加班了多长时间等等。
  在上大学之前,你家长每天都照顾着你的一切,你早都不耐烦了,于是上了大学之后你感觉自己终于挣脱了束缚,但是假设说你家长可以知道你每天干了什么,他们就可以打电话问候你的一切,关心亦或是指责。
  其实根据上面这几个例子就可以说明:管理的本质——管理者对被管理者的数据进行管理。

  那么管理者是如何拿到被管理者的数据呢?根据学校的例子很清晰,通过导员(中间人)

  比如说,校长安排每个导员把自己所管理的每个学生的信息都统计起来发给他,因为校长要对所有人做管理,如果说要是将所有的信息都放在表格里,那就太复杂了,所以校长就按照结构体的形式(下例)将所有学生的信息都统计起来,再按照链表的方式将每个结构体对象链接起来。
  假设某个学生成绩太差要将其退学,难道只让他离校就可以了吗?当然不行,还得在这样的学生链表中将这个学生对象剔除掉;或者学校又转来一个学生,同样也是在链表中将该学生的信息形成一个结构体对象并添在其中,总之来说,校长要对学生做管理,都是在该链表上操作。

struct stu
{
    
	姓名,
	年龄,
	专业,
	成绩,
	电话,
	struct stu* next;
]

总结:上面举的所有例子都是在对管理的动作进行建模(将具体的一些场景转化为计算机语言)。

2.4 管理的本质

  先描述,再组织

  那么在计算机中,校园中的三种角色对应的是什么呢?
  校长——操作系统;导员——硬件驱动;学生——硬件(软件)
  硬件驱动主要负责就是与硬件的交流沟通,拿到硬件的数据后交给操作系统做决策,然后在将决策后的结果交给驱动来执行。操作系统来做决策,驱动来执行。每一个硬件(键盘、鼠标、磁盘、网卡)基本对应一个硬件驱动。

2.5 操作系统为什么对软硬件做管理?

  操作系统对下通过管理好软硬件资源(手段),对上给用户提供良好(安全、高效、稳定、功能丰富等)的执行环境(目的)。

  操作系统目的是为了给用户提供良好的服务,但是操作系统信任用户吗?
在这里插入图片描述

  就拿银行的例子来讲,它有着一些底层的硬件设施:电脑、服务器;桌椅板凳;金库;员工宿舍。再往上看分别有不同的部门角色管理下面的设施。同时在银行里有着不同的员工给用户提供不同的服务,当然也有行长这样的角色。作为一个行长,他肯定要将整个银行系统合理的管理起来, 他不仅要把这些员工管理好(根据表现奖惩),而且也要管理好底层硬件设施,但是行长不可能亲自去管理那些硬件,而是就通过驱动这样的角色去管理。
  因此,这也就说明了行长其实就是担当着操作系统这样的角色,即管理好下层硬件设施,也管理好每一位员工。行长和员工都是人,人可以管理硬件设施,也可以管理人。而操作系统是软件,它既管理软件,同时也管理硬件。

  行长对下将员工和硬件管理的如此之好,目的就是为了对上给用户提供良好的服务。但是,银行它相信你吗?

  很明显,你是信任银行的,要不然你不会去银行办业务,但是银行是不信任你的,在现实生活中你要存一万元,银行柜员不可能给你说你怎么怎么走到了金库把钱放到那里,然后出来填个表即可。对应的是操作系统给我们提供良好的服务,并不代表这操作系统会相信我们,反而操作系统不相信任何人,害怕群众中有坏人对自己造成伤害。就像是在银行里给你提供服务,但是为了保证自己(银行)的安全,它给用户提供窗口式的服务。

在这里插入图片描述
  这也就说明了在计算机硬件体系结构中,用户是不可能直接进到操作系统里面对操作系统里面的内容数据进行访问和修改呢?当然不是。操作系统为了保护自己和给用户提供服务,于是将自己的特定功能以接口的方式给用户提供出来,而这些接口在操作系统层面被称为系统调用(操作系统设计的C函数)。
  但是有时候操作系统调用接口使用成本特别高,因为一些操作你是得懂操作系统的。就一些大佬基于这些接口做了二次软件开发,于是就有了图形化界面、shell和工具集、部分指令。

在这里插入图片描述


总结

  以上就是在学习进程之前该了解的一些知识,主要明白操作系统管理的本质,而这个本质也是始终贯穿于Linux的整个学习。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_47648037/article/details/131378814

智能推荐

python中文显示不出来_解决Python词云库wordcloud不显示中文的问题-程序员宅基地

文章浏览阅读2.6k次。解决Python词云库wordcloud不显示中文的问题2018-11-25背景:wordcloud是基于Python开发的词云生成库,功能强大使用简单。github地址:https://github.com/amueller/word_cloudwordcloud默认是不支持显示中文的,中文会被显示成方框。安装:安装命令:pip install wordcloud解决:经过测试发现不支持显示中文..._词云python代码无法输出文字

台式计算机cpu允许温度,玩游戏cpu温度多少正常(台式电脑夏季CPU一般温度多少)...-程序员宅基地

文章浏览阅读1.1w次。随着炎热夏季的到来,当玩游戏正爽的时候,电脑突然死机了,自动关机了,是不是有想给主机一脚的冲动呢?这个很大的原因是因为CPU温度过高导致的。很多新手玩家可能都有一个疑虑,cpu温度多少以下正常?有些说是60,有些说是70,到底多高CPU温度不会死机呢?首先我们先看看如何查看CPU的温度。下载鲁大师并安装,运行鲁大师软件,即可进入软件界面,并点击温度管理,即可看到电脑各个硬件的温度。鲁大师一般情况下..._台式机玩游戏温度多少正常

小白自学Python日记 Day2-打印打印打印!_puthon打印任务收获-程序员宅基地

文章浏览阅读243次。Day2-打印打印打印!我终于更新了!(哭腔)一、 最简单的打印最最简单的打印语句: print(“打印内容”)注意:python是全英的,符号记得是半角下面是我写的例子:然后进入power shell ,注意:你需要使用cd来进入你保存的例子的文件夹,保存时名字应该取为xxx.py我终于知道为什么文件夹取名都建议取英文了,因为进入的时候是真的很麻烦!如果你没有进入正确的文件夹..._puthon打印任务收获

Docker安装:Errors during downloading metadata for repository ‘appstream‘:_"cenerrors during download metadata for repository-程序员宅基地

文章浏览阅读1k次。centos8问题参考CentOS 8 EOL如何切换源? - 云服务器 ECS - 阿里云_"cenerrors during download metadata for repository \"appstream"

尚硅谷_谷粒学苑-微服务+全栈在线教育实战项目之旅_基于微服务的在线教育平台尚硅谷-程序员宅基地

文章浏览阅读2.7k次,点赞3次,收藏11次。SpringBoot+Maven+MabatisPlusmaven在新建springboot项目引入RELEASE版本出错maven在新建springboot项目引入RELEASE版本出错maven详解maven就是通过pom.xml中的配置,就能够从仓库获取到想要的jar包。仓库分为:本地仓库、第三方仓库(私服)、中央仓库springframework.boot:spring-boot-starter-parent:2.2.1.RELEASE’ not found若出现jar包下载不了只有两_基于微服务的在线教育平台尚硅谷

随便推点

网络学习第六天(路由器、VLAN)_路由和vlan-程序员宅基地

文章浏览阅读316次。路由的概念路由器它称之为网关设备。路由器就是用于连接不同网络的设备路由器是位于OSI模型的第三层。路由器通过路由决定数据的转发。网关的背景:当时每家计算机厂商,用于交换数据的通信程序(协议)和数据描述格式各不相同。因此,就把用于相互转换这些协议和格式的计算机称为网关。路由器与三层交换器的对比路由协议对比路由器的作用:1.路由寻址2.实现不同网络之间相连的功能3.通过路由决定数据的转发,转发策略称为 路由选择。VLAN相关技术什么是VLAN?中文名称叫:虚拟局域网。虚_路由和vlan

设置div背景颜色透明度,内部元素不透明_div设置透明度,里面的内容不透明-程序员宅基地

文章浏览阅读2.8w次,点赞6次,收藏22次。设置div背景颜色透明度,内部元素不透明:.demo{  background-color:rgba(255,255,255,0.15) } 错误方式:.demo{ background-color:#5CACEE;opacity:0.75;} 这样会导致div里面的元素内容和背景颜色一起变透明只针对谷歌浏览器的测试_div设置透明度,里面的内容不透明

Discuz!代码大全-程序员宅基地

文章浏览阅读563次。1.[ u]文字:在文字的位置可以任意加入您需要的字符,显示为下划线效果。2.[ align=center]文字:在文字的位置可以任意加入您需要的字符,center位置center表示居中,left表示居左,right表示居右。5.[ color=red]文字:输入您的颜色代码,在标签的中间插入文字可以实现文字颜色改变。6.[ SIZE=数字]文字:输入您的字体大小,在标签的中间插入文..._discuzcode 大全

iOS NSTimer定时器-程序员宅基地

文章浏览阅读2.6k次。iOS中定时器有三种,分别是NSTimer、CADisplayLink、dispatch_source,下面就分别对这三种计时器进行说明。一、NSTimerNSTimer这种定时器用的比较多,但是特别需要注意释放问题,如果处理不好很容易引起循环引用问题,造成内存泄漏。1.1 NSTimer的创建NSTimer有两种创建方法。方法一:这种方法虽然创建了NSTimer,但是定时器却没有起作用。这种方式创建的NSTimer,需要加入到NSRunLoop中,有NSRunLoop的驱动才会让定时器跑起来。_ios nstimer

Linux常用命令_ls-lmore-程序员宅基地

文章浏览阅读4.8k次,点赞17次,收藏51次。Linux的命令有几百个,对程序员来说,常用的并不多,考虑各位是初学者,先学习本章节前15个命令就可以了,其它的命令以后用到的时候再学习。1、开机 物理机服务器,按下电源开关,就像windows开机一样。 在VMware中点击“开启此虚拟机”。2、登录 启动完成后,输入用户名和密码,一般情况下,不要用root用户..._ls-lmore

MySQL基础命令_mysql -u user-程序员宅基地

文章浏览阅读4.1k次。1.登录MYSQL系统命令打开DOS命令框shengfen,以管理员的身份运行命令1:mysql -u usernae -p password命令2:mysql -u username -p password -h 需要连接的mysql主机名(localhost本地主机名)或是mysql的ip地址(默认为:127.0.0.1)-P 端口号(默认:3306端口)使用其中任意一个就OK,输入命令后DOS命令框得到mysql>就说明已经进入了mysql系统2. 查看mysql当中的._mysql -u user

推荐文章

热门文章

相关标签