Linux——冯诺依曼体系结构/操作系统

 

目录

1)冯诺依曼体系结构

1.1 发展历史

 1.2 冯诺依曼体系结构构成

1.3 冯诺依曼体系结构理解

1.4 冯诺依曼体系结构结论和分析

以下都是冯诺依曼体系结构的特点决定的:

对冯诺依曼的分析:

2)操作系统

2.1 操作系统的简介

2.2 操作系统的功能

2.3 如何理解“管理”

1.学校的例子理解管理概念

2.银行例子理解操作系统

2.4 操作系统总结


1)冯诺依曼体系结构

1946年,第一台计算机ENIAC诞生,人类进入计算机时代,后来,美籍匈牙利数学家:冯.诺依曼提出了计算机“存储程序”的计算机设计理念,即将计算机指令进行编码后存储在计算机的存储器中,需要的时候可以顺序地执行程序代码,从而控制计算机运行,这就是冯.诺依曼计算机体系的开端。

1.1 发展历史

(参考百度百科冯·诺依曼结构_百度百科 (baidu.com))

        在计算机诞生之前,人们在计算的精度和数量上出现了瓶颈,对于计算机这样的机器的需求就十分强烈,冯·诺依曼的逻辑和计算机思想指导他设计并制造出历史上的第一台通用电子计算机。而他的计算机存储程序的思想,则是他的另一伟大创新,通过内部存储器安放存储程序,成功解决了当时计算机存储容量太小,运算速度过慢的问题(接来来会有具体分析)。

第二次世界大战        第二次世界大战期间,美军要求实验室为其提供计算量庞大的计算结果。于是便有了研制电子计算机的设想。面对这种需求,美国立即组建研发团队,包括许多工程师与物理学家,试图开发全球首台计算机(后世称作ENIAC机)。虽然采取了最先进的电子技术,但缺少原理上的指导。这时,冯·诺依曼出现了。

 人物介绍:约翰·冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家、是20世纪最重要的数学家之一。冯·诺依曼是罗兰大学数学博士,是现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“现代计算机之父”、“博弈论之父”。下图为约翰·冯·诺依曼

Linux——冯诺依曼体系结构/操作系统_第1张图片

 1.2 冯诺依曼体系结构构成

Linux——冯诺依曼体系结构/操作系统_第2张图片

 冯诺依曼体系结构主要由五大部件组成:

1.存储器用来存放数据和程序

2.运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中

3.控制器主要用来控制和指挥程序和数据的输入运行,以及处理运算结果

4.输入设备用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等

5.输出设备可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等


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

  • 输入单元:包括键盘, 鼠标,扫描仪, 写板等
  • 中央处理器(CPU):含有运算器和控制器等(cpu是可以响应外部事件的,协调外部就绪事件,比如拷贝数据到内存)
  • 输出单元:显示器,打印机等

关于冯诺依曼,必须强调几点:

  • 这里的存储器指的是内存
  • 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
  • 一句话,所有设备都只能直接和内存打交道

1.3 冯诺依曼体系结构理解

为什么所有设备只直接和内存打交道:

一般人认为,输入设备直接产生数据,输出设备直接输出数据或者保存数据,cpu处理数据,速度极快,为什么还需要存储器呢?如果内存速度也很快,为什么还需要硬盘?

Linux——冯诺依曼体系结构/操作系统_第3张图片

 原因:

理解以下两个概念

        1. cpu及cpu内部寄存器运算效率远远大于 >> 内存  >> 硬盘/SSD >> 光盘 >> 磁带

  • 寄存器(Register):寄存器与其说是存储器,其实更像是 CPU 本身的一部分,只能存放极其有限的信息,但是速度非常快,和 CPU 同步。
  • 高速缓存(CPU Cache):使用 SRAM(Static Random-Access Memory,静态随机存取存储器)的芯片。
  • 内存(DRAM):使用 DRAM(Dynamic Random Access Memory,动态随机存取存储器)的芯片,比起 SRAM 来说,它的密度更高,有更大的容量,而且它也比 SRAM 芯片便宜不少。
  • 硬盘:如 SSD(Solid-state drive 或 Solid-state disk,固态硬盘)、HDD(Hard Disk Drive,硬盘)。

        2. 木桶效应/短板效应:一只木桶能盛多少水,并不取决于最长的那块木板,而是取决于最短的那块木板。何一个组织,可能面临的一个共同问题,即构成组织的各个部分往往是优劣不齐的,而劣势部分往往决定整个组织的水平。

