一、什么是进程
Unix标准定义:一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。
进程由 程序代码、数据、打开文件描述符、栈空间、环境空间等组成。
二、进程状态
进程的状态有:启动(New)、等待(wait)、就绪(ready)、运行(running)和终止(termination)等组成。
New:进程正在被创建。
Ready:进程等待被分配给某个处理器。
Wait:进程等待一定事件的出现(如IO的完成或收到某个信号)。
Running:进程指令正在执行。
Termination:进程已完成执行。
程序状态图如下:
Linux进程状态(五种)
1)Task_Running(就绪或运行),进程正在执行或者在运行队列中就绪等待执行。
2) Task_Interruptible(可中断,等待),进程睡眠(阻塞状态),等待某条件的达成,唤醒并投入运行(先就绪)。
3) Task_Uninterruptible(不可中断,等待),不会因为接收到信号而被唤醒,其它与Task_Interruptible相同
4)Task_Zombie(僵死,终止),进程结束但父进程还没调用wait4()。为了父进程能够获得子进程的消息,子进程的进程
描述符仍然保存,知道父进程调用了wait4,进程描述符释放。
5)Task_Stopped(停止),进程停止执行,进程没有投入运行也不能投入运行。通常发生在接收到SIGSTOP,SIGTSTP,
SIGTTIN,SIGTTOU等信号时,调试期间接收到任何信号都进入到这种状态。
三、进程优先级和进程调度
四、创建进程
方法一:system调用
方法二:替换进程映像
方法三:复制进程映像
ps命令、nice值