Linux 进程与进程状态

目录

1.进程。

        1.进程的概念

2.并行和并发

3.并行和并发的区别:

4.PCB(程序控制块)

5.进程组与会话。

6.进程状态。


1.进程。

        1.进程的概念

          进程是操作系统进行资源分配和调度的一个独立单位。每个进程都运行在操作系统的控制之下,并且拥有独立的地址空间。

  • 程序:二进制文件,占用的磁盘空间
  • 进程: 启动的程序
  • 所有的数据都在内存中 需
  • 要占用更多的系统资源
  • cpu,物理内存

2.并行和并发

  • 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是 在同一个处理机上运行

并发不是真正意义上的“同时进行”,只是CPU把一个时间段划分成几个时间片段(时间区间),然后在这几 个时间区间之间来回切换,由于CPU处理的速度非常快,只要时间间隔处理得当,即可让用户感觉是多个应 用程序同时在进行。如:打游戏和听音乐两件事情在同一个时间段内都是在同一台电脑上完成了从开始到结 束的动作。那么,就可以说听音乐和打游戏是并发的。

  • 并行:当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程 互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。

决定并行的因素不是CPU的数量,而是CPU的核心数量,比如一个CPU多个核也可以并行

3.并行和并发的区别:

  1. 并发,指的是多个事情,在同一时间段内同时发生了。
  2. 并行,指的是多个事情,在同一时间点上同时发生了。
  3. 并发的多个任务之间是互相抢占资源的。
  4. 并行的多个任务之间是不互相抢占资源的、 只有在多CPU或者一个CPU多核的情况中,才会发生并行。否则,看似同时发生的事情,其实都是并发执行的

4.PCB(程序控制块)

        每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息.

linux内核的进程控制块是task_struct结构 体。

/user/src/linux-headers-3.16.0-30/include/linux/sched.h

头文件中可以查看struct task_struct结构体定义。

  • 进程id。系统中每个进程有唯一的id,在C语言中用pit_t类型表示,其实就是一个非负整数
  • 进程的状态,有就绪,运行,挂起,停止等状态。
  • 进程切换时需要保存和恢复一些CPU寄存器
  • 描述虚拟地址空间的信息
  • 描述控制终端的信息
  • 当前工作目录(Cueernt Working Directory)
  • umask掩码
  • 文件描述符,包含很多指向file结构体的指针
  • 和信号相关的信息
  • 用户id和组id,stat
  • 会话(Session)和进程组
  • 进程可以适用的资源上线(Resource Limit),umilit -a

补充:umask掩码:

umask(user file creation mask)是Unix和类Unix系统中用于设置文件权限的默认屏蔽字(mask)。当用户创建文件或目录时,umask决定哪些权限应该被屏蔽掉。

umask的值定义了在创建文件或目录时默认应该屏蔽掉哪些权限。umask的值是一个八进制数,它表示应该从默认权限中减去的权限。默认情况下,文件的权限是666(可读可写),目录的权限是777(可读可进可执行)。

  • 读(r):4
  • 写(w):2
  • 执行(x):1

umask是一个重要的系统配置,它帮助控制文件和目录的默认访问权限,以增强系统的安全性。

5.进程组与会话。

        进程组是由一组进程组成的集合,这些进程通常是由单个父进程创建的,它们可以一起接收信号。进程组ID(PGID)是标识进程组的数字。默认情况下,当一个进程创建一个子进程时,子进程会继承父进程的进程组ID。可以通过setpgid()系统调用来创建新的进程组或改变某个进程的进程组。一个进程组通常与一个终端关联,该终端是进程组中某个进程的标准输入、输出和错误输出的关联点。

        会话是一组进程组的集合,它由一个会话首进程(通常是登录shell)创建,并包括该首进程创建的所有子进程。会话ID(SID)是标识会话的数字。每个会话都有一个会话首进程,该进程的PID等于会话ID。会话的创建可以通过setsid()系统调用实现,但调用该调用的进程不能是进程组的组长,因为这会导致同一个组中的进程属于不同的会话。

当会话首进程退出时,会话中的其他进程不会受到影响,但可能会导致孤儿进程组的产生。孤儿进程组是指其父进程不在会话中的进程组。如果孤儿进程组中的某个进程处于停止状态,内核会向该进程组的所有进程发送SIGHUP信号,然后是SIGCONT信号。

6.进程状态。

进程基本的状态有五种,分别为初始态,就绪态,运行态,挂起态和终止态。

其中初始态为进程准备阶段,常常与就绪态结合来看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149450.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

8.进销存系统(基于springboot的进销存系统)

目录 1.系统的受众说明 2.开发技术与环境配置 2.1 SpringBoot框架 2.2 Java语言简介 2.3 MySQL环境配置 2.4 idea介绍 2.5 mysql数据库介绍 2.6 B/S架构 3.系统分析与设计 3.1 可行性分析 3.1.1 技术可行性 3.1.2 操作可行性 3.1.3经济可行性 3.4.1 数据库…

一些做题中总结的零散的python函数的简单运用

