第一篇:《操作系统课程设计》题目要求
操作系统课程设计要求
一.设计目的
熟悉Linux编程环境,加强对Linux命令的理解及函数的运用
二.设计内容
1.在Linux环境下模拟实现简单命令解释器。(1)要求实现的基本命令包括:
pwd
//显示当前所在目录的路径名
dir <目录名>
//列出指定目录名中的所有目录及文件 cd <目录名或路径>
//改变当前工作目录 newdir <目录名>
//新建目录 deldir <目录名>
//删除目录
exit //退出命令解释程序(2)可选做的扩展命令包括:
rename <旧文件名> <新文件名> //重命名一个文件或目录
find <目录>-name <待查找的文件名> //在指定的目录及其子目录中查找指定的文件
date //显示当前日期(3)提示:整个程序的大致框架可参考如下:
while(exit未被输入){
接收键盘的一行输入
分析输入的命令
对输入的命令进行处理,调用系统函数实现功能
} 2.设计要求
(1)设计必须在Linux环境下进行。
(2)命令解释程序的提示符为:姓名拼音@(3)程序编写中不得使用system()系统调用。
(4)整个程序必须严格经过测试,完成所有基本功能。源程序应有较详尽的注释。
3.可能用到的系统调用:
open(),close(),read(),write(),creat()chdir(), opendir(),readdir(),rewinddir(),closedir(),rmdir(),mkdir()getcwd(), ftw()
time(), localtime(), asctime()三. 提交要求:
1.完成的源程序和可执行程序必须保存在Linux服务器上。
2.要求实现的基本命令必须全部实现。完成可选做的扩展命令将得到较高的分数。容错性强和功能细节考虑更完全也将得到较高的分数。
3.每位同学必须完成操作系统课程设计说明书并上交纸质打印版(不少于3000字),设计说明书格式请从ftp下载《操作系统课程设计说明书(模板)》查看。(学习委员收齐后交到老师办公室)。说明书电子版提交到老师的FTP
11计算机2班的同学: 交给韦婷老师
说明书电子版提交到:ftp://we:345678@10.5.1.请提交到该ftp的“/作业/操作系统课程设计/”文件夹中 每位同学的课程设计说明书按以下格式命名: “班内序号-姓名.doc”
例如:05-李凯.doc
4.独立完成,不得抄袭,凡是发现抄袭的(无论抄与被抄者),均不及格。5.课程设计上交截止日期: 11月12 日
6.设计提交后将抽取一部分同学进行答辩,答辩时间另行通知。
注意:
1.Linux服务器远程连接方式:telnet 10.5.1.6(telnet连接服务器的过程可能需要十几秒,属正常现象,请耐心等待)2.登陆的用户名和密码 11计算机2班的同学:
用户名:112班内序号
例如: 11计算机2班的5号同学的用户名是:11205
初始密码:123456
3.在Linux环境编程,若要使用cin、cout,则必须用
#include
4.本课程设计所需资料从ftp://we:345678@10.5.1.5 “/下载/操作系统课程设计/” 文件夹中下载。
第二篇:操作系统课程设计题目
辽宁科技大学操作系统课程设计指导书
一、课程设计目的和要求
本设计是专业基础课《操作系统》的课程设计。由于操作系统课的学时有限,安排实验的次数不多。为了进一步巩固实验成果,加强理论联系实际、分析问题、解决问题的能力,加深对操作系统的基本概念、原理、技术和方法的理解,特安排此次课程设计。它是操作系统课程的实践环节。由于具体的操作系统相当复杂,在短短的一周之内,不可能对所有管理系统进行详细地分析。因此,选择了操作系统中最重要的管理之一进程管理(或进程的死锁、页面置换算法)作为本设计的任务。另外,通过此次设计使学生在使用系统调用的同时,进一步了解系统内部是如何实现系统调用的全过程,使学生在更深层次上对操作系统有所了解。要求:
1.在具有自主版权的Linux环境下,用c或c++语言,以及相关的系统调用,编程实现进程的创建、控制、软中断通信、管道通信等功能。2.利用某种高级语言编程实现银行家算法。
3.常用的页面置换算法有:最佳置换算法(Optimal)、先进先出法(Fisrt In First Out)、、最近最久未使用(Least Recently Used),至少实现其中的两种算法。
二、课程设计内容
设计题目1:进程管理及理解(1)进程的创建
编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a”;子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。
(2)进程的控制
修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。
如果在程序中使用系统调用lockf(),来给每一个进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。
(3)①编制一段程序,使其实现进程的软中断通信。
要求:使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号;当捕捉到中断信号后,父进程用系统调用kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:
Child Process11 is Killed by Parent!Child Process12 is Killed by Parent!
父进程等待两个子进程终止后,输出如下的信息后终止: Parent Process is Killed!
②在上面的程序中增加系统调用signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG_IGN),观察执行结果,并分析原因。
(4)进程的管道通信
编制一段程序,实现进程的管道通信,使用系统调用pipe()建立一个管道文件;两个子进程P1和P2分别向管道各写一句话: Child1 is sending a message!Child2 is sending a message!
而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。
要求父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。设计题目2:银行家算法实现资源分配
要求如下:
(1)进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。(2)要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列的功能。(3)显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据。
(4)可能用到的数据结构:
可利用资源向量Available。它是一个含有m个元素的数组,其中每个元素代表一类可利用资源的数目。
最大需求矩阵Max。n*m矩阵,表示n个进程的每一个对m类资源的最大需求。 分配矩阵Allocation。n*m矩阵,表示每个进程已分配的每类资源的数目。 需求矩阵Need。n*m矩阵,表示每个进程还需要各类资源数。设计题目3:虚拟页面置换算法的实现
要求如下:
(1)至少实现OPT、FIFO、LRU三种置换算法中的两种。
(2)做成GUI界面最好,若不能,则要求界面尽量友好,便于操作。(3)算法中涉及到的页面访问序列可以固定,也可以随机生成。
(4)在实现算法的同时要计算每种算法的缺页数。(5)以表格的形式输出最终的页面置换结果。
注:以上三个题目任选其一,还可以自拟其它题目。
选择题目1的同学,应事先了解(1)Linux的命令及使用格式;
可通过下面的几个任务熟悉有关文件(夹)操作的命令。
(2)在虚拟机vmware下让Linux加载U盘的方法。
(3)利用gcc、gdb编译、调试C/C++程序
第三篇:《操作系统课程设计》内容要求
《操作系统课程设计》
注意事项:要求每个同学独立完成以下三个项目中的任两个,编程语言不限.项目一:命令行解释程序
【教学内容】 利用C语言编写一个微型命令解释程序,体会操作系统作为用户与计算机接口的作用。巩固C语言编程能力。
1.所设计的微型命令解释程序具有下列5条命令 cdir(列出当前文件和目录)
ccopy 文件1 文件2
(拷贝文件) cerase 文件名(删除文件) Cdis 字符串
(显示该字符串)
Cend(退出微型命令解释程序)2.项目报告要求
列出采用的数据结构并加以说明。
打印一份源程序清单,并附加流程图与注释。
分析Windows操作系统和Linux操作系统的命令解释程序的不同之处。
【教学重点及难点】
重点:命令解释程序的作用。难点:命令解释程序的实现原理。
【基本要求】
了解常用操作系统的命令操作方式和不同操作系统的命令解释程序。 理解命令解释程序的作用。 掌握命令解释程序的实现原理。
【主要实践教学条件】
IBM 586以上微型计算机及其兼容机。
Windows xp/2000 以上版本,Linux redhat9 以上版本。 TURBO C 2.0、VC++、其他高级语言或GCC编译器。
项目二:进程控制
【教学内容】 利用Linux进程控制部分的主要系统调用进行编程,实现对进程的创建、终止、同步和通信等控制,提高学生对进程控制系统调用的编程能力,加深对进程控制的理解。
1.实现对进程的如下控制操作 进程的创建和终止; 进程的状态转换; 进程之间的通信; 进程之间的互斥访问文件。2.项目报告要求
列出采用的数据结构并加以说明。
打印一份源程序清单,并附加流程图与注释。
分析Windows操作系统和Linux操作系统的进程控制系统调用的不同之处。
【教学重点及难点】
重点:进程之间的通信。难点:进程之间的互斥。
【基本要求】
了解常用操作系统的提供的常用进程控制类系统调用。 理解进程通信方式。 掌握用信号量实现进程互斥。
【主要实践教学条件】
IBM 586以上微型计算机及其兼容机。
Windows xp/2000 以上版本,Linux redhat9 以上版本。 TURBO C 2.0、VC++、其他高级语言或GCC编译器。
项目三:文件系统
【教学内容】模拟文件管理。设计并调试一个简单的文件系统,模拟文件操作命令的执行。深入了解主要文件操作命令的执行过程,掌握它们的基本实施方法。
1.实现文件系统的基本功能
设计一个支持n个用户的文件系统,每个用户可拥有多个文件。 采用二级或二级以上的多级文件目录管理。
对文件设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等。 系统的外部特征应接近于真实系统,可以设置下述文件操作命令:建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。 通过键盘使用该文件系统,系统应当显示操作命令的执行结果。2.项目报告要求
列出采用的数据结构及并加以说明。
打印一份源程序清单,并附加流程图与注释。
分析Windows操作系统和Linux操作系统的文件系统的不同之处。 分析Windows操作系统和Linux操作系统的文件操作命令有何不同。【教学重点及难点】
重点:文件系统的主要功能。
难点:文件系统的常用命令的主要工作。
【基本要求】
了解各种文件操作系统的异同。 理解常用操作系统支持的文件操作系统。 掌握文件系统的主要功能。
掌握文件系统的常用命令的主要工作。
【主要实践教学条件】
IBM 586以上微型计算机及其兼容机。
Windows xp/2000 以上版本,Linux redhat9 以上版本。 TURBO C 2.0、VC++、其他高级语言或GCC编译器。、必备教材、实践教学指导书和参考资料
(一)必备教材
1.《操作系统实验教程(Linux版)》,潘景昌 编著,清华大学出版社,2010年第1版。
(二)实践教学指导书
1.《计算机操作系统实验与实践——基于Windows与Linux》,秦明 编著,清华大学出版社,2010年第1版。
2.《操作系统实验教程及Linux和Windows系统调用编程》,张丽芬 编著,清华大学出版社,2010年第1版。
(三)参考资料
1.《操作系统原理实用教程》,李俭 编著,清华大学出版社,2011年第1版。
2.《操作系统原理实验教程(基于Linux)》,胡峰松 编著,清华大学出版社,2010年第1版。
3.《计算机操作系统》,汤小丹 编著,西安电子科技大学出版社,2007年第3版。、课外学习要求
1.项目一命令解释程序课外学习要求
了解Windows操作系统和Linux操作系统的命令解释程序,并分析二者的不同之处。
会使用Windows操作系统和Linux操作系统的常用命令。 完成项目一的报告。2.项目二进程控制课外学习要求
了解Windows操作系统和Linux操作系统的进程控制类常用系统调用,并分析二者的不同之处。
了解Windows操作系统和Linux操作系统中实现进程同步的系统调用方法有哪些,并能利用该方法够编程实现进程的同步。 完成项目二的报告。3.项目三文件系统课外学习要求
了解Windows操作系统和Linux操作系统的文件系统,并分析二者的不同之处。 会使用Windows操作系统和Linux操作系统的文件操作命令,分析两种操作系统支持的文件操作命令有何不同。 完成项目三的报告。
考核及成绩评定方式
1.考核方式
本课程设计中的三个项目都属于综合设计类项目,所以对每个项目进行验收时,通过学生演示程序实现的功能,检查学生完成的程序是否符合项目要求,结合源程序代码对学生进行质疑,每个项目有一个验收成绩。2.成绩评定方式
总评成绩=课程设计报告(30%)+平时(70%)。平时成绩包括考勤、提问、质疑和课程设计期间表现等,主要考查学生日常项目完成情况,注重对学生能力的考核。课程设计报告要符合要求并独立完成。
第四篇:操作系统课程设计题目及代码
题目一
模拟操作系统设计
设计一个模拟操作系统管理程序,实现下列管理功能: 1.内存管理功能 2.文件管理功能 3.磁盘管理功能
题目二
虚拟存储器各页面置换算法的实现与比较 内 容:设计一个虚拟存储区和内存工作区,通过产生一个随机数的方法得到一个页面序列,假设内存给定的页面数由键盘输入,分别计算使用下述各方法时的内存命中率:
先进先出算法(FIFO)、最近最少使用算法(LRU)、最佳淘汰算法(OPT)、最少访问页面算法(LFU)等。
参考资料
题目二
资料
虚拟存储器各页面置换算法的实现与比较
1.实验目的
存储管理的主要功能之一是合理的分配空间。请求页式管理是一种常用的虚拟存储管理技术。
本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。2.实验内容
(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: 1)50%的指令是顺序执行的;
2)25%的指令是均匀分布在前地址部分; 3)25%的指令是均匀分布在后地址部分; 具体的实施方法是:
1)在[0,319]的指令地址之间随机选取一起点m; 2)顺序执行一条指令,即执行地址为m+1的指令;
3)在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m'; 4)顺序执行一条指令,其地址为m'+1;
5)在后地址[m'+2,319]中随机选取一条指令并执行; 6)重复上述步骤1)-5),直到执行320次指令。(2)将指令序列变换成为页地址流 设:1)页面大小为1k;
2)用户内存容量为4页到32页; 3)用户虚存容量为32k; 在用户虚存中,按每k存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条-第9条指令为第0页(对应虚存地址为[0,9]); 第10条-第19条指令为第1页(对应虚存地址为[10,19]);
...第310条-第319条指令为第31页(对应虚存地址为[310,319]);
按以上方式,用户指令可组成为32页。
(3)计算并输出下列各种算法在不同内存容量下的命中率。1)先进先出的算法(FIFO); 2)最近最少使用算法(LRR);3)最佳淘汰算法(OPT):先淘汰最不常用的页地址; 4)最少访问页面算法(LF.U); 5)最近最不经常使用算法(NUR)。其中3)和4)为选择内容。命中率=1-页面失效次数/页地址流长度
在本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。3.随机数产生办法
关于随机数产生办法,Linux或Unix系统提供函数srand()和rand(),分别进行初始化和产生随机数。例如: srand();
语句可初始化一个随机数; a[0]=10*rand()/32767*319+1;a[1]=10*rand()/32767*a[0];
..语句可用来产生a[0]与a[1]中的随机数。
提示:
首先用Srand()和rand()函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。
命中率=1-页面失效次数/页地址流长度
1、数据结构
(1)页面类型 typedef struct{
int pn,pfn,counter,time;}pl-type;
其中pn为页号,pfn为页面号,count为一个周期内访问该页面的次数,time为访问时间。
(2)页面控制结构 pfc_struct{
int pn,pfn;
struct pfc_struct *next;
};typedef struct
pfc_struct pfc_type;pfc_type
pfc[total_vp],*freepf_head,*busypf_head;pfc_type *busypf_tail;其中,pfc[total_vp]定义用户进程虚页控制结构,*freepf_head为空页面头的指针,*busypf_head为忙页面头的指针,*busyf_tail为忙页面尾的指针。
2、函数定义
(1)Void initialize():初始化函数,给每个相关的页面赋值。(2)Void FIFO():计算使用FIFO算法时的命中率。(2)Void LRU():计算使用FIFO算法时的命中率。(4)VoidOPT():计算使用OPT算法时的命中率。(5)Void LFU():计算使用LFU算法时的命中率。(6)Void
NUR():计算使用NUR算法时的命中率。
3、变量定义
(1)int a[tatal_instruction] :指令流数据组。
(2)int page[total_instruction]:每条指令所属页号。
(3)int offset[total_instruction]:每页装入不敷出0条指令后取模运算页号偏移量。(4)int total_pf:用户进程的内存页面数。(5)int diseffect:页面失效次数。
程序清单
程序: 程序: #include “stdio.h” #include “process.h” #include “stdlib.h” #define TRUE 1 #define FALSE 0 #define INVALID-1 #define null 0 #define total_instruction 320 /*指令流长*/ #define total_vp 32 /*虚页长*/ #define clear_period 50 /*清0周期*/ typedef struct { int pn,pfn,counter,time;}pl_type;pl_type pl[total_vp];/*页面数据结构*/ struct pfc_struct{ /*页面控制结构*/ int pn,pfn;struct pfc_struct *next;};typedef struct pfc_struct pfc_type;pfc_type pfc[total_vp],*freepf_head,*busypf_head,*busypf_tail;int diseffect,a[total_instruction];int page[total_instruction],offset[total_instruction];void initialize();void FIFO();void LRU();void OPT();void LFU();void NUR();main(){ int S,i,j;srand(getpid()*10);/*由于每次运行时进程号不同,故可用来作为初始化随机数队
列的种子*/ S=(float)319*rand()/32767+1;for(i=0;i
busypf_head=busypf_tail=freepf_head;else {busypf_tail->next=freepf_head;busypf_tail=freepf_head;} freepf_head=p;} } printf(“FIFO:%6.4”,1-(float)diseffect/320);} void LRU(total_pf)/*LRU*/ int total_pf;{ int min,minj,i,j,present_time;initialize(total_pf);present_time=0;for(i=0;i 1、操作系统实验教程 张丽芬编著 清华大学出版社 2、操作系统原理实验教程(基于Linux)胡峰松编 清华大学出版社 《ERP原理与应用》课程设计题目与要求 课程设计题一:某服装厂ERP系统应用 设计目的:通过一周的课程设计,基本掌握ERP系统软件的业务处理流程,学习如何把企业设计、销售、采购、生产、管理过程中所涉及的各种基础资料按ERP系统的内在逻辑要求录入到电脑中,掌握在ERP系统中建立物料主文件、产品结构清单、工作中心、资源清单、工艺路线的方法,掌握在ERP系统中录入销售订单和产品预测数据,进而生成主生产计划、物料需求计划和能力需求计划的方法,掌握按主生产计划、物料需求计划实施采购业务和车间生产业务的处理流程,掌握与销售采购相关的财务处理业务。设计内容: 第一阶段:根据各自的企业规划数据(18周周一前) 第二阶段:系统实施(18周) 第三阶段:课程设计报告(18周周五上交,包括校外实习的同学) 系统实施具体步骤: (1)新建帐套,进行帐套的初始设置。 (2)建立主营产品的物料主文件和产品结构清单。 (3)建立加工该产品所用到的资源清单和工作中心。 (4)录入和维护加工该产品各零件的工艺路线。 (5)录入初始库存资料。 (6)录入和维护销售订单和产品预测数据、编制主生产计划、进行粗能力计算。 (7)根据主生产计划生成物料需求计划、并进行细能力计算。 (8)根据主生产计划、物料需求计划生成采购计划和车间生产任务。 (9)根据采购计划实施采购业务各项流程、直至外购零件入库。 (10)根据车间生产任务实施车间管理各项流程,直至产品完工入库。 (11)根据采购和销售数据完成应收、应付的财务处理业务 设计要求: 1.实施过程全部在金蝶K3 ERP软件上完成。设计结束后,每位同学独立提交一份ERP课程设计报告,内容包括规划的数据、设计过程、软件处理内容及处理结果、运行参数设置、遇到的疑难问题及解决办法。 2.界面截图里要有各自的数据。 3.禁止抄袭,雷同报告成绩均为0。 课程设计题二:某客车厂ERP系统应用 课程设计题三:某机械厂ERP系统应用 课程设计题四:某电器公司ERP系统应用 课程设计题五:某电子企业ERP系统应用第五篇:课程设计题目及要求