热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

计算机操作系统第一章:操作系统引论(知识梳理+脑图)

文章目录计算机操作系统第一章操作系统引论一、操作系统目标和作用1、目标2、作用3、主要发展动力二、操作系统的发展过程1、未配置操作系统的计算机系统2、批处理系统3、分时系统4、实时


文章目录

  • 计算机操作系统
    • 第一章 操作系统引论
      • 一、操作系统目标和作用
        • 1、目标
        • 2、作用
        • 3、主要发展动力
      • 二、操作系统的发展过程
        • 1、未配置操作系统的计算机系统
        • 2、批处理系统
        • 3、分时系统
        • 4、实时系统
      • 三、操作系统的基本特性
      • 四、操作系统的主要功能
      • 五、OS结构设计
        • 1、传统的操作系统结构
        • 2、客户/服务器模式
        • 3、面向对象的程序设计
        • 4、微内核OS结构
        • 5、微内核与单内核(宏内核)操作系统结构比较
    • 参考文献


计算机操作系统

由于本学期学习了计算机操作系统,所以打算边学习边整理,一方面帮助自己梳理知识结构,另一方面可以帮助大家理解。

注意:该总结用的是汤小丹第四版!

关于知识脑图,我是边学边做的,推荐大家也自己做脑图,而不是直接拿走照搬,因为只有自己梳理的东西才是自己的

做知识脑图的好处是可以对知识整体结构有好的把握,不会让自己迷失于细节;还可以复习时快速找到知识点等。

废话不多说,赶紧开始吧。
在这里插入图片描述
链接:https://pan.baidu.com/s/1RogFGFpzdAL1eCFvF3uvRg
提取码:aoic


第一章 操作系统引论


一、操作系统目标和作用


1、目标

目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。通常在计算机硬件上配置的OS,其目标有以下几点:


  • 方便性
    便于理解计算机
    通过接口方便地使用
  • 有效性
    提高系统资源利用率
    提高系统吞吐量
  • 可扩充性
    OS应方便修改、增加新模块或功能,以适应计算机硬件、 体系结构以及应用发展的要求。
  • 开放性
    OS应提供统一的开放环境,以实现应用的可移植性和互操作性
    不同的设备能通过网络加以集成,并能正确、有效地协同工作

2、作用


  • 提供用户与计算机硬件系统之间的接口
    (1)命令方式:指由OS提供了一组联机命令 (语言), 用户可通过键盘输入有关命令,来直接操纵计算机系统。
    (2)系统调用方式:OS提供了一组系统调用,用户
    可在自己的应用程序中通过相应的系统调用,来操纵
    计算机。
    (3)图标–窗口方式:用户通过屏幕上的窗口和图
    标来操纵计算机系统和运行自己的程序。
    (4)其他方式
     OS作为接口的示意图
  • 计算机系统资源的管理者
    在一个计算机系统中,硬件和软件资源归纳起来可分为四类:处理器、存储器、 I/O设备以及文件(数据和程序)。相应地,OS的主要功能也正是针对这四类资源进行有效的管理。
  • 实现了对计算机资源的抽象
    一台完全无软件的计算机系统(即裸机),即使其功能再强,也必定是难于使用的。通常把覆盖了软件的机器称为扩充机器或虚机器
    I/O软件隐藏了I/O操作实现的细节
    总结来说:
    操作系统 是控制和管理计算机系统的硬件和软件资源,合理的组织计算机工作流程以及方便 用户使用的程序和数据的集合。

3、主要发展动力


  1. 不断提高计算机资源利用率
  2. 方便用户(如接口)
  3. 器件的不断更新换代 (如CPU芯片的发展)
  4. 计算机体系结构的不断发展(如多处理机、网络)
  5. 不断提出新的应用需求 (如多媒体、嵌入)

二、操作系统的发展过程


1、未配置操作系统的计算机系统


  1. 人工操作方式

    这种人工操作方式有以下两方面的缺点:
    (1) 用户独占全机。
    (2) CPU等待人工操作。
  2. 脱机输入/输出(Off–Line I/O)方式
    脱机I/O示意图
    这种脱机I/O方式的 主要优点如下:
    (1) 减少了CPU的空 闲时间。
    (2) 提高I/O速度。

