进程知识点

作者: 狼之足迹 | 来源:发表于2016-08-15 11:11 被阅读49次

典型的linux结构

linux结构图

shell命令执行过程

shell执行

三进程概念

程序的一个执行实例

正在执行的程序

能分配处理器并由处理器执行的实体

进程描述

每一个进程都有一个进程控制块(PCB)linux下为task_struct结构体

该结构体在include/linux/sched.h文件中

进程标识符

PID

PPID

进程映像(从高地址到低地址)

内核部分

命令行参数以及环境变量

共享区

(以下部分由exec替换并初始化)
未初始化数据
已初始化数据

代码区

环境变量的获取

extern char **environ;

相关函数

getenv

setenv

unsetenv

进程状态

running运行状态:正在运行或者在运行队列中

sleeping睡眠状态:在等待事件完成

disk sleep磁盘休眠状态:会等待io完成,不可中断

Zombies僵死状态:父进程未调用wait等待,而子进程退出.

stopped,暂停状态,通过single T信号产生

X(dead),死亡状态,系统清除该进程信息

t (tracing stop):用于debug调试跟踪

一份专业描述

PROCESS STATE CODES

R  running or runnable (on run queue)

D  uninterruptible sleep (usually IO)

S  interruptible sleep (waiting for an event to complete)

Z  defunct/zombie, terminated but not reaped by its parent

T  stopped, either by a job control signal or because it is being traced

[...]

进程基本状态转换

僵尸进程:如果一个进程的父进程一直不掉用wait或者waitpid,子进程退出,没有人接收其状态,那么他就会作为僵尸进程存在,直到父进程退出,然后交给init进程管理

孤儿进程:如果父进程退出,而其还有一个或者多个子进程在运行,那么这些子进程就会变成孤儿进程.由init接管

进程优先级

lang@liang:~$ ps -l

F S  UID  PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD

0 S  1000  4450  2121  0  80  0 -  2236 wait  pts/19  00:00:00 bash

4 R  1000  5126  4450  0  80  0 -  2304 -      pts/19  00:00:00 ps

注:这里的PRI就是进程优先级

而NI则对应nice值,用于调节优先级

相关命令

nice   调节程序执行时优先级
nice -n -5 /usr/local/mysql/bin/mysqld_safe &

renice    修改正在运行程序的优先级
renice -5 -p 5200

进程创建

fork()

fork成功,子进程得到父进程地址空间的堆,栈,数据区域的拷贝,而文本段则是父子进程共享的

进程终止

exit
从主函数返回
_exit
return
最后一个线程调用pthread_exit
调用abort函数
接收到信号终止
最后一个线程对取消请求做出相应

相关文章

  • 多进程知识点详解

    多进程知识点汇总: 一:了解多进程 二:项目中多进程的实现 三:多进程的优缺点与使用场景 四:Android跨进程...

  • 进程知识点

    典型的linux结构 shell命令执行过程 三进程概念 程序的一个执行实例 正在执行的程序 能分配处理器并由处理...

  • 多线程

    16、知识点总结 1、线程和进程 进程:进程是指正在运行的程序。线程:线程是进程中的执行单元,一个进程至少有一个线...

  • Python多进程练习(通过多进程、进程间通信等实现60个G的电

    此篇为学习Python多进程这个知识点是的练习Demo,有兴趣的可以看一下。这 里面涉及到的知识点有:进程池(Po...

  • Python多进程

    参考自: 廖雪峰的Python教程董伟明的博客 知识点: Process Pool 进程间通信 进程(Proces...

  • 多线程

    前言 今天我们主要看看关于线程与进程的一些面试相关的知识点,以及引发出来的多线程的相关知识点。 1. 线程、进程的...

  • Linux中的线程控制

    线程控制知识点 我们知道创建新进程的时候会把父进程的资源复制一份到子进程里面,如果创建的进程过多,就会占用大量的系...

  • android基础-contentProvider

    知识点 uri类 ContentProvider,ContentResolver 实现跨进程访问数据 一、Uri类...

  • js内存

    一、关于内存知识点 堆栈的三种含义内存管理内存机制 进程和线程 进程分配的有内存空间,一个进程有多个线程,每个线程...

  • 《NodeJS开发教程12-process进程》

    process在NodeJS中抽象为进程对象。基本使用比较简单,不做过多讲解。知识点: 1.获取进程pid、内存等...

网友评论

    本文标题:进程知识点

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