首页 > 试题广场 >

以下关于进程和线程的说法,哪些是正确的?

[不定项选择题]
以下关于进程和线程的说法,哪些是正确的?
  • 进程是资源分配的基本单位,线程是 CPU 调度的基本单位。
  • 同一进程中线程之间共享进程的地址空间,进程之间地址空间独立。
  • 线程的创建和切换开销比进程大。
  • 多线程程序在多核 CPU 上可以并行执行。
线程的创建与切换开销通常比进程小得多。这两者的开销差异主要源于操作系统对内存资源的不同处理方式。 1. 创建开销:进程要“复制” vs 线程要“共享” · 进程:操作系统需要创建独立的地址空间。这包括分配物理内存、建立页表等。在 Linux 下,即便使用写时拷贝技术优化了数据拷贝,页表的创建和切换开销依然很高。 · 线程:与父线程共享地址空间和资源(如文件描述符)。操作系统只需分配栈和寄存器上下文,无需建立新的内存映射,所以创建速度非常快。 2. 切换开销:TLB 缓存 vs 有效利用 · 进程:切换进程需要切换页表(刷新 TLB,即转译后备缓冲器,负责加速地址转换的硬件缓存)。这会导致新进程开始运行时大量缓存缺失,不得不重新从内存中加载数据,因此速度较慢。 · 线程:在同一进程内切换线程,不需要刷新 TLB,且代码、数据缓存有效。上下文切换只需保存和恢复寄存器,开销非常低。
发表于 今天 13:03:55 回复(0)