linux操作系统课程设计—车辆死锁.doc

键入文字“操作系统原理”课程设计BX090709吴沛儒操作系统原理课程设计报告姓名吴沛儒班级BX0907学号9指导老师胡静二〇一一年十二月十六日键入文字“操作系统原理”课程设计BX090709吴沛儒目录一、操作系统原理课程设计的目的与要求31、目的32、要求3二、简述课程设计内容、主要功能和实现环境31课程设计内容32主要功能33实现环境3三、任务的分析、设计、实现和讨论31、任务的分析32、任务的设计与实现43、操作过程和结果分析54、思考题的解答和讨论6四、操作系统课程设计小结(收获、不足与建议)6五、附录7键入文字“操作系统原理”课程设计BX090709吴沛儒设计课题操作系统的死锁实验(车辆死锁问题)一、操作系统原理课程设计的目的与要求1、目的(1)理解死锁的产生原因,掌握预防和避免死锁的方法,以及死锁的检测方法。(2)通过车辆行驶死锁问题的设计与实现掌握解决死锁的方法。2、要求编写车辆行驶死锁问题的程序(1)在LINUX下用C语言编程,利用信号量操作实现进程同步;(2)假设3个方向的车辆数目相等,数值由用户输入,并动态显示车辆的行驶状态,每个车辆行驶所用的时间可以预先设定。二、简述课程设计内容、主要功能和实现环境1课程设计内容车辆行驶死锁问题,在LINUX下用C语言完成下面模型设有一个T字型路口,其中A、B、C、D处各可容纳一辆车,车行方向如图1所示。试找出死锁并用有序分配法消除之,要求资源编号合理。图1T型路口模型图2主要功能本程序可选用优先数法或简单轮转法对五个进程进行调度。每个进程处于运行RRUN、就绪WWAIT和完成FFINISH三种状态之一,并假设起始状态都是就绪状态W。为了便于处理,程序进程的运行时间以时间片为单位计算。各进程的优先数或轮转时间片数、以及进程需要运行的时间片数,均由伪随机数发生器产生。3实现环境本次课程设计结合算法的特点,采用LINUXUBANTU操作系统平台。开发工具为MICROSOFTVISUALC60。三、任务的分析、设计、实现和讨论1、任务的分析死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所占用不会释放的资源而处于一种永久等待状态。死锁的四个必要条件互斥条件(MUTUALEXCLUSION)资源不能被共享,只能由一个进程使用。键入文字“操作系统原理”课程设计BX090709吴沛儒请求与保持条件(HOLDANDWAIT)已经得到资源的进程可以在此申请新的资源。非剥夺条件(NOPREEMPTION)已分配的资源不能从相应的进程中被强制地剥夺。循环等待条件(CIRCULARWAIT)系统中若干进程组成环路,该环路中每个进程都在等待相邻进程已占用的资源。死锁预防的基本思想是对进程在申请有关资源的时候规定某种策略,如果所有进程都遵守这一策略,则系统就不会进入死锁状态。预防死锁的策略有两种资源预先分配策略和资源有序分配策略。本实验主要使用资源有序分配策略来预防死锁。下面开始重点介绍资源有序分配策略的申请过程及其缺点。资源有序分配策略在于打破死锁条件中的循环等待条件。事先将所有的资源类进行全排序,并对其进行编号,赋予每个资源类一个唯一的整数(该资源类的数量)。资源的有序分配策略规定进程必须按照资源编号由小到大的次序申请资源。就是说,当进程不占有任何资源时,该进程可以先去申请某一个资源类中的任意多个资源实例,但当它申请另一资源类时,必须满足申请的该资源类中的若干个资源实例,则他必须在一个申请命令中同时发出请求。一个进程必须按从小到大的次序进行资源的申请。可以申请某一资源类中的资源实例充要条件是它必须已经释放了前一个申请的资源类中的所有资源实例,其中申请的该资源类中的资源实例的数量要大于等于前面所申请的资源实例的数量。如果所有的进程在申请资源是都遵循上述的策略,系统就不会发生死锁。在使用资源有序分配策略时,资源类的编号应当仔细考虑,通常应当按使用资源的次序来给资源类编号。资源有序分配策略也有缺点,它限制了进程对资源的请求,而且资源的编号较困难;同时暂时不用的小编号的资源需先申请,加长了它的占用时间。2、任务的设计与实现死锁的可能性有两种(1)E方向两辆车分别位于A和B,S方向一辆车位于C,W方向一辆车位于D。(2)S方向两辆车分别位于B和C,E方向一辆车位于A,W方向一辆车位于D。位置资源编号FC1,FB2,FA3,FD4。管理C,B,A,D四个位置的信号量分别为S1,S2,S3,S4,初始值均为1。控制的PV原语,如表1所示。表1利用PV原语解决死锁算法SEMAPHORES11,S21,S31,S41VOIDS(){P(S1)驶入C;P(S2)驶入B;V(S1)P(S3)驶入A;V(S2)驶出AV(S3)}VOIDE(){P(S2)驶入B;P(S3)驶入A;V(S2)P(S4)驶入DVS3驶出D;V(S4);}VOIDW(){P(S1);//按序申请P(S4);驶入D;驶入C;V(S4);驶出C;V(S1);}键入文字“操作系统原理”课程设计BX090709吴沛儒本实验的程序流程图,如图2所示。图2车辆死锁问题流程图3、操作过程和结果分析1在LINUX系统中运行程序DEADLOCK2。2输入每条路上的车辆数并按确定。键入文字“操作系统原理”课程设计BX090709吴沛儒图3程序运行结果截图4、思考题的解答和讨论在程序中为什么要创建三个线程为了进一步提高系统的并行处理能力,在程序中加入线程,使处理机并行处理多线程。在UBUNTU系统运行程序时为什么要输入LPTHREADLPTHREAD是一个库,在LINUX操作系统编程时要用到这个库。就像使用POW等数学计算函数需要用到MATHH。SEMAPHORE这个库是做什么用的在这个程序中这个库是十分重要的,SEMAPHORE是信号量库。用以执行PV操作。四、操作系统课程设计小结(收获、不足与建议)当我在回首这一个星期的时候,不因虚度光阴而悔恨,也不因碌碌无为而羞耻。我想,这可能是我一学期中最丰富而有意义的一个星期了。从大一开始我的理论知识就比实践知识好的多,每门课都如此,实训是我最头疼的一件事。课本上记得很牢的东西到了实际操作的时候感觉都用不上,做个实验就手忙脚乱的。所以我感觉,这个星期的课设不仅学到了在理论课上学不到的知识,更是让我对自己的实践操作有了信心。本次课程设计的题目之一是用“死锁”来处理车辆行驶的问题,其中用到了理论课中学过的死锁和资源分配的东西。操作系统的基本特征是并发和共享,系统允许多个进程并发执行,并且共享系统的软、硬件资源。为了最大限度的利用计算机系统的资源,操作系统应采用动态分配的策略,但是这样就容易因资源不足,分配不当而引起“死锁”。死锁是指系统中若干个进程相互“无知地”等待对方所占有的资源而无限地处于等待状态的一种僵持局面,其现象是若干个进程均停顿不前,且无法自行恢复。死锁是并发进程因相互制约不当而造成的最严重的后果,是并发系统的潜在的隐患。一旦发生死锁,通常采取的措施是强制地撤销一个或几个进程,释放它们占用的资源。这些进程将前功尽弃,因而死锁是对系统资源极大的浪费。预防死锁的策略有两种资源预先分配策略和资源有序分配策略。本实验主要使用资源有序分配策略

linux课程设计死锁避免,linux操作系统课程设计—车辆死锁.doc相关推荐

  1. 计算机操作系统课程有什么关系,计算机操作系统课程教学大纲(洪联系).doc

    计算机操作系统课程教学大纲(洪联系) 附件2:集美大学 操作系统课程 课程教学大纲 第 1 页共 6 页课程名称中文:计算机操作系统英文:Computer Operating System课程编号80 ...

  2. 操作系统课程设计报告2021-2022——pintos

    操作系统课程设计报告 2021-2022 目录 操作系统课程设计报告 2021-2022 第一章 实验项目介绍 环境配置 ( 一 ). Ubuntu 服务器搭建 图形界面搭建 ( 二 ). Pinto ...

  3. Linux并发程序课程设计报告,网络操作系统课程设计--进程机制与并发程序设计-linux下生产者与消费者的问题实现.doc...

    网 络 操 作 系 统 课 程 设 计 网络操作系统课程设计 设计内容:进程机制与并发程序设计inux下生产者与消费者的问题实现进程机制与并发程序设计inux下生产者与消费者的问题实现 (1)掌握基本 ...

  4. 基于块的linux驱动程序,基于块的Linux驱动程序 块设备驱动 centos内核编译过程 操作系统课程设计...

    操作系统的课程设计,本人也是一头雾水地做完了课程设计,在这里贴下操作过程,放下当时参考的一篇CSDN文章链接:https://blog.csdn.net/cxy_chen/article/detail ...

  5. 操作系统课程设计--在Linux环境下模拟实现简单命令解释器(C++代码)

    操作系统课程设计要求 一.设计目的 熟悉Linux编程环境,加强对Linux命令的理解及函数的运用 二.设计内容 1. 在Linux环境下模拟实现简单命令解释器. (1)要求实现的基本命令包括: pw ...

  6. 检索上Linux操作系统课程的教师名,Linux操作系统课程设计.docx

    课 程 设 计 报 告 课程名称 Linux操作系统课程设计 指导教师 起止日期 2016-03-21 至 2016-06-13 学 院 信息与通信工程学院 专 业 电子信息工程 学生姓名 班级/学号 ...

  7. linux课程设计题目主存空间的分配与回收,可变分区分配与回收,哈尔滨理工大学操作系统课程设计报告.doc-资源下载在线文库www.lddoc.cn...

    可变分区分配与回收,哈尔滨理工大学 操作系统课程设计报告.doc 哈 尔 滨 理 工 大 学 课 程 设 计 ( 操 作 系 统 ) 题 目 可变分区分配与回收 (首次适应算法) 班 级 计算机科学与 ...

  8. linux系统编程课程改革,项目驱动的Linux操作系统课程教学改革

    摘 要 <Linux操作系统>是一门应用性很强的课程,在技师学院已被列为计算机网络技术专业的教学计划.在传统的教学模式中,教师往往按照教材编排的顺序,把知识介绍给学生,而不是把知识的应用方 ...

  9. linux操作系统论文可复制,linux操作系统课程论文

    linux操作系统课程论文 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 7.9 积分 <<Linux 操作系统操作系统>> ...

最新文章

  1. 有哪些高效看文献的方法?
  2. 三张图看遍Linux 性能监控、测试、优化工具
  3. 两台电脑可以用同一IP上网吗?
  4. Android Studio最全插件整理
  5. .gpg 进程 linux,小知识之Linux系统中的最大进程数,最大文件描述,最大线程数...
  6. Nginx location执行顺序和匹配规则
  7. 技术实践 | ICDE2021-大规模知识图谱预训练及电商应用
  8. MyCms自媒体内容管理系统 v1.6.0.1
  9. 敏捷开发框架_力软敏捷开发框架,不需要程序员也能做的开发工具
  10. XSS-Game Level 4
  11. Android 手机厂商推送服务调研
  12. 鸿蒙会取代emui,华为称自家手机运行鸿蒙系统正在推进 未来会取代安卓吗?
  13. linux7删除网卡文件,CentOS 7下删除virbr0网卡信息
  14. Chrome 插件收集
  15. asp.net单点登录
  16. 前后端分离的文件上传,上传zip或者rar压缩包(vue+springboot)。
  17. Ubuntu下面steam的安装
  18. 永磁同步电机的标么值系统
  19. Linux_系统管理
  20. Java对象大小内幕浅析

热门文章

  1. R语言使用coin包应用于分类变量独立性问题的置换检验(permutation tests)、使用普通卡方检验chisq.test函数和置换近似卡方检验chisq.test函数、检验分类变量的独立性
  2. 转录组测序和RNA-seq
  3. hppRNA-基于Snakemake的便捷无参数管道,可用于众多样品的RNA-Seq分析
  4. RNA-Seq专题课程大纲
  5. 序列拼接工具Bowtie使用说明
  6. java程序设计pdf下载_Java程序设计(迟立颖) PDF扫描版[21MB]
  7. pycharm连接远程服务器
  8. 【文本分类】A C-LSTM Neural Network for Text Classification
  9. 【自然语言处理】N-最短路径法进行中文分词
  10. 大数据分布式集群搭建(1)