冯诺依曼体系结构与进程概念理解

这篇具有很好参考价值的文章主要介绍了冯诺依曼体系结构与进程概念理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 先谈硬件

1、初步理解冯诺依曼体系结构

2、理解各个模块之间的协作

2. 再谈软件

1、为什么要有操作系统

2、操作系统如何管理软硬件资源

3. 再谈进程

1、什么是进程

2、如何理解进程

3、Linux 是如何管理进程的

写在最后:


1. 先谈硬件

1、初步理解冯诺依曼体系结构

我现在认识的计算机,都是由一个个硬件组成的,他们都遵循这这样一个体系:

冯诺依曼体系结构与进程概念理解,Linux系统编程,linux

我们先来慢慢理解一下冯诺依曼体系结构:

1)存储器指的是什么?

存储器指的就是内存,而我们的磁盘之类的硬件是输入输出设备。

2)输入设备:键盘,摄像头,话筒,磁盘,网卡...

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

输入输出设备也称之为外部设备,也就是所谓的外设。

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

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

我们把这两个统称为中央处理器,也就是 CPU 。

而这五大部件都是独立的个体。想要他们系统的工作,

各个硬件单元就必须用 “线” 连接起来,我们称这些线为总线:1. 系统总线,2. IO 总线 。

2、理解各个模块之间的协作

还是这张图:

冯诺依曼体系结构与进程概念理解,Linux系统编程,linux

先说结论:

先从输入设备交到存储器,中央处理器从存储器中拿数据,然后在内部做计算,然后把计算的结果再写回存储器,再将数据刷新到输入设备中。这个是冯诺依曼体系中,数据的流向。

我们来聊一聊存储:

冯诺依曼体系结构与进程概念理解,Linux系统编程,linux

一般来说,存储容量越大,速度就会越慢。正是因为这样,我们这个体系中才需要内存作为缓冲,让速度很慢的外设和速度很快的中央处理器能够通过内存更好的交互数据。

说了这么多模块之间的协作,谁来实现他们的协作呢?操作系统。

2. 再谈软件

我们的电脑里面有着 qq,微信,浏览器等等,计算机怎么知道什么时候使用他们?所以我们就需要一个东西总体上将他们统筹起来。也就是操作系统,

操作系统是一款进行管理的软件,他能对硬件和软件进行管理。

1、为什么要有操作系统

整个计算机是一个层状的结构,来看这样一个图:

冯诺依曼体系结构与进程概念理解,Linux系统编程,linux

从下往上,先是硬件和驱动程序,所有的硬件如果需要被软件使用,都需要配上相应的驱动程序,我们可以把他们理解成直接跟硬件打交道的软件,再往上就是操作系统,而我们之后需要重点学习的就是进程管理和文件管理相关的内容。

回到原来的话题,我们为什么需要有操作系统呢?

1)操作系统帮助用户,管理好这些软硬件资源。(手段)

2)为了给用户提供一个良好(稳定,高效,安全)的运行环境。(目的)

操作系统里面有着各种各样的数据,但是,操作系统不信任所有用户!所以操作系统为了保证自己数据安全,也为了保证给用户提供服务,操作系统就以接口的方式给用户提供了调用的入口,来获取操作系统内部的资源。

那什么是接口呢?Linux 操作系统本质上就是用 C语言 写的,所以所谓的接口其实就是 C语言 实现的自己内部的函数调用,我们称之为系统调用。而,所有访问操作系统的行为,都只能通过系统调用来完成。

所以看回那个图,再往上就是 system call 系统调用接口。

接着就是用户操作接口,有我们熟悉的 shell 外壳,然后是 lib,也就是库,因为系统调用还是比较的复杂,有些语言之类的就会将其封装成库供我们使用。

任何一门语言,如果他们想要直接或间接的使用到硬件,就必须经过操作系统,而经过操作系统就必须要使用系统调用接口。

那么如上就是计算机的整体层状结构了。

2、操作系统如何管理软硬件资源

我们先来理解一下什么是管理:

