实验 1 处理器管理 优先数调度算法
一、实验目的:
在多道程序或者多任务系统中,同时处于就绪态的进程有若干个。在单处理器系统中,处于运行态的进程最多只有一个,也就是说能运行的进程数远小于就绪态进程个数,所以必须进行进程调度,按照一定的调度算法,即依照某种原则或策略从就绪态队列中选中进程占用处理器。本实验要求学生设计一个优先数调度算法来模拟实现处理器调度过程。
二、实验要求:
(1)假定进程控制块中包含内容为: 进程名 链接指针 进程的优先数 估计运行时间 进程状态 其中进程名即进程标示符;链接指针是按照进程到达进程就绪队列的时间链接
进程的优先数由用户自己指定,并且优先数值越小,优先级越高,调度时,总是选择优先级高的进程占用CPU;估计运行时间可由设计者任意指定一个时间值;进程状态:为简单
起见,仅记录进程的就绪(用R表示)状态。
(2)根据需要,设计一个队首指针指向5个进程(进程名为A,B,C,D,E)组成的就绪队列中的第一个进程,再设一个当前指针指向当前正在运行的进程。
(3)进程调度时,采用静态优先调度。 (4)用非抢占式方式分配处理器。
(5)要求所设计的程序必须有输出语句,用于输出进程调度和运行一次后进程的变化。比如:每次被选中的进程名,就绪队列中进程的排队情况,进程控制块的动态变化。
实验 2 处理器管理
银行家算法
一、实验目的:
本实验要求学生设计系统进行资源调度的程序,采用银行家算法有效避免死锁的发生。
二、实验要求:
(1)设计3个并发进程,共享系统的12个同类不可抢占的资源。各个进程动态进行资源的申请和释放。
(2)用银行家算法设计一个程序,运行这个程序,判断当前状态是不是安全状态;如果是安全状态,当系统接
进程名 收新的申请请求,系统是否发生死锁,如发生,
进程的状态 请找出参与死锁的进程。如果不发生死锁,找出
当前申请量 一组进程推进的顺序,能够运行结束。
资源申请总数 (3)初始化系统资源的最大值,这组进程的
已占用资源数 最大资源请求和依次申请的资源序列。把各个进
能执行完标志 程已占用和需求资源情况记录在进程控制块中。假设进程控制块的格式如表所示:
其中进程的状态有:就绪、等待和完成。
假定资源分配状态如下: 进程 P1 P2 P3 已占资源数 2 5 2 最大需求数 9 10 4 要求学生编程判断当前是否安全状态,并输出该结果。如果该状态下,进程P1申请一个资源,系统分配以后,是否处于安全状态?如果是安全状态,请进程推进的顺序,能够运行结束。请输出这组进程序列。
相关推荐: