进程(Process)是系统进行资源分配和调度的基本单位。进程也是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。
一、操作系统中资源分配的基本单位
进程(Process)是系统进行资源分配和调度的基本单位。进程也是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。
与进程相对应,线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。
线程只由相关堆栈(系统栈或用户栈)寄存器和线程控制表TCB组成。寄存器可被用来存储线程内的局部变量,但不能存储其他线程的相关变量。
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源;
故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。
延伸阅读:
二、进程和线程的区别
调度
进程是资源分配的基本单位,线程是系统调度的基本单位。
拥有资源
进程是拥有资源的独立单位。而线程不拥有系统资源,而是共享进程的资源(包括代码段、数据段即系统资源等)。
并发性
多线程可以提高服务的质量,在一个线程阻塞时,还有其他线程提供服务。
系统开销
进程切换的开销远远大于线程切换的开销,进程的切换需要保存很多现场。但线程只需要保存和设置少量的寄存器内容,不涉及存储器管理方面的操作
以上就是关于操作系统中资源分配的基本单位的内容希望对大家有帮助。