输出保留两位数的小数 将16进制(可修改)的数进制转换成十进制并输出 大小写转化,第一个是搞成全部大写的,第二个高成全部小写的,最后一个是搞成第一个是大写的其他全部是小写的 将这个n的两边空格去掉 使用print(n,end…

叶国富学得会胖东来吗?

“大家都看不懂就对了,如果都看得懂我就没有机会了。”昨晚,实体零售迎来一则重磅消息,名创优品获得了全国第二大连锁超市永辉超市的大股东身份。在资本市场负反馈的压力下,名创优品创始人叶国富有了上述回应。 消息公布后&#x…

2.以太网

局域网 局域网: Local Area Networks (LAN) 网络大小分类 局域网园区网(可以理解为企业网)城域网 广域网是一个网络连接的技术,并非多大范围的网络 网关 为局域网内的用户提供了一扇门,通过网关可以访问到别的网络。这个门,就叫网关 以…

解决你的IDE在使用的时候测试单元@Test在创建Scanner对象是键盘键入不了的问题;

插播一条快讯,我在我的ide中新创建 了project后发现我的测试单元不好使了,即 import org.junit.Test; 这个包在创建Scanner对象接受键盘时,控制台输入时没有任何反应,键入不了了,我的问题出现原因可能是我导入了JDBC…

BitSet-解决数据压缩问题

一、问题引入 假设QQ音乐服务器上有9000万首音乐,用户按照歌名来搜索歌曲,如何使得满足这一需求所需的数据占用的内存空间最小以及用户搜索歌曲速度更快 二、分析问题 1、为了满足使得数据占用的内存更小,可以采用映射的思路,按…

【2024W35】肖恩技术周刊(第 13 期):肉,好次!

周刊内容: 对一周内阅读的资讯或技术内容精品(个人向)进行总结,分类大致包含“业界资讯”、“技术博客”、“开源项目”和“工具分享”等。为减少阅读负担提高记忆留存率,每类下内容数一般不超过3条。 更新时间: 星期天 历史收录:…

【C++算法】链表

知识总结 常用技术: 1.画图!!——>直观形象便于理解 2.引入虚拟”头结点“ 便于处理边界情况方便对链表操作 3.不要吝啬空间,大胆定义变量 4.快慢双指针——判环、找链表中环的入口、找链表中倒数第n个节点 链表中的常用…

移动数组中数字的方法(c语言)

1.移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。 例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;p的值为3。 移动后,一维数组中的内容应为:5,6,7,8…

融会贯通记单词,绝对丝滑,一天轻松记几百

如果我将flower(花)、flat(公寓)、floor(地板)、plane(飞机)几个单词放在一起,你会怎么来记忆这样的一些单词呢? 我们会发现,我们首先可以将plane去掉,因为它看上去几乎就是一个异类。这样,我们首先就可以将…

力扣958:判断二叉树是否为完全二叉树

给你一棵二叉树的根节点 root ,请你判断这棵树是否是一棵 完全二叉树 。 在一棵 完全二叉树 中,除了最后一层外,所有层都被完全填满,并且最后一层中的所有节点都尽可能靠左。最后一层(第 h 层)中可以包含 …

Pyinstaller打包python程序为exe时 程序多线程导致打开非常多窗口解决

装了个Pyinstaller打包exe pip install Pyinstaller 打包命令 Pyinstaller -F main.py Pyinstaller -F -w main.py #不带控制台 Pyinstaller -F -w -i 1.ico main.py #指定图标不带控制台 打包完的exe一运行开了一坨窗口,一眼多线程,我程序里的多线程如…

内容生态短缺,Rokid AR眼镜面临市场淘汰赛

AR是未来,但在技术路径难突破、生态系统难建设,且巨头纷纷下场的背景下,Rokid能坚持到黎明吗? 转载:科技新知 原创 作者丨王思原 编辑丨蕨影 苹果Vision Pro的成功量产和发售,以及热门游戏《黑神话》等在A…

Mac电脑可以只装Windows系统吗 苹果电脑也可以清除垃圾吗

选Mac还是Windows,一直是个有争议的话题。习惯Windows操作模式的用户,甚至想在Mac电脑上安装Windows操作系统。其实,只要掌握Mac系统的清理技巧,苹果电脑也能带来良好的使用体验。有关Mac电脑可以只装Windows系统吗,苹…

将Pytorch环境打包,快速部署到另一台机器上(在没有网络,或者网络环境不好的情况下推荐使用)

打包PyTorch环境 当您需要在不同的机器上快速部署包含PyTorch的Python环境时,使用conda-pack是一个很好的选择。conda-pack可以打包一个完整的Conda环境,包括所有已安装的包和依赖项,使其能够轻松地在其他机器上还原。 步骤一:…

My_string 运算符重载,My_stack

思维导图 将My_string类中的所有能重载的运算符全部进行重载 、[] 、>、<、、>、<、! 、&#xff08;可以加等一个字符串&#xff0c;也可以加等一个字符&#xff09;、输入输出(<< 、 >>) My_string my_string.h #ifndef MY_STRING_H #define MY_…

【Web】初识Web和Tomcat服务器

目录 前言 一、认识web 1. 软件架构模式 2. web资源 3. URL请求路径&#xff08;统一资源定位符&#xff09; 二、Tomcat服务器 1. 简介 2. tomcat服务器的目录结构 3.使用tomcat服务器启动失败的常见原因 3.1 端口冲突 3.2 jdk环境变量配置出错 三、使用Tomcat发布…

重塑教育未来:数字教学与智能知识库的深度融合

在当今这个信息爆炸的时代&#xff0c;教育作为推动社会进步与发展的重要基石&#xff0c;正经历着前所未有的变革。随着科技的飞速发展&#xff0c;数字教学与智能知识库作为两大核心驱动力&#xff0c;正携手并进&#xff0c;共同塑造着教育的全新面貌。本文旨在探讨数字教学…

【Docker】Docker快速入门

Docker学习笔记 一、Docker概述 为什么会出现Docker? 安卓开发流程&#xff1a;apk(java开发的)发布到应用商店&#xff0c;用户安装apk即可使用。 后端开发流程&#xff1a; jar(java开发的)带上环境发布到Docker仓库&#xff0c;用户从Docker仓库拉取镜像并部署。 总结…