操作系统

2019-03-09  本文已影响0人  cb_guo

进程

进程的创建 - fork() 函数

1、fork 函数不需要参数,返回值是一个进程标识符(PID)。对于返回值有以下3种情况

2、 fork() 函数会创建一个新的进程,并从内核中为此进程分配一个新的可用的进程标识符(PID),之后,为这个新进程分配进程空间,并将父进程的进程空间中的内容复制到子进程的进程空间中,包括父进程的数据段和堆栈段,并且和父进程共享代码段。这时候,系统中又多了一个进程,这个进程和父进程一模一样,两个进程都要接受系统的调度。由于在复制时复制了父进程的堆栈段,所以两个进程都停留在了 fork() 函数中,等待返回。因此,fork() 函数会返回两个,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。

可以这样理解孤儿进程和僵尸进程的区别:孤儿进程是父进程已退出,而子进程未退出;僵尸进程是父进程未退出,而子进程已退出

进程间的通信

前四种主要用于同一台机器上的进程间的通信
而套接字则主要用于不同机器之间的网络通信。

进程调度算法

线程进程的区别体现在几个方面

进程与线程的选择取决以下几点

页面置换算法

在程序运行过程中,如果要访问的页面不在内存中,就发生缺页中断从而将该页调入内存中。此时如果内存已无空闲空间,系统必须从内存中调出一个页面到磁盘对换区中来腾出空间。
页面置换算法的主要目标是使页面置换频率最低(也可以说缺页率最低)。

磁盘调度算法

上一篇下一篇

猜你喜欢

热点阅读