Linux--进程(一篇博客让你理解操作系统的底层)

这篇具有很好参考价值的文章主要介绍了Linux--进程(一篇博客让你理解操作系统的底层)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux–进程

本篇博客讲开始进入进程模块,我们先从冯诺依曼的体系结构和操作系统讲起,由浅入深,先梳理一个Linux相关知识体系框架~

一、冯诺依曼体系结构

  身为一个程序员,我们必须要了解冯诺依曼体系结构,比如我们常见的笔记本电脑,不常见的计算机,如云服务器等,绝大多数都遵循我们的冯诺依曼体系结构。

Linux--进程(一篇博客让你理解操作系统的底层)

1.1外围设备

输入输出设备我们称之为外围设备,简称外设,外设一般都会比较慢一些,以磁盘为例,相比于我们的计算机内存,磁盘是很慢的。

我们先来看一下我们的输入设备:

输入设备顾名思义就是我们使用的将信息传递进入计算机的设备,如我们的麦克风,摄像头,键盘,网卡磁盘

接下来是我们的输出设备:

输出设备就是将计算机处理好的信息传递给我们用户的设备,比如我们的显示器,网卡磁盘声卡,音响…

在这里可能有人就会疑惑了,某个设备可以既是输入设备又是输出设备吗?

当然可以啦!我们的网卡,磁盘就同时是输入设备又是输出设备。

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

1.这里的存储器指的是内存

2.不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)

3.外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

4.一句话,所有设备都只能直接和内存打交道。

1.2中央处理器(CPU)

  中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。
  在计算机体系结构中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。CPU 是计算机的运算和控制核心。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。

  通俗点说,CPU就是计算机处理数据,运算和控制的核心,从内存中读取数据然后经过CPU处理解密之后返回给内存,在从内存向输出设备输出给我们的用户。

  那么问题就来了,为什么我们还要多一个存储器(内存)呢?直接从输入设备拿数据然后给CPU处理后返回给输出设备不就好了吗?也就是如下结构:

Linux--进程(一篇博客让你理解操作系统的底层)

​   原因是我们的CPU运算速度是非常非常快的,但是我们外设的速度相对来说会慢很多,我们根据木桶原理,外设这里速度很慢导致我们的CPU大部分时间没有事情可做,整体效率就是以外设决定,导致计算机的运算速度大幅度降低,所以我们就有了冯诺依曼体系结构里面的另一个重要的部分——存储器

1.3存储器(内存)

我们这里的存储器指的是内存

1.3.1什么是内存?

  内存(Memory) 是计算机中最重要的部件之一,它是程序与CPU进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,因此内存对计算机的影响非常大,内存又被称为主存,其作用是存放CPU中的运算数据, 以及与硬盘等外部存储设备交换的数据。

  只要计算机在运行中, CPU就会把需要运算的数据调到主存中进行运算, 当运算完成后CPU再将结果传送出来, 主存的运行也决定了计算机的稳定运行

  我们的CPU掉电易失数据,但是我们的内存就不会这样,只要数据放在了内存里面,掉电也不会丢失数据。

  我们的存储器(内存)就是为了提高计算机的效率,有了内存之后我们的外设就向内存写入数据和读取数据,CPU只和我们的存储器交互,不和我们的外设交互,外设也只和我们的存储器交互不和CPU交互

  同时我们要知道的是我们的存储器(内存)性价比相对来说很高。

  因为有了内存的存在,我们就可以对数据做预加载,CPU以后在进行数据计算的时候,根本就不需要访问外设了,而只要直接伸手向内存要就可以啦,我们计算机的效率也就大大提高了。

1.4总结

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

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

接下来我们理解一个问题:可执行程序是不是一个文件呢?

答案是肯定的,可执行程序是一个文件,它存储在磁盘里,向外设输出。

为什么我们的程序必须先被加载到内存中呢?

因为是由我们的冯诺依曼体系结构决定的! ./bin.exe

二、数据流的流向理解

  我们在这里要看一下在硬件层面,单机和跨主机之间数据流是如何流向的!

  我们先举一个例子,我们每个人现在离不开的一个工具就是聊天软件,我们来看看整个信息是如何在体系结构中流动的。

Linux--进程(一篇博客让你理解操作系统的底层)

三、操作系统(Operator System)

接下来就要进入我们的重点知识,操作系统的讲解了。

1.概念

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

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

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

2.设计OS的目的

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

为用户程序(应用程序)提供一个良好的执行环境

3.定位

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

通俗点来讲:我们的操作系统就是进行软硬件资源管理的软件

4.如何理解 “管理”

  首先我们通过一个具体的例子来帮助我们理解操作系统是如何对硬件做管理的:

Linux--进程(一篇博客让你理解操作系统的底层)

上述行为就是对我们管理做建模,我们分析如下:

管理的本质:对被管理对象的数据做管理

1.管理者和被管理者其实是不需要直接接触沟通的!

2.管理者和被管理者没有直接接触怎么管理数据的呢?

辅导员(硬件驱动)

管理的本质:先描述,在组织

描述:将抽象数据具体化的过程,如结构体等

组织:将具体化的数据,如结构体通过数据结构的方式管理

总结:

计算机管理硬件

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

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

5.操作系统为什么对软硬件资源进行管理

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

