操作系统读书工程课程设计

上传人:20****03 文档编号:170296485 上传时间:2021-03-01 格式:DOC 页数:6 大小:30KB
返回 下载 相关 举报
操作系统读书工程课程设计_第1页
第1页 / 共6页
操作系统读书工程课程设计_第2页
第2页 / 共6页
操作系统读书工程课程设计_第3页
第3页 / 共6页
操作系统读书工程课程设计_第4页
第4页 / 共6页
操作系统读书工程课程设计_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《操作系统读书工程课程设计》由会员分享,可在线阅读,更多相关《操作系统读书工程课程设计(6页珍藏版)》请在金锄头文库上搜索。

1、“操作系统课程设计”读书工程1.基本理论阐述 随着计算机的普及和计算机科学的不断发展,计算机应用的范围也越来越广泛,人们对操作系统的要求也越来越高,对这门科学的研究也在不断地深入。操作系统是计算机系统的核心系统软件,它负责控制和管理整个系统的资源并组织用户协调使用这些资源,使计算机高效的工作。同时也是计算机系统的内核与基石,操作系统身负诸如管理与内存配置、决定系统资源供需的优先关系、控制输入与输出、文件管理等基本事物,操作系统是一个庞大的管理控制程序,大致可分为5个方面的管理功能。进程与处理机管理、作业管理。存储器管理,设备管理、文件管理。计算机操作系统是由硬件和软件两部分组成。操作系统是配置

2、在计算机硬件上的第一层软件,是对计算机硬件的首次扩充。她在计算机系统中占据了特别重要的地位。而其他的诸如汇编程序、编译程序、数据库管理系统等系统软件,以及大量的应用软件,都将依赖于操作系统的支持,取得它的服务。操作系统已经成为现代计算机系统、多处理机系统、计算机网络、多媒体系统以及嵌入式系统中都必须配置的、最重要的系统软件。在多道程序系统中,多个进程的并发执行来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险死锁。所谓死锁(Deadlock),是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种状态时,若无外力作用,他们都无法在向前推进。要预防死锁,有摒弃“请求和保持”

3、条件,摒弃“不剥夺”条件,摒弃“环路等待”条件等方法。但是,在预防死锁的几种方法之中,都施加了较强的限制条件;而在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统状态分为安全状态和不安全状态,便可避免死锁的发生。而最具代表性的避免死锁的算法,便是Dijkstra的银行家算法。利用银行家算法,我们可以来检测CPU为进程分配资源的情况,决定CPU是否响应某进程的的请求并为其分配资源,从而很好避免了死锁的产生。2.当前理论或实践应用现状 操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优

4、先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。操作系统的管理控制程序,大致包括5 个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware等。但所有的操作系统具有并发性、共享性、虚拟性和不确定性四个基本特征。根据应用领域来划分,可分为桌面操作系统、服务器操作系统、主机

5、操作系统、嵌入式操作系统。1.、操作系统的发展 手工操作阶段。在这个阶段的计算机,主要元器件是电子管,运算速度慢,没有任何软件,更没有操作系统。用户直接使用机器语言编写程序,上机时完全手工操作,首先将预先准备好的程序纸带装入输入机,然后启动输入机把程序和数据送入计算机,接着通过开关启动程序运行,计算完成后,打印机输出结果。批处理阶段 多道程序系统阶段现代操作系统阶段2.计算机操作系统的发展现状 Windows 是一款流行的操作系统,在全球桌面系统市场占有90%左右的份额,同时在中低端服务器市场也有广泛的应用,如web 服务器和数据库服务器。Windows 作为一个现代操作系统,无论在技术方面,

6、还是在市场方面,都是成功的。 Unix 操作系统具有统一开放的事实标准和认证规范。该规范使不同unix 操作系统上开发的应用程序可以轻松移植,极大地促进了unix 的发展和应用。Unix 已经成为大型机、服务器以及工作站的主要操作系统。Linux 作为unix 技术的继承者,日益得到越来越多的服务器设备、数据库和中间件等软件厂商的支持,并对商业版unix 系统构成很强的威胁。开源软件模式及其实现的价值越来越得到社会的认可。以开源linux 等为代表的类unix 操作系统在不断地侵蚀unix 的市场空间。 Linux 操作系统无论从硬件还是从软件来讲,linux 都已经是个成熟的操作系统。免费与

7、开源的特性使得linux 对windows 的威胁也越来越大。在服务器和嵌入式系统市场上,linux 已经是主流的操作系统之一。Linux 现在正在稳步拓展桌面操作系统市场随着linux 的流行,越来越多的厂商开始爱其销售的计算机上预装linux。处理死锁的方法 两相封锁法(Two Phase Lock)通过防止并发操作间的冲突达到事务处理之间的同步。在读出数据项x之前,事务处理必须要对x拥有读封锁。在对数据项x写入之前,事务处理必须要对x拥有写封锁。拥有读封锁和写封锁要遵照两条管理规则:第一、二个事务处理不能同时对于同一个数据项拥有相互冲突的封锁。第二,在一个事务释放了对某一个数据项的封锁拥

8、有权以后,就不得再申请要求得到对任何数据项的封锁拥有权。 上述对封锁拥有权的规定使得每个事务处理都以两相方式获得封锁的拥有权。在增加封锁拥有权的阶段,事务处理不能释放对任何数据项的封锁拥有权、而只可以不断申请获得新的数据项的封锁拥有权。在一旦释放了对某一数据项的封锁拥有权以后,事务处理进入压缩封锁拥有权的阶段。在这个阶段中。事务处理只能不断释放它的封锁拥有权而不得再申请对任何数据项的封锁拥有权。在事务处理结束(或夭折)时,将自动释放全部封锁。 两相封锁法有一种特殊情况,在事务处理的主体部分执行以前,就申请拥有该事务处理所需要的全部封锁拥有权,通常称这种特殊情况为“事先要求”。显然,事先要求算法

9、有二个缺点:第一,过早地对数据项拥有封锁权将会限制系统可能达到的并发程度。第二,对程序设计者提出了事先列出本事务所需要的全部的封锁权要求,增加了程序设计者的负担。 用两相封锁法处理读写(写写)冲突操作时,它实现了非循环的rwr(ww)关系,保证了一组事务处理过程的可串行化。串行执行的顺序由事务处理获得封锁拥有权的先后次序而定。在增长阶段结束时,获得了所需要的全部封锁有权以后,称为达到了该事务处理的封锁点。令E表示采用两相封锁法作为同步机构时,各事务处理的执行顺序,令E表示每个事务处理在它的封锁点一次申请拥有全部所需封锁拥有权的情况下的执行顺序。在这两种情况下所作出的rwr及ww关系是相同的,因

10、而这二者的执行顺序也是一致的。基本型两相封锁法 两相封锁法的实现机构是一个调度程序,当事务处理对数据项发出读写请求时,调度程序按两相封锁法所描述的规定对数据项进行封锁和解锁操作。在分布式系统中,在每一个DM上有一调度程序,管理该DM所管辖的数据库中的数据项。当DM接收到对数据项x的读出(写入)请求时,调度程序自动地为该数据项申请读(写)封锁。如果这时该数据项已被其它操作封锁,则把申请封锁操作置于该数据项的封锁等待队列中。在写入操作完成以后,调度程序自动释放写封锁,释放读封锁需要专用的释放操作,它可以和写入操作同时发出。写入操作标志着压缩阶段的开始。当某一事务处理释放了它的读写封锁后;以先进先出

11、的方式处理在等待队列上的其他事务处理的读写封锁的请求。在数据项有多个副本的情况下,假设逻辑数据项x有副本x1, x2, , xn,对于读操作,事务处理可以读任何一个副本,因此只需要获得它实际执行读操作的那个副本上的读封锁。对于写操作,需要修改数据项的所有副本,必须要获得所有副本上的写封锁。主副本型的两相封锁法 本方法专用于处理逻辑数据项有多个副本的情况,每个逻辑数据项的一份副本被指定为主副本,事务处理在访问逻辑数据项的任何副本以前,必须在主副本上获得所需的封锁。 对于读封锁,本方法比基本型的两相封锁法有更多的通信开销,当事务处埋希望读出的副本不是主副本时,它必须与二个DM通信。一个是存放主副本

12、的DM,另一个是要读出的副本所在的DM,而在基本型两相封锁法中,只要和要读出的副本所在的DM通信。当事务处理所在的TM与要读出的副本所在的DM在同一个计算机结点时,增加的开销是很大的。对于写封锁,主副本型两封相锁法比基本型的封锁开销要少。在基本型算法中,事务处理要向具有副本的所有结点发出封写锁请求,而在主副本型算法中,只要向主副本所在结点发出请求。投票表决型两相封锁法 投票表决型两相封锁法也是用于多副本的系统中的一种同步算法。当事务T要对x发出写入请求时,把请求发往持有x的副本的所有DM,DM检查本数据库中x的副本情况,如果x已被封锁,则发回“封锁受到阻塞”的信号;如果x没有被封锁,则对x加锁

13、,并发回“封锁已设置”信号,事务T对“封锁已设置”的响应信号计数,当数量过半,则认为全部封锁均已设置,如数量不足半数,它将等待发出“封锁受到阻塞”的DM在x被解锁以后发回“封锁已设置”的信号。只要不出现死锁,它最终将收到足够的“封锁已设置”信号而继续工作。 集中型两相封锁法集中型两相封锁法把管理数据项封锁的调度程序全部集中在一个结点上,在读写任何结点上的数据以前,必须从中心结点的调度程序获得相应的封锁。这个算法非常相似于主副本型的两相封锁法,相当于把所有数据项的主副本都集中在中心结点上,故很容易在中心结点构成通信和封锁操作的瓶颈。它的主要优点是简单。3. 本人对相关内容的体会 多个进程同时运行

14、时,系统根据各类系统资源的最大需求和类系统的剩余资源为进程安排安全序列,使得系统能快速且安全地运行进程,不至发生死锁。银行家算法是避免死锁的主要方法,其思路在很多方面都非常值得我们来学习借鉴。银行家算法(1)如果Requestior =Need,则转向步骤(2);否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。(2)如果Requestor=Available,则转向步骤(3);否则,表示系统中尚无足够的资源,进程必须等待。(3)系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的数值: Available=Available-Requesti; Allocation=Allo

15、cation+Request; Need=Need-Request;(4) 系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。2.安全性算法系统所执行的安全性算法可描述如下:设置两个向量 工作向量Work,它表示系统可以提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,Work:=Available。 Finish,它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做Finishi:=FALSE;当有足够资源分配给进程时,再令Finishi:=TRUE。从进程集合中找到一个能满足下述条件的进程: Finishi=FALSE; NeedI,jor=

16、Workj;若找到,执行步骤(3),否则,执行步骤(4)。当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:Workj:=Workj+Allocationi,j;Finishi:=TRUE;Go to step 2; 如果所有进程的Finishi=TRUE都满足,则表示系统处于安全状态;否则,系统处于不安全状态。4.课程设计过程中对相应部分的设计与实现思路 先对用户提出的请求进行合法性检查,即检查请求是否大于需要的,是否大于可利用的。若请求合法,则进行预分配,对分配后的状态调用安全性算法进行检查。若安全,则分配;若不安全,则拒绝申请,恢复到原来的状态,拒绝申请。银行家

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号