版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中南大学操作系统课程设计实验报告题 目:多用户多任务的类操作系统学 院:信息科学与工程学院姓 名:班 级:日 期:2014/07目录一、 概述 二、 课程设计要求 三、 设计的基本原理和概念四、 总体设计:实现的方法和主要技术路线 1总体功能模块图 2总体功能流图五、 详细设计:1. 模块内部的流程2. 实现算法3. 运行结果六、 完成的情况七、 使用说明 八、 实验总结 九、 参考文献 十、 附件:源程序代码一、 概述操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学知识,建
2、立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。二、 课程设计要求采用VC、VB、java或C等编程语言,模拟开发一个多用户多任务的类操作系统软件。要求如下:1. 模拟进程调度算法,模拟各种进程调度算法,并能管理各种进程调度算法的演示过程。2. 模拟各种内存分配算法及回收过程,并能动态演示。结合进程调度算法,能为进程模拟分配内存,并设计一个跟踪该内存模拟分配的进程或线程,记录内存分配的结果;3. 模拟多用户登录管理过程,能允许多个用户登录,为每个用户建立进程或线程,并进行进程管理;4. 能模拟文件系统管理,进程可以对文件系统(包括文件和目录)进
3、行读、写、创建、删除、打开、关闭等操作;5. 模拟磁盘管理过程,结合文件系统管理,显示磁盘管理的结构和文件在磁盘上的分布情况。6. 能模拟进程通信管理,用户之间可以相互通信交流;7. 最好能采用类似于Windows的窗口界面。三、 设计的基本原理和概念本系统软件是模拟操作系统的整个工作过程,主要功能包括多用户登录管理,文件与用户管理,进程与存储管理,以及系统进程管理。多用户操作系统允许多个不同用户同时使用计算机的资源。操作系统必须确保均衡地满足各个用户的要求,他们使用的各个程序都具有足够且独立的资源,从而使一个用户的问题不会影响到整个用户群。在本系统中,将用户分为管理员用户和普通用户。登陆时可
4、选择,若选择管理员用户登陆,则对各用户有管理权限(添加或删除),对文件系统不仅有读写权限,还能新建、删除、修改文件或目录等;若选择普通用户登陆,则只能查看用户,且只能读文件。多用户多级目录的文件系统:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 在本系统中,文件与用户管理相结合,实现了以下几项功能:查看文件目录结构、文件属性、磁盘属性、磁盘块分配位示图、索引节点分配位示图、用户管理(管理员有该权限),查看用户、新建文件/目录(管理员权限)、删除文件/目录(管理员权限),读写文件(普通用户只读)。进程与存储管理系统:即模拟cpu
5、调度和内存分配。作业进入内存中,由CPU分配产生PCB属性,并通过PCB记录进程状态,实验即以PCB代表进程模拟调度过程;在多道系统中,多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机,本实验采用优先级;进程调度时,规定若就绪队列进程数少于6个,则自动从后备队列调入一个作业;系统会将占有较多资源、预期结果不符合要求的进程自动挂起,并回收所占资源,而本实验设置为手动挂起;在适宜条件下,系统会将挂起的进程自动解挂,而且只解挂到就绪队列;本实验为简化操作,设置为手动解挂,若解挂条件合适(即CPU各种资源可用),则解挂到就绪队列,并分配内存;若解挂条件不适宜,则解挂至后
6、备队列,但不分配内存。系统进程管理器:即任务管理器。操作系统是一个介于软件和硬件之间的特殊硬件,一方面分配硬件资源另一方面支持软件在它上面的实现,如何实时地监控和掌握系统软硬件工作的状态、资源分配和使用的情况,对计算机用户而言十分重要,于是就有了任务管理器这样的实时监控窗口。通过这个窗口我们可以了解到电脑所有进程运行状况,并对运行的进程加于管理和控制,正如在本系统中,启动进程管理器后,可以通过”获取进程”功能来获得本计算机启动的进程,以及与该进程相关的信息,其中包括的信息有:进程映像名称,进程的PID、会话名称、会话次数以及内存使用,我们可以通过这些信息来了解计算机中每个进程的使用状况。同时我
7、们可以在进程管理器上选中一个要终止的的进程,右击选择关闭方式,如“根据名称关闭进程”或“根据PID关闭进程”功能按钮,该进程被终止执行并退出进程列表,此按钮实现的功能正如我们电脑任务管理器的“进程”功能,当电脑执行程序不能通过关闭窗口进行正常的关闭时,可以借助此办法来关闭进程。其中还包括了关闭进程树和刷新进程列表的功能。磁盘管理:磁盘格式化时,系统把磁盘存储空间分成许多磁道。每个磁道又分成若干个扇区(又叫做磁盘块)。之后用fdisk命令对硬盘进行分区,即使只有一个分区,也必须用fdisk命令进行分区。分区的目的,就是制作文件卷,形成文件系统。一个文件卷一般都被划分成引导扇区、文件系统管理区和文
8、件数据区。其中,文件数据区用来存放系统文件和用户文件。用户可以通过文件系统提供的API,创建、打开、关闭和对文件进行读写。当用户的文件不再需要时,就应该删除。把一个文件放到磁盘上时,可以组织成连续文件、链接文件或索引文件等。因此,磁盘空间的分配方法也有两种,一种是连续空间的分配,一种是不连续空间的分配(又叫动态分配)。四、总体设计 1总体功能模块及关系图系统进程管理文件与用户管理多用户多任务类操作系统多用户登陆界面磁盘管理进程与存储管理 2总体功能流图开始初始化登陆界面管理员用户登陆?文件与用户管理系统进程管理进程与存储管理内存分配算法进程控制进程调度算法任务管理器磁盘属性及分配查看及管理用户
9、文件及目录管理五、详细设计(一)多用户操作系统(1)数据结构及主要函数public class LoginView extends JFrameJFrame jframe = new JFrame("欢迎登陆系统");private FilesysServer fss1= null;int sw=(int) Toolkit.getDefaultToolkit().getScreenSize().getWidth(); int sh=(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();public Logi
10、nView(FilesysServer fss)this.fss1 = fss;/初始化面板 JPanel loginPanel = new JPanel(); JLabel titleJLable = new JLabel(); titleJLable.setText("欢迎登陆系统"); titleJLable.setSize(500,200); /用户面板 JPanel userPanel = new JPanel(); userPanel.setLayout(null); JButton adminButton = new JButton(); adminButto
11、n.setText("管理员用户登陆"); JButton userButton = new JButton(); userButton.setText("普通用户登陆"); 。(二)文件与用户管理本系统分两种用户:管理员用户和普通用户,实现文件系统的模拟管理与查看过程。管理员用户对文件系统可以进行创建用户、删除用户、创建文件、删除文件、创建目录、删除目录、读文件、写文件、打开文件、关闭文件、显示目录等操作;普通用户只能读文件和查看用户。并且加入磁盘管理功能,在查看/创建/删除文件等操作时时,显示文件属性、磁盘属性、磁盘分配情况。索引节点分配情况,动态实
12、时的掌握内存分配。(1)数据结构及主要函数public class MyFile public int fsize;public String fname;public String ftime;public String fcont;public int fownid;public int fgrpid;public int fmode;public class Dir /文件名36B/TOTAL36Bpublic String fname;/文件名15Bpublic int findex;/INODE号3Bpublic String pname;/父文件名15Bpublic int pin
13、dex;/父INODE号3Bpublic class Disk public final static int DISKSIZE=100*512;/磁盘大小public final static int INUM=80;/inode数量 public final static int BNUM=100;/块数量512B*100 = 51200Bpublic final static int BSIZE=512;/块大小public final static int ISIZE=64;/inode大小64B * 80 = 5120Bpublic final static int DSIZE=36
14、;/dir大小36B * 14 512Bpublic final static int BASEB=11;/不能使用的块public class Inode /索引节点信息64B/TOTAL NOW59Bpublic int fsize;/文件大小 6Bpublic int fblock;/文件块数 6Bpublic int faddr;/直接块号 4*3Bpublic int fadd1;/一级块号 3Bpublic int fownid;/所有者ID6Bpublic int fgrpid;/所在组ID6Bpublic int fmode;/文件类型权限6B (d/- + 二进制)publi
15、c String ftime;/最近修改时间14B (20XXXXXXXXXX)public Inode()faddr=new int4;public class SuperBlock public int bitindex;/空余块位示图100Bpublic int bitblock;/空余节点位示图120Bpublic int freindex;/剩余的节点5Bpublic int freblock;/剩余的块5B(2)流程图文件浏览器管理员用户? NY磁盘管理查看文件及目录查看与管理用户索引节点分配磁盘块分配磁盘属性删除用户添加用户查看用户文件属性读/写文件删除目录新建目录删除文件新建文
16、件查看文件及目录查看与管理用户磁盘管理索引节点使用情况磁盘块使用情况磁盘属性查看用户读文件文件属性(三)进程与存储管理3.1进程控制:利用简单的结构和控制方法模拟进程结构、进程状态和进程控制。用PCB表示整个进程实体,利用随机数方法或键盘控制方法模拟进程执行中产生的事件。或者利用鼠标或者键盘中断的基于图形接口方式的进程控制管理。(1) 数据结构:public class PCB private int PID;/进程idprivate int timeNeed;/运行所需的时间private int priority;/进程的优先级private int state;/所处于的状态 5个pri
17、vate int memoryNeed;/所需内存private int startLocation;/开始的位置private PCB next;/下一个进程控制块的句柄private Color color;/颜色private int pecent;/执行的百分比public final static int state_running = 0;/状态标志位 0表示运行 1表示就绪 2表示挂起 3表示后备 4表示解挂public final static int state_ready = 1;/就绪public final static int state_hang = 2;/挂起pu
18、blic final static int state_reserve = 3;/后备public final static int state_resume = 3;/解挂public final static int state_block = 4;/阻塞public final static int state_dead = 5;/死亡/默认构造public PCB()(2)主要函数:public class Schedulingpublic boolean executeProcess()queue.sortQueue1();/对就绪队列按优先级排序public void schedu
19、lingProcess()/*调度进程进入ReadyQueue*/public boolean schedulingFromResume()/*从解挂队列调度进程进入就绪队列*/public boolean schedulingFromReserve()/*从后备队列调度进程进入就绪队列*/public void resumeProcess(PCB pcb) /*结束一条进程*/public void addProcess(int timeNeed,int priority,int memoryNeed) /添加进程public boolean blockProcess()/*阻塞进程*/cl
20、ass resumeBlock extends Thread/*解除阻塞*/public boolean hangProcess()/*挂起进程*/class resumeHang extends ThreadPCB pcb;int time;public resumeHang(PCB pcb,int time)this.pcb = pcb;this.time = time;/*解挂*/public int producePID()/随机产生PID(3)算法设计创建进程:输入进程的名称,先判断进程名是否已存在,若已存在,则创建进程失败,需重新操作,创建进程成功后,新进程进入就绪队列。若执行态为
21、空,将进程插入执行态。阻塞进程:若当前有执行进程,则将其阻塞,并将进程加入阻塞态,若就绪队列不为空,则就绪队列第一个进程插入执行态;若当前无执行进程 ,则阻塞失败。唤醒进程:若当前阻塞态不为空,则将阻塞队列第一个进程插入就绪态;若当前阻塞态为空,则唤醒失败。时间片到:若当前有执行态进程,则插入就绪队态,并将就绪态第一个进程进入执行态;若当前无执行进程,则无执行进程。结束进程:若当前有执行进程,则结束进程,若当前就绪态不为空,则就绪态第一个进程进入执行态;若当前无执行进程 ,则结束进程失败。(4)流程图: 开始输入执行命令输入t输入C输入b N N N输入进程名执行态插入就绪态执行态转为阻塞态
22、Y Y Y将进程插入就绪态就绪态第一个结点插入执行态就绪态第一个结点插入执行态执行态为空 N显示进程信息将进程插入执行态显示进程信息Y显示进程信息输入w执行态为空 Y N阻塞态为空 N N结束进程阻塞态插入就绪态 Y Y就绪态第一个结点插入执行态显示进程信息结束显示进程信息3.2进程调度:实现先来先服务FCFS、短作业优先以及动态优先级调度算法。我们可以根据创建进程的系统时钟,取相对时钟作为进程的到达时间,利用随机数产生每个进程的估计运行时间。利用模拟系统中提供的算法分别计算其相应的周转时间和带权周转时间。(1)数据结构及主要函数public class NewPCBDialog extend
23、s JDialog implements ActionListenerprivate JLabel tips_priority;private JLabel tips_timeNeed;private JLabel tips_memoryNeed;private JTextField text_priority;private JTextField text_timeNeed;private JTextField text_memoryNeed;private JButton create;private MainFrame parentFrame;public NewPCBDialog(Ma
24、inFrame frame)public void init()public void actionPerformed(ActionEvent e) (2)算法设计:1、利用绝对时间和相对时钟产生一组进程的到达时刻和运行时间。2、实现FCFS算法:根据进程的到达时间的先后次序来完成对若干进程的调度。3、实现算法:根据当前时间已经到达进程的需要运行时间选取其中时间最小的进程最先运行。4、实现DPS算法:各进程的优先权随运行时间而改变,进程在就绪队列中等待一个时间片,优先权值加1;进程每运行一个时间片,优先权值减3。然后调用 priority()函数 按照个进程的优先级别的高低来决定进程在每个时间
25、片的状态,并通过输出函数显示。5、计算每种算法调度后,系统的平均周转时间和平均带权周转时间。 (3)流程图: 进程调度过程FCFS 算法 开 始创建数组,并初始化将数组中的进程按到达时间的顺序排序获取某进程执行过程中到达的所有进程对获取的所有进程按照短作业优先进行排序得到进程的执行序列依次执行各个进程所有进程执行完成结 束 SJF算法DPS算法(四)系统进程管理:任务管理器(1)数据结构及主要函数public TaskList() super("任务管理器");this.addItem();this.pack();this.setVisible(true);this.set
26、Location(150, 100);(2)任务管理器功能模块六、完成的情况在课设期间,采用java编程语言,模拟开发一个多用户多任务的类操作系统软件,所实现的功能有:(1)模拟进程调度算法,模拟各种进程调度算法,并能管理各种进程调度算法的演示过程。(2)模拟各种内存分配算法及回收过程,并能动态演示。结合进程调度算法,能为进程模拟分配内存,并设计一个跟踪该内存模拟分配的进程或线程,记录内存分配的结果;(3)模拟多用户登录管理过程,能允许多个用户登录,为每个用户建立进程或线程,并进行进程管理;(4)能模拟文件系统管理,进程可以对文件系统(包括文件和目录)进行读、写、创建、删除、打开、关闭等操作;(5)模拟磁盘管理过程,结合文件系统管理,显示磁盘管理的结构和文件在磁盘上的分布情况。(6)采用类似于Windows的窗口界面。未实现模拟进程通信管理功能。七、 运行及使用说明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版小区商业街物业社区环境美化服务合同3篇
- 2025版挖掘机产品售后服务与技术升级合同范本3篇
- 二零二五年度农产品展销中心摊位租赁合同
- 2024项目代建协议合同
- 二零二五个人权利质押贷款合同范本3篇
- 2025年度旅游行业纳税担保服务协议
- 2025版二手房买卖合同风险评估协议3篇
- 2025年苗圃租赁合同及苗木种植与科研合作协议
- 二零二五宠物医院兽医职务聘任与培训合同4篇
- 二零二五年度出院患者出院前评估协议书范本4篇
- 寒潮雨雪应急预案范文(2篇)
- 2024人教新目标(Go for it)八年级英语下册【第1-10单元】全册 知识点总结
- 垃圾车驾驶员聘用合同
- 2024年大宗贸易合作共赢协议书模板
- 变压器搬迁施工方案
- 单位转账个人合同模板
- 八年级语文下册 成语故事 第十五课 讳疾忌医 第六课时 口语交际教案 新教版(汉语)
- 中考语文二轮复习:记叙文阅读物象的作用(含练习题及答案)
- 2024年1月高考适应性测试“九省联考”数学 试题(学生版+解析版)
- (正式版)JBT 11270-2024 立体仓库组合式钢结构货架技术规范
- EPC项目采购阶段质量保证措施
评论
0/150
提交评论