首页 > 试题广场 >

关于进程和线程,以下哪些说明是错误的

[不定项选择题]
关于进程和线程,以下哪些说明是错误的
  • 无论多进程和多线程架构的程序,都可以做到利用CPU多核多线程的能力
  • Linux内核看来,进程只是一个资源分配单位,线程才是一个实际的执行体
  • 某个进程fork出来的多个子进程,它们的内存是共享的
  • 多线程架构的调度开销要小于多进程架构,因此多线程性能会更好一些
B选项为什么是错误的,我想题目可能是想说,进程不仅是一个资源分配单位,也可以进行调度。
发表于 2018-07-08 15:17:59 回复(0)
更多回答
B.在Linux中,进程也是CPU调度和分配资源的基本单位  C.线程才是共享的 D多线程比多进程成本低,但性能更低
发表于 2018-07-27 22:24:07 回复(1)
1. 首先分析选项A: - 多进程和多线程架构的程序,理论上都可以利用CPU多核多线程的能力。多进程通过操作系统的调度在不同的CPU核心上运行,多线程可以在一个进程内的多个线程并行在多核上执行(如果支持的话)。所以选项A正确。 2. 接着看选项B: - 在Linux内核看来,进程是资源分配的基本单位,它拥有独立的地址空间等资源;线程是进程内的执行流,是一个实际的执行体,多个线程共享进程的资源。所以选项B正确。 3. 再看选项C: - 某个进程fork出来的多个子进程,它们的内存空间是独立的,只有在使用特定的共享内存机制(如 shmget 等)时才会共享部分内存。所以选项C错误。 4. 最后看选项D: - 多线程架构的调度开销通常要小于多进程架构,因为线程共享进程的很多资源,切换时不需要像进程那样切换大量的上下文。但是多线程性能不一定更好,还取决于很多因素,比如线程之间的同步开销等。不过就调度开销而言,选项D的前半句是正确的。 答案是C D
发表于 2024-11-05 08:00:26 回复(0)
Linux中进程也可以进行调度
发表于 2018-12-24 20:42:08 回复(0)
C 好像和另一道题有冲突啊:那道题的解析:
  • 子进程继承父进程
    • 用户号UIDs和用户组号GIDs
    • 环境Environment
    • 堆栈
    • 共享内存
    • 打开文件的描述符
    • 执行时关闭(Close-on-exec)标志
    • 信号(Signal)控制设定
    • 进程组号
    • 当前工作目录
    • 根目录
    • 文件方式创建屏蔽字
    • 资源限制
    • 控制终端
  • 子进程独有

    • 进程号PID
    • 不同的父进程号
    • 自己的文件描述符和目录流的拷贝
    • 子进程不继承父进程的进程正文(text),数据和其他锁定内存(memory locks)
    • 不继承异步输入和输出
  • 父进程和子进程拥有独立的地址空间和PID参数。

  • 子进程从父进程继承了用户号和用户组号,用户信息,目录信息,环境(表),打开的文件描述符,堆栈,(共享)内存等。
  • 经过fork()以后,父进程和子进程拥有相同内容的代码段、数据段和用户堆栈,就像父进程把自己克隆了一遍。事实上,父进程只复制了自己的PCB块。而代码段,数据段和用户堆栈内存空间并没有复制一份,而是与子进程共享。只有当子进程在运行中出现写操作时,才会产生中断,并为子进程分配内存空间。由于父进程的PCB和子进程的一样,所以在PCB中断中所记录的父进程占有的资源,也是与子进程共享使用的。这里的“共享”一词意味着“竞争”                                  转自脱缰的哈士奇
发表于 2018-09-19 19:38:37 回复(0)