当前位置: 首页 > news >正文

dw企业网站设计企业源代码

dw企业网站设计,企业源代码,安徽省建设工程安全+协会网站,长沙网站开发培训7.1 系统模型 定义#xff1a;多个进程竞争一定数量的资源#xff0c;某个进程申请资源#xff0c;若此时该资源不可用#xff0c;则进程进入等待状态。若所申请的资源被其他等待进程占用#xff0c;则该等待进程可能再也不法改变其状态。 进程使用资源的顺序#xff1a;…7.1 系统模型 定义多个进程竞争一定数量的资源某个进程申请资源若此时该资源不可用则进程进入等待状态。若所申请的资源被其他等待进程占用则该等待进程可能再也不法改变其状态。 进程使用资源的顺序 (1)申请若申请不能立即被允许则申请进程必须等待直至获得资源(若进程所申请的资源正被其他进程使用则该进程会增加到该资源的等待队列) (2)使用进程对资源操作 (3)释放   7.2 死锁特征 7.2.1 必要条件 (1)互斥至少有一个资源必须处于非共享模式一次只有一个进程在使用。 (2)占有并等待一个进程必须占有至少一个资源并等待另一个资源而该资源被其他进程所占用。 (3)非抢占资源只能在进程完成任务后自动释放。 (4)循环等待设有一组等待进程P{P0,P1....Pn}P0等待的资源被P1所占用P1等待的资源被P2所占有....Pn等待的资源被P0占有。      4个条件必须同时满足才会出现死锁。   7.2.2 资源分配图 若分配图没有环则无进程死锁若有环则可能存在死锁。 若每个资源类型刚好有一个实例则环为死锁存在的充分必要条件 若有多个实例则为必要条件而非充分条件。 (资源类型如打印机DVD驱动器     2个资源类型) (实例3台打印机则打印机这一资源类型有3个实例)   7.3 死锁预防 7.3.1 互斥          对于非共享资源必须互斥对于共享资源不要求互斥不会发生死锁。故通常无法通过否定互斥条件预防死锁。   7.3.2 占有并等待          根本原则当一个进程申请一个资源时它不能占有其他资源。          协议一每个进程在执行前申请并获得所有资源          eg考虑一个进程将数据从DVD驱动器复制到磁盘文件并对磁盘文件进行排序再将结果打印至打印机。则按照协议一进程必须一开始申请DVD磁盘文件和打印机。          协议二进程在申请更多资源之前必须释放其现已分配的所有资源。          eg同样之前进程按照协议二允许进程在开始时只申请DVD和磁盘文件将数据从DVD复制到磁盘再释放它们。然后进程再申请磁盘文件和打印机。   7.3.3 非抢占          协议如果一个进程占有资源并申请另一个不能立即分配的资源则它当下所占的资源被隐式地释放了即其现已分配的资源都可被抢占。          执行过程进程P申请资源s首先检查s是否可用若可以则s被分配。若不可以则检查是否有其他正在等待的进程占有资源s。若有则抢占。若资源s不可用也不被其他等待进程占有则申请进程P等待即进程P现在持有的资源也可被其他进程抢占。          一个进程要重新执行必须分配到其所申请的资源并恢复其在等待时被抢占的资源。   7.3.4 循环等待         方法对所有资源进行完全排序且要求每个进程按递增的顺序申请资源。如果需要同一资源类型的多个实例则对它们必须一起申请。         eg 设R1R2R3…Rn为资源类型的的集合。为每个资源类型分配一个唯一整数来允许比较两个资源以确定其先后顺序。可定义一个函数R - N ,其中是自然数集合例如 tape drive1  disk drive5  printer12 每个进程只按照递增顺序申请资源即一个进程开始可以申请任意数量的资源类型为的实例。之后当且仅当Rj Ri时该进程可以申请资源Rj的实例。 例如对于以上给定函数一个进程如果同时需要打印机和磁带驱动器那么就必须先申请磁带驱动器再申请打印机。换句话说要求当一个进程申请资源类型Rj时必须先释放所有Ri((Ri) (Rj))。可以使用反证法证明使用这两个协议那么循环等待就不可能成立。 设计一个完全排序或层析并不能防止死锁而是要靠应用程序员来按顺序编写程序。另外函数应该根据系统内资源使用的正常顺序来定义。例如由于磁带通常在打印机之前使用所以定义tape drive printer较为合理。   7.4 死锁避免 7.4.1 安全状态 若系统能按照某个顺序为每个进程分配资源(不超过最大值)并可避免死锁则系统处于安全状态。(存在一个安全序列) 进程顺序{P1, P2, …, Pn}如果对于每个PiPi仍然可以申请的资源数小于当前可用资源加上所有进程Pj其中j小于i所占用资源那么这一顺序称为安全序列。 进程Pi所需要的资源即使不能立即使用那么Pi等待直到所有Pj释放其资源当它们完成时Pi可得到其所需要的所有资源。 不安全状态可能导致死锁只要状态为安全操作系统就能避免不安全和死锁状态。 在不安全情况下操作系统不能阻止进程以会导致死锁的方式申请资源。进程行为控制了不安全状态。如图所示 死锁避免算法思想 开始时系统处于安全状态。当进程申请一个可用的资源时系统必须确定这一资源申请可以立即分配还是等待。只有分配后使系统仍处于安全状态才允许申请。   7.4.2 资源分配图算法(适用于每种资源类型只有一个实例) 利用资源分配图引入需求边Pi-Rj(虚线)表示进程Pi可能在将来某个时候申请资源Rj。只有申请边变为分配边而不会导致资源分配图形成环时才允许申请。 如果没有环存在那么会使得系统处于安全状态如果有环存在则分配会导致系统处于不安全状态。 例如     假如进程p2申请资源R2。虽然R2现在可用但是不能分配给P2因为这会创建一个环环表示系统处于不安全状态如果P1再申请R2就会造成死锁。   7.4.3 银行家算法(适用于每种资源类型有多个实例) 举例 假定系统中有4个进程P1、P2、P3、P4和3种类型的资源R1、R2、R3数量分别为9、3、6在t0时刻的资源分配情况如表所示。 t0时刻的资源分配表 试问 Max最大需求     Available每种资源现有的(未被分配)的量     Allocation每个进程现在拥有的各个资源类型的量 Need: 每个进程还需要的剩余资源 1t0时刻是否安全 2P2发出请求向量Request2101系统能否将资源分配给它PsRequest i 为进程Pi的请求向量 3在P2申请资源后若P1发出请求向量Request1101系统能否将资源分配给它 4在P1申请资源后若P3发出请求向量Request3001系统能否将资源分配给它 解答 1安全序列P2、P1、P3、P4 2可以分配因为分配资源后可找到一安全序列P2、P1、P3、P4 3不能分配因为request1(1,0,1)available(0,1,1) 4不能分配因为分配资源后找不到一安全序列。     安全性算法 确定计算机是否处于安全状态需要以下几步 1 创建Work 和 Finish 向量长度分别为m,n并且Work Avallable将Finish的每一项置为false 2 查找是否存在这样的i使得满足   //寻找是否有可以满足其需求的进程 Finish[i] false Needi Work 如果不存在则跳到第四步。 3                                                      //若存在就让该进程执行执行完后释放资源 Work Work Allocationi Finish[i] true 跳回第二步 4 如果对所有的Finish[i] true,那么系统处于安全状态。  //若可以使所有进程执行完则安全  资源请求算法 设Requesti为进程Pi的请求向量。即如果Requesti[j]  k 那么Pi所需要资源类型Rj的实例数量为k。 当进程Pi做出资源申请时采取如下动作 1 如果Requesti  Needi那么进行下一步(2)否则产生出错条件因为已经超过了其最大请求。 2 如果Requesti  Available那么进行下一步(3)否则Pi必须等待因为没有可用的资源。 3 假定系统可以分配给进程Pi所需的资源并按如下方式修改状态 Available Available - Requesti Allocationi Allocationi Requesti Needi Needi - Requesti 如果所产生的资源分配状态是安全的那么交易完成且进程Pi可分配到其所需要的资源。 然而如果新状态不安全那么进程Pi必须等待Requesti并回复到原资源分配状态。   7.5 死锁检测 7.5.1 每种资源类型只有单个实例 将资源分配图转为等待图删除所有资源类型节点。 等待图中由Pi到Pj的边意味着进程Pi等待进程Pj释放一个Pi所需的资源。 当且仅当等待图中有环系统中存在死锁。   7.5.2 每种资源类型有多个实例 1 创建Work 和 Finish 向量长度分别为m,n并且Work Avallable将Finish的每一项置为false 2 查找是否存在这样的i使得满足 Finish[i] false Requesti Work 如果不存在则跳到第四步。 3 Work Work Allocationi Finish[i] true 跳回第二步 4 如果对所有的Finish[i] false,那么系统处于死锁状态。而且进程Pi死锁   7.6 死锁恢复 法1终止一个或多个进程以打破循环等待 法2从一个或多个死锁进程抢占一个或多个资源。 7.6.1 进程终止 (1)终止所有死锁进程代价大 (2)一次只终止一个进程直到取消死锁循环开销大不断调用死锁检测算法   7.6.2 资源抢占 三个问题需要处理 ①选择一个牺牲品抢占哪些资源和哪个进程必须确定抢占顺序以使代价最小化。 ②回滚如果从一个进程那里抢占一个资源那么应对该进程做些什么安排必须将这个进程回滚到某个安全状态以便以后重启进程。 最简单的方法是完全回滚终止进程并重新执行。更为有效的方法是将进程回滚到足够打破死锁。另一方面这种方法要求系统维护有关运行进程状态的更多信息。 ③饥饿如何确保不会发生饥饿最为常用的方法是在代价因素中加上回滚次数。转载于:https://www.cnblogs.com/dzy521/p/9462902.html
http://www.zqtcl.cn/news/143655/

