欢迎光临
我们一直在努力

【Linux】 进程(1) 从冯诺依曼体系到进程核心概念


   操作系统基础入门:从冯诺依曼体系到进程核心概念  

        操作系统是计算机体系中承上启下的核心软件:向下接管全部硬件资源,屏蔽底层实现细节;向上为应用程序与普通用户提供统一、易用的交互接口。

一、冯诺依曼体系结构:现代计算机的硬件基石

        冯诺依曼体系是当代所有通用计算机的底层架构标准,由数学家冯·诺依曼提出,核心思想是存储程序原理——将程序指令与运算数据共同存储在存储器中,计算机按照指令序列自动、顺序地执行计算。

这套体系由五大核心部件构成:

  • 运算器:也叫算术逻辑单元(ALU),负责执行算术运算与逻辑运算,是数据处理的核心单元。
  • 控制器:负责指令的读取、译码与执行调度,协调所有硬件部件按序工作,是计算机的“指挥中心”。
  • 存储器:核心是内存,用于存放运行中的程序与数据,通过地址进行读写访问,是CPU与外设数据交互的中间载体。
  • 输入设备:向计算机输入数据与指令的外部设备,典型如键盘、鼠标、扫描仪。
  • 输出设备:向外输出计算结果的设备,典型如显示器、打印机、音响。
  •         如今的CPU已经将运算器与控制器集成,并增加了多级缓存来提升性能,但冯诺依曼体系“存储程序、顺序执行”的核心逻辑始终未变,它是我们理解操作系统所有管理行为的硬件基础。


    二、操作系统(Operating System)核心认知

    2-1 操作系统的概念

            操作系统是管理计算机硬件与软件资源的系统软件,是用户、应用程序与计算机硬件之间的中间层,也是整个计算机系统的“大管家”。

            它向下直接对接CPU、内存、磁盘、各类外设等硬件,屏蔽底层复杂的硬件操作细节;向上为应用开发者、普通用户提供简单、统一、安全的使用接口。我们日常使用的Linux、Windows、macOS都属于典型的通用操作系统。

    2-2 设计操作系统的核心目的

    操作系统的诞生与迭代,本质是解决硬件“难用、低效、不兼容”的问题,核心目标有四点:

  • 提升易用性:屏蔽硬件的底层操作细节,让用户和开发者无需直接操控硬件,通过简单接口即可完成计算任务。比如保存文件时,用户无需关心磁盘的磁道、扇区划分,操作系统会完成全部底层操作。
  • 提升资源利用率:通过合理的调度与分配策略,让CPU、内存、磁盘等硬件资源被充分利用。比如CPU分时复用、内存空间复用,支持多个程序同时运行,最大化硬件价值。
  • 屏蔽硬件差异:对上层提供统一的抽象接口,抹平不同硬件型号的差异。同一份应用程序可以在不同品牌的CPU、磁盘设备上运行,正是依赖操作系统的硬件抽象能力。
  • 保障稳定与安全:通过权限隔离、错误捕获等机制,避免单个程序崩溃影响整个系统;同时通过权限管控、访问控制,保护系统与用户数据的安全。
  • 2-3 操作系统的核心功能

    操作系统的管理能力,拆解为五大核心模块:

    • 进程管理:CPU资源的管理者,负责进程的创建、调度、同步、通信与销毁,处理死锁问题,决定CPU的使用权分配。
    • 内存管理:内存资源的管理者,负责内存分配、地址映射、内存保护与虚拟内存实现,保证进程间内存空间相互隔离。
    • 文件管理:磁盘资源的管理者,将磁盘的物理存储抽象为树形文件系统,负责文件存储、目录管理、读写控制与权限管理。
    • 设备管理:外设资源的管理者,提供设备驱动、I/O控制、设备分配与缓冲管理,让上层程序无需关心具体硬件型号。
    • 用户接口:对外提供两类交互入口,面向普通用户的命令接口/图形界面,以及面向开发者的程序接口(系统调用)。

    2-4 如何理解操作系统的“管理”

    “管理”是操作系统的核心本质,可以总结为六个字:先描述,再组织。

  • 描述资源:用数据结构把所有被管理的对象进行数字化定义。比如用进程控制块(PCB)描述一个进程,用页表描述内存分配状态,用inode描述一个文件。所有资源的属性、状态、位置,都会被操作系统以结构体等形式记录下来。
  • 组织资源:把描述好的资源对象,用合适的数据结构串联组织,方便查找、修改与遍历。比如用链表管理所有进程,用树形结构管理文件目录,用队列管理等待调度的任务。
  • 调度与管控:基于组织好的数据,通过算法与策略实现资源的分配、调度、回收与保护。比如用进程调度算法决定CPU分配给哪个进程,用内存分配算法决定为程序分配哪块内存空间。
  •         简单来说,操作系统的“管理”,就是用数据结构定义资源,用算法调度资源,最终实现高效、安全的资源分配。

    2-5 系统调用和库函数概念

            在操作系统之上开发程序时,系统调用与库函数是高频接触的两个概念,二者层级与定位有本质区别:

    • 系统调用:是操作系统内核提供给应用程序的原生编程接口,是用户态程序进入内核态的唯一入口。系统调用直接操作内核资源,比如创建进程的fork、打开文件的open,执行时会发生用户态到内核态的上下文切换,开销相对较大,且强依赖具体操作系统。
    • 库函数:是编程语言标准库(如C标准库)提供的函数,运行在用户态。一部分库函数封装了系统调用(比如printf底层封装了write系统调用),为开发者提供更友好的使用方式;另一部分库函数完全工作在用户态,不涉及内核操作,比如字符串处理函数strcpy、数学计算函数sqrt。

    二者核心差异:

  • 层级不同:系统调用属于内核层,库函数属于用户层;
  • 性能开销:系统调用需要切换内核态,上下文切换开销大;库函数是普通函数调用,开销极低;
  • 可移植性:库函数跨平台兼容性强,不同系统的标准库接口基本一致;系统调用强依赖操作系统,不同平台存在差异。
  • 三、进程概念入门

            进程是操作系统最核心的概念之一,是系统进行资源分配和调度的基本单位。

    进程的定义:

            进程是程序的一次执行过程,是运行中程序的动态实例。 存放在磁盘上的代码与数据是静态的“程序”,当程序被加载到内存、开始执行时,就成为了一个“进程”。

            同一个程序可以同时对应多个进程(比如同时打开多个浏览器窗口),每个进程拥有独立的内存空间、运行状态,操作系统通过进程控制块(PCB)对所有进程进行统一管理。

            进程拥有完整的生命周期,会经历创建、就绪、运行、阻塞、销毁等多个状态;操作系统通过进程调度机制,控制CPU在不同进程之间快速切换,从而实现多任务并发运行。

            从冯诺依曼的硬件体系,到操作系统的资源管理,再到进程这个执行单元,是理解操作系统的完整逻辑链路。操作系统的所有设计,始终围绕“硬件资源高效管理”与“用户使用便利”两个核心展开。



    赞(0)
    未经允许不得转载:171主机测评 » 【Linux】 进程(1) 从冯诺依曼体系到进程核心概念
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址