gpt4 book ai didi

linux - 两个进程使用的共享库

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:17 26 4
gpt4 key购买 nike

有人问我这个问题:

两个进程P1和P2正在使用一个共享库(UNIX系统)。共享库有一个全局变量 G1,以及一个获取和设置 G1 值的 getval( ) 和 setval( ) 函数。

这是事件的顺序:

P1:Calls setval(10)  P1:Goes to sleep P2: Calls setval(20) P2:Goes to sleep P1:awake from sleep P1: Calls val=getval( )

现在 val 的值是多少?哪个P1收到?是 10 还是 20?

您的答案是什么,并附有解释。选项是:

  1. val=10,这是因为尽管多个进程使用同一个共享库,但每个进程都执行并拥有自己的地址空间。因此,虽然 G1 是一个全局变量,但它的值对于每个进程都是唯一的。

  2. P1。收到值 20,因为当 P1 处于休眠状态时进程 P2 更改了该值。

  3. 无法确定该值。

  4. 如果您愿意,可以添加除这 4 个选项之外的任何其他答案。

好吧,1. 是我的答案。你同意吗?

P1和P2不合作,是独立的进程

最佳答案

值=10。事实上,每个进程都有它的(不是它,“它是”是“它是”)自己的地址空间。库本身没有数据空间。

关于linux - 两个进程使用的共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7088655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com