6.系统调用和库函数概念

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

  我们使用操作系统并不是直接进入操作系统内部操作,操作系统也要保证自己的安全,所以它不会让我们为所欲为。

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

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

Linux--进程(一篇博客让你理解操作系统的底层)

Linux底层实现是C语言

四、总结

  本篇博客主要是进程学习的铺垫,涉及冯诺依曼体系结构,数据流的流向理解以及操作系统的理解,由浅入深,重点讲解我们的Linux是怎么管理我们的进程的,图形结合可以帮助大家更快的理解我们的进程~希望这篇博客可以帮助到大家!文章来源地址https://www.toymoban.com/news/detail-452015.html

到了这里,关于Linux--进程(一篇博客让你理解操作系统的底层)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Linux操作系统篇:进程

    Linux操作系统篇:进程

    我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系 为什么计算机要采用冯诺依曼体系呢? 在计算机出现之前有很多人都提出过计算机体系结构,但最终选择冯诺依曼是因为用比较少的钱就可以做出效率不错的计算机 截至目前,我们

    2024年03月18日
    浏览(34)
  • 【Linux】操作系统&&进程概念

    【Linux】操作系统&&进程概念

    冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构 。数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成( 运算器、控制器、存储器、输入设备、输出设备 ),这

    2024年01月16日
    浏览(15)
  • Linux--操作系统进程的状态

    Linux--操作系统进程的状态

    【Linux】进程概念 —— 进程状态_linux d状态进程_Hello_World_213的博客-CSDN博客 新建: 字面意思,将你的task_struct创建出来并且还未入队列 运行: task_struct结构体在运行队列中排队,就叫做运行态 阻塞: 等待非CPU资源就绪,阻塞状态   挂起: 当内存不足的时候,OS通过适当的

    2024年02月15日
    浏览(20)
  • 【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解

    【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解

    1、概念 (1)什么是冯诺伊曼体系结构? 数学家冯·诺伊曼于 1946 年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 冯·诺伊曼理论的要点是:计算机的数制采用二进制逻辑;计算机应该按照程序顺序执行。人们把冯·诺伊曼的

    2024年02月22日
    浏览(11)
  • 操作系统练习:在Linux上创建进程,及查看进程状态

    操作系统练习:在Linux上创建进程,及查看进程状态

    进程在执行过程中可以创建多个新的进程。创建进程称为“父进程”,新的进程称为“子进程”。每个新的进程可以再创建其他进程,从而形成进程树。 每个进程都有一个唯一的进程标识符(process identifier,pid)。在Linux中,init进程是所有其他进程的根进程。 在Linux中,可以

    2024年02月12日
    浏览(11)
  • Linux操作系统——第五章 进程信号

    Linux操作系统——第五章 进程信号

          目录 信号概念 用kill -l命令可以察看系统定义的信号列表 信号处理常见方式概览 产生信号 1. 通过终端按键产生信号 2. 调用系统函数向进程发信号 3. 由软件条件产生信号 4. 硬件异常产生信号 阻塞信号 1. 信号其他相关常见概念 2. 在内核中的表示 3. sigset_t 4. 信号集操作

    2024年02月11日
    浏览(12)
  • 操作系统课程设计-Linux 进程控制

    操作系统课程设计-Linux 进程控制

    目录 前言 1 实验题目 2 实验目的 3 实验内容 3.1 进程的创建 3.1.1 步骤 3.1.2 关键代码 3.2 子进程执行新任务 3.2.1 步骤 3.2.2 关键代码 4 实验结果与分析 4.1 进程的创建 4.2 子进程执行新任务 5 代码 5.1 进程的创建 5.2 子进程执行新任务          本实验为课设内容,博客内容为

    2024年01月18日
    浏览(14)
  • 【Linux】操作系统与进程的概念

    【Linux】操作系统与进程的概念

    目录 冯诺依曼体系 注意 为什么CPU不直接访问输入或输出设备? 跨主机间数据的传递 操作系统 管理 进程 描述进程 进程的查看和终止  bash 通过系统调用创建子进程 fork的辨析 🥖冯·诺依曼结构也称普林斯顿结构,是一种 将程序指令存储器和数据存储器合并在一起的存储器

    2024年01月18日
    浏览(10)
  • 麒麟操作系统(Linux)使用和维护:进程相关的操作命令

    麒麟操作系统(Linux)使用和维护:进程相关的操作命令

      目录 1. 查看进程 2. top命令实时监控进程 3. 杀死进程 4. 图形界面查看和杀死进程         作为国产操作系统,无论是银河麒麟,还是中标麒麟,它们的服务器操作系统或者桌面操作系统,已经广泛应用于工业生产和科学研究领域。因为麒麟操作系统的内核是Linux系统内

    2024年02月04日
    浏览(10)
  • Linux操作系统-06-进程与服务管理

    Linux操作系统-06-进程与服务管理

    使用ps命令查看进程。包括过滤进程信息 使用systemctl命令管理和运行Linux服务 进程(Process):操作系统正在运行的应用程序。任意一个进程,都会消耗CPU和内存资源, 服务(Service):通过服务控制面板直接启动的应用程序,也可能是操作系统启动时自启动的后台应用程序。

    2024年03月12日
    浏览(12)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包