封锁管理子系统模拟实现
文件锁定有两种方式:共享的和独占的。多个共享锁可同时对同一文件区域发生作用;独占锁 则不同,它要求相关区域不能有其他锁定在起作用。 共享锁和独占锁的经典应用,是控制最初用于读取的共享文件的更新。某个进程要读取文件, 会先取得该文件或该文件部分区域的共享锁。第二个希望读取相同文件区域的进程也会请求共享 锁。两个进程可以并行读取,互不影响。但是,假如有第三个进程要更新该文件,它会请求独占 锁。该进程会处于阻滞状态,直到既有锁定(共享的、独占的)全部解除。一旦给予独占锁,其他 共享锁的读取进程会处于阻滞状态,直到独占锁解除。这样,更新进程可以更改文件,而其他读取 进程不会因为文件的更改得到前后不一致的结果。
封锁管理子系统通过加锁来控制用户对系统资源的并发使用。用户使用系统资源前必须申请封锁,即给出申请封锁的对象资源号、封锁方式和用户名。其中资源号是取值为1~999 999的正整数,封锁方式为S(共享)或X(排他)。两种封锁方式的相容矩阵如图所示:
相容矩阵
子系统受封锁请求,根据所保存的封锁状态信息决定请求是否能够获得封锁,进行相应处理,并向用户反馈处理结果。如果获得封锁,则赋给该请求一个批准号,可以使用该资源;否则需要进入等待队列(赋给该请求一个批准号)。
用户结束对某资源的使用后,应释放封锁(给出封锁对象的资源号和封锁批准号)。系统受理解锁请求时必须能迅速找到有关对象的封锁状况信息,以进行相应处理。为满足此要求,可采用散列表加链表的数据结构,如图所示:

封锁管理子系统示意图
其中散列表的元素对应为封锁对象,以对象的资源号为散列函数的自变量(即关键码值)。散列表中元素仅为一个指向封锁对象链表的指针。LO为封锁对象结点,对应于同一散列地址的封锁对象链接到一个链表中。LR为封锁请求结点。每个封锁对象结点带两个封锁请求队列:活动队列中为当前持有对该对象的封锁请求,等待队列中为正在等待对该对象进行封锁的封锁请求。LO结点和LR结点均向子系统自己管理的可利用空间表申请。
请设计并实现散列表、LO链表、LR活动队列、LR等待队列、可利用空间表的结构和基本运算。在此基础上使封锁管理子系统能提供以下功能:
(1) 受理用户从中断输入的封锁请求进行相应处理,并给出反馈信息;
(2) 受理用户从终端输入的解锁请求,进行相应处理;
(3) 显示封锁状况信息(用户从终端输入资源号名子系统显示该对象的LR活动队列和LR等待队列)。
PS:下面有源码,这个简单的课程设计小题使用的数据结构比较多,对研究数据结构有一定的帮助。在此分享源码,希望大家能更好的了解LockMgr。
代码粗糙,多有疏漏,欢迎交流。

