首页 > 系统服务 > 详细

Linux操作系统的进程管理

时间:2019-11-18 09:04:22      阅读:81      评论:0      收藏:0      [点我收藏+]

       Linux操作系统的进程管理

                       作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.进程相关概念

1>.进程概述

内核的功用:
  进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等
Process:
  运行中的程序的一个副本,是被载入内存的一个指令集合   进程ID(Process ID,PID)号码被用来标记各个进程   UID、GID、和SELinux语境决定对文件系统的存取和访问权限   通常从执行进程的用户来继承   存在生命周期
task struct:
  Linux内核存储进程信息的数据结构格式
task list:
  多个任务的的task struct组成的链表
进程创建:   init:第一个进程   进程:都由其父进程创建,父子关系,CoW     fork(), clone()

2>.用户和内核空间

技术分享图片

3>.进程,线程和协程

技术分享图片

4>.进程的基本状态和转换

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

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

 

技术分享图片

5>.进程优先级

 

 

二.进程及系统相关工具

 

Linux操作系统的进程管理

原文:https://www.cnblogs.com/yinzhengjie/p/11879987.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!