当前位置:网站首页 > 编程语言 > 正文

进程控制块内容包括(进程控制块的构成)



linux进程的三个部分:1、进程控制块,使 一个在多道程序环境下不能独立运行的程序(包含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程;2、程序段,是进程中能被进程调度程序在cpu上执行的程序代码段;3、数据段,是一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据。

linux进程包括哪三个部分

本教程操作环境:linux7.3系统、Dell G3电脑。

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。

简而言之就是程序的一次执行过程
进程是正在运行的程序的实例,也就是一个正在执行的任务。
进程是有生命周期的,随着程序的运行而创建,随着程序的结束而终止。
进程是分配资源的最小单位,只要创建了一个进程,就分配了[0-3G]的用户空间。
只要用户执行了一个程序,内核就会创建一个task_struct(PCB)结构体,这个结构体就代表当前的进程。
在进程内部维护了自己的一套文件描述符和缓冲区。只要进程执行结束,那么它的所有的资源都会被操作系统回收。

1.png

时间片轮询实现并发

2.png

  • 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
  • 并发性:任何进程都可以同其他进程一起并发执行
  • 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
  • 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。

进程的组成包含三个部分:进程控制块PCB(task_struct),数据段,程序段。

进程控制块:使一个在多道程序环境下不能独立运行的程序(包含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。
程序段:是进程中能被进程调度程序在CPU上执行的程序代码段。
数据段:一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据。

4.1 进程控制块定义

为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。
PCB的本质是一个结构体,不同的操作系统中PCB的名字不同。Linux中,PCB名为task_struct,PCB 是控制进程的唯一手段。
每一个进程都有一个进程描述符,这个”进程描述符”即是task_struct,在task_struct里面保存了许多关于进程控制的信息。

4.2 task_struct的内容

每个进程都把它的信息放在task_struct这个数据结构里面,而task_struct包含以下内容:

  • 标示符(pid):描述本进程的唯一标示符,用来区别其他进程。
  • 状态:任务状态,退出代码,退出信号等。
  • 优先级:相对于其他进程的优先级(数越小,优先级越高)。
  • 程序计数器:程序中即将被执行的下一条指令的地址。
  • 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。
  • 上下文数据:保存上下文就是把cpu寄存器中的值保存到内存中;恢复上下文就是把内存中的寄存器值恢复到cpu中去;
  • I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和正在被进程使用的文件列表。
  • 记账信息 :可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
  • 其他信息
  • 进程是程序的一次执行过程,它是动态的,具备生命周期,在内存上存放。
  • 程序是静态的,没有生命周期。在磁盘上存放,程序就是可以可执行文件。
  • 进程更能真实地描述并发,而程序不能。
  • 进程具有创建其他进程的功能,而程序没有。
  • 同一程序可以对应多个进程。

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。

进程的种类有三种分别是交互进程,批处理进程,守护进程

  • 交互进程:交互进程是由shell维护的,通过shell和用户进行交互。
    例如文本编辑器就是交互进程。
  • 批处理进程:批处理进程会被放到内核的一个队列中,随着队列的运行而运行,它的优先级相对比较低。
    例如gcc编译程序的过程。
  • 守护进程:守护进程是后台运行的进程,随着系统的启动而启动,随着系统的终止而终止。
    例如windows上的各种服务。

相关推荐:《Linux视频教程》

以上就是linux进程包括哪三个部分的详细内容,更多请关注php中文网其它相关文章!

到此这篇进程控制块内容包括(进程控制块的构成)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 玄幻小说中最强法则(玄幻小说中最强法则是什么)2025-03-19 14:00:09
  • 虚拟机安装xp系统进不去系统(虚拟机安装xp系统进不去系统界面)2025-03-19 14:00:09
  • ip1180打印机说明书(ip1180打印机怎么用)2025-03-19 14:00:09
  • ffmpeg查看视频帧率(ffmpeg怎么设置输出帧率)2025-03-19 14:00:09
  • 苹果15价格(苹果15价格最新消息)2025-03-19 14:00:09
  • 网页传输文字(网页怎么传文件)2025-03-19 14:00:09
  • 报文解析工具在线使用(报文解析工具在线使用)2025-03-19 14:00:09
  • nvme能插sata的m.2(nvme能用在sata的m2吗)2025-03-19 14:00:09
  • 电脑剪辑按什么键(电脑剪辑用什么快捷键)2025-03-19 14:00:09
  • bt601和bt656的区别(bt6009bk与b60bk的区别)2025-03-19 14:00:09
  • 全屏图片