热门标签 | 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

推荐阅读
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
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社区 版权所有