[1.2]计算机系统概述——操作系统的发展与分类

news2025/1/16 10:55:57

文章目录

  • 第一章 计算机系统概述
    • 操作系统的发展与分类
      • (一)手工操作阶段
      • (二)批处理阶段——单道批处理系统
      • (三)批处理阶段——多道批处理系统
      • (四)分时操作系统
      • (五)实时操作系统
      • (六)其他几种操作系统
    • 小结

第一章 计算机系统概述

操作系统的发展与分类

OS的发展与分类

  • 手工操作阶段
  • 批处理阶段
    • 单道批处理系统
    • 多道批处理系统(操作系统开始出现)
  • 分时操作系统
  • 实时操作系统
  • 网络操作系统
  • 分布式操作系统
  • 个人计算机操作系统

【注】要重点关注和理解各类操作系统主要想解决的是什么问题,各自的优缺点。

(一)手工操作阶段

image-20230303162622964

  在这个阶段,操作系统还并没有诞生。程序员写程序,还是要写到纸带上的。可以看到,纸带上有小孔,有孔的地方代表1,没孔的地方代表0。程序员通过在纸带上打孔的方式写好自己的程序,然后把这个程序放到纸带机上。然后计算机从纸带机当中读取我们要运行的程序,等运行结束以后,又把程序运行的结果输出到纸带机上,之后再由程序员取走程序运行的结果。

  但是,用手工操作的方式,存在一个很明显的问题。

  程序员用手工的方式把纸带装到纸带机,或者从纸带机上取下带有程序运行结果的纸带的过程,是非常慢的。

  此外,计算机对纸带机上的纸带进行读取的过程,也需要花费不少的时间。

  但是,计算机对已经读好的程序进行处理的过程,是非常快的。

image-20230303163016814

手工操作阶段存在的主要缺点就是:

  用户独占全机。第一个程序员在没有使用计算机处理程序并取走结果之前,第二个程序员是无法使用计算机的,所以当一个用户使用计算机的时候,他就是独占地使用。

  由于手工操作是一个很慢的过程,但是计算机的计算又是个很快的过程,这样的人机速度矛盾会导致资源的利用率极低,特别是计算机CPU的利用率极低(由上图即可观之)。在那个年代计算机的造价还是很昂贵的,使得计算机这样昂贵的资源大量的时间处于空闲状态,显然是一种很不经济、很低效的方式。

为了解决手工操作存在的问题,人们引入了单道批处理系统。

(二)批处理阶段——单道批处理系统

  引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出。

image-20230303185851890

  各个程序员都可以把自己的程序依次放到纸带机上,会有一个叫“外围机”这样专门的机器,控制着把这些纸带机里的程序先放到磁带上。之后,计算机可以直接从磁带里读写这些数据。而计算机对磁带的读写速度,比纸带机快很多。

  此时计算机当中会有一个监督程序的程序,自动地控制着对磁带的输入、输出。

image-20230303191836257

  引入这种脱机输入输出技术后,我们读取一个作业所花费时间的比例就小了许多,就可以让CPU有更高比例的时间处于计算、处于忙碌的状态。在一定程度上缓解了人机速度矛盾。

image-20230303200328968

  但是资源利用率虽然相比于手工操作有所提高,但依然是很低的。内存中同一时刻还是只能有一道程序运行,只有当这个程序运行结束并且输出完成之后,才可以继续读入第二个程序,各个程序之间是串行地执行的。这种方式依然会使CPU有大量的时间是在空闲等待的状态,资源利用率依然的很低的。

  为了解决这一问题,人们就发明了多道批处理系统。在这一阶段,操作系统就真正诞生了。

(三)批处理阶段——多道批处理系统

image-20230303200739726

  • 每次往内存中读入多道程序。
  • 操作系统正式诞生,用于支持多道程序并发运行。

