进程
学习操作系统,也得了解其中的一些原理。
什么是进程?
进程是有独立功能的程序关于某个数据集合的一次运行活动。
特点:
动态性:可动态创建,结束;
并发性:可以被调度,轮流占用处理机;
独立性:有独立的地址空间;
制约性:因访问共享数据或进程间同步而产生只制约。
进程控制块(PCB):系统管理控制进程运行用的信息集合。
进程状态:运行状态(Running)、就绪状态(Ready)、阻塞状态又称等待状态(Blocked)、创建状态(New)、结束状态(Exit)。
进程挂起:进程在挂起(Suspend)状态意味着进程没有占用内存空间,处在挂起状态的进程映像在磁盘上。
作业:是用户对计算机的一次独立的使用过程。
轻量级进程(Light-Weight Process):一种共享存储空间的进程概念应运而生。
进程环境
环境变量:有一个指针变量environ,它指向的是包含所有的环境变量的一个列表。
-getenv()访问一个环境变量。
-setenv()在程序里面设置某个环境变量函数。
-unsetenv()清除某个环境变量的函数。
进程标识:PID(进程标识符)Process Identifier,就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序。是一个非负整数。
进程ID(PID):是唯一的数值,用来区分进程。
进程状态:运行态R、休眠态S、僵尸Z。
进程编程
四个函数族:fork&&vfork函数族,exec函数族,exit函数族,wait函数族。
进程的一生
随着一句fork,一个新进程呱呱落地,但它这时只是老进 程的一个克隆。
然后随着exec,新进程脱胎换骨,离家独立,开始了为人 民服务的职业生涯。
人有生老病死,进程也一样:
自然死亡,即运行到main函数的最后一个“}”,从容地离我们而去。
自杀(自杀有2种方式)
调用exit函数;
在main函数内使用return;
无论哪一种方式,它都可以留下遗书,放在返回值里保留下来。 这就是进程完整的一生。
被谋杀,被其它进程通过另外一些方式结束他的生命。
进程死掉以后,会留下一具僵尸,wait充当了殓尸工,把僵尸推去火化,使其最终归于无形。
这就是进程完整的一生。