非零基础自学计算机操作系统 第1章 操作系统概述 1.2 操作系统的历史 1.2.1 操作系统的产生

news2024/11/20 21:25:46

非零基础自学计算机操作系统

文章目录

      • 非零基础自学计算机操作系统
      • 第1章 操作系统概述
        • 1.2 操作系统的历史
          • 1.2.1 操作系统的产生

第1章 操作系统概述

1.2 操作系统的历史

由于操作系统是直接建造于硬件层之上的,它的演变必然与计算机系统结构的演变有着密切的联系。

可以说,操作系统的发展与硬件系统结构的发展相互促进、相互影响。

一方面,为了方便而有效地使用硬件,促进了操作系统的产生;另一方面,为了利于构造操作系统,硬件也经历了不断改进的过程。

此外,由于操作系统可以为上层软件及用户提供友好的界面,它的演变必然会反映出上层软件及用户对于操作系统的使用要求。

1.2.1 操作系统的产生

计算机操作系统在从无到有的产生过程中经历了以下几个阶段。

  1. 手动操作阶段【20世纪40年代】

    计算机诞生的初期并没有操作系统,人们采用手动操作的方式使用计算机,典型的作业(job)处理步骤如下:

    首先,将程序和数据通过手动操作记录在穿孔纸带上;

    然后,将程序穿孔纸带放到光电输入机上,并通过控制台开关启动光电输入机,将程序输入内存;

    继而再通过控制台开关启动程序由第一条指令开始执行;

    程序在运行过程中通常需要人工干预,如将穿孔纸带放到光电输入机上,出错时显示错误地址并修改指令等;

    最后在电传打印机上输出运行结果。

    显然,这种操作方式有如下两个缺点:

    • 用户在作业处理的整个过程中独享系统中的全部资源
    • 手工操作所需的时间很长。

    这种操作方式在计算机速度较慢的情况下是可以容忍的,但是当计算机速度大幅度提高之后,就会暴露出严重的缺点。

    例如,假设一个作业在速度为每秒1000次的机器上运行需要1h,手动操作所需要的时间为4min,则手动操作时间与程序运行时间之比为1:15。若计算机的速度提高到每秒600000次,同样的程序其运行时间只需6s,而手动操作时间不变,仍为4min,则手动操作时间与程序运行时间之比为40:1。也就是说,手动操作时间远远大于程序运行时间。

    因而,缩短手动操作时间在以晶体管为代表的第二代计算机出现后便成为亟待解决的问题。

    其他软件在此阶段所取得的成就主要是汇编语言和汇编系统的出现,这在一定程度上减轻了用户使用计算机的负担。

  2. 批处理阶段【20世纪50年代】

    为了缩短手动操作的时间,人们自然会想到使作业到作业之间的过渡摆脱人为干预,实现自动化,如此便出现了批处理。批处理经历了两个阶段,即联机批处理阶段和脱机批处理阶段。

    【1】联机批处理

    早期的批处理是联机的。

    其工作原理如下:操作员将若干个作业合成一批,并将其卡片依次放到读卡机上,监督程序通过内存将这一批作业传送到磁带机上,输入完毕后监督程序开始处理这一批作业。

    它自动地将第一个作业读入内存,并对该作业的程序进行汇编或编译,然后将所产生的目标程序与所需要的例行子程序连接、装配在一起,继而执行该程序,计算完成之后输出结果。第一个作业处理完毕后立即开始处理第二个作业,如此往复,直到所有作业处理完毕。

    此时,监督程序将第二批作业由读卡机传送到磁带机上,并按上述步骤进行处理。这样,监督程序不间断地处理各个作业,实现了作业之间转换的自动化,大大地缩短了手动操作的时间。不过,联机批处理也有一个缺点,即作业由读卡机到磁带机的传输需要由处理器完成,由于设备的传输速度远远低于处理器的速度,在此传输过程中处理器仍然会浪费很多时间。

    联机批处理工作原理如下图所示。

    在这里插入图片描述

    【2】脱机批处理

    为了克服联机批处理的缺点,引入了脱机批处理。它的思想是把输入输出操作交给一个功能较为单纯的卫星机去做,把主机从烦琐、耗时的输入输出操作中解脱出来,其基本原理如下图所示。

    在这里插入图片描述

    待处理的作业由卫星机负责经读卡机传送到输入磁带上,一批作业输入完后操作员将磁带由卫星机卸下并安装到主机上,主机由输入磁带读入作业并加以处理,其结果送到输出磁带上,一批结果产生后操作员将输出磁带由主机卸下并安装到卫星机上,最后由卫星机负责将输出磁带上的结果送到打印机上输出。

    可见,脱机批处理减轻了主机的/O负担,使其能专注于计算任务的处理。其缺点是需要一个专门的卫星机,并且磁带装卸需要人工完成。批处理系统是操作系统的雏形。

    在此阶段,其他软件也有了相应的发展,如输入输出标准程序、高级语言编译程序、连接装配程序等。

  3. 执行系统阶段【20世纪60年代初期】

    批处理较手动操作来说前进了一大步,但是它仍然存在一些缺点,如需要额外的卫星机、磁带机的装卸需要手动操作等。

    在20世纪60年代初期,硬件在两个方面取得了重要的进展。一是引入通道,二是出现通道中断主机功能,这是操作系统发展史上的重要事件,它推动操作系统进入执行系统阶段。

    通道又称I/O处理器,它具有自己的指令系统和运算控制部件,与处理器共享内存资源。

    通道可以受处理器的委托执行通道程序以完成输入输出操作,通道的输入输出操作可以同处理器的计算工作完全并行执行,并在输入输出操作完成时向处理器发出中断请求。这样,作业由读卡机到磁带机的传输以及结果由磁带机到打印机的传输均可由通道完成,这既非联机方式,也非脱机方式,称为“假脱机”(simultaneous peripheral operations on line,SPOOL)或“伪脱机”。通道取代了卫星机,也免去了手动装卸磁带的麻烦。

    执行系统阶段是操作系统的初级阶段,它为操作系统的最终形成奠定了基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/80406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java基于JSP的小区内部物业管理系统

