操作系统进程定义和PCB详解

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

   进程的定义和PCB

      什么是进程?进程就是一个运行起来(也就是说加载到内存)的一个程序。而程序的本质就是文件,当我们写完代码保存,它便形成了一个保存在磁盘上的二进制代码文件。由于冯诺伊曼体系,cpu只和存储进行数据交流,因此要想cpu执行,必须先将外存上的文件载入内存中,而磁盘上文件加载到了内存时也就变成了进程。

    PCB:事实上由于在内存中同时运行的进程很多,操作系统需要对所有的进程进行一个统一的管理调度,就例如大学校园里学校将每个学生的学号,姓名,年龄通过excel管理在一张表上,操作系统在内部定义了一个PCB(Process Control Block)进程控制块。  PCB本质上就是一个内核用c语言定义的结构体。 当一个进程进入到内存时,操作系统就对应的创建一个进程控制块PCB对该进程进行管理,每个PCB都有一个唯一的PID。所谓创建进程,其实就是创建PCB。

    类似的,PCB将进程的各种特征通过一个struck结构体保存,操作系统通过结构体指针对进程进行操作。类似于:

struct task_struct {
          //进程所有属性
          //进程所对应的代码和地址
          struct tast_struct *next;//指向下一个进程的指针
                  }
            struct tast_struct *p1 = malloc(struct task_struct);
                  p1->进程属性;
            

而同时内存为了管理不同的PCB,操作系统创建了一个数据结构对PCB进行管理。将PCB依次首尾相连构建成一个链表。

其好处是,对进程管理就简化成对进程的PCB整个链表进行管理。进程控制就变为了对PCB链表这个内核数据结构的增删查改。

(有的内核版本管理PCB的数据结构可能不是链表,还可以是数组,索引表等数据结构)

操作系统进程定义和PCB详解,单片机,stm32,嵌入式硬件

如图所示,可以更好的理解PCB,进程,文件之间的关系。进程 = 该进程的代码 + 指向该进程的进程控制块(PCB)。

操作系统进程定义和PCB详解,单片机,stm32,嵌入式硬件windows任务管理器就是一个直观的例子。

通过一个例子具体观察一下linux操作系统中的进程,我们可以编写一个可执行程序myproc,让它显示自己的pid:操作系统进程定义和PCB详解,单片机,stm32,嵌入式硬件

此时我将它保存,它成为一个保存在磁盘上的一个文件而已,并没有进入内存,因此并不是进程:操作系统进程定义和PCB详解,单片机,stm32,嵌入式硬件

通过make编译形成可执行文件,再运行该可执行文件,它就形成了一个内存上的进程:操作系统进程定义和PCB详解,单片机,stm32,嵌入式硬件

关闭进程再开启时,进程pid会改变。

操作系统进程定义和PCB详解,单片机,stm32,嵌入式硬件

此时,在操作系统下有一个/proc目录,目录下所有子目录名均为数字,每个数字都代表一个进程的PID。很显然,进程在操作系统内核中是以文件显示出来的。

每当新进程加载进入内存时,操作系统都会在/proc目录下创建一个目录名为进程PID的文件夹,同理,退出进程会将其对应的目录删除。操作系统进程定义和PCB详解,单片机,stm32,嵌入式硬件我们找到目录名为3271的目录,也就是我上面所执行的进程的PID:

操作系统进程定义和PCB详解,单片机,stm32,嵌入式硬件操作系统进程定义和PCB详解,单片机,stm32,嵌入式硬件

其指向的路径是磁盘上我刚创建的可执行程序。文章来源地址https://www.toymoban.com/news/detail-793821.html