2、批处理系统


  1. 单道批处理系统
    单道批处理系统是最早出现的一种OS,严格地说,它只能算作是OS的前身,而并非是现在人们所理解的OS。尽管如此,该系统比起人工操作方式的系统已有很大进步。
    单道批处理系统的处理流程
    单道程序运行情况

  • 形式
    批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。
    在内存中只保持一道作业的批处理系统。
  • 特征
    (1) 自动性
    (2) 顺序性
    (3) 单道性
  • 缺点
    系统资源利用不充分。

  1. 多道批处理系统

  • 形式
    多道程序设计:多个作业存放在主存中,使它们同时处于运行状态,这些作业共享处理机时间和外围设备等资源
    四道程序运行情况
  • 好处
    (1) 提高CPU的利用率。
    (2) 可提高内存和I/O设备利用率。
    (3) 增加系统吞吐量。
  • 需要解决的问题
    (1) 处理机管理问题。
    (2) 内存管理问题。
    (3) I/O设备管理问题。
    (4) 文件管理问题。
    (5) 作业管理问题。

3、分时系统

推动多道批处理系统形成和发展的主要动力,是提高资源利用率和系统吞吐量,那么,推动分时系统形成和发展的主要动力,则是用户的需求。或者说,分时系统是为了满足 用户需求所形成的一种新型OS。它与多道批处理系统之间,有着截然不同的性能差别。

在操作系统中加入了分时技术:即将处理机的运行时间分为时间片,将时间片轮流分配给各联机作业使用。
分时系统示意图


  • 表现
    (1) 人—机交互。
    (2) 共享主机。
    (3) 便于用户上机。
  • 特征
    1.多路性
    2.独立性
    3.及时性
    4.交互性

4、实时系统