相关文章:

  • 需求网站自动发卡网站开发
  • 用asp做网站span电子商务网站建设的教案
  • 厦门市住房建设网站音乐主题wordpress
  • 小说网站开发文档建站公司用wordpress
  • 自己做手机版网站制作佛山网站建设企划动力
  • 鄂州建设工程造价信息管理网站wordpress 3.9 编辑文章 固定链接 不能编辑
  • asp网站的安全性织梦移动端网站建设
  • 大网站的二级域名哪些平台可以发布产品
  • 旅游网站开发说明书怎么做好销售
  • 网站app生成器天河网站建设服务
  • 南京移动网站建设哪里强新网站建设都需要哪些
  • .net网站制作wordpress配置多语言包
  • 上海源码网站建设公司做短视频的网站都有哪些
  • 网络推广公司联系昔年下拉网络优化seo
  • 网站开发语言识别网站众筹该怎么做
  • 长春做网站公司长春seo公司云主机和云服务器的区别
  • 打开网站乱码怎么做网件路由器登陆网址
  • wordpress 怎么删除主题seo神马网站推广器
  • 番禺网站推广公司宣传片拍摄方案范本
  • 网站建设的公司收费建筑英才网app
  • 作风建设活动网站知名景观设计公司的官网
  • 网站的模块做网站的图片要多少像素
  • 网站建设需要什么书企信网企业信用信息系统贵州
  • 做网站是什么鬼新浪虚拟主机做网站
  • 青岛网站设计如何做注册网店需要多少费用
  • 空白网站怎么建立网站默认主页设置
  • wordpress外网访问不seo综合查询是什么
  • 曲阜网站建设价格做5173这样的网站要多少人
  • 深圳网站建设服务合同wordpress 增删改查
  • 网站建设好处wordpress评论积分