操作系统课程设计-假脱机技术模拟.doc

上传人:11****ws 文档编号:2201860 上传时间:2019-05-01 格式:DOC 页数:18 大小:283.10KB
下载 相关 举报
操作系统课程设计-假脱机技术模拟.doc_第1页
第1页 / 共18页
操作系统课程设计-假脱机技术模拟.doc_第2页
第2页 / 共18页
操作系统课程设计-假脱机技术模拟.doc_第3页
第3页 / 共18页
操作系统课程设计-假脱机技术模拟.doc_第4页
第4页 / 共18页
操作系统课程设计-假脱机技术模拟.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、课程设计(论文)任务书软件 学 院 软件工程 专 业 20071 班 一、课程设计(论文)题目 假脱机技术模拟 二、课程设计(论文)工作自 2010 年 1 月 4 日起至 2010 年 1 月 8 日止。三、课程设计(论文) 地点: 四、课程设计(论文)内容要求:1本课程设计的目的(1)通过课程设计,使学生理论联系实际,在程序设计实践中进一步了解操作系统的原理和算法的实现,了解设计系统时应考虑的因素。(2)了解 C 应用程序编写。(3)培养学生分析、解决问题的能力,提高学生的论文写作能力。2课程设计的任务及要求1)基本要求:(1)熟悉 C 语言的运用,掌握和理解操作系统中的原理和算法;(2)

2、结合操作系统的基本原理,进行程序设计;(3)对操作系统的设计和实现有进一步认识和理解。2)创新要求: 用 C 编程利用软件程序模拟外围控制机对输入输出设备的在线控制,即假脱机技术。试利用所编的程序模拟实现对独占设备的改造,使之成为可以共享的虚拟设备。3)课程设计论文编写要求(1)要按照书稿的规格打印与写课程设计论文(2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体会与小结、参考文献、附录等 (3)课程设计论文装订按学校的统一要求完成4)答辩与评分标准: (1)完成原理分析:20 分; (2)完成设计过程:50 分; (3)完成调试:10 分;(4)回答问题:20 分。5)参考文

3、献:(1)汤子瀛.计算机操作系统M.西安电子科技大学出版社 , 2006 年 9 月(2)罗宇.操作系统M.电子工业出版社,2005 年 9 月 .(3)蒋静.操作系统原理技术与编程 M. 机械工业出版社6)课程设计进度安排内容 天数 地点构思及收集资料 1 图书馆设计与测试 2.5 实验室撰写论文 1.5 图书馆、实验室学生签名: 2010 年 1 月 4 日课程设计(论文)评审意见(1)完成原理分析(20 分):优( ) 、良( ) 、中( ) 、一般( ) 、差( ) ; (2)设计分析 (20 分):优( ) 、良( ) 、中( ) 、一般( ) 、差( ) ; (3)完成调试 (20

4、 分):优( ) 、良( ) 、中( ) 、一般( ) 、差( ) ;(4)翻译能力 (20 分):优( ) 、良( ) 、中( ) 、一般( ) 、差( ) ;(5)回答问题 (20 分):优( ) 、良( ) 、中( ) 、一般( ) 、差( ) ;(6)格式规范性及考勤是否降等级:是( ) 、否( )评阅人: 职称: 讲 师 2010 年 1 月 9 日课程设计报告目 录一、题目要求及原理分析1二、概要设计4三、详细设计及流程图5四、运行结果8五、程序主要代码10六、自我评析与总结13七、参考文献14课程设计报告第 0 页 一、题目要求及原理分析1.1 题目要求本次课设我们需要做的是假脱

5、机技术的模拟,用 C 编程利用软件程序模拟外围控制机对输入输出设备的在线控制,即假脱机技术。试利用所编的程序模拟实现对独占设备的改造,使之成为可以共享的虚拟设备。假脱机,即 SPOOLing(Simultaneous Peripheral Operation On-Line )。它将作业放到缓存中,是关于慢速字符设备如何与计算机主机交换信息的一种技术。之所以有用是因为设备获取数据的速度不同,而缓存提供了一个等待区域使慢速设备可以有足够时间读取数据而不影响其他设备。在操作系统里常用,老式的大型 os 是脱机处理方式,而先进 os 用的是假脱机技术,就是模拟脱机处理。1.2 原理分析假脱机技术(S

6、POOLing)实际上是一种外围设备同时联机操作技术,又称为排队转储技术。它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节。SPOOLing 系统主要包括以下三部分:(1)输入井和输出井:这是在磁盘上开辟出来的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容 I/O 设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。(2)输入缓冲区和输出缓冲区:这是在内存中开辟的两个缓冲区。输入缓冲区用于暂存有输入设备送来的数据,以后在传送到输出井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。(3)输入进程和输出进程:输入进程模拟脱机输入时的外围控制机,将用

