1、什么是进程和线程,它们的区别是什么?
(1)进程是资源分配和调度的一个独立单元;线程是cpu调度的基本单元;
(2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源,一个进程至少包含一个线程;
(3)进程的创建用fork或者vfork;线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束;
(4)线程是轻量级的进程,它的创建和销毁所需要的时间比进程小很多,所有操作系统中的执行功能都是创建线程去完成的;
(5)多线程执行时一般需要进行同步和互斥,因为他们共享同一进程的所有资源;
(6)线程有自己的私有TCB,线程id,寄存器,硬件上下文,而进程也有自己的私有属性进程控制块PCB,这些私有属性是不被共享的,用来标示一个进程或一个线程的标志。
2、进程有哪几种状态?
三态模型
(1) 运行态,进程占有cpu运行;
(2)就绪态,进程具备运行条件,等待系统分配cpu以便运行;
(3)等待态,又称阻塞态或者睡眠态,指进程不具备运行条件,正在等待某个事件的完成。
五态模型
(1)新建态
(2)