网站建设 科技公司,企业培训师资格证报考官网入口,旅游网站图片,流量与网站进程的几种重要状态#xff0c;就绪态#xff1b;运行态#xff1b;僵尸态#xff1b;等待态#xff08;浅度睡眠、深度睡眠#xff09;#xff1b;停止态。 就单核CPU而言#xff0c;在同一时间只能运行一个进程#xff0c;但实际上要运行的进程不止一个#xff0c;… 进程的几种重要状态就绪态运行态僵尸态等待态浅度睡眠、深度睡眠停止态。 就单核CPU而言在同一时间只能运行一个进程但实际上要运行的进程不止一个系统中又两个链表就绪态链表和进程链表。 就绪态只差cpu调用就能运行的状态。 运行态得到cpu时间的就绪进程。 僵尸态进程结束等待父进程回收内存。 等待态等待一定条件满足后就能到达就绪态现在就算被cpu调用也运行不了。浅度睡眠的时候进程可以被信号唤醒深度睡眠等待时不能被唤醒只能在满足条件的情况下才会结束睡眠。 等待态暂停并不是进程终止只是被信号暂停了可以被恢复。 本质上是为了高效的使用CPU跑不了的就交出CPU进行等待让CPU去无时无刻的干活。 system函数是原子级操作本质上作用与eyecfork实现的功能差不多只是eyecfork是非原子级的操作而system是原子操作。 原子操作不会引来竞态坏处就是连续占用CPU时间过长。不必要的原子操作影响实时性在不可避免的使用原子操作时应尽可能减少占用时间。 system支持PATH在环境变量中查找变量。 进程关系①无关系②父子进程关系③进程组④会话。无关系进程间是严格分隔的。父子进程是父fork子。 进程组group组操作组用户等是对权限位而言的进程组由多个进程组成组长ID为组ID希望某些进程关联更高相互能够有交流、共享。 会话进程组的组session。 守护进程是用户进程基于应用层而非应用层。守护进程的特点①daemon守护进程后台程序d。②长期运行开机到关机。③与控制台脱离不予控制台终端绑定。④服务器server一直运行可以提供基础服务如nfsshell当需要使用时与程序服务器通信提供服务一般以守护进程的方式实现。 常见的守护进程syslogd斯特日志守护进程提供syslog日志cron时间管理如定时执行管理。任意的一个进程都可以成为守护进程步骤如下
①子进程等待父进程退出。
②子进程使用setsid创建新会话期脱离控制台。
③调用chdir将当前工作目录设定到/
④umask设为0以取消任何文件的权限。
⑤关闭所有文件描述符。
⑥将fd的0、1、2定位到/dev/null。
create_daemon(){......pidfork();if(pid0){perror(fork1);}if(pid0){exit(0);}if(0pid){pidsetsid();//设为新的会话期脱离控制台if(pid0){perror(“setsid”);exit(-1);}chdir(/);//工作目录设在根目录umask(0);for(int i0;ixxx;i)//遍历到系统许可的最大文件数目目的是不让这个进程去一直占用某个文件{close(i);//用sysconf()得到xxx是多少int cntsysconf(_SC_OPEN_MAX)}open(/dev/null,O_RDWR);//fd0标准输入open(/dev/null,O_RDWR);//fd1标准输出open(/dev/null,O_RDWR);//fd2标准错误//将三个标准指向垃圾堆此后该进程再无任何标准入/出/err}
} 使用kill -9 xxx使用9号信号结束结束xxx守护进程。