进程相关知识简介

进程定义:

  一个运行中的程序即一个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

  

  

linux 进程简介的更多相关文章

  1. 使用Supervisor管理Linux进程

    使用Supervisor管理Linux进程 简介 Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,提供了大量的功能来实现对进程的管理. 安装 sudo ...

  2. linux进程编程:子进程创建及执行函数简介

    linux进程编程:子进程创建及执行函数简介 子进程创建及执行函数有三个: (1)fork();(2)exec();(3)system();    下面分别做详细介绍.(1)fork()    函数定 ...

  3. linux 文件系统简介

    linux文件系统简介   文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基 ...

  4. linux 进程管理相关内容

    简介 当我们运行程序时,Linux会为程序创建一个特殊的环境,该环境包含程序运行需要的所有资源,以保证程序能够独立运行,不受其他程序的干扰.这个特殊的环境就称为进程. 每个 Linux 命令都与系统中 ...

  5. Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装

    原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底 ...

  6. 第2课 Linux操作系统简介

    1. Linux操作系统的构成 (1)内核(kernel) ①操作系统的核心,负责管理系统的进程.内存.设备驱动程序.文件和网络系统. ②控制系统和硬件之间的相互通信. ③决定着系统的性能和稳定性. ...

  7. Linux内核分析——第一章 Linux内核简介

    第一章   Linux内核简介 一.Unix的历史 1.Unix系统成为一个强大.健壮和稳定的操作系统的根本原因: (1)简洁 (2)在Unix中,很多东西都被当做文件对待.这种抽象使对数据和对设备的 ...

  8. 2013337朱荟潼 Linux第一章读书笔记——Linux内核简介

    一.Unix历史 二.Linux足迹 类Linux系统.非商业化产品.用途广泛 三.操作系统和Linux内核简介 1.操作系统 (1)是指在整个最基本功能系统中负责完成最基本功能和系统管理的部分. ( ...

  9. Linux进程数据结构详解

    1.Linux的进程简介: 支持多线程的操作系统中,进程是资源分配的最小单位,线程是调度的基本单位.Linux是现代的32位或64位的支持多线程的操作系统,不过Linux是一种以轻量级进程作为线程,多 ...

随机推荐

  1. 别说家庭组开不了,一定成功的方法|win7家庭组无法开启|win7如何共享打印机

    两台WIN7要开启家庭组并且共享打印机 这两台电脑必须打开以下服务:dnscache(任务管理器 简写).fdrespub(任务管理器 简写).(接下来下了都是服务里面的)SSDP Discovery ...

  2. C++ 11标准

    C++11,也称为C++0x.为目前C++编程语言的最新正式标准(ISO/IEC 14882:2011).它将取代第二版标准ISO/IEC 14882:2003(第一版ISO/IEC 14882:19 ...

  3. fenby C语言

    P1框架 1#include <stdio.h> 2 3int main(){ 4    printf(“C语言我来了”); 5    return 0; 6} P2main()门 P3计 ...

  4. Cookie 、session、token都是什么?

    1.Cookie 起源:1993年,网景浏览器的员工为了让用户访问某网站时,进一步提高访问速度,实现个人化网络发明了cookie.(看来有时候的偷懒会促进社会的进步啊~,就像人们不想做饭就诞生了外卖) ...

  5. 【重构】AndroidStudio中代码重构菜单Refactor功能详解

    代码重构几乎是每个程序员在软件开发中必须要不断去做的事情,以此来不断提高代码的质量.Android Stido(以下简称AS)以其强大的功能,成为当下Android开发工程师最受欢迎的开发工具,也是A ...

  6. 跑酷天堂C++小黑框版

    上:跳跃 左右:行走 #include <bits/stdc++.h> #include <windows.h> #include <conio.h> using ...

  7. js基础总结03 --操作数组

    修改于 2019-11-10 1 length:长度 <script> var arr = [1,2,3,4,5,6,7,8]; console.log(arr.length);//arr ...

  8. SpringBoot之ActiveMQ实现延迟消息

    一.安装activeMQ ​ 安装步骤参照网上教程,本文不做介绍 二.修改activeMQ配置文件 ​ broker新增配置信息 schedulerSupport="true" & ...

  9. python中程序的异常处理

    什么叫异常? 导致程序异常退出叫做异常 try...except...else 如果要抓取某种特定异常可以用except ERROR as e else:如果程序正常执行那么会执行else里面的代码 ...

  10. 创建python的虚拟环境

    为什么需要虚拟环境?如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0 ...