image-20230303200834729

  首先,第一个作业的数据会从磁带输入到计算机当中,输入结束之后,就可以开始对这个程序的计算工作;

  但是,当CPU在计算第一个作业的时候,其实输入设备是处于空闲状态的,因此,CPU计算第一个作业的时候,其实可以让输入设备同时把第二个作业也读入内存;

  紧接着,第一个作业计算完成,第一个作业就可以通过输出设备,把计算结果输出到磁带上;

  而第一个作业在输出的时候,其实只是输出设备在忙碌,在这时,CPU已经空闲了,所以在这个时间段可以让CPU为第二个作业服务,开始计算第二个作业;

  同时,在这个时候,输入设备其实又开始空闲了,因此又可以同时开始读入第三个作业……

  总之,在引入多道程序技术之后,多道程序可以并发地执行,共享计算机当中的资源(输入设备、输出设备、CPU等)。CPU和其他资源更能保持“忙碌”状态,资源利用率大幅度提升,系统吞吐量增大。

  不过,多道批处理系统并没有提供人机交互的功能,当一个用户把自己的作业提交了之后,接下来用户就只能干等着计算机把自己的作业处理完成。也就是说,在多道批处理系统中,用户是无法调试自己的程序的,也不可能在程序运行的过程中输入一些参数。

  为了实现人机交互的功能,人们又发明了分时操作系统。

(四)分时操作系统

  分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。

image-20230303203516048

  (比如在上图中,计算机按照顺时针的顺序,依次为每个用户服务50ms,不断轮转)

  因此,在分时操作系统中,用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

  分时操作系统也存在一些缺点,它不能优先处理一些紧急的任务。操作系统对每个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

  所以,为了让计算机能够优先地处理一些紧急任务,人们又提出了实时操作系统。

(五)实时操作系统

  实时操作系统,能够根据任务的优先级,来优先地响应一些紧急任务,某些紧急任务不需时间片排队。

  在实时操作系统的控制下,计算机接收到一些紧急的信号之后,需要进行及时处理,并且要在严格的时限内处理完成,还要保证处理的结果是正确的。因此,这种操作系统的主要特点是及时性和可靠性

  实时操作系统又分为硬实时和软实时:

  • 硬实时系统
    • 必须在绝对严格的规定时间内完成处理
      • 如:导弹控制系统、自动驾驶系统
  • 软实时系统
    • 能接受偶尔违反时间规定
      • 如:12306火车订票系统

(六)其他几种操作系统

  除了刚才我们说的几种操作系统之外,还有网络操作系统、分布式操作系统、个人计算机操作系统。这些操作系统简单了解一下就可以,此处不再展开。

小结

image-20230303204520529

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

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

相关文章

【Java开发】JUC进阶 01:Lock锁详解

1 Lock锁介绍已经在【JUC基础】04简单介绍过了,本文做进一步的拓展,比如公平锁和非公平锁、📌 明白锁的核心四个对象:线程,共享资源,锁,锁操作包括线程如何操作资源,使用锁锁哪个资源…

xgboost: 分割查找算法:贪婪算法、分桶算法

1、Basic Exact Greedy Algorithm 树学习的关键问题之一是找到最好的分割,如Eq(7)所示。 贪婪算法:分割查找算法枚举所有特征上的所有可能的分割。精确的贪婪算法如Alg. 1所示。为了高效地完成这一任务,算法必须首先根据特征值对数据进行排序&#xff…

SpringMVC 参数绑定(视图传参到控制器)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

Vue组件基础(父向子、子向父、子向子传值)

Vue组件基础-父向子、子向父、子向子传值一、Vue组件概念,创建和使用1.1 组件概念1.2 组件基础使用1.3 组件-scoped作用二、Vue组件通信2.1 父向子传值(props)2.2 子向父传值($emit)2.3 子与子传值(EventBus)一、Vue组件概念,创建和使用 1.1 组件概念 组件是可复用的Vue实例,封…

【100个 Unity实用技能】 | 脚本无需挂载到游戏对象上也可执行的方法

Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案&#xff…

springboot使用ssh公钥连接mysql(含账号密码连接)

引言 在项目开发过程中,遇到了连接数据库时需要使用ssh公钥的情况。在本地使用navicat可以直接通过可视化界面去进行ssh的连接,但是在java中无法直接去进行连接。 后来经过查询资料,发现必须要在java中编写相关配置文件后才可以正常连接。 …

Linux内核源码进程原理分析

Linux内核源码进程原理分析一、Linux 内核架构图二、进程基础知识三、Linux 进程四要素四、task_struct 数据结构主要成员五、创建新进程分析六、剖析进程状态迁移七、写时复制技术一、Linux 内核架构图 二、进程基础知识 Linux 内核把进程称为任务(task),进程的虚…

