操作系统设计心得体会
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统设计心得体会
篇一:操作系统课程设计报告书
题目1 连续动态内存管理模拟实现
题目的主要研究内容及预期达到的目标
(1)针对操作系统中内存管理相关理论进行设计,编写程序并进行测试,该程序管理一块虚拟内存。
重点分析三种连续动态内存分配算法,即首次适应算法、循环首次适应算法和最佳适应算法。
(2)实现内存分配和回收功能。
题目研究的工作基础或实验条件
(1)硬件环境:PC机
(2)软件环境:Windows XP,Visual C++
设计思想
首次适应算法的实现:从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法的目的在于减少查找时间。
为适应这种算法,空闲分区表中的空闲分区要按地址由低到高进行排序。
该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高址空间保留大的空闲区。
循环首次适应算法的实现:在分配内存空间时,不再每次从表头开始查找,而是从上次找到空闲区的下一个空闲
开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。
该算法能使内存中的空闲区分布得较均匀。
最佳适应算法的实现:从全部空闲区中找到能满足作业要求的、且最小的空闲分区,这种方法能使碎片尽量小。
为适应此算法,空闲分区表中的空闲分区要按从小到大进行排序,从表头开始查找第一个满足要求的自由分配。
流程图
内存分配流程图,如图1-1所示。
图1-1 (来自: 小龙文档网:操作系统设计心得体会)内存分配流程图
内存回收流程图,如1-2所示。
图1-2 内存回收流程图
主要程序代码
(1)分配内存
void allocate(char z,float l) {
int i,k;float ad;k=-1;
for(i=0;i if(free_table[i].length >= l && free_table[i].flag == 1) if(k==-1 || free_table[i].length {printf("无可用空闲区\n"); return; } if(free_table[k].length-l =n) {printf("无
表目填写已分分区,错误\n"); if(free_table[k].flag==0) free_table[k].flag=1; else { free_table[k].length=free_table[k].length+l; return; } }else
篇二:操作系统课程设计
衡阳师范学院
工科课程设计 -《操作系统》
课
程
设
计
报
告
题目:优先数调度算法的实现
学
姓名:鲁向阳
班级: 14级物联网班指导教师:陈琼老师
日期:XX年 12月
号:
目录
1.概
述 ................................................ (2)
设计目的 (2)
运行环境 (3)
任务分配 (3)
2.需求分析 (4)
题目内容 (4)
设计思想说明 (4)
数据结构设计 (6)
3.算法的设计 (7)
头文件声明 (7)
定义各种变
量 (7)
相关函数的定义 (7)
程序运行流程图 (10)
方案设计流程图 (11)
进程控制块PCB结构 (12)
进程控制块链结构 (12)
4.实例 ................................................ .. 13
5.总结 ................................................ .. 14
6.附录 ................................................ .. 16
参考文
献 ................................................
24
1.概述
设计目的
在操作系统中调度算法的实质是一种资源的分配,因而调度算法是指“根据系统资源分配策略所规定的资源分配算法”。
对于不同的操作系统和系统目标,通常采用不同的调度算法。
为了照顾紧迫作业,使之在进入系统后便获得优先处理,引入了最高优先权调度算法。
作为进程调度算法时,该算法是把处理机分配给就绪队列优先权最高的进程。
这可以分为抢占式优先权算法和非抢占式优先权算法。
对于最高优先权调度算法,其关键在于:它是使用静态优先权还是动态优先权,以及如何确定进程的优先权。
动态优先权拥有其特有的灵活优点,同时,若所有的进程都具有相同的优先权初值,则显然是最先进入就绪队列的进程,将因其动态优先权变得高而优先获得处理机,此即FCFS算法。
若所有的就绪进程具有各不相同优先权初值,那么,对于优先权初值低的进程,在等待了足够长的时间后,其优先权便可能升为最高,从而获得处理机。
当采用抢占式优先权调度算法时,如果规定当前进程的优先权以一定速率下降,则可防止一个长作业长期垄断处理机。
运行环境
硬件机器:pc
计算机语言:C++(使用自己学习的)
编译环境:visual studio XX
任务分配
1)理解掌握进程调度实现所涉及到的主要问题:如何组织进程、如何实现处理机调度。
进程控制块的作用和结构,进程控制块的链表组织。
进程调度程序包含从进程就绪队列选择并摘取进程、给该进程分配处理机。
2)设计进程控制块相关数据结构,进程状态跃迁的相关模拟;
3)实现优先调度算法模拟程序设计、编码及调试。
2.需求分析
题目内容
编写程序,采用优先权调度算法实现单处理机系统对进程的调度过程。
设计思想说明
模拟动态优先权算法,在主函数中选择采用抢占式进程调度算法,再调用优先调度算法完成模拟。
1.设定系统中有五个进程,每一个进程用一个进程控制块(PCB)表示,队列的每一个结点都是一种结构体,结
构体名称定义为进程模块。
2.进程控制块包含如下信息:进程编号、需要运行时间、已用CPU时间等等。
3.在每次运行设计的处理调度程序之前,由终端输入五个进程的“进入就绪队列时间”和“要求运行时间”。
4.进程的进入就绪队列时间及需要的运行时间人为地指定.进程的运行时间以时间片为单位进行计算。
5.将五个进程按给定进程的时间片从小到大连成就绪队列,当第一个进程进去的时候,它就执行当前进程,在执行的过程中,可能有另一个进程进入,进入之后,当前的进程就会进行更新,更新它所有的信息,就把它放入运行队列,使当前运行的剩余时间为零,为零之后就把当前的资源释放掉,这时候就从就绪队列里面取出进程的队头,
篇三:操作系统文件系统的设计与实现课程设计
课程设计
题目:文件系统的设计与实现学生姓名:王若禹
学院:信息工程学院
系别:计算机系
专业:计算机科学与技术
班级:计09-2
指导教师:赵俊生副教授
秦俊平副教授
XX年12月30日
内蒙古工业大学课程设计任务书学院(系):信息学院计算机系课程名称:操作系统课程设计指导教师(签名):专业班级:计算机09-2学生姓名:王若禹学号: XX20XX39 目录
第一章设计内容 ................................................ . (1)
1. 1 设计目的 ................................................ ................................................... (1)
1. 2 设计要求 ................................................ ................................................... (1)
1. 3 程序设计思想 ................................................ ................................................... . (1)
第二章数据结构、算法和算法流程图 ................................................ (2)
2. 1 数据结构 ................................................ ................................................... (2)
2. 2 程序功能图 ................................................ ................................................... .. (2)
2. 3 程序流程图 ................................................ ................................................... .. (3)
第三章程序运行结果及分析 ................................................ (6)
3. 1 程序运行结果 ................................................ ...................................................
(6)
3. 2 程序分析 ................................................ ................................................... (7)
第四章心得体会 ................................................ . (8)
参考文献 ................................................ ................................................... .. (9)
附录程序清单 ................................................ ....................................................
10
第一章设计内容
1.1 设计目的
通过设计一个小型文件系统,进一步掌握文件管理的方法和技术,使学生初步具有研究、设计、编制和调试操作系统模块的能力。
1.2 设计要求
(1) 问题描述
在任一OS下,建立一个大文件,把它假想成一张盘,在其中实现一个简单的小型文件系统。
(2) 基本要求
该文件系统没有子目录机制,文件连续分配,不考虑换“盘”和分区。
做一个简单的操作界面,提供五条简单的命令:dir、mkfile、type、copy、delfile,分别用于显示文件目录、建立文件、显示文件内容、复制和删除一个文件。
1.3 程序设计思想
阅读操作系统方面的书籍,了解操作系统的文件系统原理。
结合分析课程设计要求,确定实体以及它们之间的关系。
实体关系有三张表(磁盘空间分配表、文件表、打开文件表)、一个模拟磁盘的数组、命令服务和用户构成。
用户负责输入命令。
命令服务实现命令的解释、命令检查、命令帮助以及调用相关模块执行相应的命令功能。
建立一个系统文件(模拟盘),并对此进行盘块的划分,第一个盘块存放文件目录,第二盘块存放盘块位示图,自第三个盘块开始存放各具体文件的内容,文件目录存放文件的名字,文件的扩展名,开始盘块号,所占用的盘块数目,文件的大小;盘块位示图用来标记盘块是否被占用。
构造这些实体的关系图,数据流图、程序流程图来进行具体的设计。
第二章数据结构、算法和算法流程图
2.1 数据结构
数据结构说明:本程序所运用的主要有两个数据结构,分别如下:文件目录结构:
struct filename {//文件目录项结构体
char name[9]; //文件名
char ext[4];//扩展名
int i; //文件所占用磁盘块的第一个磁盘块号
int Amount; //文件所占用磁盘块的块数
long int size; //文件大小
};
盘块结构:
struct empty {//盘块结构体
int map[100];//盘块位示图
}; int filenum; //文件数量
2.2 程序功能图
图。