linux进程管理相关概念
进程概念
内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等
Process: 运行中的程序的一个副本,是被载入内存的一个指令集合
进程ID(Process ID,PID)号码被用来标记各个进程
UID、GID、和SELinux语境决定对文件系统的存取和访问权限,
通常从执行进程的用户来继承
存在生命周期
task struct:Linux内核存储进程信息的数据结构格式
task list:多个任务的的task struct组成的链表
进程创建:
init:第一个进程
centos6 是 init
Centos7 是 systemd
父子关系
init:进程:都由其父进程创建,CoW (写实复制)、fork(), clone(克隆)
CoW (写实复制):如果创建的子进程,子进程还没有发生任何的数据改动,这时候用的是父进程的内存空间,总体来说节约了空间,这点跟LVM逻辑卷快照类似
进程的基本状态和转换
创建状态:
进程在创建时需要申请一个空白PCB(process control block进程控制块),向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态
就绪状态:
进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行
执行状态:
进程处于就绪状态被调度后,进程进入执行状态
阻塞状态:
正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用
终止状态:
进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行
状态之间转换六种情况
运行——>就绪:
1,主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;
2,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态。
就绪——>运行:
运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU
运行——>阻塞:
正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求
阻塞——>就绪:
进程所等待的事件已经发生,就进入就绪队列
以下两种状态是不可能发生的:
阻塞——>运行:即使给阻塞进程分配CPU,也无法执行,操作系统在进行调度时不会从阻塞队列进行挑选,而是从就绪队列中选取
就绪——>阻塞:就绪态根本就没有执行,谈不上进入阻塞态
进程优先级
系统优先级:
系统整个所有进程从最低到最大的优先级,其中数字越小,优先级越高。
Centos4、5系统上0-139
centos6 系统上0-98,99
实时优先级:
99-0 值最大优先级最高
nice优先级:
-20到19,对应系统优先级100-139或99,nice值越大,优先级越低
Big O:时间复杂度,用时和规模的关系
O(1)衡定, O(logn), O(n)线性, O(n^2)抛物线, O(2^n)指数型,
进程内存
进程内存:
Page Frame: 页框,用存储页面数据,存储Page 4k
LRU:Least Recently Used 近期最少使用算法,释放内存,
物理地址空间和线性地址空间
MMU:Memory Management Unit负责转换线性和物理地址
TLB:Translation Lookaside Buffer 翻译后备缓冲器,用于保存虚拟地址和物理地址映射关系的缓存IPC: Inter Process Communication
同一主机: signal:信号
shm: shared memory
semaphore:信号量,一种计数器
不同主机:socket: IP和端口号
RPC: remote procedure call
MQ:消息队列,Kafka,ActiveMQ
进程状态
Linux内核:抢占式多任务
进程类型:
守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程
前台进程:跟终端相关,通过终端启动的进程
注意:两者可相互转化
进程状态:
运行态:running
就绪态:ready
睡眠态:
可中断:interruptable
不可中断:uninterruptable
停止态:stopped,暂停于内存,但不会被调度,除非手动启动
僵死态:zombie,结束进程,父进程结束前,子进程不关闭
转载于:https://blog.51cto.com/dklwj/2165157
linux进程管理相关概念相关推荐
- linux进程管理基本概念
linux进程管理基本概念 进程管理 进程树 什么是进程和程序 启动进程 前台启动进程 后台启动进程 创建进程 1 地址空间 2 进程元数据 3 如何创建进程 特殊进程 僵尸进程 孤儿进程 守护进程 ...
- Linux进程管理 (7)实时调度
关键词:RT.preempt_count.RT patch. 除了CFS调度器之外,还包括重要的实时调度器,有两种RR和FIFO调度策略.本章只是一个简单的介绍. 更详细的介绍参考<Linux进 ...
- linux进程管理机制,linux进程管理,linux进程管理机制
linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...
- Linux—进程管理
1. 进程的概念 Linux是一个多用户多任务的操作系统.多用户是指多个用户可以在同一时间使用同一个linux系统:多任务是指在Linux下可以同时执行多个任务,更详细的说,linux采用了分时管理的 ...
- Linux 进程管理工具
Linux进程管理命令: pstree.ps.top.pidof.htop.glances.pmap.vmstat.dstat.kill.pkill.job.bg.fg.nohup.pgrep ...
- linux进程管理命令实验,实验2Linux进程管理.doc
实验2Linux进程管理 实验2 Linux进程管理 实验目的 1.加深对进程概念的理解,明确进程和程序的区别 2.进一步认识并发执行的实质 3.分析进程争用资源的现象,学习解决进程互斥的方法 实验性 ...
- linux进程管理fork,Linux -- 进程管理之 fork() 函数
一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同.相当于克隆了一个自己. Test1 f ...
- Linux进程管理之ps的使用
主题Linux进程管理之ps工具的使用 一ps工具的介绍 ps: process state 进程状态 ps - report a snapshot of the current processes ...
- linux ps 进程组,linux进程管理(2)---进程的组织结构
一.目的 linux为了不同的进程管理目的,使用了不同的方法组织进程之间的关系,为了体现父子关系,使用了"树形"图:为了对同一信号量统一处理,使用了进程组:为了快速查找某个进程,使 ...
最新文章
- 直接对梯度下手,阿里达摩院提出新型优化方法,一行代码即可替换现有优化器...
- 4K P60 444 相关的事
- redis的数据类型及设置方法
- ElasticSearch通配符 * 查询(英文检索)
- 狄利克雷过程(Dirichlet Process)
- 2.1Android底层开发需要哪些工具
- char型指针与其它指针或数组的细节
- 微软应用商店有哪些值得推荐的应用
- junit5 入门系列教程-13-junit5 测试接口及默认方法
- [笔记分享] [GPIO] MSM8x39 GPIO 软件部分小结
- C 语言中结构体中成员所占内存的大小
- golang备忘录003: 使用waitgroup进行graceful shutdown
- java学习方法和经验
- 集中型计算机控制有什么特点,什么叫分散控制系统?它有什么特点?
- python提取excel前十行生成图_Python读取Excel数据生成图表 v2.0
- 项目4:后台管理的开发和使用(前端)
- 以梦为马之89c51单片机精确1s时间LED灯闪烁(中断技术+定时/计数器技术)
- HA高可用集群与RHCS集群套件
- 利用组合模式来实现组件处理器的工程实践
- java用scanner循环输入_Scanner怎么实现连续输入
热门文章
- LVM管理和ssm存储管理器使用
- Bad owner or permissions on .ssh/config win10问题解决
- iOS报错:linker command failed with exit code 1 (use -v to see invocation) 问题解决方式之一
- 解决谷歌网站Your connection is not private问题
- 解决问题的能力 > 10倍程序员
- error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools“:解决方案
- 谷歌chrome浏览器提示“喔唷 崩溃啦”的解决方案
- 建立.NET Core控制台应用程序以输出EXE?
- 对网站实施“记住我”的最佳方法是什么? [关闭]
- SCSS和Sass有什么区别?