【设计目的】
操作系统课程设计是在学生系统地学习了《操作系统》课程后,通过对操作系统各管理机制功能实现的模拟,进一步深入理解并掌握操作系统各管理机制的原理及实现。在模拟实现的过程中不仅让学生能够把学到的知识应用到实际的编程实践中,而且能够进一步的巩固学生在操作系统课程中学习的理论知识。
【设计要求】
1、课程设计时间为1周;
2、开发语言不限(C++\JAVA\C#\ASP.net…);
3、设计文档书写规范,程序界面友好、健壮性强。
【题目】
进程控制和银行家算法的模拟实现
1、设计目的
进程是操作系统最重要的概念之一,进程和处理机管理的一个重要任务就是进程控制。通过对进程控制过程的模拟实现,掌握进程的创建、阻塞、唤醒、撤销等进程控制方法的实现过程,深入理解进程在执行过程中如何通过进程控制来完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。由于多进程竞争共享资源,进程并发执行的顺序不当就会产生死锁,反而会降低系统的资源利用率,因此可以采用适当的资源分配算法来达到消除死锁的目的。通过对银行家算法的模拟实现,进一步理解并掌握死锁避免这种动态预防策略的基本原理和实现过程。
2、设计内容
(1)模拟实现进程控制过程。设计一个有多个进程并发的进程调度程序。当系统进入运行,在完成必要的初始化工作以后便进入进程调度,首先选择优先数最高的进程使其进入执行(分配CPU)。当执行进程因等待某个事件被阻塞或唤醒某个等待进程时,转入进程调度。按剥夺式优先数法对进行模拟调度,进程的优先数静态设置。每个进程都处于执行E(exeC++ute)、就绪R(ready)、等待W(wait)和完成F(Finish)状态之一,并假定初始状态均为R。如果被唤醒的进程的优先数大于现行的执行进程,则剥夺现行进程的执行权,而将CPU分配给被唤醒的进程。当系统处于死锁或所有进程都执行完毕时系统退出运行。
进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。
要求每进行一次调度都需要显示各进程的运行情况(运行进程、就绪队列、等待队列、完成进程以及各个进程的 PCB),直到所要进程都完成为止。
(2)模拟实现死锁避免的银行家算法。要求设置相应的数据结构并实现算法,模拟出银行家算法执行检测过程并显示(初始系统可用资源数,各进程已占用资源数、还需资源数;能否进行试分配;试分配后系统可用资源数,各进程已占用资源数、还需资源数的变化情况;检测结果是否存在安全序列及安全序列情况等)。
(3)模拟实现过程要求使用可视化图形界面进行操作和显示(鼓励采用动画等实时动态方式显示算法执行过程)。
鄂ICP备2023011697号-1 | Powered By 91代做