- 大小: 24.1 KB
分享到:
相关推荐
26. 微机数字控制系统的故障保护中断服务子程序中,正确的工作顺序是封锁PWM输出、分析判断故障、显示故障原因并报警、系统复位。 27. 正弦波脉宽调制的英文缩写是SPWM。 29. 采用比例积分调节器的闭环调速系统...
20. **概念设计的独立性**:概念设计阶段可以独立于具体的数据库管理系统进行,因为概念设计主要是为了确定实体及其之间的关系,而不是具体的实现细节。此描述正确。 21. **物理设计的独立性**:物理设计阶段通常...
这可能是一个可执行文件、脚本、配置文件或者是包含整个驱动模拟方案的压缩子文件夹。若要深入了解其内容,我们需要直接解压并查看文件的详细信息。 总的来说,这个标题和描述涉及的技术包括但不限于:反爬策略、...
【标题】"八路抢答器 proteus 模拟电路"涉及到的是电子工程中的一个经典设计,即构建一个能够处理八路输入的抢答系统,该系统通过使用集成电路4511来实现。在现代教育、竞赛或娱乐活动中,抢答器是必不可少的设备,...
9. **DBMS中实现事务持久性的子系统** - **选项解析**: A. 安全管理子系统 B. 完整性管理子系统 C. 并发控制子系统 D. **恢复管理子系统**:这是最符合题目要求的答案,因为它负责事务的持久性。 10. **...
10. DBMS的并发控制子系统确保事务的隔离性,防止多个事务同时访问和修改数据导致的不一致状态。 11. SQL中的完整性约束包括主键约束、外键约束、检查子句等,其中局部约束可能无法彻底实现,因为它通常只作用于...
- DBMS统一管理:数据库管理系统负责数据的存储、检索和保护,简化了应用程序的开发和维护。 ### 实体完整性规则 实体完整性规则是指在关系数据库中,主键(或候选键)必须是唯一的,不允许为空,以确保每一行数据...
并发控制子系统主要负责事务的隔离性,确保并发执行的事务不会相互干扰。 8. 实体-关系(ER)模型与关系模式:ER模型是数据库设计中用来表示实体、联系和属性的图形工具。在转换为关系模式时,1:1、1:N和M:N联系...
13. **事务持久性**:选项D,恢复管理子系统负责实现事务的持久性,确保事务的修改在系统崩溃后仍能保留。 14. **ORDBS**:选项C,对象关系数据库系统,是一种支持面向对象特性的数据库管理系统。 15. **建立视图*...
plus是一个多端(PC、WAP)阅读、功能完善的原创文学CMS系统,由前台门户系统、作家后台管理系统、平台后台管理系统、爬虫管理系统等多个子系统构成,支持多模版、会员充值、订阅模式、新闻发布和实时统计报表等功能...
在电子政务背景下,变电站防误操作系统与电力调度中心的信息化管理紧密结合,实现了远程监控、智能决策和自动化操作。通过网络通信技术,防误系统可以实时传输数据,使管理者在远程位置也能全面了解变电站的运行...
从给定的数据库模拟试题及答案中,我们可以提炼出一系列重要的IT知识点,这些知识点涵盖了数据库设计、管理和操作的多个方面,对于数据库初学者而言是非常宝贵的学习资料。下面,我们将详细阐述这些知识点: ### ...
在当今信息化社会,智能交通系统的应用越来越广泛,其中交通灯系统作为城市交通管理的关键组成部分,其智能化设计显得尤为重要。本项目“基于51单片机的智能交通灯系统设计仿真”即以此为目标,通过STC89C52RC单片机...
16. **并发控制技术**:为了保证多个事务同时运行时的正确性,数据库管理系统采用了各种并发控制技术,如封锁(locking)机制。 ### 完整性约束 17. **主键约束**:主键约束用于确保表中的每一行都是唯一的。 18. **...
如果连续输入错误超过三次,系统将封锁输入并报警,同时通知管理员。此外,系统设置了一种高级权限密码,用于密码修改等高级操作,确保了系统的安全性和灵活性。 ### 结论 本文档提供的单片机电子密码锁设计,是一...
【Python网络爬虫毕业设计实现】是针对计算机科学与技术专业学生的一项常见课题,它旨在让学生掌握网络数据抓取的基本技能,并能应用到实际项目中。在这个设计中,Python作为主要的开发语言,因其简洁易读的语法和...
- **填空解析**:应用程序必须通过数据库管理系统来实现与数据库的通信。 10. **分布式数据库系统** - 分布式数据库系统将数据分布在多个地理位置上,以提高数据的可用性和响应速度。 - **填空解析**:分布式...
单机版的三子棋游戏是一款经典的休闲游戏,它的实现涉及了多个计算机编程技术,包括图形用户界面(GUI)的设计、算法的运用以及游戏逻辑的实现。以下将详细阐述其中的关键知识点。 首先,游戏的核心是游戏逻辑。在...