对于规模较小的物业管理公司来说,传统的人工小区物业管理模式仍旧可以应付日常的工作需求。但是,随着该行业不断的发展,竞争日益激烈,提高物业管理的工作水平与效率、为业主提供更好的服务,已经成为物业管理公司当前必须考虑的问题。而将计算机引入到管理机制中来将是一个不错的…

2022-12- 05 网工进阶(三十七)MPLS--基本概念、转发过程、基本配置、配置静态LSR

MPLS概述 基本概念 MPLS(Multi-Protocol Label Switching,多协议标签交换)位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务。 通过在数据链路层和网络层之间增加额外的MPLS头部,基于MPLS头部…

木字楠后台管理系统开发(3):Vue项目初始化并引入基础依赖

🎶 文章简介:木字楠后台管理系统开发(3):Vue项目初始化并引入基础依赖 💡 创作目的:为了带大家完整的体验木字楠后台管理系统模版的开发流程 ☀️ 今日天气:温度骤降,差点给爷送走。 &#x1f4…

Js逆向教程23-AST Babel插件最简单修改值示例

作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 AST Babel插件最简单修改值示例 一、文档地址和安装的方式 https://github.com/jamiebuilds/babel-handbook/blob/master/translation…

动态规划

什么是动态规划 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。 动态规划的前提是什么? 存在最优解 拿出来任意一块物品,仍旧是最…

详解C++11

文章目录前言一、C11简介二、统一的列表初始化2.1 {}的初始化2.2 std::initializer_list三、声明3.1 auto3.2 decltype3.3 nullptr四、范围for五、智能指针六、STL中一些变化新容器容器中的一些新方法七、右值引用和移动语义7.1 左值引用和右值引用7.2 左值引用和右值引用比较左…

灵魂拷问,你真的了解DNS吗?

未来已来,只是不均衡地分布在当下 大家好,我是菜农,欢迎来到我的频道。 都说程序员是面向Google编程,殊不知当你输入 www.google.com 地址的时候,是否有想过,在回车的一瞬间浏览器如何将请求发送&#xff…

价值年薪70W的JAVA进阶学习路线!终于让我从阿里P8手里抠出来了