1. 一方面:

        计算机对于整个系统的效率,不是由这个体统最快的决定,而是最慢的决定的。

        如果按照以上方法涉及,在和cpu直接交互时,会极大拖慢cpu速度,进而导致整个计算机体系效率的降低。

        因为有存储器的存在,就给了我们能在软件上做文章,我们就可以预先将外设的数据加载到存储器当中,我们cpu再读数据,便会直接访问存储器,而不会直接访问外设。正因为存储器的存在,可以用一些软件策略,比如操作系统,预先将外设数据加载存储器,以后计算机效率的短板就不再是输入设备,而是内存。这样就会一定程度上大大缓解整机效率问题

2. 另一方面:

        硬盘光盘磁盘等外部存储器断电后,存储数据仍然有效,但是内存,cpu寄存器断电后,数据便会失效,掉电易失存储介质。

        价格问题,看下图,可知,凡是被广泛传播的产品,一定是价格便宜,质量ok的,而冯诺依曼体系被广泛应用的原因正是因为,效率价格问题。

Linux——冯诺依曼体系结构/操作系统_第4张图片

 

Linux——冯诺依曼体系结构/操作系统_第5张图片

 

1.4 冯诺依曼体系结构结论和分析

以下都是冯诺依曼体系结构的特点决定的:

1.cpu读取数据,都是要从内存中读取,(将数据从外设搬到内存,从内存到外设,一般涉及DMA技术直接内存访问_百度百科 (baidu.com),但是或多或少一般还是要有cpu进行参与)站在数据角度,我们认为cup不直接和外设直接打交道

2.cpu要处理数据,需要先将数据,加载到内存。站在数据角度,外设只和内存打交道

3.程序要运行,必须先被加载到内存中(程序本身就是个文件,文件就在磁盘上,而cpu访问数据从内存提取)

对冯诺依曼的分析:

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上,如:从你登录上qq开始和某位朋友聊天开始,数据的流动过程

通过键盘输入数据,数据被加载到内存,qq一定是以进程的状态在内存里,qq获取到你输入的数据,数据经过网络发送时,这个数据会被添加很多包头,例如发快递,进行封装包头,由cpu计算,添加,拷贝等操作,再将发送数据写回对应的内存,不考虑其他因素,接下来,将数据刷新到外设里,此处的外设一般是网卡,到对面设备,一定是设备硬件先收到打包数据,这个硬件一定是输入设备,网卡,将数据加载到内存,cpu对数据项计算(例如收快递)计算完成,流入内存,刷新到输出设备显示器

2)操作系统

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

内核(进程管理,内存管理,文件管理,驱动管理)

其他程序(例如函数库,shell程序等等)

设计OS的目的:

与硬件交互,管理所有的软硬件资源

为用户程序(应用程序)提供一个良好、稳定、安全的执行环境

2.1 操作系统的简介

        在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。从计算机用户的角度来说,计算机操作系统体现为其提供的各项服务;从程序员的角度来说,其主要是指用户登录的界面或者接口;如果从设计人员的角度来说,就是指各式各样模块和单元之间的联系。事实上,全新操作系统的设计和改良的关键工作就是对体系结构的设计,经过几十年以来的发展,计算机操作系统已经由一开始的简单控制循环体发展成为较为复杂的分布式操作系统,再加上计算机用户需求的愈发多样化,计算机操作系统已经成为既复杂而又庞大的计算机软件系统之一

   操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

定义:操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件

目标:方便性,有效性(提高系统资源的利用率、提高系统的吞吐量),可扩充性,开放性。

2.2 操作系统的功能

操作系统主要包括以下几个方面的功能 :

①进程管理,其工作主要是进程调度,在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占, 进程管理的工作十分简单。但在多道程序或多用户的情况 下,组织多个作业或任务时,就要解决处理器的调度、 分配和回收等问题 。

②存储管理分为几种功能:存储分配、存储共享、存储保护 、存储扩张。

③设备管理分有以下功能:设备分配、设备传输控制 、设备独立性。

④文件管理:文件存储空间的管理、目录管理 、文件操作管理、文件保护。

⑤作业管理是负责处理用户提交的任何要求。

实现:

  1. 统一管理计算机资源:处理器资源,IO设备资源,存储器资源,文件资源;
  2. 实现了对计算机资源的抽象:IO设备管理软件提供读写接口,文件管理软件提供操作文件接;
  3. 提供了用户与计算机之间的接口:GUI(图形用户界面),命令形式,系统调用形式。

由操作系统的功能可以看出:

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

2.3 如何理解“管理”

1.学校的例子理解管理概念

现实生活中我们做事情,一般就做两种事情:一种是决策,一种是执行

假设学校有:校长、辅导员、学生

学生——属于被管理者 , 校长——属于管理者 , 辅导员——执行者

Linux——冯诺依曼体系结构/操作系统_第6张图片

 

1.管理者 和 被管理者,可以不直接沟通。如校长并不直接和学生进行沟通。那如何做到管理的呢?

2.拿到 被管理者 的核心数据,来进行支持管理决策,从而进行管理。如通过对 辅导员 发出决策,统计学习学生成绩 ,进行分析

3.管理者 拿到数据 做决策 ,此时就需要 执行者,执行。如,校长通过学生数据,决定开除某人,此时就需要辅导员进行告知执行

从以上分析,可见管理者就相当于 OS ,而执行者相当于 驱动程序,而 被管理者相当于 硬件。

通过执行者对单独学生信息的获取,就相当于构建一个结构体,或对象,而获取所有学生的数据就相当于定义了一个结构体数组或结构体进行封装。校长想要通过数据做出决策,如获取成绩最差,表现最差的学生,相当于设计一个对数据进行按照某种规则排序的算法。

先对被管理者对象进行描述,再根据描述类型,定义对象,可以把对象进行组织成数组---》对学生的管理工作,就变成了,对数组的增删改查!

总结:管理就是先描述,在组织管理

Linux内核是通过C语言写的! 而管理各种资源,软硬件,都需要用struct描述,再通过各种数据结构以及算法进行组织管理

2.银行例子理解操作系统

假设银行系统结构如下:

Linux——冯诺依曼体系结构/操作系统_第7张图片

 由上图可知,保安管理仓库,it部负责电脑设备等,可以看做驱动程序对硬件进行的管理,

而驱动层对硬件的指令需要行长下达,因此行长,经理,业务热人员也就相当于多各个方面进行管理的角色。

银行只提供柜台办理,其内核系统全是封闭状态,相当于对操作系统内核的封装,只提供一些接口。

而银行外具有业务员,需要对不懂得客户提供各种服务,并且可以通过智能化设备直接进行接口访问,对接口进行封装,如图形化界面、shell外壳。

总结:

由此可看出操作系统得结构层次:

Linux——冯诺依曼体系结构/操作系统_第8张图片

 通过对接口的封装演化出,图形化界面GUI,shell外壳CLI,共同构出操作系统:

如windows、Linux、mac OS等

2.4 操作系统总结

计算机管理硬件:

1. 描述起来,用struct结构体

2. 组织起来,用链表或其他高效的数据结构

系统调用和库函数概念:

  • 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分 由操作系统提供的接口,叫做系统调用。
  • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统 调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

Linux——冯诺依曼体系结构/操作系统_第9张图片

你可能感兴趣的:(Linux,linux,运维,服务器)