Linux下MQTT客户端消息订阅与发布实现

MQTT(消息队列遥测传输)是一个基于客户端-服务器的消息发布/订阅传输协议。它基于TCP协议,默认端口号为1883,为此,它也需要一个消息中间件 。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下…

蓝桥杯三月刷题 第一天

文章目录💥前言😉解题报告💥数列求值🤔一、思路:😎二、代码:💥质数🤔一、思路:😎二、代码:💥饮料换购🤔一、思路:😎二、代…

23.3.4打卡 AtCoder Beginner Contest 291(Sponsored by TOYOTA SYSTEMS)A~E

F题题面都看不懂嘞!开摆! 没找到合适的markdown, 截图网页翻译了我真是天才 比赛链接: https://atcoder.jp/contests/abc291 A题 题意 给出一个字符串, 找到第一个大写字母的下标 简单题就不多说了, 直接放代码 代码 void solve() {cin>>str;nstr.size();str"…

CentOS7操作系统安装nginx实战(多种方法,超详细)

文章目录前言一. 实验环境二. 使用yum安装nginx2.1 添加yum源2.1.1 使用官网提供的源地址(方法一)2.1.2 使用epel的方式进行安装(方法二)2.2 开始安装nginx2.3 启动并进行测试2.4 其他的一些用法:三. 编译方式安装ngin…

Kali、Metasploitable2部署

1、安装VMWare虚拟机及metasploitable2软件 链接:https://pan.baidu.com/s/1rqhjh1P9VJg5Q1esBgpZ-A 提取码:dc66 metasploitable2部署很简单,解压后,直接双击后缀.vmx文件,默认账户msfadmin/msfadmin,sud…

php实训报告

实训一 PHP语法基础 一、实训目的 掌握PHP数据类型知识。掌握PHP变量与常量的知识和运用方法。掌握PHP选择结构流程控制的知识及应用。掌握PHP循环结构流程控制的知识及应用。 二、实训工具或设备 主流 PC 机一台(要求安装 windows 操作系统)&#xff…

基于m-p条件查询代码生成

目录 起因 演示 使用 0.自定义注解 1.定义一个dto的条件查询类 2.调用主程序 效果图 小结 代码 注解 Dto类 完整代码 起因 最近两天一直写后台管理统计的增删改查(很少写增删改查,所以不是很熟练),几乎每个表都要涉及到条件查询的业务&#xf…

7个常用的原生JS数组方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 7个常用的原生JS数组方法一、Array.map()二、Array.filter三、Array.reduce四、Array.forEach五、Array.find六、Array.every七、Array.some总结一、Array.map() 作用&#…

Transformer 模型:入门详解(1)

动动发财的小手,点个赞吧! 简介 众所周知,transformer 架构是自然语言处理 (NLP) 领域的一项突破。它克服了 seq-to-seq 模型(如 RNN 等)无法捕获文本中的长期依赖性的局限性。事实证明,transformer 架构是…

【数据结构初阶】详解“树”

目录 前言 1.树概念及结构 (1)树的概念 (2)树的名词介绍 (3)树的表示 ​编辑 2.二叉树概念及结构 (1)概念 (2)特殊的二叉树 (3&#xff0…

sizeof与strlen练习

前言 本篇仅仅是为了更加了解sizeof操作符和strlen函数练习. 对于多条sizeof操作符和strlen函数出现,可能很容易造成头脑不清晰,做题时容易混乱. 目录前言一维数组字符数组情况1:情况2情况3二维数组练习之前请牢记下面这段话.这将是头脑清晰地关键. 提示: sizeof(数组名)&#…

MyBatis高频面试专题

一、介绍下MyBatis中的工作原理 1。介绍MyBatis的基本情况:ORM 2。原理: MyBatis框架的初始化操作处理SQL请求的流程 1.系统启动的时候会加载解析全局配置文件和对应映射文件。加载解析的相关信息存储在 Configuration 对象 Testpublic void test1(…

【ID:17】【20分】A. DS顺序表--类实现

时间限制1秒内存限制128兆字节题目描述用C语言和类实现顺序表属性包括:数组、实际长度、最大长度(设定为1000)操作包括:创建、插入、删除、查找类定义参考输入第1行先输入n表示有n个数据,即n是实际长度;接着输入n个数据…