关于操作系统一些问题

可容纳多达 30 辆汽车的无人停车系统中内置的操作系统运行着两个进程 A 和 B。
进程A是管理停车场入口的进程。 车到门口时,如果停车场有空位,就会出票,车子通过,如果没有空位,就停车,直到有空位。
进程B是管理停车场出口的进程。 当汽车离开时,进程B收取车票和停车费并通过汽车。
在流程 A 和流程 B 中,必须交换信息,以便停车场当前可用的汽车数量不存在矛盾。

问题1
进程A和B的模拟代码如下。 但是,不包括互斥的代码。 lock (w) 是对 lock 的系统调用,unlock (w) 是对 unlock 的系统调用。 在这两种情况下,LOCK状态都存储在共享变量 w 中。 在模拟代码中插入这些系统调用,以便进程 A 和 B 正常工作(在“// 〇号”处)。

进程A:当汽车试图通过入口进入时激活
// ①
xa: = 共享变量“停车场空着的台数”
// ②
if (xa = 0) then
flag := true
else begin
flag := false
共享变量_停车场空着的台数:= xa – 1
end
// ③
if (flag) then 跳转到第一行
// ④
出票
// ⑤
可以让汽车通行
// ⑥
进程B:当汽车试图退出时启动
// ①
收取门票和停车费
// ②
xb: = 共享变量“停车场空着的台数”
// ③
共享变量“停车场空着的台数”:= xb + 1
// ④
让汽车通行
// ⑤

问题2
对于信号量s,命令P和命令V的系统调用分别是P(s)和V(s)。
下面是进程 AA 和 BB 的模拟代码代码,它们的工作方式与问题 (1) 中的进程A和B相同。 AA 和 BB 使用信号量代替锁来实现与 A 和 B 相同的功能。 但是,不包括与信号量相关的系统调用。 当semaphore s中存有空车位数量时,在模拟代码中对该semaphore进行系统调用,使进程AA和BB正常工作。
请插入(在“// ○ 编号”处)。
进程AA:当汽车试图通过入口进入时激活
// ①
出票
// ②
让汽车通行
// ③
进程 BB:当汽车试图退出时启动
// ①
收取门票和停车费
// ②
让汽车通行
// ③

问题是什么呢?

进程A:当汽车试图通过入口进入时激活
lock (w)
xa: = 共享变量“停车场空着的台数”
if (xa = 0) then
flag := true
else begin
flag := false
共享变量_停车场空着的台数:= xa – 1
end
unlock (w)
if (flag) then 跳转到第一行
出票
可以让汽车通行

进程B:当汽车试图退出时启动

收取门票和停车费
lock (w)
xb: = 共享变量“停车场空着的台数”
共享变量“停车场空着的台数”:= xb + 1
lock (w)
让汽车通行

问题2
进程AA:当汽车试图通过入口进入时激活
出票
P(s)
让汽车通行
V(S)
进程 BB:当汽车试图退出时启动
P(s)
收取门票和停车费
V(S)
让汽车通行

感觉你这个排版都乱掉了,伪代码用缩进表示从属关系的吧,你这个从属关系都乱掉了,怎么看怎么不对。用代码的方式提交伪码吧。例如

a=5;
b5;
if 条件为true:
    a=10;
    b=10;
a=5b=5;
if 条件为true:
    a=10;
b=10;

这两个就会不同,上面只有条件满足时b=10,而下面这个无论如何b都会等于10
还有个问题,你序号那里只填写lock或者unlock,第二问只有PV还是会写别的语句?

真的看不懂题目想表达什么,每个序号一样的要填写一样的内容?第一题实在不行你就贴英语原题吧。题目的意思是实现互斥锁,这个可以理解,但是互斥锁并不需要这么多填空的地方啊,而且到底是只填系统调用也就是lock或者unlock,还是可以填写其他内容?
如果每空要一致的话,难不成第一空填上new 一个lock,第五空release这个new lock?第六空填上开始计费?2,4空照你说的填,3填上判断共享变量是大于0小于30?满足执行下面的代码,不满足跳转到开始?

第二题还比较简单点,1填上条件判断if (s>0 and s<30),2填上P(s)(下面的要填V(s)),3 填if (s==0 或s==30) then 跳转到开始。

题目大意是把两种系统调用的模拟代码插入到对应的标号位置,让流程满足两个进程的工作方式。
问题1:进程A应该是① lock(w)与③unlock(w),进程B应该是② lock(w)与④unlock(w)。
问题2:进程AA应该是① P(s),进程BB应该是③ V(s)。

感觉问题描述不是太清楚,大家都没有明白啊。

咋题主又消失了,你的问题还是更新下,编辑里有代码块的

你这个伪代码,看得真让人纠结,如果真有心要去处理,最好更新下;
1、比如代码部分,还是要按代码格式来发布,这样比较好看,也能更好的展示你的问题;
2、就是的你问题部分,你需要别人帮你解决什么问题,需要达到什么程度,这些最好说清楚,这样别人才能更方便、准确的帮助;

你可以参考下。