生产者消费者问题node
共享缓冲区中放置一个数字,取值范围为[0, 10],初值为0。生产者将此值加1,消费者将此值减1。算法
场景1 spa
同一进程内启动一组生产者线程和一组消费者线程线程
缓冲区为本进程的全局变量索引
场景2进程
启动一组生产者进程和一组消费者进程资源
同一个数据文件为缓冲区it
输入 io
p:生产者数量变量
c:消费者数量
输出
打印当前共享缓冲区中的数值,或者生产者消费者的状态。如
Producer 1: 0 -> 1
Consumer 2: 1 -> 0
Consumer 3: waiting
...
Producer 0: 0 -> 1
Consumer 3: (resume) 1 -> 0
...
Producer 1: 9 -> 10
Producer 2: waiting
Consumer 1: 10 -> 9
Producer 2: (resume) 9 -> 10
银行家算法程序
输入
p: 进程数量
r:资源数量
各进程的 max, allocation
输出
若产生死锁,打印提示:死锁状态。
不然,给出一种调度顺序。
页式存储逻辑地址到物理地址映射
条件:64位地址空间
输入:
页记录大小(如 4Byte)
页大小(如 4KB)
页表级数(如,2表示2级页表,n表示n级页表)
逻辑地址(十六进制)
输出:物理地址(物理块号,块内偏移)
说明:页表随机产生,为便于验证可令逻辑页号 n 的物理块号为 n。
混合索引逻辑地址到物理地址映射
条件:自定义混合索引 inode 结构
必须包括一次,二次,和三次间接块
逻辑块 n 对应物理块 n
输入:文件逻辑地址
输出
1. 输出 inode 详细信息(间接块不展开)
2. 物理地址(物理块号,块内偏移)