7、户要求的数据有输入设备到输入缓冲区,再送到输入井。当 CPU 需要输入设备时,直接从输入井读入内存。输出进程模拟脱机输出时的外围控制机,把用户要求输入的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。SPOOLing 技术的特点: (1)提高了 I/O 速度.从对低速 I/O 设备进行的 I/O 操作变为对输入井或输出井的操作,如同脱机操作一样,提高了 I/O 速度,缓和了 CPU 与低速课程设计报告第 1 页 I/O 设备速度不匹配的矛盾. (2)设备并没有分配给任何进程.在输入井或输出井中,分配给进程的是一存储区和建立一张 I/O 请求表. (

8、3)实现了虚拟设备功能.多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备.SPOOLing 系统既不同于脱机方式,也不同于直接藕合方式。它在输入和输出之间增加了“输入井”和“输出井”的排队转儲环节,以消除用户的“联机”等待时间。在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置中读入输入井缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存的输入井中,读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存输入井并调用中断处理程序结束该次输入。然后,系统

9、为该作业建立作业控制块,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存运行。系统在管理输入井过程中可以“不断”读入输入的作业,直到输入结束或输入井满而暂停。若系统的某台台行式打印机采用了虚拟设备技术,那么若有进程要求对它打印输出时,SPOOLing 系统并不是将这台打印机直接分配给进程,而是在共享设备(磁盘或磁鼓)上的输出 SPOOLing 存储区中为其分配一块存储空间,进程的输出数据以文件形式此。各进程的数据输出文件形成了一个输出队列,由输出 POOLing 系统控制这台打印机进程,依次将队列中的输出文件实际打印输出。在 SPOOLing 系统中,实际上并没有为任何进程

10、分配,而只是在输入井和输出井中,为进程分配一存储区和建立一章 I/O请求表。这样,便把独占设备改造为共享设备。SPOOLing 技术实质上是用户进程利用一共享设备的一个存储区,并不是真正占有这一设备,用户进程把要完成的任务以文件的形式存入存储区,在存储区中排队并等待 SPOOLing 系统调度,只有被 SPOOLing 系统调度并输出,此项任务才真正完成,通过这一技术可以大大提高了共享设备的使用率,节约了硬件资源。SPOOLing 技术是在通道技术和多道程序设计基础上产生的,它由主机课程设计报告第 2 页 和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援存储器,实现外围设备同时联机操作

11、。它由专门负责 I/O 的常驻内存的进程以及输入井、输出井组成;它将独占设备改造为共享设备,实现了虚拟设备功能。SPOOLing 技术实现设备管理时的工作特征:1、提高了 I/O 速度2、将独占设备改造为共享设备在 SPOOLing 系统中,实际上并没有为任何进程分配,而只是在输入井和输出井中,为进程分配一存储区并建立一张 I/O 请求表。这样,便把独占设备改造为共享设备。宏观上,虽然是多个进程在同时使用一台独立设备,而对每一个进程而言,它们都认为自己是独占了一个设备。当然,该设备只是逻辑上的设备。spooling 系统实现了将独占设备变换为若干台对应的逻辑设备的功能。课程设计报告第 3 页

12、二、概要设计1、进程状态进程基本状态有 3 种,分别为可执行、等待和结束。可执行状态就是进程正在或等待调度的状态;等待状态又分为等待状态 1、等待状态 2、等待状态 3。状态变化的条件为:(1) 进程执行完成时,置为“结束”态;(2) 服务程序在将输出信息送输出井时,如发现输出井已满,将调用进程置为“等待状态 1”;(3) SPOOLing 进程在进行输出时,若输出井空,则进入“等待状态 2”;(4) SPOOLing 进程输出一个信息块后,应立即释放该信息块所占的输出井空间,并将正在等待输出的进程置为“可执行状态” ;(5) 服务程序在输出信息到输出井并形成输出请求信息块后,若SPOOLin

