发展历程

早期的批处理系统中,I/O设备和CPU仍然是串行工作的,CPU时间浪费巨大,浪费了CPU的处理能力。操作系统中只有一个可执行程序,一个任务执行时,必须CPU执行完,I/O才能执行,两者不可并行。

随着CPU速度迅速提高而I/O设备速度却提高不多,导致CPU和I/O设备之间的速度不匹配,矛盾越来越突出。

为了解决这个问题,多道程序的概念被提出。

多道程序设计的概念与相应的问题

多道程序设计:允许多个程序(作业)同时进入一个计算机系统的内存并启动进行交替计算的方法,也就是,计算机中可以同时存放多道程序,从宏观上来看它们是并行的,多道程序都同时处于运行过程中,但都未运行结束,但是微观上是串行的,轮流占用CPU交替执行,引入多道程序设计技术的根本目的是提高CPU的利用率,充分发挥计算机系统部件的并行性。

多道程序设计需要考虑的一些问题

交替执行的多道程序设计理念,能够提高系统的效率,增加单位时间的处理能力,但是对于单道程序来说,却延长了计算时间。所以,要明白,多道程序设计提高资源利用率和系统吞吐率是以牺牲用户的作业周转时间为代价的,而一些无法延迟的计算,也是多道程序设计需要考虑的问题。

在多道程序设计中,道的数量是需要衡量的,因为道数的多少和系统效率不是完全正相关的(比如CPU的切换也是需要时间的),它通常由系统的资源和用户的要求而定。而且,内存的容量以及用户的响应时间也是影响多道程序道数的重要因素。

总结利弊

  • 提高了CPU的利用率

  • 提高了内存和I/O设备的利用率

  • 改进了系统的吞吐率

  • 充分发挥了系统的并行性

  • 主要缺点是延长了作业周转时间

多道程序设计与多重处理系统

多道程序设计系统与多重处理系统有差别,后者是指配置了多个物理CPU,从而,能真正同时执行多道程序的计算机系统。要有效地使用多重处理系统,必须采用多道程序设计技术,反过来,多道程序设计不是必须要有多重处理系统支持。

实现多道程序设计必须妥善地解决三个问题:存储保护与程序浮动;处理器的管理和分配;系统资源的管理和调度;

在多道程序设计中,内存是由几道程序所共享,因此,硬件需要提供一定的功能,使得内存中的各道程序只能访问它自己的区域,以避免相互干扰。特别是当一道程序发生错误的时候,不致影响到其它的程序,更不能影响系统程序,这就是存储保护。

在多道程序设计系统里,如果系统仅配置一个物理处理器,那么,多个程序必须轮流占有处理器,这就涉及到处理器的调度,程序在执行中处于三种状态:

  • 运行态,当一个程序占有处理器时;

  • 等待态,当一个程序等待某个事件发生时,就处于等待态,比如等待I/O;

  • 就绪态,当一个等待的条件已满足可以运行而未占用处理器时;

所以,一道程序在执行中总是处于运行、就绪、等待三种状态之一,一道程序在执行过程中,它的程序状态是变化的,从运行态到等待态的转换是在发生了某种事件时产生的,从等待态转换成就绪态是在等待的某个事件完成时产生的

