刷面试题的时候遇到的问题,发现还是无法完整的回答出来,于是整理一下以加深记忆,如有错误之处,欢迎指正。
一、进程
进程是系统中正在运行的程序的实例,是系统进行资源分配和调度的一个独立单位。
进程的特征:
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征:进程由程序、数据和进程控制块三部分组成。
二、线程(轻量级进程)
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
线程必须依赖进程存在。
引入线程主要是为了提高系统的执行效率,减少处理机的空转时间和调度切换(保护现场信息)的时间,以及便于系统管理。
三、区别
(1)不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。
(2)进程是资源分配的基本单位,同一进程内多个线程共享其资源。
(3)进程切换时涉及到有关资源指针的保存以及地址空间的变化等问题;线程切换时,由于同不进程内的线程共享资源和地址 空间,将不涉及资源信息的保存和地址变化问题,从而减少了操作系统的开销时间。
(4)线程的划分尺度小于进程,多线程程序的并发性高。