• 操作系统之进程


    引言

    进程是大多数系统的工作单元,可以将进程看作执行的程序。虽然在传统操作系统中进程包括线程,但其实在一些RTOS中,线程、任务和进程的概念都很模糊,可以说进程≈线程=任务。但无论是在常规操作系统还是实时操作系统中,进程或者说线程和任务都是最重要的概念之一。

    概念

    什么是进程?

    进程是现代分时操作系统的工作单元,在讨论操作系统时,如何称呼所有CPU活动是一个非常重要的问题。批处理系统执行作业,而分时系统使用用户程序或任务。即使是单用户系统,用户也能同时运行多个程序,即便用户一次只能执行一个程序,操作系统也需要支持本身的内部活动,所有这些活动在许多方面都相似,因此称为进程。
    这里再强调一下,进程、作业、任务和线程在很多方面是由相似之处的,甚至概念相同,在开发和使用中一定要灵活使用,不要拘泥于名字。
    进程是执行中的程序,进程的执行必须以顺序方式进行。另一个说法时,一个程序在一个数据集上的一次运行。

    进程包括什么?

    进程包括:

    • 代码(或者称文本段、代码段)
    • 当前活动:
    1. 程序计数器(PC):指向当前要执行的指令(地址)
    2. 堆栈(Stack):存放函数参数、临时变量等临时数据
    3. 数据(Data):全局变量,处理的文件
    4. 堆(Heap):动态内存分配

    进程和程序的区别

    1. 进程是程序的一个实例,是程序的一次执行。
    2. 一个程序可对应一个或多个进程
    3. 一个进程可对应一个或多个程序
    4. 程序是进程的代码部分
    5. 进程是活动实体,程序静止(被动)实体
    6. 进程在内存,程序在外存
    7. 程序是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。进程是动态的,是程序的一次执行过程(同一程序多次执行会对应多个进程)
    8. 当一个可执行文件被加载到内存时,这个程序就成为进程。
    9. 虽然两个进程可以与同一程序相关联,但是当作两个单独的执行序列。
    10. 进程本身也可做为一个环境,用于执行其他代码。

    进程状态

    进程在执行时会改变状态,进程状态,部分取决于进程的当前活动,每个进程可能处于以下状态:

    1. 新建:在创建进程
    2. 运行:指令在执行
    3. 等待:进程等待某些事件发生
    4. 就绪:进程等待分配处理器
    5. 终止:进程执行完毕

    进程控制块

    操作系统内的每个进程表示,采用进程控制块(PCB),也称为任务控制块。
    PCB包含同进程有关的信息,包括:

    1. 进程状态:状态可以包括新的、就绪、等待、运行、等待等
    2. 程序计数器:计数器表示进程将要执行的下个指令的地址
    3. CPU寄存器:根据计算机体系结构的不同,寄存器的类型和数量也会不同。
    4. CPU调度信息:这类信息包括进程优先级、调度队列的指针和其他调度参数。
    5. 内存管理信息:根据操作系统使用的内存系统,这类信息可以包括基地址和界限寄存器的值、页表或段表。
    6. 记账信息:这类信息包括CPU时间、实际使用时间、时间期限、记账数据、作业和进程数量等
    7. I/O状态信息:这类信息包括分配给进程的I/O设备列表、打开文件列表等

    PCB简单地作为这些信息地仓库,这些信息随着进程地不同而不同。

    后续

    如果想了解更多物联网、智能家居项目知识,可以关注我的项目实战专栏和软硬结合专栏。
    欢迎关注公众号了解更多。
    在这里插入图片描述

    编写不易,感谢支持。

  • 相关阅读:
    【InternLM实战营---第七节课笔记】
    Eolink ——通过文档驱动,快速开发接口
    Mycat【Java提高】
    Metricbeat 8.4.0 linux 安装(Metricbeat-part1)
    【C++】一文全解C++中的异常:标准库异常体系&自定义异常体系(含代码演示)
    Windows11配置SQL Server Managment Studio 18(SSMS)
    韩顺平0基础学Java——第27天
    SpringMVC处理请求核心流程
    复杂度(下卷)
    web自动化测试为什么运行错误
  • 原文地址:https://blog.csdn.net/qq_44629109/article/details/125473196