13、g 进程处于等待态,则将其置为“可执行状态” ;(6) 当用户进程申请请求输出块时,若没有可用请求块时,调用进程进入“等待状态 3”。2、设计实现 SPOOLing 技术的进程要求设计一个 SPOOLing 输出进程和两个请求输出的用户进程,以及一个 SPOOLing 输出服务程序。当请求输出的用户进程希望输出一系列信息时,调用输出服务程序,由它将该信息送入输出井。待遇到一个输出结束标志时,表示进程该次的输出文件输出结束。之后,申请一个输出请求块(用来记录请求输出的用户进程的名字、信息在输出井中的位置、要输出信息的长度等) ,等待 SPOOLing 进程进行输出。3、设计进程调度算法进程调度采

14、用随机算法,这与进程输出信息的随机性相一致。可将 Spooling 输入输出程序编制成一个独立的进程与其它要求 输入输出的进程并发工作。进程的运行必须考虑同步问题。采用进程的随机调度法模拟 Spooling 输出是合适的,因为各进程的输出应是随机的。 进程调度采用随机调度法,二个要求输出进程的调度概率各为 30%和45%,spooling 进程为 25% 。课程设计报告第 4 页 三、详细设计及流程图首先,为了实现假脱机工作,我们设计了一个结构模式,人机对话开始,机器发出一个询问以后,并非是在原地等待等候用户回答,而是转入了一个特殊的处理子程序。在这个子程序中,一边进行着预先安排好的数据处理工

15、作,一边对键盘进行扫描。用户一作出响应,就中断数据处理工作,继续进行下面的对话。主程序包括调度程序,调度程序中包括一个随机数函数,以该函数值为依据,按照如下图所示框图调用 3 个进程,完成对各数据结构的初始化。SPOOLing 输出模拟系统主控流程图如下图所示:开始初始化生成、判断随机数进程结束?SPOOLing 进程输出进程 2输出进程 1结束NY30%75%在上述流程图中用随机数模拟进程执行概率,概率设定为进程一:30%,进X30%课程设计报告第 5 页 程二:45%,SPOOLing 进程:25% 当 X30,输出进程 1;当 X75,输出进程 2;其他情况,执行 SPOOLing 进程

16、。程序中每个进程有一个进程控制块 PCB,内容包括:id 进程控制数,id=0,1,2; status 进程状态,可为 e,r,t,w,c;priorty 进程优先数;nexrtwr 等待链指针,只是在同一信号量上等待的下一个进程的标时数。信号量 semaphore,对于临界资源 s1 和 s2 分别有 sem1 和 sem2 均为互斥信号量。内容包括:value 信号量值,初值为 1;firstwr 等待链首指针,指示该信号量上等待的下一个进程标识数。(1)进程控制块(PCB ) 对于输出进程和 spooling 进程两种不同的进程,采用相同的结构处理,包括进程标识,进程状态,输出缓冲,输出

17、指针,信息块首地址,输出长度等内容。需要支持在不同状态之间的转换,输出缓冲清空等操作。 struct PCB int ID; /* 进程标识数*/int status; /* 进程状态*/int po;/*输出指针*/ int head;/*信息块首地址*/ int count; /* 要输出的文件数*/int wait1000;/*输出缓冲*/ PCB4;(2)输出请求块包括要求输出的进程标识,输出长度,输出首地址等内容。struct reblock int rename; /* 请求进程名*/课程设计报告第 6 页 int length; /* 本次输出信息长度*/int addr; /*

18、 信息在输出井的首地址*/reblock128; (4)输出井使用队列结构模拟。需要支持队列重整,取队首元素,删除队首元素,在队尾插入等操作,需要使用 closed,open 两个指针协助操作。SPOOLing 系统为每个请求输出的进程在输出井中分别开辟一个区。本实验可设计一个二维数组(int buffer2100)作为输出井。每个进程在输出井最多可占用 100 个位置。SPOOLing 输出进程流程图:开始请求输出块是否空输出内容且释放相应输出井是否有空进程释放请求输出块是否有等待输出块的进程唤醒相应进程进行调度唤醒相应进程进行调度进程是否结束SPOOLing 进程等待SPOOLing 进程结束返回 返回NNNNYYYY

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。