Linux下的进程PCB以及线程详解
进程PCB详解
为了每个程序能独立运行,便为其配置了一个专门的数据结构,称为:PCB(PCB,Process Control Block)进程控制块。
进程控制块描述了、管理着进程运行的全部信息,是操作系统中最重要的记录型数据结构,并且使得不能在多个程序环境中不能运行的程序成为一个可以独立运行的基本单位,并与其他程序并发运行
作用:
PCB为一个程序运行的标志:当给一个程序配置了PCB之后,就代表它已经是一个可以独立运行的进程了,取得了获取OS服务(操作系统服务)的权力。PCB随进程创建而诞生,进程销毁而毁灭,在进程销毁后会被系统回收。系统是根据PCB感受进程存在的,所以PCB是一个进程存在的唯一标志
PCB可以是进程间断性运行:当进程阻塞暂停运行时,PCB可以保存进程运行CPU现场信息,以供下次进程又被调度时使用。
PCB提供进程管理所需要的信息:调度程序只能根据PCB中所记录的信息:内存外村中的指针,找到该进程。对进程任何IO操作都需要借助PCB中记录的信息。
PCB实现与其他进程通信:进程同步机制是用于实现诸进程的协调运行的,在采用信号量机制时,它要求在每个进程中都设置有相应的用于同步的信号量
PCB提供调度所需要的信息:PCB记录了进程处于何种状态以及调度所需的其他信息:例如进程优先级。
PCB中有以下信息
- PID进程标识符:每个进程有唯一标识符,是一个进程序号
- 处理机上下文:进程某个操作可能被执行到一半被中断,当下次需要从上次执行到的地方开始执行,需要上次执行的信息,这便是上下文。
- 进程调度信息:进程调度信息又包含:1.进程状态 ,2.进程优先级,3.进程调度所需的其它信息比如,进程已等待CPU的时间总和、进程已执行的时间总和等等,4.事件,就是记录上次进程由执行态变为阻塞态的原因,就是因为什么进程停止了。
- 进程控制信息:它又包含:1.程序及数据的地址,2.进程同步和通信机制:进程同步和通信机制,这是实现同步和进程通信时必需的机制,如消息队列指针、信号量等,它们可能全部或部分地放在PCB中。3.资源清单,这种清单记录了进程运行时所需的全部资源。4.链接指针:它给出了该进程所在队列下一个进程PCB的首地址。
Linux下的多线程
首先明确一个点,linux内是没有线程这个概念的,而是轻量级进程LWP,一般我们说的线程是C库中的概念。
先放出关系图:
多线程下,一个进程其实是一个线程组,有个线程组id,在这个进程下的所有线程都有一个线程组id,都和这个进程的线程组id相同,但是pid各不相同。
一个进程,有多个轻量级进程LWP,一个轻量级进程有一个PCB,所以一个进程可能对应多个PCB,
Linux下的进程PCB以及线程详解相关推荐
- linux下多线程的创建与等待详解 【转载】
linux下多线程的创建与等待详解 http://blog.chinaunix.net/uid-23842323-id-2656572.html 所有线程都有一个线程号,也就是Thread ID.其类 ...
- linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...
- Linux redis安装教程,Linux 下redis5.0.0安装教程详解
Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...
- linux 更新软件命令 失败,对linux下软件(库)的更新命令详解
在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...
- linux系统电脑的权限设置,Linux下的文件权限设置修改详解linux操作系统 -电脑资料...
在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与 ...
- linux下tar命令解压缩,tar解压缩命令 Linux下的tar压缩解压缩命令详解
<tar解压缩命令 Linux下的tar压缩解压缩命令详解>由会员分享,可在线阅读,更多相关<tar解压缩命令 Linux下的tar压缩解压缩命令详解(14页珍藏版)>请在人人 ...
- linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...
在Linux中,有很多的压缩命令.利用这些压缩命令,可以方便的从网络上下载大型的文件.同时,我们知道,Linux文件的扩展名是没有特殊意义的,不过,因为Linux下存在着许多压缩命令,所以为了方便记忆 ...
- linux命令大全rz,Linux下rz命令使用的实例详解
摘要 腾兴网为您分享:Linux下rz命令使用的实例详解,猿辅导,学习帮,我爱我家,唯品会等软件知识,以及2034盒子,endnotex6,方塘音控,供销网,论文修改神器,小乌龟,银河谷,兼职app, ...
- Linux 下查看进程内的线程情况 ps, top 命令
线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念.当一个程序内有多个线程被拆分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间.打开的文件),以使拆分开销最小化 ...
最新文章
- Android 中的GC资料网站
- 个人站立会议(11月24日)
- MxGraph从入门到精通之2:HelloWorld程序解析
- 使用layui框架时,在input文本框中显示当前页面时间的方法
- wxWidgets:wxContextHelp类用法
- mysql的sql经典写法收录
- mongodb MapReduce
- JadClipse反编译工具在MyEclipse中的安装(先看Eclipse的配置方式)
- ubuntu arm qt_Cyclone V SOC(ARM+FPGA)开发文档_之开发流程详解
- PgAdmin3 LST v1.23.0.b (BigSQL) which support pg10.4
- 《金字塔原理》要点汇总
- QQ连连看外挂核心算法(消除一对棋子)
- 0基础学Java(2)
- Windows下软件提示“没有注册类”问题解决
- 抖音怎么上传无损画质_抖音高清视频怎么上传的,抖音怎么上传无损画质
- 计蒜客——恋爱纪念日(学习如何格式化打印日期)
- 网易云音乐接入微信状态
- 华尔街远邻 | 解读国际清算银行对加密货币的暧昧态度
- bootstrapNPM淘宝代理镜像
- mmdection介绍