1)管理者和被管理者是不需要见面的(就像在学校,我们作为学生一般也不会和校长见面,在公司,我们一般也不会和老板一直见面(小公司当我没说))

2)管理者在见不到被管理者的情况下如何做好管理呢?核心在于管理信息,只要管理者得到管理信息,就能在未来进行管理决策 —— 管理的本质是通过对 ‘数据’ 的管理,达到对人的管理。

3)管理者和被管理者面都不见,该怎么拿到对应的数据呢?(先补充一个概念:什么是管理者?我们一般将世界上所有的事情分成两种,一种是决策,一种是执行,举个例子:今晚吃什么?吃面吧。这是决策;我现在去煮面。这是执行。做决策其实就是管理者,做执行的就是被管理者。不过在我们日常生活里,决策和执行基本都是一体的。)管理者需要通过执行者拿到对应的数据。

所以!

操作系统在进行管理的时候,需要见到软硬件吗?不需要,那操作系统该怎么拿到他们的状态数据呢?以硬件为例,操作系统就是通过驱动程序获取数据。

操作系统管理任何东西,都一定是遵循着 “先描述,再组织” 的策略,使用结构体对一个对象进行描述,然后将它用一个数据结构组织起来,这样就能达到一种状态:在操作系统中,管理任何对象,最终都可以转化成为对某种数据结构的增删查改。

结论:操作系统如何管理?

先描述,再组织。

3. 再谈进程

1、什么是进程

一个已经加载到内存中的程序,叫做进程。

我们到 Linux 下写一个进程瞧一瞧:

冯诺依曼体系结构与进程概念理解,Linux系统编程,linux

我们简单写一个程序,然后跑起来:

 冯诺依曼体系结构与进程概念理解,Linux系统编程,linux

然后我们复制一个 SSH 渠道,然后查看一下进程:

ps axj | head -1 && ps axj | grep process

冯诺依曼体系结构与进程概念理解,Linux系统编程,linux

所以其实,正在运行的程序,就叫做进程。        

2、如何理解进程

一个操作系统,不仅仅只能运行一个进程,可以同时运行多个进程。

操作系统必须把进程管理起来,那该如何管理进程呢?先描述,再组织。

任何一个进程,在加载到内存的时候,在形成真正的进程时,操作系统需要先创建用于描述进程的结构体对象 —— PCB,process ctrl block —— 进程控制块。

问题来了,该这么描述进程呢?用各种属性的集合来描述一个东西。所以所谓的 PCB 其实就是进程属性的集合。所以 PCB 就是一个结构体:

struct PCB {

        进程的编号,

        进程的状态,

        进程的优先级,

        ... ... 

}

系统会根据进程的 PCB 类型,为该进程创建对应的 PCB 对象。

那么什么是进程,进程就是 PCB 吗?并不是,进程其实是:

进程 = 内核 PCB 数据结构对象 + 对应程序的代码和数据

而进程的 PCB ,当然就包含描述进程的所有属性。那这样子,操作系统进行管理的就不是你的代码和数据,他只需要管理这个进程 PCB 即可。这样子,操作系统对进程的所有管理操作就都变成了对 PCB 这样一个数据结构的增删查改。

3、Linux 是如何管理进程的

前面我们理解了进程是什么样的,那 Linux 操作系统具体又是如何组织管理进程的呢?

Linux 操作系统下的 PCB 是:task_struct(进程其实也有人称其为任务),在 Linux 内核中采取的是基本的双链表的形式来组织进程 task_struct 。 

至于 task_struct 究竟是什么样的,那就,欲知后事如何,且听下回分解~

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~文章来源地址https://www.toymoban.com/news/detail-635932.html