所谓“实时”,是表示“及时”,而实时系统(RealTime System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。


  • 系统类型
    (1) 实时控制与处理:工业武器控制、嵌入式系统
    (2) 实时信息处理: 信息查询系统、多媒体系统

  • 实时任务类型


  1. 按任务执行时是否呈现周期性来划分
    (1)周期性实时任务。
    (2)非周期性实时任务。
  2. 根据对截止时间的要求来划分
    (1) 硬实时任务(hard real-time task)
    (2) 软实时任务(Soft real-time task)

  • 特征
    多路性
    独立性
    及时性
    交互性
    可靠性

三、操作系统的基本特性


  1. 并发

  • 区别并行和并发
    并行是指这一个时刻上面有着多个事件在执行,是一个瞬间的状态。
    并发是指在某一段时间间隔以内有着多个事件同时进行。

在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交 替执行。


  • 引入进程
    程序为静态的,进程为程序的执行
  • 引入线程
    进程的更小的可执行单位,一个进程可以包含若干个线程

  1. 共享
    在操作系统环境下,所谓共享是指系统中的资源可供内
    存中多个并发执行的进程(线程)共同使用。由于资源属
    性的不同,进程对资源共享的方式也不同,目前主要有
    以下两种资源共享方式:

  • 互斥共享方式
    系统中的某些资源,如打印机、磁带机,虽然它们可以提供给多个进程(线程)使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程(线程)访问该资源,我们把这种资源共享方式称为互斥式共享
    临界资源或独占资源:一段时间内只允许一个进程访问的资源。计算机系统中的大多数物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源,它们要求被互斥地共享。
  • 同时访问方式
    允许在一段时间内由多个进程 “同时”对它们进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问
    并发和共享是多用户(多任务)OS的两个最基本的特征。它们又是互为存在的条件。

  1. 虚拟
    操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实的, 即实际存在的;而后者是虚的,是用户感觉上的东西。相应地,用于实现虚拟的技术,称为虚拟技术。在OS中利用了多种虚拟技术,分别用来实现虚拟处理机、虚拟内存、 虚拟外部设备和虚拟信道等。

  • 时分复用技术(即分时使用方式)
    ⑴虚拟处理机技术:在虚拟处理机技术中,是通过多道程序设计技术,让多道程序并发执行的方法,来分时使用一台处理机的
    ⑵虚拟设备技术:将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每 个用户占用一台逻辑上的I/O设备,这样便可使原来仅允许在 一段时间内由一个用户访问的设备(即临界资源),变为在一 段时间内允许多个用户同时访问的共享设备。
    在操作系统中,虚拟的实现主要是通过分时使用的方法。显然,如果 nnn 是某物理设备所对应的虚拟的逻辑设备数,则虚 拟设备的平均速度必然是物理设备速度的1/n1/n1/n
  • 空分复用技术
    ⑴虚拟磁盘技术:将硬盘划分为若干个卷,机器上便会有若 干个虚拟盘。
    ⑵虚拟存储器技术:将一台机器的物理存储器变为虚拟存储 器,以便从逻辑上来扩充存储器的容量。

  1. 异步
    由于资源等因素的限制,使进程的执行通常都不是“一气呵成”, 而是以“停停走走”的方式运行。
    内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需多少时间才能完成,等等,都是不可预知的。由于各用户程序性能的不同,比如,有的侧重于计算而较少需要 I/O;而又有的程序其计算少而I/O多,这样,很可能是先进入内存的作业后完成;而后进入内存的作业先完成。或者说,进程是以人们不可预知的速度向前推进,此即进程的异步性。尽管如此,但只要运行环境相同,作业经多次运行,都会获得完全相同的结果。因此,异步运行方式是允许的,是操作系统的一个重要特征。

四、操作系统的主要功能

该部分不展开,详细内容见后续具体的章节或PPT。


  1. 处理机管理功能

  • 进程控制
  • 进程同步
  • 进程通信
  • 调度

  1. 存储器管理功能

  • 内存分配
  • 静态分配
  • 动态分配
  • 内存保护
  • 地址映射
  • 内存扩充

  1. 设备管理功能

  • 缓冲管理
  • 设备分配
  • 设备处理

  1. 文件管理功能

  • 文件存储空间的管理
  • 目录管理
  • 文件的读写管理和保护

  1. 操作系统与用户之间的接口

  • 用户接口
  • 程序接口

  1. 现代操作系统的新功能

  • 系统安全
  • 网络的功能和服务
  • 支持多媒体

五、OS结构设计

本节也不细讲。


1、传统的操作系统结构


  1. 无结构操作系统
    在早期开发操作系统时,设计者只是把注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想。此时的OS是为数众多的一组过程的集合,每个过程可以任意地相互调用其它过程,致使操作系统内部既复杂又混乱。因此,这种OS是无结构的,也有人把它称为整体系统结构。
  2. 模块化的操作系统
    模块化程序设计技术是20世纪60年代出现的一种结构化程序设计技术。该技术是基于“分解”和“模块化”原则来控制大型软件的复杂度。为使OS具有较清晰的结构,OS不再是由众多的过程直接构成,而是将OS按其功能精心地划分为若干个具有一定独立性和大小的模块;每个模块具有某方面的管理功能,如进程管理模块、存储器管理模块、I/O设备管理模块等,并仔细地规定好各模块间的接口,使各模块之间能通过该接口实现交互。
    模块化结构的操作系统

  • 优点:
    提高OS设计的正确性、可理解性和可维护性
    增强OS的适应性
    加速OS的开发过程

  1. 分层次结构OS
    为了将模块―接口法中“决定顺序”的无序性变为有序性,引入了有序分层法。分层法的设计任务是,在目标系统AnA_nAn和裸机系统(又称宿主系统)A0A_0A0之间,铺设若干个层次的软件A1A_1A1、A2、A_2A2、A3、A_3A3、…、An−1、…、A_{n-1}An1,使AnA_nAn通过An−1A_{n-1}An1、An−2、A_{n-2}An2、…、A2、…、 A_2A2、A1、A_1A1层,最终能在A0A_0A0上运行。在操作系统中,常采用自底向上法来铺设这些中间层。

  • 优点:
    易保证系统的正确性
    易拓充
    易维护
  • 缺点:
    系统效率降低

2、客户/服务器模式

客户机
服务器
网络系统


3、面向对象的程序设计


4、微内核OS结构


  1. 微内核的基本概念
    为了提高操作系统的“正确性”、“灵活性”、“易维 护性”和”可扩充性”,在进行现代操作系统结构设计时, 即使在单处理机环境下,大多也采用基于客户/服务器模式的 微内核结构,将操作系统划分为两大部分:微内核和多个服务器。至于什么是微内核操作系统结构,现在尚无一致公认的定义,但我们可以从下面四个方面,对微内核结构的操作系统进行描述。

  • 足够小的内核
    在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分。微内核并非是一个完整的OS,而只是操作系统中最基本的部分,它通常用于:① 实现与硬件紧密相关的处理;② 实现一些较基本的功能; ③ 负责客户和服务器之间的通信。它们只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做得很小。
  • 基于客户/服务器模式
    由于客户/服务器模式具有非常多的优点,故在单机微内核操作系统中几乎无一例外地都采用客户/服务器模式,将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。例如用于提供对进程(线程)进行管理的进程(线程)服务器,提供虚拟存储器管理功能的虚拟存储器服务器,提供I/O设备管理的I/O设备管理服务器等,它们都是被作为进程来实现的,运行在用户态,客户与服务器之间是借助微内核提供的消息传递机制来实现信息交互的。下图示出了在单机环境下的客户/服务器模式。
    在单机环境下的客户/服务器模式
  • 应用“机制与策略分离”原理
    在现代操作系统的结构设计中,经常利用“机制与策略分离”的原理来构造OS结构。所谓机制,是指实现某一功能的具体执行机构。而策略,则是在机制的基础上,借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。 通常,机制处于一个系统的基层,而策略则处于系统的高层。在传统的OS中,将机制放在OS的内核的较低层,把策略放在内核的较高层次中。而在微内核操作系统中,通常将机制放在OS的微内核中。正因为如此,才有可能将内核做得很小。
  • 采用面向对象技术
    操作系统是一个极其复杂的大型软件系统,我们不仅可以通过结构设计来分解操作系统的复杂度,还可以基于面向对象技术中的“抽象”和“隐蔽”原则控制系统的复杂性, 再进一步利用“对象”、“封装”和“继承”等概念来确保操作系统的“正确性”、“可靠性”、“易修改性”、“易扩展性”等,并提高操作系统的设计速度。正因为面向对象技术能带来如此多的好处,故面向对象技术被广泛应用于现代操作系统的设计中。

  1. 微内核的基本功能

    1. 进程(线程)管理
    2. 低级存储器管理
    3. 中断和陷入处理
  2. 优点:
    提高了系统的可扩展性
    增强了系统的可靠性
    提高了系统的可移植性
    提供了对分布式系统的支持
    融入了面向对象技术

  3. 缺点:
    系统运行效率有所降低

在传统OS和微内核OS中的上下文切换


5、微内核与单内核(宏内核)操作系统结构比较



参考文献


  • 汤子瀛, 哲凤屏, 汤小丹. 计算机操作系统[M]. 西安电子科技大学出版社, 2001.
  • github的CS-Notes

推荐阅读
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • 深入探讨:Actor模型如何解决并发与分布式计算难题
    在现代软件开发中,高并发和分布式系统的设计面临着诸多挑战。本文基于Akka最新文档,详细探讨了Actor模型如何有效地解决这些挑战,并提供了对并发和分布式计算的新视角。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
  • 本文介绍了如何利用X_CORBA实现远程对象调用,并通过多个示例程序展示了其功能与应用,包括基础的Hello World示例、文件传输工具以及一个完整的聊天系统。 ... [详细]
  • 协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • pypy 真的能让 Python 比 C 还快么?
    作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ... [详细]
  • 本文介绍了读写锁(RWMutex)的基本概念、实现原理及其在Go语言中的应用。读写锁允许多个读操作并发执行,但在写操作时确保互斥,从而提高并发性能。 ... [详细]
author-avatar
闲看云天的快乐生活
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有