• 进程读取的上下文,它表示进程读取的执行状态;

  • 进程当前执行目录;

  • 进程服务的文件和目录;

  • 进程的访问权限;

  • 内存和其他分配给进程的系统资源。

每个进程都有一个进程号,即PID,一个PID唯一的标识一个进程,一个进程创建新进程称为创建子进程,这个进程称为父进程。所有进程追溯到其祖先最终都会落到进程号为1的进程身上,这个进程叫init进程,是内核自启动后的第一个启动的进程,也是其他所有进程的父进程。如果某个父进程在它的子进程结束之前终止了,则失去了父进程的子进程就会以init进程作为父进程。通过ps -af命令可以列出父进程ID为1的进程,使用pstree命令可以查看系统正在运行的各个进程之间的继承关系。

二、进程的状态

  • 就绪态:进程已经准备就绪,随时可以调度执行,但当前不占用CPU资源。

  • 执行态:正在被CPU执行,占用了CPU资源。

  • 可中断等待态:这种状态的进程都在等待某个事件或某个资源,系统不会对其进行调度,当系统产生一个中断或者释放了系统等待的资源,或者进程收到了一个信号,都可以唤醒此进程转换到就绪状态。

  • 不可中断等待态:与可中断等待态类似,但不会因为接收到信号而唤醒。

  • 僵死态:进程已经被中止但它的状态还没有被父进程获取。

  • 暂停态:处于暂停状态的进程,一般都是由执行态转换而来,等待某种特殊处理,比如处于调试跟踪的程序,每执行到一个断点就转入暂停态,等待新的信号输入。

三、Linux进程的结构

Linux中一个进程在内存中有3部分数据,分为数据段、堆栈段、代码段。

  • 代码段:用来存放程序代码,如果有多个程序运行相同的一个程序,那么可以使用同一个代码段;

  • 数据段:用来存放程序的全局变量、常数以及动态数据分配的数据空间;

  • 堆栈段:用来存放子程序的返回地址、子程序的参数以及程序的局部变量。还包括进程控制块PCB,PCB处于进程的核心堆栈的底部,不需要额外分配空间。

可以看我的另一篇博客:[代码段(c

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

odesegment/textsegment)、数据段(datasegment)、bss段(bsssegment)、rodata段、栈(stack)、堆(heap)]( )

四、进程的种类

  • 交互进程:有一个shell启动的进程,既可以在前台运行,也可以在后台运行;

  • 批处理进程:不与特定的终端相关联,提交到等待队列中顺序执行进程;

  • 守护进程:在Linux启动时初始化,需要时运行于后台的一些服务进程

五、进程的创建

使用fork()函数创建进程,这个函数名是“分叉”的意思,具体使用格式如下

#include <sys/type.h> //提供类型pid_t的定义

#include <unistd.h> //提供函数的定义

pid_t fork(); //创建进程

Linux内核结构组成之进程调度,老男孩linux运维期中架构相关推荐

  1. 【Linux 内核】Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )

    文章目录 一.Linux 内核特性 1.Linux 内核组织形式 2.Linux 进程调度 3.Linux 内核线程 4.Linux 内核多平台虚拟内存管理 5.Linux 虚拟文件系统 6.Linu ...

  2. 移植linux内核-映像文件,移植Linux内核-映像文件

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://tigerwang202.blogbus.com/logs/43927976.html 首先从Blackfin uCli ...

  3. Linux内核态之间进程通信,Linux 系统内核空间与用户空间通信的实现与分析[转载]...

    [https://www.ibm.com/developerworks/cn/linux/l-netlink/index.html] 多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 ...

  4. Linux系统运维与架构设计之Linux概述

    Linux系统运维与架构设计之Linux概述 Linux系统运维与架构设计 1.1 浅谈计算机系统 1.1.1 计算机硬件系统 现代计算机是基于冯·诺依曼体系结构,由运算器.控制器.存储器.输入设备. ...

  5. linux 内核 课程,Linux内核分析课程-全面剖析Linux内核技术 揭开Linux内核的面纱 Linux内核学习视频教 ......

    课程名称 Linux内核分析课程-全面剖析Linux内核技术 揭开Linux内核的面纱 Linux内核学习视频 课程目录 (1)\1, 计算机是如何工作的?:目录中文件数:0个 (2)\2, 操作系统 ...

  6. Linux运维与架构工程实践

    1 本章概览 介绍Linux系统Linux运维与架构工程实践的方方面面 2 Linux系统基础入门 认识计算机和服务器核心硬件 Linux发展历史.系统组成.应用领域以及发行版 搭建运维环境:VMWa ...

  7. Linux运维企业架构项目实战系列

    Linux运维企业架构项目实战系列 目录 一.全网备份 (一)部署Rsync守护进程 1)服务端(backup) 2)客户端(web01/02/03 nfs01) (二)编写脚本文件 1)客户端脚本编 ...

  8. 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 )

    文章目录 一.下载 Linux 内核 1.下载最新版本 Linux 内核 2.下载指定版本 Linux 内核 二.Linux 内核版本号含义 一.下载 Linux 内核 1.下载最新版本 Linux ...

  9. linux运维、架构之路-jumpserver

    linux运维.架构之路-jumpserver 一.jumpserver介绍           是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户 ...

最新文章

  1. 知乎热问:成为算法工程师的路上,掌握什么技术会感觉自我提升突飞猛进?
  2. Delegate,Action,Func,匿名方法,匿名委托,事件
  3. QQ圈子:从哪里来,到哪里去
  4. Windows中各类画面源的截取和合成方法总结
  5. Maven,在pom.xml配置JDK 9版本。
  6. 语言五子棋无ai程序框图_2020输入法报告 如何选择更好的AI语音输入法?
  7. gsoap插件之wsdd主动广播发送hello、bye
  8. 计算机英语国家线,2018考研英语二国家线是多少
  9. 15crmo焊接后多长时间探伤_焊工必看:掌握钢结构焊接最重要的10个知识,不愁拿不到高工资!...
  10. 本人博客已经转到简书,不再更新51cto,谢谢大家。
  11. SECS/GSM 测试工具
  12. vue 定制上传按钮的样式的两种方法
  13. 生理学知识点总结--biologic
  14. A股将迎来一大波新经济公司:几家欢喜几家愁
  15. UE4 材质学习 (焚烧材质)
  16. 解决页面间体验问题的纯前端容器Lath
  17. Apriori算法的python实现
  18. 电脑用USB连接欧姆龙安全PLC失败解决方案
  19. mysql的存储模型_一种BIM模型数据的数据库存储格式的制作方法
  20. python 飞机大战 添加音效 添加分数

热门文章

  1. 全网最详细 Spring Cloud 入门总结
  2. django多对多展示
  3. 220个绝对离不了的生活窍门(zt)
  4. python编程入门课 视频-为了学习Python,我汇总了这10个免费的视频课程!
  5. 如何提取图片中的文字
  6. 应用 AddressSanitizer 发现程序内存错误
  7. 软件工程_东师站_课堂笔记
  8. 58同城2021校招笔试——二叉树遍历
  9. Metabo Analyst使用教程-Pathway Analysis模块
  10. 「全屋智能」云米全屋互联网家电 vs 绿米全屋智能产品+服务