操作系统第一周

作者第一周打数模国赛去了,现找b站王道操作系统课程学习,以后也将二者的内容结合记录。本篇的图来自于王道网课和老师PPT。

操作系统的概念和功能

横向展示计算机系统层次结构:

操作系统:系统资源的管理者,包括硬件和软件。同时需要向上层提供方便易用的服务。操作系统属于系统软件

操作系统的定义:

首先是一个系统软件,也是用户与计算机之间的接口。这个系统软件可以管理和控制计算机系统软硬件资源、合理组织计算机工作流程。

关键词:管控软硬件资源、组织计算机工作流程、为用户提供计算机接口

除了GUI,操作系统同时为用户提供了命令接口

联机命令接口就是交互式命令接口,以Windows为例就是cmd窗口。

脱机命令接口也称批处理命令接口:.bat文件。联机命令接口是用户说一句,机器就执行一句。脱机批处理是用户说一堆,机器再执行一堆。

程序接口:专用于程序员,在程序中进行系统调用

简而言之,裸机+操作系统=虚拟机。但这个虚拟机和平常的运行在 Hypervisor 之上的模拟计算机环境不一样哦~这只是在操作系统中的不算太重要的重名的定义!

操作系统的特征

虚拟:能够把物理上的实体扩展到若干个逻辑上的对应物。利用空分复用、时分复用技术,让一个小的东西能够运行看起来运行不了的大东西。(比如运行内存、单核处理器等)。把大的空间、时间分割为很小很小的片段,让用户感觉是在同时进行的。

异步:在多道程序环境下,系统资源有限导致进程进展走走停停,易产生阻塞。也称不确定性,进程的运行速度、发生的错误、中断事件都是不可预知的。

并发和共享是操作系统最基本的两个特征。

操作系统发展

王道的课讲的真不错,比作者看课本要懂得快。

【王道计算机考研 操作系统】https://www.bilibili.com/video/BV1YE411D7nH?p=4&vd_source=3026e1149e1e36cc45042854c30dd20c

纸带机上,有孔的地方表示1,没孔的表示0。程序员通过打孔的方式将程序写在纸带上,再交给计算机运行,然后结果也是打孔的纸带,非常麻烦。

单道批处理的好处在于,可以将所有的任务通过外围机进行队列化,把队列中所有的程序和数据都存储到磁带中。然后通过磁带与计算机进行交互,这种交互时间比单个纸带机与计算机交互要快的多,并且人工整理的时间由于队列化,可以看作几乎不需要人工整理。故有下图:

图中,监督程序相当于操作系统的前身,负责控制磁带与计算机的交互过程。单道批处理也肯定有缺点,就是来自于单道。程序之间是串行执行的,所以CPU利用率仍然需要提高。其中,单道批处理系统可分为联机批处理脱机批处理(上图)。

  1. 磁带在批处理中的角色

    • 磁带是一种低成本、高容量的存储介质。在批处理的初期,磁带常被用来存储大量的数据和程序。当一组相关的任务需要被处理时,它们通常会被加载到磁带上,然后整批送入计算机进行处理。

  1. 联机批处理

    • 联机批处理与脱机批处理的主要区别在于数据是如何被传送到主机的。在联机批处理中,外围设备(如磁带驱动器、磁盘驱动器等)可以直接与主机通信,不需要通过外围机。
    • 尽管数据可以实时或近乎实时地被送入主机进行处理,但任务仍然是在批量模式下执行的。

  1. 脱机批处理

    • 在脱机批处理中,数据首先被收集并存储到磁带或其他存储设备上。这通常由一个外围机或其他输入设备完成。
    • 之后,这些数据(通常在非工作时间或夜间)会被读入主计算机进行处理。
    • 一旦数据处理完成,输出会被存储回磁带或其他介质,以供后续的处理或检索。

