页面置换算法:
最佳置换算法
先进先出算法
最近最久未使用算法
时钟算法
进程调度算法:
先来先服务
短作业优先
最高响应比
时间片轮转
进程间的通信方式:
信号
管道
消息队列
共享内存
套接字
孤儿进程,僵尸进程:
孤儿进程:父进程在它的子进程结束之前就退出了,那么这些子进程就成为孤儿进程。孤儿进程会被init(pid=1)进程所收养,回收这些孤儿进程。
僵尸进程:父进程创建了子进程,若子进程退出,但是父进程并没有调用wait()或者waitpid()获取子进程的状态,那么子进程的进程描述符就仍然保存在系统中。这些进程称为僵尸进程。
孤儿进程
父进程在子进程结束之前死亡(return或者exit)
在一定时间内,当系统发现孤儿进程时,init进程就收养孤儿进程,成为它的father,child进程exit后资源回收都又init进程完成。
僵死进程
子进程在父进程之前结束了,但是父进程没有用wait或waitpid回收子进程【子进程在父进程之前结束,但父进程没有回收子进程的pid,造成资源浪费】
僵尸进程的危害:
若一个进程产生子进程后不调用wait()或waitpid()的话,那么子进程退出后的进程描述符不会释放,进程号也就一直被占用,但是系统使用的进程号是有限的,如果大量产生僵尸进程,就有可能导致系统没有可用的进程号了而不能产生新进程,这就是僵尸进程的危害。
最后,fork与vfork的区别:
1. fork要拷贝父进程的数据段;而vfork则不需要完全拷贝父进程的数据段,在子进程没有调用exec和exit之前,子进程与父进程共享数据段
2. fork不对父子进程的执行次序进行任何限制;而在vfork调用中,子进程先运行,父进程挂起,直到子进程调用了exec或exit之后,父子进程的执行次序才不再有限制
参考:http://blog.csdn.net/qq_23948283/article/details/52627864