进程面试题(进程相关面试题)
下面是好好范文网小编收集整理的进程面试题(进程相关面试题),仅供参考,欢迎大家阅读!
进程和线程的区别
线程:是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)
线程的好处是 :
易于调度。
提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同- 开销少。创建线程比创建进程要快,所需开销很少。。
利于充分发挥多处理器的功能。通过创建多线程进程,每个线程在一个处理器上运行,从而实现应用程序的并发性,使每个处理器都得到充分运行
进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)
所以,区别有:
调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.
系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。
进程状态
进程的状态和线程的状态很像,有下面的5种状态:
创建状态。进程被创建好,但是此时没有进入到就绪状态。
就绪状态。进程获取到了除了处理器之外的所有资源,即,万事俱备,只欠东风,一旦处理器被分配给该进程,就能执行起来。
运行状态。获取到到处理器资源,执行程序。
阻塞状态。也叫等待状态。程序在等待某些被占用的资源或是等待I/O,这个时候程序处于空闲状态,什么都不能做。
结束状态。进程从系统中消失,可能是正常退出,也可能是其他原因的中断推出。
查看进程的指令:
# a:显示终端上的所有进程# u:显示进程详细信息# x:显示没有控制终端的进程# j:列出与作业控制相关的信息ps aux / ajx
c创建子进程:
#include<sys/types.h>#include<unistd.h>pid_t /*fork的子进程:读时共享,写时拷贝,并不是fork子进程就对父进程进行一份虚拟空间拷贝开销大!因为要复制内存页表、文件描述符等*/
孤儿进程:父进程已经结束,但是子进程还未结束,这样的子进程就叫孤儿进程。这个时候由init进程收养,变成init的子进程,并未这个子进程善后。init进程是linux的第一个进程,进程号为1。孤儿进程是没有危害的。
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。僵尸