操作系统之多道程序设计相关推荐

  1. 从现代操作系统中学到的东西--批处理、多道程序设计、分时系统

    一  批处理系统(batch system) 其思想是:在输入室收集全部的作业,然后用一台相对便宜的计算机,如IBM 1401计算机,将它们读到磁带上.IBM 1401计算机适用于读卡片.复制磁带和输 ...

  2. 并发的发展历史-集成电路和多道程序设计

    多道程序设计的出现解决了这个问题,就是把内存分为几个部分,每一个部分放不同的程序.当一个程序需要等待I/O操作完成时.那么CPU可以切换执行内存中的另外一个程序.如果内存中可以同时存放足够多的程序,那 ...

  3. 【操作系统】多道程序的理解

    今天的题目是关于多道程序设计的理解,看到就一次性掌握它! (图片是操作系统层次的结构) 1什么是多道程序设计? 它的主要优点是什么? [分析与解答]所谓多道程序设计, 是指把一个以上的程序存放在内存中 ...

  4. [操作系统精髓与设计原理笔记] Chapter2 操作系统概述

    Chapter2 操作系统概述 2.1 操作系统的目标和功能 2.1.1 作为用户/计算机接口的操作系统 操作系统是应用程序和计算机硬件间的接口,三个目标:方便.有效.扩展能力 计算机软硬件结构 ​ ...

  5. 《操作系统——精髓与设计原理(第八版)》复习题抄录

    手敲一遍,便于记忆:记录下来,便于复习. 第一部分 背景知识 第1章 计算机系统概述 1.1 列出并简要定义计算机的4个主要组成部分. 答: 处理器(Processor):控制计算机的操作,执行数据处 ...

  6. 计算机操作系统精髓与设计原理

    计算机操作系统精髓与设计原理 高速缓存: 主要解决处理器和内存的速度不匹配的问题.处理器的速度一致快于存储器的访问速度,这需要在速度.价格和大小方面进行折中.高速缓存区试图使访问速度接近现有的最快的存 ...

  7. 多道程序设计、多线程和多处理

    多道程序设计:允许多个程序(如浏览器.word.email)通过共享同一个CPU同时运行.CPU的速度比其他组件快得多,这样,多数时间它都处于空闲状态,例如,等待数据从磁盘传入,或者等待其他系统资源响 ...

  8. 华南理工大学计算机课设,华南理工大学 操作系统(含课程设计)随堂练习

    第 1 章 操作系统引论 本次练习有 13 题,你已做 13 题,已提交 13 题,其中答对 13 题. 当前页有 10 题,你已做 10 题,已提交 10 题,其中答对 10 题. 1. 实时操作系 ...

  9. 操作系统--精髓与设计原理课后复习题答案

    操作系统--精髓与设计原理(第八版) 1-15章课后复习题答案 Chap1 1.1 列出并简要定义计算机的四个组成部分. 处理器:控制计算机的操作,执行数据处理功能. 内存:也叫主存储器,存储数据和程 ...

  10. 什么是多道程序设计(Multiprogramming)以及有什么优点?

    多道程序设计(Multiprogramming)是一种计算机操作系统的运行方式,它允许同时运行多个程序. 在多道程序设计中,操作系统将CPU时间分割成很短的时间片(时间段),并在每个时间片中将CPU分 ...

最新文章

  1. springboot:简单oa系统开发
  2. [USACO1.2]挤牛奶Milking Cows
  3. JVMTM Tool Interface
  4. Angular library 学习笔记
  5. java锁_Java锁
  6. 如何使用oracle ebs,Oracle EBS进行集成的实际操作步骤
  7. eclipse java source_Eclipse中查看JAVA源代码显示SOURCE NOT FOUND解决办法
  8. php 备份数据库 Backup Your MySQL Database Using PHP
  9. Jupyter运行GitHub里的MXNet源代码
  10. FPGA信号处理系列文章——用matlab理解CIC滤波器的原理
  11. swagger导出excel文档_excel导入导出api
  12. Spring ClassPathResource详解
  13. 【论文笔记】在CommonsenseQA 上追平人类: 通过External Attention 增强 Self-Attention
  14. 一个pdf怎么分成两个文件?怎样将一个pdf文件分成几个pdf文件或若干个?
  15. 【NOIP普及组】 1945:【09NOIP普及组】多项式输出
  16. 与、或、非、同或、异或、蕴含的表示 C/C++
  17. form表单中的 action=./? 是什么意思
  18. 【Android应用开发】-(16)如何绕开Google Play地区限制
  19. matlab画图函数汇总(三)
  20. 省住建厅关于做好二级建造师电子化注册管理工作的通知〔2018〕994号

热门文章

  1. c语言填空题库,C语言题库(填空题部分)
  2. SAP 银行主数据 SWIFT 码
  3. matlab gui界面的优点,关于Matlab GUI界面设计的一些了解
  4. 博科光纤交换机维护手册
  5. Hexo添加可控制网易云音乐播放器
  6. 软件无线电原理深入解析
  7. 树莓派能学linux吗,用树莓派能高效学习Linux和Python吗?
  8. java单例模式——详解JAVA单例模式及8种实现方式
  9. [UPF]低功耗(Low Power Design)and UPF介紹
  10. 几种“超强壮”的弱密码方案