PID 进程

您所在的位置:网站首页 pid号是什么意思医学 PID 进程

PID 进程

2024-07-01 03:59:04| 来源: 网络整理| 查看: 265

Linux中的程序和进程,PID和PPID

首先说下程序和进程:

程序是一个静态的,就是磁盘中的一个文件。而进程是一个动态的程序执行后运行的状态(程序是被操作系统加载到内存中)就是一个进程。

什么是进程

将程序代码从硬盘上拷贝到内存上,在内存上的动态运行程序就是进程。 对比进程和程序:

在这里插入图片描述

多进程并发运行

有OS的时候会有很多进程在运行,这些进程都是并发运行 什么是并发运行? CPU轮换的执行,当前执行程序一个短暂的时间片 保存现场等待CPU再次执行,切换到另一个进程 然后不断循环往复 时间片比较短 宏观上我们会感觉到所有的进程都是在同时运行的。 微观上CPU每次只能执行某一个进程的执行。 多核CPU可以是实现进程并行和并发同时存在的

我们在linux平台PID查看: 命令:ps -aux

windows平台PID查看:

 

PID的唯一性,我们就可以在创建文件的时候加入PID来保证文件名的唯一性

PID放在那里?

OS管理进程,会为每一个进程创建一个进程控制块

在linux平台就是task_struct 结构体变量

里面存放了所有该进程的管理信息。

PID放在task_struct 结构体变量中。

三个特殊的进程  

PID分别是0,1,2会在OS启动之后一直运行直到关机OS结束运行。

调度进程

PID == 0的进程 我们在进程PID查看的时候是查看不到PID为0的进程这个进程也被称为调度进程功能就是实现进程间的调度和切换 根据调度算法让CPU轮换的执行所有进程 PC里面放下一个进程指令地址 PC执行不同的进程时,CPU就去执行不同的进程,是实现进程切换 PID为0的进程是怎么来的? OS启动之后,最后有一部分代码会持续运行,就是PID==0的进程

系统进程 是操作系统代码的一部分,由OS演变过来的进程。PID == 1的进程 作用

1.初始化,也被称为init进程 去读取各种系统文件,使用文件中的数据来初始话OS的启动 让操作系统进入多用户状态,也就是让OS支持多用户登录 2.托管孤儿进程 我们在后面博客会详细说明。 3.原始父进程

linux平台和windows平台下面 几乎所有的进程都是通过父进程生出来的PID == 1的进程就是原始父进程 PID == 1的进程怎么运行起来的呢? 这个进程不是由OS演变而来的,不属于OS的代码是一个独立的程序,程序代码放在/sbin/init下面 OS运行起来之后,OS去回调init程序 将代码加载到内存,这个程序就运行起来了。 运行起来之后通过父进程生子进程来运行其他进程。

守护进程

PID == 2的进程 页精灵进程,专门负责虚拟内存的请操作 什么是精灵进程? 精灵进程也叫做守护进程,我们在后面守护进程会进行熟悉说明 什么是换页操作?OS支持虚拟内存机制的时候,加载应用程序到内存,并不会进行完整代码的拷贝,只会拷贝当前进程要运行的部分代码。当这部分代码运行完毕之后,会再去拷贝另一部分需要运行的代码到内存中,拷贝的时候是按照一页一页来进行操作的,每一页是4096字节。 PID == 2的进程是怎么运行起来的?与调度进程一样,是一个系统进程,代码属于操作系统的一部分 OS运行的时候会把这段代码留在内存中继续运行。  

1.PID(process ID):

  PID是程序被操作系统加载到内存成为进程后动态分配的资源。

  每次程序执行的时候,操作系统都会重新加载,PID在每次加载的时候都是不同的。

2、PPID(parent process ID):PPID是程序的父进程号。

3、PID和PPID都是非零的整数。

4、PID是唯一的,一个PID只标识一个进程。

5、一个进程创建的另一个新进程称为子进程。相反地,创建子进程的进程称为父进程。

6、对于一个普通的用户进程,它的父进程就是执行它的哪个Shell,对于Linux而言,Shell就是bash。

7、bash所在的目录:[root@localhost ~]# whereis bash

  bash: /usr/bin/bash

需要补充:

1、在Linux系统中执行的第一个进程是init,它是所有进程的祖先最终都会落到进程号为1的init进程身上。

2、init进程是linux内核启动后第一个执行的进程,引导系统,启动守护进程并且运行必要的程序。

3、init引导系统,启动守护进程并且运行必要的程序。

获取PID和PPID的函数:

1、得到进程的PID:pid_t getpid(void);

2、得到进程的PPID:pid_t getppid(void);

通过程序获取当前程序的PID和PPID:

#include #include #include   int main(int argc, char *args[]) {     // 获取当前进程的PID     pid_t pid = getpid();     printf("pid = %d\n", pid);          // 获取当前进程的PPID     pid_t ppid = getppid();     printf("ppid = %d\n", ppid);          return 0; }



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