作为一个男人我感觉必须得做点什么来证明一下自己,现在我又回来了,准备把自己的节操准备补一下。另外给各位未来的Java程序员说一句,别的我不清楚,学习编程请从一而终 咱们学习编程就挺难的,有这些先驱者来带领咱们学习…

【Maven基础】命令行环境使用

实验一:根据坐标创建 Maven 工程 1、Maven 核心概念:坐标 1.1、数学中的坐标 使用 x、y、z 三个『向量』作为空间的坐标系,可以在『空间』中唯一的定位到一个『点』。 1.2、Maven中的坐标 1.2.1、向量说明 使用三个『向量』在『Maven的仓…

[附源码]计算机毕业设计会议室预定管理APPSpringboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【个人笔记 hive】hive里面的说SerDe含义

官网中这样介绍serde:https://cwiki.apache.org/confluence/display/Hive/SerDe: SerDe Overview SerDe is short for Serializer/Deserializer. Hive uses the SerDe interface for IO. The interface handles both serialization and deserialization …

Linux中mysql的安装|配置|操作|卸载

文章目录1. mysql的卸载1.1 首先查询系统是否安装了MySQL1.2 关闭MySQL服务1.3 查看MySQL对应的文件夹1.4 卸载并删除MySQL安装的组键服务1.5 删除系统中MySQL的所有文件夹1.6 最后验证MySQL是否删除完成2. mysql的安装与配置2.1 下载mysql8.0安装包2.2 解压mysql8.0安装包2.3 …

蜂鸟学习笔记E203(七)——写回、存储器和ICB总线

一、 蜂鸟E203处理器的写回硬件实现 核心思想如下 将指令划分为单周期指令和长指令两大类将长指令的交付和写回分开,使得即使执行力多周期的长指令也不会阻塞流水线,妨碍单指令 主要包含最终写回仲裁、长指令写回仲裁 最终写回仲裁 长指令的写回比…

Python的数据结构- 序列(sequence)

数据结构 - 序列(sequence) 序列的一个特点就是根据索引(index,即元素的位置)来获取序列中的元素,第一个索引是 0,第二个索引是 1,以此类推。 所有序列类型都可以进行某些通用的操作…

ChatGPT教我面试

​持续坚持原创输出,点击蓝字关注我吧 最近ChatGPT爆火,ChatGPT能干什么呢?想必已经看过很多文章了,例如ChatGPT通过美国高考、ChatGPT开发游戏、调试代码、写文章等等。 哈哈,作为一个软件测试博主,我怎么…

frp内网穿透SSH

参考博客: 博客1(推荐): https://sspai.com/post/52523 博客2: https://blog.csdn.net/qq_36981760/article/details/115713179 博客3: https://blog.csdn.net/qq_36981760/article/details/115713179 参考视频 (推荐,比较详细): https://www.bilibili.com/video/BV…

谈谈inline(内联函数)

目录1、例子抛出2、 了解inline2.1 宏替换的副作用2.2 内联函数2.3 有意思的点3、总结4、 感谢您的阅读!1、例子抛出 我们知道可以用宏定义来代替一个变量或者函数块: #define A 20 #define MYFUNC(a,b) ((a) > (…

Kubernetes双主集群的部署(二)

Kubernetes单主集群的部署(一)_Evens7xxX的博客-CSDN博客 上期完成了单主架构集群的部署,本期将在单主架构的基础上添加Master和负载均衡器 目录 二、k8s双主架构集群的部署 1.另一台Master同样做初始化配置 2.配置 Master02 3.配置负载均…

算法与数据结构31:DC3算法生成后缀数组

算法与数据结构31:DC3算法生成后缀数组什么是后缀数组引出DC3算法DC3算法具体实现DC3算法模板DC3模板的用法一个可以使用DC3的题什么是后缀数组 假设有字符串 aabaabaa 那么从每个位置开始,到结尾位置,截取后缀串,可得 a aa baa …

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年

前言 每个程序员都有一个大厂的梦,而互联网大厂首当其冲自然是阿里巴巴最吃香,今天小编就来分享一个小伙进阿里巴巴的面经! “不想进大厂的程序员不是好程序员”哈哈哈 春节过后,本是金三银四之际,大部分人也都准备好…