到了这里,关于操作系统进程定义和PCB详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【操作系统核心概念】进程管理和进程调度

    本文主要讲的是操作系统的一些核心概念, 主要讲解 进程管理和进程调度 的问题, 当然学习完本篇并不会让你能从零打造一个操作系统, 而只是让读者有了对操作系统核心概念的基本认识. 关注收藏, 开始学习吧🧐 操作系统是一组做计算机资源管理的软件的统称 , 其本质上也

    2024年02月12日
    浏览(61)
  • 【操作系统】聊聊不可中断进程和僵尸进程

    当我们输入top命令之后 其中S代表的是当前进程的状态 R (Running 或 Runnable) 进程在CPU的就绪队列中,正在运行或者等待运行。 D (Disk Sleep) 不可中断睡眠,进程正在跟硬件交互,不运行被其他进程或者中断打断。 Z (Zombie) 进程已经结束,但是父进程没有回收资源 (描述符、PID等

    2024年02月07日
    浏览(46)
  • 操作系统——进程管理

    操作系统入门知识合集 目录 0.关注博主有更多知识 4.1进程概念 4.1.1进程基本概念 思考题: 4.1.2进程状态 思考题: 4.1.3进程控制块PCB 4.2进程控制 思考题: 4.3线程 思考题: 4.4临界资源与临界区 4.4.1临界资源与临界区 思考题: 4.4.2锁机制 4.5同步和P-V操作 4.5.1同步和互斥的概

    2024年02月02日
    浏览(43)
  • 操作系统实验(进程调度)

      1.1理解有关进程控制块、进程队列的概念。   1.2掌握进程优先权调度算法和时间片轮转调度算法的处理逻辑。   2.1设计进程控制块PCB的结构,分别适用于优先权调度算法和时间片轮转调度算法。   2.2建立进程就绪队列。   2.3编制两种进程调度算法:优先权调度

    2024年02月06日
    浏览(46)
  • 操作系统-用户进程

    这个 Makefile 要比之前的文件夹中的 Makefile 更加复杂,是因为之前的文件夹都是对操作系统特定部分的一个编译指导,所以基本上是实现的功能就是“对应的 C 文件和汇编文件编译成目标文件”这一个功能,最后合成一个整体。但是 user 的 Makefile 指导的是多个用户程序的编译

    2023年04月08日
    浏览(34)
  • 【操作系统】02.进程管理

    多道就是将多个程序同时装入内存,使之并发运行。操作系统也是基于多道产生的,提高了资源利用率和系统吞吐量。 进程是程序的一次执行 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位 在引入线程后,线程成为调度的基本单位,进程仍是资源分

    2024年02月08日
    浏览(51)
  • 操作系统、进程与日程

    目录 目录 一.操作系统 操作系统的概念: 操作系统的作用: 二.进程 概念: 那计算机又是如何进行进程管理的呢?  三.线程: ①.进程和线程的区别 ②线程相对于进程的优势: ③并发和并行的区别 一组做计算机资源管理的软件的统称。 目前常见的操作系统有:Windows 系列

    2024年02月10日
    浏览(51)
  • 操作系统(2.7)--进程

    目录 一、进程的引入 1.进程的两个基本属性 2.程序并发执行所需付出的时空开销 3.线程---作为调度和分派的基本单位 二、线程(轻型进程)与进程(重型进程)的比较 1)调度的基本单位 2)并发性 3)拥有资源 4)独立性 5)系统开销 6)支持多处理机系统 三、线程的状态和线程的

    2023年04月13日
    浏览(75)
  • 操作系统与进程调度

    操作系统是一组做计算机资源管理的软件的统称,我们在日常生活常接触到的操作系统有: windows、IOS、Android、鸿蒙,以及Linux系统 等等,那么 操作系统是什么?计算机是如何运行的? 计算机是由软件、硬件相互配合工作;事实上,操作系统可以看做是介于软硬件之间的一组软

    2024年02月05日
    浏览(65)
  • 【操作系统】进程调度

    目录 调度的概念 调度目标     所有系统     批处理系统     交互式系统     实时系统 调度算法     非抢占式调度算法         先来先服务         最短作业优先         非抢占式优先级调度     抢占式调度算法         最短剩余时间优先         轮转

    2024年02月04日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包