在脱机批处理的早期实践中,外围机的一个重要角色就是作为主机和外围设备(如磁带驱动器、打卡机等)之间的中介或接口。

  1. 数据收集:首先,外围机从各种输入源收集数据,并将这些数据存储到磁带上。

  2. 数据传输:当主机准备好处理这些数据时,外围机会将存储在磁带上的数据传输到主机。这是通过读取磁带上的数据,并通过特定的接口或通道将数据发送到主机来实现的。

  3. 数据处理:一旦数据被传输到主机,主机就会进行相应的批处理操作。

  4. 输出结果:处理完的数据或结果再次通过外围机被写入到磁带或其他输出设备上,以供后续使用或存档。

通过这种方式,外围机起到了一个缓冲的作用,允许主机在不被I/O操作中断的情况下继续高效地执行计算任务,而I/O操作(如数据的读取和写入)则由外围机来处理。

原来多道批处理系统没有人机交互的特性可以体现在用户无法调试程序啊!

在早期的批处理系统中,如果程序出现问题,它可能会失败,并返回一个错误报告。用户必须根据这个报告来判断问题所在,修改程序,然后重新提交。这与现代开发环境中的实时调试和即时反馈相差甚远。

那什么叫实时调试和即时反馈呢?

实时交互:现代开发环境允许开发者在代码执行的任何时刻暂停执行、检查变量的值、修改代码或数据并继续执行。这种交互性使得调试过程更加直观和高效。

现代的调试工具,如GDB、Visual Studio的调试器等,都允许开发者在程序运行时进行以下操作:

  1. 设置断点:您可以在代码的特定行上设置一个“断点”。当程序运行到这一行时,它会“暂停”,允许您查看当前的变量值、调用堆栈等。

  2. 单步执行:一次只执行一行代码,这样您可以详细观察程序的执行过程。

  3. 查看和修改变量的值:在程序暂停时,您可以查看当前的变量值,并且在某些调试工具中,还可以修改它们。这可以帮助您测试某些“假设”,而不需要停止程序并重新运行。

  4. 评估表达式:您可以在暂停时计算某些代码片段或表达式的值。

  5. 调用堆栈查看:允许您查看当前的函数调用序列,了解程序是如何达到当前状态的。

这些都属于在程序运行时可以进行的行为,而不是调试行为,调试本来就是中断程序运行过程,也属于在程序运行时进行实时操作。

即时反馈:现代编译器和IDE能够在编译时提供详细的错误信息,并经常附带解决建议,这大大简化了问题定位和解决的过程。

所以说,在多道批处理系统中,程序的执行是顺序进行的,一旦提交后,确实不能直接对正在运行的程序进行暂停、修改等实时交互操作,也就是调试工作。

但关于是否能看到中间结果,这要根据当时的系统和程序设计来定。

  1. 输出结果:如果程序设计有定期将中间数据或结果输出到某种设备(如打印机、磁带、磁盘等),那么开发者或操作员是可以在作业完成前查看这些中间结果的。

  2. 日志和打印:程序中常常会包含打印或日志记录功能,用于记录程序的运行过程和关键步骤。这可以帮助开发者和操作员了解程序的执行情况。但这些输出可能不是“实时”的,而是在程序的某个阶段或结束时才生成

  3. 系统的反馈:尽管多道批处理系统主要是顺序执行,但系统本身可能会为操作员提供某种程度的反馈,例如,一个作业的状态、资源占用情况等。

  4. 查看中间文件:某些作业可能会生成中间文件,用于存储中间结果或为后续作业使用。这种情况下,操作员或开发者有可能查看这些文件以获取中间数据。

尽管上述方式可以提供某种程度的中间结果查看,但这并不等同于现代开发环境中的实时交互性。在多道批处理系统中,直接对正在运行的程序进行实时操作和调试是有限的或不可能的。

为了增强用户的体验,发展出分时操作系统:

为了能优先处理紧急任务,提出实时操作系统。

比较

多道程序系统多处理系统的区别:

 (Multiprogramming System / Multiprocessing System)

  前者指多个程序同时在内存中交替运行

  后者指系统配置多个CPU处理器

单道批处理系统/多道批处理系统:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joy T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值