美文网首页
进程管理

进程管理

作者: Simon_Ye | 来源:发表于2020-03-06 12:11 被阅读0次

进程概念

内核的功用:

进程管理、文件系统、网络功能、内存管理、驱动管理、安全功能等

Process:

运行中的进程的一个副本,是被载入内存的一个指令集合

  • 进程ID(Process ID,PID)号码被用来标记各个进程
  • UID、GID和SELinux语境决定对文件系统的存取和访问权限,通常从执行进程的用户来继承
  • 存在生命周期

task struct:

Linux内核存储进程信息的数据结构格式

task list:

多个任务的task struct组成的链表

进程内存:

  • 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

进程创建:

  • init:第一个进程
     父子关系
  • 进程:都由其父进程创建,CoW
     fork(),clone()

进程状态

  • Linux内核:抢占式多任务

进程类型:

  • 守护进程:daemon,在系统引导过程中启动的进程,和终端无关进程
  • 前台进程:跟终端相关,通过终端启动的进程

注意:两者可相互转化

进程状态:

  • 运行态:running
  • 就绪态:ready
  • 睡眠态:
    • 可中段:interruptable
    • 不可中断:uninterruptable
  • 停止态:stopped,暂停于内存,但不会被调度,除非手动启动
  • 僵死态:zombie,结束进程,父进程结束前,子进程不关闭

进程的基本状态和转换

进程的基本状态和转换.jpg
  • 创建状态:进程在创建时需要申请一个空白PCB(Process Control Block)进程控制块,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态
  • 就绪状态:进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行
  • 执行状态:进程处于就绪状态被调度后,进程进入执行状态
  • 阻塞状态:正则执行的进程由于某些事件(I/O请求,申请缓冲区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用
  • 终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行

状态之间转换六种情况

  • 运行 --> 就绪:
    1. 主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;
    2. 在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态。
  • 就绪 --> 运行:
    运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU
  • 运行 --> 阻塞:
    正在执行的进程因发生某等待时间而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求
  • 阻塞 --> 就绪:
    进程所等待的事件已经发生,就进入就绪队列
以下两种状态是不可能发生的
  • 阻塞 --> 运行:
    即使给阻塞进程分配CPU,也无法执行,操作系统在进行调度时不会从阻塞队列进行挑选,而是从就绪队列中选取
  • 就绪 --> 阻塞:
    就绪态根本就没有执行,谈不上进入阻塞态

进程优先级

优先级:

  • 系统优先级:数字越小,优先级越高
    0-139(CentOS 4,5)
     各有140个运行队列和过期队列
    0-98,99(CentOS 6及之后)
  • 实时优先级:99-0,值最大优先级最高
  • nice 值:-20到19,对应系统优先级100-139或99

Big O:时间复杂度,用时和规模的关系

O(1)理想值,O(logn)慢速增长,O(n)线性增长,O(n^2)抛物线,O(2^n)指数型

相关文章

  • Android性能探索

    进程管理&内存管理 进程生命周期进程优先级:前台进程可见进程服务进程后台进程 (LRU Cache & 占用内存...

  • linux 下的系统调用

    一、主要有以下模块 -进程管理-内存管理-文件管理-信号处理-进程通信-网络通信 一、进程管理 1.父进程通过fo...

  • Linux 系统管理

    视频教程:Linux系统管理 一、进程管理 进程管理 简介:进程就是正在运行的程序或者命令,进程管理就是对正在运行...

  • Linux进程管理详解(转)

    Linux进程管理详解 1.1 Linux进程管理 进程管理是操作系统的最重要的功能之一。有效率的进程管理能保证一...

  • Linux 内存笔记基础

    系统 1. 内存管理 2. 文件目录 3. IO 4. 进程管理进程创建进程控制进程通信进程同步 5. 线程管理线...

  • supervisor

    Supervisor进程管理,只能管理非daemon的进程,不能管理守护进程。 安装 yum 默认主配置文件在/e...

  • 操作系统总览

    操作系统的 操作系统的用户界面 进程管理 处理机调度 存储管理 进程和存储管理示例 windows进程和内存管理 ...

  • Linux进程管理 day22

    1.管理进程状态2.管理后台进程3.进程的优先级4.系统平均负载 一、管理进程状态 昨天主要学习了进程(正在运行的...

  • mac 安装配置supervisor

    supervisor 管理进程用的, 公司线上的进程管理就是supervisor.python 写的 , 子进程中...

  • 打通Framework与Kernel-谈谈我对进程管理的理解

    Kernel:Linux学习-进程管理与调度(一)-进程描述及其生命周期Linux学习-进程管理与调度(二)-进程...

网友评论

      本文标题:进程管理

      本文链接:https://www.haomeiwen.com/subject/rosvrhtx.html