进程总结

1.进程概念
课本概念:进程就是程序的一次执行过程。
内核观点:担当分配系统资源(CPU,内存)的实体。
2.进程的描述
PCB(process control block),在Linux操作系统下的PCB是task_struct。
task_struct结构包含以下信息:
(1)进程状态;
(2)调度信息;
(3)标志符;
(4)内部进程通信;
(5)链接信息;
(6)时间和计时器;
(7)文件系统;
(8)虚拟内存;
(9)处理器信息。
进程状态
R 运行状态(running):并不意味着进程一定在运行中,表明进程要么是在运行中要么在运行队列里。
S 睡眠状态(sleeping):进程在等待事件完成(这里的睡眠有时也叫做可中断睡眠(interruptible sleeping))。
D 磁盘休眠状态(Disk sleep):有时也叫不可中断睡眠状态(uninterruptible sleeping),在这个状态的进程通常会等待IO的结束。
T 停止状态(stopped):可以通过发送SIGSTOP信号给进程来停止(T)进程;这个被暂停的进程可以通过发送SIGCONT信号让进程继续运行。
X 死亡状态(dead):这个状态只是一个返回状态,不会在任务列表里看到这个状态。
Z 僵死状态(zombie):当进程退出并且父进程(使用wait()系统调用)没有读取到子进程退出的返回代码时就会产生僵死(尸)进程。僵死进程会以终止状态保持在进程表中,并且会一直等待父进程读取退出状态代码。
模拟实现僵尸状态:
进程总结_第1张图片
运行结果:
进程总结_第2张图片
孤儿进程:
父进程如果提前退出,子进程就称为“孤儿进程”。孤儿进程被1号init领养,要有init进程回收。
代码实现:
进程总结_第3张图片
运行结果:
这里写图片描述
环境变量
基本概念:环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数;环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。
常见环境变量:
PATH* :指定命令的搜索路径。
HOME* :指定用户的主工作目录(即用户登录到Linux系统中时默认的目录)。
HISTSIZE* :指保存历史命令记录的条数。
SHELL* :当前shell,它的值通常是/bin/bash。
查看环境变量的方法
echo $环境变量名称
虚拟地址空间

进程总结_第4张图片

你可能感兴趣的:(进程总结)