返回
当前 - 选择题 - 进程管理
题号:0020200500002
单选题
2020年11月第2题

在支持多线程的操作系统中,假设进程 P 创建了线程 T1、T2 和 T3,那么下列说法正确的是(该进程中 T1 的栈指针是不能被 T2 和 T3 共享的)。

问题(1)
浓缩知识点

在支持多线程的操作系统中,同一进程下的多个线程共享进程级核心资源,包括代码段、数据段、堆内存、已打开的文件句柄、信号量、全局变量、定时器等,这些资源由进程统一管理,线程可共同访问以实现协作。同时每个线程拥有独立的私有运行上下文,涵盖寄存器集合(包含栈指针)、专属线程栈、线程局部存储、程序计数器等,这类私有资源是线程独立执行任务的基础,能避免线程间执行状态互相干扰,保障多线程并发执行的有序性,比如线程栈用于存储自身函数调用的局部变量、返回地址,栈指针指向当前栈帧位置,这类资源无法被其他线程访问。

正确答案
C

本题考察的是线程与进程资源的共享与私有的基本概念。

一个进程内的线程共享进程级资源,如代码段、数据段、堆、已打开文件、信号量、定时器等;但每个线程有自己私有的运行时上下文,包括寄存器集合(其中包含栈指针SP)、线程栈、线程局部存储等,这些不能被其他线程共享。
A选项:已打开文件属于进程级资源,处于同一进程内的 T1、T2、T3 可以共同访问并共享其文件描述符/句柄,因此该说法错误。
B选项:栈指针属于线程私有的寄存器状态,不仅不能被 T2 共享,也不能被 T3 共享;“但可被 T3 共享”的说法不成立,错误。
C选项:指出 T1 的栈指针不能被 T2 和 T3 共享,符合线程私有资源的定义,正确。
D选项:任意线程的栈指针都不能被其他线程共享,该说法与线程栈与寄存器上下文私有性的原则相违背,错误。
C 正确。

联系我们
隐私协议
用户协议
微信公众号
知乎
小红书
浙ICP备2021029036号
@2022-2026
嘉兴市安芯网络科技有限公司 版权所有