zoukankan      html  css  js  c++  java
  • linux 进程简介

    进程相关知识简介

    进程定义:

      一个运行中的程序即一个process

    task struct:

      内核存储进程信息的固定格式称为task struct,task struct记录了例如该进程内存下一跳位置等信息。

    task list:

      多个task struct组成的链表

    进程的创建

      内核创建第一个进程init,用来管理用户控件所有进程

      所有用户空间都有init或其父进程创建

      父进程所指向的内存即其子进程所指向的进程。待“成熟”后子进程会复制一份父进程的内存空间中的数据,创建属于自己的内存空间。这种机制被称为fork,clone.

      父进程创建子进程的目的:让子进程来完成指定任务,完成后终止子进程。

    进程的优先级:

      0~99:实时优先级,越大优先级越高

      100~139:静态优先级,越小优先级越高

      nice值:-20~+19

    进程的优先级有什么作用?

      内核通过优先级来判断先后运行的程序。相同优先级的进程被分到同一队列(最多140个队列),从而无论进程有多少,内核每次只需遍历进程队列的首部,就可判定需运行哪个队列中的进程。

      每个优先级队列分为两层分别是:已运行过的队列和未运行过的进程。

    进程内存:

      page frame:内核将内存分为若干份,每份4k即page frame。

      进程所占用的内存都是经过内核将若干连续或间断的page frame ,虚拟成的虚拟内存。

    linux进程分类:根据进程占用CPU高还是IO高可分为

      CPU-Bound:cpu密集型

      IO-Bound:IO密集型

    linux进程类型:

      守护进程:与终端无关,在系统启动过程中启动的进程

      前台进程:与终端相关,通过终端启动。

      前台进程可以送往后台,以守护模式运行。

    linux进程状态:

      R:running:运行态

      S:interruptable:可中断睡眠状态,大多数进程处于此状态。处于这个状态的进程因为等待某事件的发生(比如等待socket连接、等待信号量),而被挂起。

      D:uninterruptable:不可终端睡眠状态,不可中断,指的并不是CPU不响应外部硬件的中断,而是指进程不响应异步信号。该状态存在的意义就在于,内核的某些处理流程是不能被打断的。

      T:stopped:停止态

      Z:zombie:僵死态,子进程终止后等待父进程“收尸”,或其父进程挂掉子进程成为孤儿进程。

      linux进程状态详情可参考:http://blog.csdn.net/shenwansangz/article/details/51981459

      

      

  • 相关阅读:
    CSS3:三个矩形,一个宽200px,其余宽相等且自适应满铺
    pidera安装node.js(树莓派)
    深入JavaScript模块化编程
    c# 多显示器设置主屏幕(Set primary screen for multiple monitors)
    c# 获取移动硬盘信息、监听移动设备的弹出与插入事件
    C# 弹出USB外接硬盘(U盘)
    log4net 自定义Appender
    Scrum 思考
    监控浏览器关闭事件
    判断地图的点是否在面内 腾讯地图
  • 原文地址:https://www.cnblogs.com/wxxjianchi/p/9557706.html
Copyright © 2011-2022 走看看