优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

操作系统教学演示系统

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
摘 要 操作系统教学演示系统是一款适用于给老师上课时提供教学平台。一气合成的教学软件,其中包括几种典型的操作系统概念和典型算法的多媒体演示:如银行家算法。生产者-消费者问题、哲学家进餐问题。还有一部分是可以和学生互动的几种典型的算法,可以当堂进行互动演示。把算法尽可能简单的,易懂的展现给学生,让学生能够更好的理解。为了测试学生们当堂的学习能力。其中还可以进行当堂的在线考试。更好的来给学生加深印象。 ?运用了my eclipse 的开发环境。JAVA语言来进行编写。还用到MYSQL的客户端。 关键词:操作系统 ;典型算法; JAVA 用户工作流程 用户首次登陆系统需要注册一个用户,用户在登录平台后,可以进行进程调度算法演示、内存分配算法演示、自动机算法演示、磁盘调度算法演示、进程调度算法演示、页面置换算法演示、在线考试、我的个人信息等功能。 3.2 用户业务需求 (1) 进程调度算法演示功能是对银行家算法、生产者与消费者问题、fork函数过程演示、临界资源问题、死锁问题、同斥与异斥的相关算法用flash的形式来展示各个算法的实现过程。 (2)内存分配算法演示是对TLB范围、动态内存分配问题、分页、内存分配、页表问题、页引用表问题的相关算法过程用flash的形式来展现。 (3) 自动机算法演示是运用java applet的形式和jsp网页结合起来演示了NFA、DFA、MINDFA三种自动机类型的演示及字符串校验。 (4) 磁盘调度算法演示也是运用applet的形式和前台交互的。该算法包括先来先服务FCFS:公平,简单,每个进程的请求都能依次得到处理。没有对寻道优化,平均寻道时间长。 最短时间优先调度算法SSTF:要求访问的磁道是当前磁头所在的磁道最近,每次寻道时间最短。可能导致一些请求无限期推延。 电梯调度算法SCAN:不仅考虑当前磁道的距离,优先考虑在磁道前进方向的最短时间,排除磁头在盘面上的往复运动。电梯原理。 C-SCAN:磁头单项移动。消除N-SCAN对两端请求的不公平 ?? ?(5) 进程调度算法是根据系统的资源分配策略所规定的资源分配算法。 (6) 页面置换算法展示了页面置换的几种算法的对比。 1 先入先出法(FIFO) 最简单的页面置换算法是先入先出(FIFO)法。这种算法的实质是,总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。理由是:最早调入内存的页,其不再被使用的可能性比刚调入内存的可能性大。建立一个FIFO队列,收容所有在内存中的页。被置换页面总是在队列头上进行。当一个页面被放入内存时,就把它插在队尾上。 这种算法只是在按线性顺序访问地址空间时才是理想的,否则效率不高。因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去。 FIFO的另一个缺点是,它有一种异常现象,即在增加存储块的情况下,反而使缺页中断率增加了。当然,导致这种异常现象的页面走向实际上是很少见的。 2 最优置换算法(OPT) 最优置换(Optimal Replacement)是在理论上提出的一种算法。其实质是:当调入新的一页而必须预先置换某个老页时,所选择的老页应是将来不再被使用,或者是在最远的将来才被访问。采用这种页面置换算法,保证有最少的缺页率。 但是最优页面置换算法的实现是困难的,因为它需要人们预先就知道一个进程整个运行过程中页面走向的全部情况。不过,这个算法可用来衡量(如通过模拟实验分析或理论分析)其他算法的优劣。 3 最久未使用算法(LRU) FIFO算法和OPT算法之间的主要差别是,FIFO算法利用页面进入内存后的时间长短作为置换依据,而OPT算法的依据是将来使用页面的时间。如果以最近的过去作为不久将来的近似,那么就可以把过去最长一段时间里不曾被使用的页面置换掉。它的实质是,当需要置换一页时,选择在最近一段时间里最久没有使用过的页面予以置换。这种算法就称为最久未使用算法(Least Recently Used,LRU)。 LRU算法是与每个页面最后使用的时间有关的。当必须置换一个页面时,LRU算法选择过去一段时间里最久未被使用的页面。 LRU算法是经常采用的页面置换算法,并被认为是相当好的,但是存在如何实现它的问题。LRU算法需要实际硬件的支持。其问题是怎么确定最后使用时间的顺序,对此有两种可行的办法: (1)计数器。最简单的情况是使每个页表项对应一个使用时间字段,并给CPU增加一个逻辑时钟或计数器。每次存储访问,该时钟都加1。每当访问一个页面时,时钟寄存器的内容就被复制到相应页表项的使用时间字段中。这样我们就可以始终保留着每个页面最后访问的“时间”。在置换页面时,选择该时间值最小的页面。这样做,不仅要查页表,而且当页表改变时(因CPU调度)要维护这个页表中的时间,还要考虑到时钟值溢出的问题。 (2)栈。用一个栈保留页号。每当访问一个页面时,就把它从栈中取出放在栈顶上。这样一来,栈顶总是放有目前使用最多的页,而栈底放着目前最少使用的页。由于要从栈的中间移走一项,所以要用具有头尾指针的双向链连起来。在最坏的情况下,移走一页并把它放在栈顶上需要改动6个指针。每次修改都要有开销,但需要置换哪个页面却可直接得到,用不着查找,因为尾指针指向栈底,其中有被置换页。 因实现LRU算法必须有大量硬件支持,还需要一定的软件开销。所以实际实现的都是一种简单有效的LRU近似算法。 一种LRU近似算法是最近未使用算法(Not Recently Used,NUR)。它在存储分块表的每一表项中增加一个引用位,操作系统定期地将它们置为0。当某一页被访问时,由硬件将该位置1。过一段时间后,通过检查这些位可以确定哪些页使用过,哪些页自上次置0后还未使用过。就可把该位是0的页淘汰出去,因为在最近一段时间里它未被访问过。