进程相关知识简介

进程定义:

  一个运行中的程序即一个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. Flink 从 0 到 1 学习 —— Flink Data transformation(转换)

    toc: true title: Flink 从 0 到 1 学习 -- Flink Data transformation(转换) date: 2018-11-04 tags: Flink 大数据 ...

  2. 漏洞靶场--webug4.0安装

    官网:https://www.webug.org/ 官方版本里安装视频教程 7.19官网打不开,分享当初存在网盘的[7.1更新] 链接: https://pan.baidu.com/s/1F3658i ...

  3. MySQL如何进行索引重建操作?

    在MySQL数据库中,没有类似于SQL Server数据库或Oracle数据库中索引重建的语法(ALTER INDEX ... REBUILD),那么在MySQL数据库中,是否有什么方式重建索引呢? ...

  4. maven项目部署到tomcat方法

    今天记录下,maven项目部署到服务器的过程 1.首先在ide中里将自己的maven项目打包 mvn clean install 2. 看是否需要修改war包的名字,如果要修改,就用命令 mv xxx ...

  5. C语言博客作业006

    问题 答案 这个作业属于那个课程 C语言程序设计1 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/ 我在这个课程的目的是 学习并掌握 ...

  6. [Jupyter Notebook]Notebook添加Ancona虚拟环境

    1.首先安装ipykernel:conda install ipykernel 解决安装ipykernel权限报错问题 wangbin@Skyell_Cloud:~$ sudo chown -R wa ...

  7. NOIP模拟21+22

    模拟21确实毒瘤...考场上硬刚T3 2.5h,成功爆零 T1.数论 看这题目就让人不想做,考场上我比较明智的打完暴力就弃掉了,没有打很久的表然后找规律. 正解貌似是乱搞,我们考虑一个比较显然的结论: ...

  8. 通俗易懂了解Vue的计算属性

    1.前言 之前在学习vue的过程中,一直没有搞明白计算属性是个怎么回事,以及为什么要有计算属性,使用计算属性有什么好处.今天花时间翻了翻官方文档,才搞清楚其中一二,现将学习心得总结记录如下. 2.为什 ...

  9. FHQ treap学习(复习)笔记

    .....好吧....最后一篇学习笔记的flag它倒了..... 好吧,这篇笔记也鸽了好久好久了... 比赛前刷模板,才想着还是补个坑吧... FHQ,这个神仙(范浩强大佬),发明了这个神仙的数据结构 ...

  10. Android Drawable 简析

    Drawable 是开发中经常用到的一个概念,我们经常用它去设置 View 的背景,背景可以一个颜色值,也可以是一张资源图片,还可以是一个自定义的 Drawable等等.这篇文章就简单说下 Drawa ...