[优秀课程设计课程论文]进程调度算法的模拟操作系统.doc
约68页DOC格式手机打开展开
[优秀课程设计课程论文]进程调度算法的模拟操作系统,目录课题1: 进程调度算法的模拟 51 设计目的 52 任务及要求 52.1 设计任务及要求 53 算法及数据结构 53.1 算法的总体思想(流程) 53.2 数据结构模块 63.2.1 功能 63.2.2 数据结构 63.3 随机数字产生方法模块 63.3.1 功能 63.3.2 算法 63.4 先到先服务(fcfs...
内容介绍
此文档由会员 csfujixie 发布
目录
课题1: 进程调度算法的模拟 5
1 设计目的 5
2 任务及要求 5
2.1 设计任务及要求 5
3 算法及数据结构 5
3.1 算法的总体思想(流程) 5
3.2 数据结构模块 6
3.2.1 功能 6
3.2.2 数据结构 6
3.3 随机数字产生方法模块 6
3.3.1 功能 6
3.3.2 算法 6
3.4 先到先服务(FCFS)模块 7
3.4.1 功能 7
3.4.2 数据结构 7
3.4.3 算法 7
3.5 SJF(最短作业优先)调度算法模块 7
3.5.1 功能 7
3.5.2 数据结构 8
3.5.3 算法 8
3.6 优先级调度算法模块 10
3.6.1 功能 10
3.6.2 数据结构 10
3.6.3 算法 10
3.7 RR时间片轮转调度算法模块 12
3.7.1 功能 13
3.7.2 数据结构 13
3.7.3 算法 13
3.8 主函数模块 14
3.8.1 功能 14
3.8.2 数据结构 14
3.8.3 算法 14
3.9 进程的初始化模块 16
3.9.1 功能 16
3.9.2 数据结构 16
3.9.3 算法 16
4 实验结果及分析 17
4.1 实验结果 17
4.1.1 先到先服务算法演示: 17
4.1.2 SJF(最短作业优先)调度算法演示: 19
4.1.3 优先度调度算法演示: 20
4.1.4 RR(轮转法)调度算法演示: 25
4.2 结果分析 27
课题2: 系统动态分配资源的模拟 30
1 设计目的 30
2 任务及要求 30
2.1 设计任务及其要求 30
3 算法及数据结构 30
3.1 算法的总体思想(流程) 30
3.2 数据结构模块 31
3.3 随机数字产生方法模块 32
4.2.1 功能 32
4.2.2 数据结构 32
4.2.3 算法 32
3.4 用户自定义模块 32
3.4.1 功能 32
3.4.2 数据结构 32
3.4.3 算法 32
3.5 打印系统现在状态模块 34
3.5.1 功能 34
3.5.2 数据结构 34
3.5.3 算法 34
3.6 打印系统安全状态变化模块 35
3.6.1 功能 35
3.6.2 数据结构 35
3.6.3 算法 36
3.7 进程申请资源模块 37
3.7.1 功能 37
3.7.2 数据结构 37
3.7.3 算法 37
3.8 选择菜单模块 41
3.8.1 功能 41
3.8.2 数据结构 41
3.8.3 算法 41
3.9 系统自动生成系统状态模块 42
3.9.1 功能 42
3.9.2 数据结构 42
3.9.3 算法 42
3.10 主函数模块 43
3.10.1 功能 43
3.10.2 数据结构 43
3.10.3 算法 43
4 实验结果及分析 44
4.1 实验结果 44
4.1.1 用户自定义演示 44
4.1.2 系统自动生成 50
4.2 结果分析 50
课题3:内存的置换算法演示 51
1 设计目的 51
2 任务及要求 51
2.1 设计任务及其要求 51
3 算法及数据结构 51
3.1 算法的总体思想(流程) 51
3.1.1 先进先出页面置换算法(FIFO) 51
3.1.2 最近最少使用算法(LRU) 51
3.1.3 最佳置换算法(OPT) 52
3.1.4 最近最不经常使用置换算法(NUR) 52
3.2 先进先出的算法(FIFO) 52
3.2.1 功能 52
3.2.2 数据结构 52
3.2.3 算法 52
3.3 最近最少使用算法(LRU) 54
3.3.1 功能 54
3.3.2 数据结构 54
3.3.3 算法 54
3.4 最佳淘汰算法(OPT) 56
3.4.1 功能 56
3.4.2 数据结构 56
3.4.3 算法 56
3.5 最近最不经常使用算法(NUR) 58
3.5.1 功能 58
3.5.2 数据结构 58
3.5.3 算法 58
3.6 主函数模块 60
3.6.1 功能 60
3.6.2 数据结构 60
3.6.3 算法 60
4 实验结果及分析 61
4.1 实验结果 61
4.1.1 先进先出的算法(FIFO) 61
4.1.2 最近最少使用算法(LRU) 63
4.1.3 最佳淘汰算法(OPT) 65
4.1.4 最近最不经常使用算法(NUR) 66
4.2 结果分析 68
课题1: 进程调度算法的模拟
1 设计目的
同时通过用C语言编程实现进程调度的算法,更好地掌握操作系统的原理及实现方法
2 任务及要求
2.1 设计任务及要求
1.用语言来实现对n个进程采用不同调度算法的进程调度。
2.每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:
(1)进程编号ID,其中0为闲逛进程,用户进程的标识数为1,2,3…。
(2)进程优先级Priority,闲逛进程(idle)的优先级为0,用户进程的优先级大于0,且随机产生,优先数越大,优先级越高。
(3)进程占用的CPU时间CPUtime,进程每运行一次,累计值等于4。
(4)进程总共需要运行时间Alltime,利用随机函数产生。
(5)进程状态,0:就绪态;1:运行态;2:阻塞态。
(6)队列指针next,用来将多个进程控制块PCB链接为队列。
3.优先数改变的原则
(1)进程在就绪队列中每呆一个时间片,优先数增加1。
(2)进程每运行一个时间片,优先数减3。
4.在调度前,系统中拥有的进程数PCB_number由键盘输入,经初始化后,所有的进程控制块PCB链接成就绪队列。
课题1: 进程调度算法的模拟 5
1 设计目的 5
2 任务及要求 5
2.1 设计任务及要求 5
3 算法及数据结构 5
3.1 算法的总体思想(流程) 5
3.2 数据结构模块 6
3.2.1 功能 6
3.2.2 数据结构 6
3.3 随机数字产生方法模块 6
3.3.1 功能 6
3.3.2 算法 6
3.4 先到先服务(FCFS)模块 7
3.4.1 功能 7
3.4.2 数据结构 7
3.4.3 算法 7
3.5 SJF(最短作业优先)调度算法模块 7
3.5.1 功能 7
3.5.2 数据结构 8
3.5.3 算法 8
3.6 优先级调度算法模块 10
3.6.1 功能 10
3.6.2 数据结构 10
3.6.3 算法 10
3.7 RR时间片轮转调度算法模块 12
3.7.1 功能 13
3.7.2 数据结构 13
3.7.3 算法 13
3.8 主函数模块 14
3.8.1 功能 14
3.8.2 数据结构 14
3.8.3 算法 14
3.9 进程的初始化模块 16
3.9.1 功能 16
3.9.2 数据结构 16
3.9.3 算法 16
4 实验结果及分析 17
4.1 实验结果 17
4.1.1 先到先服务算法演示: 17
4.1.2 SJF(最短作业优先)调度算法演示: 19
4.1.3 优先度调度算法演示: 20
4.1.4 RR(轮转法)调度算法演示: 25
4.2 结果分析 27
课题2: 系统动态分配资源的模拟 30
1 设计目的 30
2 任务及要求 30
2.1 设计任务及其要求 30
3 算法及数据结构 30
3.1 算法的总体思想(流程) 30
3.2 数据结构模块 31
3.3 随机数字产生方法模块 32
4.2.1 功能 32
4.2.2 数据结构 32
4.2.3 算法 32
3.4 用户自定义模块 32
3.4.1 功能 32
3.4.2 数据结构 32
3.4.3 算法 32
3.5 打印系统现在状态模块 34
3.5.1 功能 34
3.5.2 数据结构 34
3.5.3 算法 34
3.6 打印系统安全状态变化模块 35
3.6.1 功能 35
3.6.2 数据结构 35
3.6.3 算法 36
3.7 进程申请资源模块 37
3.7.1 功能 37
3.7.2 数据结构 37
3.7.3 算法 37
3.8 选择菜单模块 41
3.8.1 功能 41
3.8.2 数据结构 41
3.8.3 算法 41
3.9 系统自动生成系统状态模块 42
3.9.1 功能 42
3.9.2 数据结构 42
3.9.3 算法 42
3.10 主函数模块 43
3.10.1 功能 43
3.10.2 数据结构 43
3.10.3 算法 43
4 实验结果及分析 44
4.1 实验结果 44
4.1.1 用户自定义演示 44
4.1.2 系统自动生成 50
4.2 结果分析 50
课题3:内存的置换算法演示 51
1 设计目的 51
2 任务及要求 51
2.1 设计任务及其要求 51
3 算法及数据结构 51
3.1 算法的总体思想(流程) 51
3.1.1 先进先出页面置换算法(FIFO) 51
3.1.2 最近最少使用算法(LRU) 51
3.1.3 最佳置换算法(OPT) 52
3.1.4 最近最不经常使用置换算法(NUR) 52
3.2 先进先出的算法(FIFO) 52
3.2.1 功能 52
3.2.2 数据结构 52
3.2.3 算法 52
3.3 最近最少使用算法(LRU) 54
3.3.1 功能 54
3.3.2 数据结构 54
3.3.3 算法 54
3.4 最佳淘汰算法(OPT) 56
3.4.1 功能 56
3.4.2 数据结构 56
3.4.3 算法 56
3.5 最近最不经常使用算法(NUR) 58
3.5.1 功能 58
3.5.2 数据结构 58
3.5.3 算法 58
3.6 主函数模块 60
3.6.1 功能 60
3.6.2 数据结构 60
3.6.3 算法 60
4 实验结果及分析 61
4.1 实验结果 61
4.1.1 先进先出的算法(FIFO) 61
4.1.2 最近最少使用算法(LRU) 63
4.1.3 最佳淘汰算法(OPT) 65
4.1.4 最近最不经常使用算法(NUR) 66
4.2 结果分析 68
课题1: 进程调度算法的模拟
1 设计目的
同时通过用C语言编程实现进程调度的算法,更好地掌握操作系统的原理及实现方法
2 任务及要求
2.1 设计任务及要求
1.用语言来实现对n个进程采用不同调度算法的进程调度。
2.每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:
(1)进程编号ID,其中0为闲逛进程,用户进程的标识数为1,2,3…。
(2)进程优先级Priority,闲逛进程(idle)的优先级为0,用户进程的优先级大于0,且随机产生,优先数越大,优先级越高。
(3)进程占用的CPU时间CPUtime,进程每运行一次,累计值等于4。
(4)进程总共需要运行时间Alltime,利用随机函数产生。
(5)进程状态,0:就绪态;1:运行态;2:阻塞态。
(6)队列指针next,用来将多个进程控制块PCB链接为队列。
3.优先数改变的原则
(1)进程在就绪队列中每呆一个时间片,优先数增加1。
(2)进程每运行一个时间片,优先数减3。
4.在调度前,系统中拥有的进程数PCB_number由键盘输入,经初始化后,所有的进程控制块PCB链接成就绪队列。