到了这里,关于冯诺依曼体系结构与进程概念理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】冯诺依曼体系结构和操作系统概念

    数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。 现代计算机发展所遵循的基本结构形式始终是冯·诺依曼机结构。这

    2024年02月02日
    浏览(43)
  • 【Linux】冯诺依曼体系结构与进程的基础知识点

    计算器、笔记本、服务器大都遵循冯诺依曼体系结构。 结构如下图所示: 外设:速度相对慢,价格相对较低(输入输出设备都属于外设) 内存:速度相对快,价格相对较高,数据掉电易失 CPU:速度最快,价格高 1.那么是否可以不通过存储器,直接使用输入设备将数据传给

    2023年04月24日
    浏览(38)
  • 【Linux】操作系统的基本概念 {冯诺依曼体系结构,操作系统的基本概念,系统调用及用户操作接口,shell程序}

    现代计算机设计大都遵守冯·诺依曼体系结构: 截至目前,我们所认识的计算机,都是由一个个的硬件组件组成 输入单元:包括键盘, 鼠标,扫描仪, 磁盘,网卡等 存储器: 内存(提高数据读写速度,降低硬件成本) 中央处理器(CPU):含有运算器(算数运算,逻辑运算)和控

    2024年02月11日
    浏览(38)
  • 理解冯.诺依曼体系结构(操作系统和进程)

    冯诺依曼体系结构特性: 冯诺依曼体系结构中的 存储器 指的是 内存 ——一种 硬件级别的缓存空间 (介于IO设备与CPU之间,只有 数据存储和读写功能 ,并且具有 较高的数据读写速度 的 独立单元 )(内存中存储二进制数据) CPU和IO设备之间 不能直接进行数据传输 ,CPU和IO设备之间的

    2024年02月16日
    浏览(32)
  • 【Linux】冯诺伊曼体系结构|操作系统概念理解

    个人主页:🍝在肯德基吃麻辣烫 我的gitee:Linux仓库 个人专栏:Linux专栏 分享一句喜欢的话:热烈的火焰,冰封在最沉默的火山深处 本文进入Linux较为晦涩的概念——冯诺依曼体系结构和操作系统的理解。 冯诺依曼体系结构是我们日常计算机都遵守的一个整体架构,计算机

    2024年02月14日
    浏览(49)
  • 冯诺依曼体系结构

    冯·诺依曼体系结构(von Neumann architecture)是现代计算机体系结构的基础,也是目前广泛应用的计算机体系结构之一。它是由物理学家、数学家冯·诺依曼在1945年提出的,被认为是现代计算机的奠基之作。冯·诺依曼体系结构具有存储程序和通用性的特点,这意味着计算机的指

    2023年04月23日
    浏览(31)
  • 【Linux】冯诺依曼体系结构思想

    🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专栏:Linux入门到精通 🎉代码仓库:小智的代码仓库 我们常见的计算机,比如笔记本,还有我们不常见的计算机,比如服务器,大部分都遵守冯诺依曼体系。 当我们谈论计算机的体系结构时,冯·诺依

    2024年02月16日
    浏览(35)
  • 【Linux系统编程】冯诺依曼体系结构

    目录 前言 什么是冯诺依曼体系结构? 冯诺依曼体系结构如何进行数据处理的? 存储器在冯诺依曼体系中有什么作用? 冯诺依曼体系结构为什么要这样设计? 冯诺依曼结构总结 相信对于冯诺依曼这个人的名字大家一定不会感到陌生,他被称为“现代计算机之父” 而在他生

    2024年02月14日
    浏览(31)
  • Linux ----冯诺依曼体系结构与操作系统

    目录 前言 一、冯诺依曼体系结构 二、为什么选择冯诺依曼体系结构? 三、使用冯诺依曼结构解释问题 问题1: 问题2: 四、操作系统 1.操作系统是什么 2.为什么需要操作系统 3.操作系统怎样管理的 4.如何给用户提供良好环境 五、我们是怎样调用系统接口的 六、总结  了解冯

    2024年02月02日
    浏览(40)
  • 【Linux从入门到精通】了解冯诺依曼体系结构

      本片文章会对 冯诺依曼体系结构 进行详解。同时,我们 对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。本片文章同时也会对 数据在冯诺依曼结构上的交互 进行讲解。希望本篇文章会对你有所所帮助。   文章目录 一、简单认识冯诺依曼体系结构

    2024年02月03日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包