在引入线程的操作系统中,资源分配和调度的基本单位是什么?进程还是线程?为什么?
在引入线程的操作系统中,资源分配和调度的基本单位是进程。
进程表示单个运行活动集的计算机程序,是系统的资源分配和调度的基本单元,是操作系统结构的基础。
在早期面向进程的计算机结构中,过程是程序的基本执行实体,在面向线程设计的现代计算机结构中,进程是线程的容器。程序是对指令、数据及其组织形式的描述,流程是程序的实体。
操作系统引入进程的概念的原因:从理论角度看,是对正在运行的程序过程的抽象。从实现角度看,是一种数据结构,目的在于清晰地刻画动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。
扩展资料:
线程的实体包括程序、数据和TCB。线程是动态概念,它的动态特性由线程控制块TCB(Thread Control Block)描述。TCB包括以下信息:
1、线程状态。
2、当线程不运行时,被保存的现场资源。
3、一组执行堆栈。
4、存放每个线程的局部变量主存区。
5、访问同一个进程中的主存和其它资源。
用于指示被执行指令序列的程序计数器、保留局部变量、少数状态参数和返回地址等的一组寄存器和堆栈。
参考资料来源:百度百科-进程
进程(Process)是系统进行资源分配和调度的基本单位。
进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位。
在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。
所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)
扩展资料
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。
线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
首先答案是:引入线程的操作系统中,资源分配和调度的基本单位是线程。
分析如下
在20世纪60年代中期,人们设计多道程序OS时,引入了进程的概念,从而解决了单处理机环境下的程序并发执行问题。在在此后的二十年里,在多道程序OS中一直是以进程作为能拥有资源和独立调度(运行)的基本单位的。到了80年代中期,人们又提出了比进程更小的基本单位———线程的概念,试图用它来提高程序的并发执行的速度,以进一步改善系统的服务质量。在20世纪90年代后,多处理机系统得到了迅速发展,由于线程能更好地提高程序的并发执行速度,因而现在的多处理机系统无一例外的都引入了线程。
所以在传统的OS中,进程是独立调度和分配的基本单位,因而进程是能独立运行的基本单位。在每次调度时,都需要上下文切换开销较大。而在引入线程的OS中,已把线程作为调度和分派的基本单位,因而线程是能独立运行的基本单位。当线程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。在同一进程中,线程的切换不会引起进程的切换。而在不同进程的线程之间切换时,必然会导致进程的切换。
线程具有进程的许多特征,所以线程又被称为轻型进程(Light-Weight Process)。传统的进程被称为重型进程(Heavy-Weight Process)。
以上为本人纯手打,如果您觉得有用的话,麻烦帮忙点个赞,让更多的人看到。
参考来自于《计算机操作系统》第四版,第二章进程的描述与控制。
为了帮助进程的运算与操作,引入了线程。但是资源的分配和调度基本单位仍旧是进程。