- 博客(0)
- 资源 (11)
- 收藏
- 关注
操作系统银行家算法实验(c)
在避免死锁的方法中,如果施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。
基本思想为:在分配资源之前,判断系统是否是安全的;若安全,才分配。它是最具代表性的死锁算法,具体算法如下表示:
假设进程P提出请求Request[i],则银行家算法按如下步骤进行判断:
1) 如果Request[i] <=Need[i],则转向2);否则出错。
2) 如果Request[i] <=Available[i],则转向3);否则出错。
3) 系统试探分配相关资源,修改相关数据:
Available[i]=Available[i]-Request[i];
Allocation[i]=Allocation[i]+Request[i];
Need[i]=Need[i]-Request[i];
4) 系统执行安全性检查,如安全,则分配成立;否则试探性分配资源作废,系统恢复原状,进程进入等待状态。
2012-05-17
页面置换实验算法(c语言)
一、实验要求
页面置换算法主要有:FIFO,最近最少使用调度算法(LRU),最近最不常用调度算法(LFU),最佳算法(OPT)
二、实验内容
题目要求:
① 实现三种算法:1、先进先出;2、OPT;3、LRU
② 页面序列从指定的文本文件(TXT文件)中取出
③ 输出:第一行:每次淘汰的页面号,第二行:显示缺页的总次数
2012-05-17
虚拟存储器管理——模拟内存分配与回收实验算法(c语言)
理解内存分配原理,特别是以页面为单位的虚拟内存分配方法。模拟存储管理中内存空间的管理和分配内存空间的管理分为固定分区管理方式,可变分区管理方式,页式存储管理,段式存储管理。
2012-05-17
优先级和时间片轮转调度实验算法(c语言)
进程调度算法有优先数调度算法,时间片轮转调度算法,分级调度算法。选两种种算法实现。进程调度算法的数据结构主要有:进程函数定义,建立进程函数,进程调度函数。
2012-05-17
进程同步实验代码(c语言)
数据结构:
每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程类型标号、进程系统号、进程状态(本程序未用)、进程产品(字符)、进程链指针等等。
系统开辟了一个缓冲区,大小由buffersize指定。
程序中有三个链队列,一个链表。一个就绪队列(ready),两个等待队列:生产者等待队列(producer);消费者队列(consumer)。一个链表(over),用于收集已经运行结束的进程
本程序通过函数模拟信号量的原子操作。
算法的文字描述:
① 由用户指定要产生的进程及其类别,存入进入就绪队列。
② 调度程序从就绪队列中提取一个就绪进程运行。如果申请的资源不存在则进入响应的等待队列,调度程序调度就绪队列中的下一个进程。进程运行结束时,会检查对应的等待队列,激活队列中的进程进入就绪队列。运行结束的进程进入over链表。重复这一过程直至就绪队列为空。
③ 程序询问是否要继续?如果要转直①开始执行,否则退出程序。
2012-05-17
操作系统进程控制实验代码(c语言)
用C语言编程模拟进程管理,至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。
PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态,当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删。
2012-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人