`
freewxy
  • 浏览: 335927 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

封锁管理子系统模拟实现java版

阅读更多

      封锁管理子系统模拟实现

  

   文件锁定有两种方式:共享的和独占的。多个共享锁可同时对同一文件区域发生作用;独占锁 则不同,它要求相关区域不能有其他锁定在起作用。 共享锁和独占锁的经典应用,是控制最初用于读取的共享文件的更新。某个进程要读取文件, 会先取得该文件或该文件部分区域的共享锁。第二个希望读取相同文件区域的进程也会请求共享 锁。两个进程可以并行读取,互不影响。但是,假如有第三个进程要更新该文件,它会请求独占 锁。该进程会处于阻滞状态,直到既有锁定(共享的、独占的)全部解除。一旦给予独占锁,其他 共享锁的读取进程会处于阻滞状态,直到独占锁解除。这样,更新进程可以更改文件,而其他读取 进程不会因为文件的更改得到前后不一致的结果。

 

   封锁管理子系统通过加锁来控制用户对系统资源的并发使用。用户使用系统资源前必须申请封锁,即给出申请封锁的对象资源号、封锁方式和用户名。其中资源号是取值为1~999 999的正整数,封锁方式为S(共享)或X(排他)。两种封锁方式的相容矩阵如图所示:

 

 

S

X

S

OK

NO

X

NO

NO

                相容矩阵
   子系统受封锁请求,根据所保存的封锁状态信息决定请求是否能够获得封锁,进行相应处理,并向用户反馈处理结果。如果获得封锁,则赋给该请求一个批准号,可以使用该资源;否则需要进入等待队列(赋给该请求一个批准号)。
   用户结束对某资源的使用后,应释放封锁(给出封锁对象的资源号和封锁批准号)。系统受理解锁请求时必须能迅速找到有关对象的封锁状况信息,以进行相应处理。为满足此要求,可采用散列表加链表的数据结构,如图所示:

 

 

 


                                    封锁管理子系统示意图

   其中散列表的元素对应为封锁对象,以对象的资源号为散列函数的自变量(即关键码值)。散列表中元素仅为一个指向封锁对象链表的指针。LO为封锁对象结点,对应于同一散列地址的封锁对象链接到一个链表中。LR为封锁请求结点。每个封锁对象结点带两个封锁请求队列:活动队列中为当前持有对该对象的封锁请求,等待队列中为正在等待对该对象进行封锁的封锁请求。LO结点和LR结点均向子系统自己管理的可利用空间表申请。

   请设计并实现散列表、LO链表、LR活动队列、LR等待队列、可利用空间表的结构和基本运算。在此基础上使封锁管理子系统能提供以下功能:

(1)       受理用户从中断输入的封锁请求进行相应处理,并给出反馈信息;

(2)       受理用户从终端输入的解锁请求,进行相应处理;

(3)       显示封锁状况信息(用户从终端输入资源号名子系统显示该对象的LR活动队列和LR等待队列)。

 

   PS:下面有源码,这个简单的课程设计小题使用的数据结构比较多,对研究数据结构有一定的帮助。在此分享源码,希望大家能更好的了解LockMgr。

         代码粗糙,多有疏漏,欢迎交流。

  • 大小: 24.1 KB
0
3
分享到:
评论

相关推荐

    bayonet是一款src资产管理系统,从子域名、端口服务、漏洞、爬虫等一体化的资产管理系统.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    小说精品屋.zip

    plus是一个多端(PC、WAP)阅读、功能完善的原创文学CMS系统,由前台门户系统、作家后台管理系统、平台后台管理系统、爬虫管理系统等多个子系统构成,支持多模版、会员充值、订阅模式、新闻发布和实时统计报表等功能...

    Visual C++音频视频处理技术及工程实践(含源码2/2)

    9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小...

    Visual C++音频视频处理技术及工程实践(分卷0)

    9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 ...

    Visual C++音频/视频处理技术及工程实践 (分卷1)

    9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 ...

    Visual C++ 音频/视频 处理技术及工程实践(分卷3)

    9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 ...

    Visual C++音频视频处理技术及工程实践(分卷9)

    9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 ...

    Visual C++音频/视频处理技术及工程实践(分卷2)

    9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 ...

    Visual C++音频视频处理技术及工程实践(分卷7)

    9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 ...

    Visual C++音频视频处理技术及工程实践(分卷6)

    9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 ...

    Visual C++音频视频处理技术及工程实践地址

    9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小...

    delphi 开发经验技巧宝典源码

    0096 使用Pos函数返回子字符串第一次出现的索引值 66 0097 使用Quotedstr函数返回字符串的引证串 66 0098 使用Trim函数删除字符串的首尾空格 66 4.2 数学计算函数 67 0099 使用Abs函数返回指定数值的绝对值...

    delphi 开发经验技巧宝典源码06

    0096 使用Pos函数返回子字符串第一次出现的索引值 66 0097 使用Quotedstr函数返回字符串的引证串 66 0098 使用Trim函数删除字符串的首尾空格 66 4.2 数学计算函数 67 0099 使用Abs函数返回指定数值的绝对值...

    子域名爆破,增加了智能爬虫功能.zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    一个漏洞扫描器粘合剂,添加目标后30款工具自动调用.zip

    支持 web扫描、系统扫描、子域名收集、目录扫描、主机扫描、主机发现、组件识别、URL爬虫、XRAY扫描、AWVS自动扫描、POC批量验证,SSH批量测试、vulmap。 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集...

    51单片机工作实例随书光盘

    1.1.9 at89c51的程序封锁位 1.2 at89c2051单片机 1.3 stc51单片机 1.3.1 stc51单片机的特点 1.3.2 典型代表型号性能简介 1.3.3 stc51单片机的编程 第2章 c51单片机的指令系统和汇编语言程序设计 2.1 指令组成...

Global site tag (gtag.js) - Google Analytics