操作系统笔记——绪论

1. 绪论

1.1 操作系统的基本概念

1.1.1 冯·诺依曼模型与计算机系统

在这里插入图片描述

该模型由5部分组成,其中主机部分由运算器、存储器控制器组成,外设部分由输入设备和输出设备组成

没有配置软件的计算机称为裸机裸机仅仅构成了计算机系统的硬件基础。而实际呈现在用户面前的计算机系统是经过若干层的软件改造之后的计算机

在这里插入图片描述

计算机的硬件、软件以及软件的各部分之间是一种层次结构的关系,其上层是操作系统,通过操作系统提供的资源管理功能和方便用户使用的各种服务功能,将裸机改造成功能更强大、使用更方便的机器(通常称为虚拟机或扩展机)。而各种实用程序和应用程序在操作系统之上,这些程序均以操作系统为支撑,并向用户提供完成工作所需的各种服务。

操作系统是裸机上的第一层软件,是对硬件功能的首次扩充。引入操作系统的目的是:提供一个计算机用户与计算机硬件系统之间的接口,使计算机系统更易于使用;有效地控制和管理计算机系统中的各种硬件和软件资源,使之得到更有效的利用;合理地组织计算机系统的工作流程,以改善系统性能

1.1.2 操作系统的概念

  • 用户观点:根据用户所使用计算机的不同而设计不同类型的操作系统。
  • 系统观点(资源管理的观点):从资源管理的角度来看,操作系统是计算机系统的资源管理程序。在计算机系统中有两类资源:硬件资源和软件资源。按其作用又可以将它们分为 4 大类资源:处理器、存储器、外设和信息(程序和数据)。这 4 类资源构成了操作系统本身和用户作业赖以活动的物质基础和工作环境。它们的使用方法和管理策略决定了整个操作系统的规模、类型、功能和实现。与上述 4 类资源相对应,操作系统可被划分成处理器管理、存储器管理、设备管理和信息管理(即文件系统),并分别进行分析研究。由此,可以用资源管理的观点组织操作系统的有关内容。
  • 进程观点:这种观点把操作系统看作由若干个可以独立运行的程序和一个对这些程序进行协调的核心所组成。这些运行的程序称为进程,每个进程用于完成某一项特定任务(如控制用户作业的运行,处理某个设备的输入/输出…)。而操作系统的核心则是控制和协调这些进程的运行,解决进程之间的通信;它从系统各部分以并发工作为出发点,考虑管理任务的分割和相互之间的关系,通过进程之间的通信来解决共享资源时所带来的竞争问题。通常,进程可以分为用户进程和系统进程两大类,由这两类进程在核心控制下的协调运行来完成用户的要求
  • 虚拟机观点:虚拟机的观点也称为机器扩充的观点。从这一观点来看,操作系统为用户使用计算机提供了许多服务功能和良好的工作环境。用户不再直接使用硬件机器(称为裸机),而是通过操作系统来控制和使用计算机。计算机被扩充为功能更强大、使用更加方便的虚拟计算机。

从功能分解的角度出发,考虑操作系统的结构,可将操作系统分为若干个层次,每一层次完成特定的功能,从而构成一个虚拟机,并为上一层提供支持,构成它的运行环境。通过逐层的功能扩充,最终完成操作系统虚拟机,从而为用户提供全套的服务,满足用户的要求

1.1.3 操作系统的特征

  • 并发性:指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。并发在宏观上看来是并行的。程序的并发执行能有效改善系统的资源利用率,但会使系统复杂化,因此操作系统必须具有控制和管理各种并发活动的能力。
  • 共享性:资源共享是指系统中的硬件和软件资源不再为某个程序所独占,而是供多个用户共同使用。
    • 互斥共享。系统中可供共享的某些资源,如打印机、某些变量、队列等一段时间内只能供一个作业使用的资源,只有当前作业使用完毕并释放后,才能被其他作业使用。
    • 同时访问。系统中的另一类资源,如磁盘、可重入代码等,可以供多个作业同时访问

并发和共享是操作系统的两个最基本的特征,二者之间互为存在条件。一方面,资源的共享是以程序的并发执行为条件的,若系统不允许程序的并发执行,自然不存在资源的共享问题;另一方面,若系统不能对资源共享实施有效的管理,也必将影响程序的并发执行,甚至根本无法并发执行。

  • 虚拟性:在操作系统中,虚拟是指把一个物理上的实体变为若干个逻辑上的对应物,前者是实际存在的,后者是虚拟的,这只是用户的一种感觉。例如,在操作系统中引入多道程序设计技术后,虽然只有一个CPU,每次只能执行一道程序,但通过分时使用,在一段时间间隔内,宏观上这台处理器能同时运行多道程序。它给用户的感觉是每道程序都有一个 CPU为其服务,即多道程序设计技术可以把一台物理上的CPU虚拟为多台逻辑上的CPU此外还有虚拟存储器(从逻辑上扩充存储器的容量)、虚拟设备(独占设备变为共享设备) 等技术。
  • 异步性:在多道程序环境中,由于资源等因素的限制,程序是以“走走停停”的方式运行的。系统中的每道程序何时执行、多道程序间的执行顺序以及完成每道程序所需的时间都是不确定的,因而也是不可预知的

1.1.4 操作系统的主要功能和提供的服务

操作系统的职能是负责系统中软硬件资源的管理,合理地组织计算机的工作流程,并为用户提供一个良好的工作环境和友好的使用界面。

操作系统的五大基本功能:处理器管理、存储器管理、设备管理、文件管理和用户接口。

处理器管理

处理器管理的主要任务是对处理器的分配和运行实施有效的管理。在多道程序环境下处理器的分配和运行是以进程为基本单位的,因此对处理器的管理可归结为对进程的管理

  • 进程控制。负责进程的创建、撤销及状态转换。
  • 进程同步。对并发执行的进程进行协调。
  • 进程通信。负责完成进程间的信息交换。
  • 进程调度。按一定算法进行处理器分配。

存储器管理

存储器管理的主要任务是对内存进行分配、保护和扩充。

  • 内存分配。按一定的策略为每道程序分配内存。
  • 内存保护。保证各程序在自己的内存区域内运行而不相互干扰。
  • 内存扩充。为允许大型作业或多作业的运行,必须借助虚拟存储技术来获得增加内存的效果。

设备管理

计算机外设的管理是操作系统中最庞杂、琐碎的部分。设备管理的主要任务是对计算机系统内的所有设备实施有效管理

  • 设备分配。根据一定的设备分配原则对设备进行分配。为了使设备与主机并行工作,还需采用缓冲技术和虚拟技术。
  • 设备传输控制。实现物理的输入/输出操作,即启动设备、中断处理、结束处理等。
  • 设备独立性。即用户程序中的设备与实际使用的物理设备无关。

文件管理

操作系统中负责信息管理的部分称为文件系统,因此称为文件管理。文件管理的主要任务是有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题

  • 文件存储空间的管理。负责对文件存储空间进行管理,包括存储空间的分配与回收等功能。
  • 目录管理。目录是为方便文件管理而设置的数据结构,它能提供按名存取的功能。
  • 文件操作管理。实现文件的操作,负责完成数据的读写。
  • 文件保护。提供文件保护功能,防止文件遭到破坏。

用户接口

为方便用户使用操作系统,操作系统还提供了用户接口。

  • 命令接口。提供一组命令供用户直接或间接控制自己的作业。主要有两种命令接口控制方式,即联机命令接口和脱机命令接口
    • 联机命令接口又称交互式命令接口,适用于分时或实时操作系统,它由一组键盘操作命令组成,用户通过控制台或终端输入操作命令,向系统提出各种服务要求,用户每输入完一条命令,控制权就转入操作系统的命令解释程序,然后由命令解释程序对输入的命令进行解释并执行,完成执行的功能。之后控制权又转回到控制台或终端,此时用户又可以输入下一条命令。
    • 脱机命令接口又称批处理命令接口,即适用于批处理系统,它由一组作业控制命令(或称作业控制语句)组成,脱机用户不能直接干预作业的运行,应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序对作业说明书上的命令或控制语句逐条解释执行,从而间接地控制作业的运行
  • 程序接口。也称为系统调用,是程序级的接口,由系统提供一组系统调用命令供用户程序和其他系统程序调用。用户在程序中可以直接使用这组系统调用命令向操作系统提出各种服务要求,如使用外设、申请分配内存、磁盘文件的操作等
  • 图形接口。近年来出现的图形接口(也称图形界面)是联机命令接口的图形化。由操作系统的功能可以知道操作系统提供哪些服务:操作系统提供了一个用以执行程序的环境,提供的服务有程序执行、I/O 操作、文件操作、资源分配与保护、错误检测与排除等。

1.2 操作系统的发展与分类

1.2.1 操作系统的形成与发展

操作系统的发展过程其实和早期人们遇到的问题有很大关系,例如,为解决处理器和设备的速度矛盾而提出了脱机输入/输出技术,为减少人为干预而产生了批处理技术等,由此可见,操作系统的发展是对早期计算机系统问题非常自然的解决方式。

操作系统经历了如下发展历程

  • 手工操作(无操作系统)

    • 用户独占全机
    • CPU等待人工操作

    脱机输入/输出技术是为了解决 CPU 和 I/O 设备之间速度不匹配的矛盾而提出的,此技术减少了 CPU的空闲等待时间,提高了 IO 速度。

在这里插入图片描述

  • 批处理系统(操作系统开始出现)

    • 单道批处理系统

    在这里插入图片描述

    先把磁带上的第一个作业传送到内存,并把运行的控制权交给第一个作业,当第一个作业处理完后又把控制权交还给监督程序,由监督程序再把第二个作业调入内存。计算机系统按这种方式对磁带上的作业自动地一个接一个进行处理,直至将磁带上的所有作业全部处理完毕,这样便形成了早期的批处理系统。

    • 特点:自动性,顺序性,单道性。

    • 缺点:I/O操作时,CPU无事可做。

    • 多道批处理操作系统

    在这里插入图片描述

    • 特点:多道性,宏观上多任务并行,微观上多任务分片串行。

    • 优点:由于提高了CPU,内存和I/O设备的利用率,因此系统吞吐量得到提高。

    • 需要解决的问题

      • 处理机管理问题,内存管理问题,I/O设备(输入输出设备)管理问题,文件管理问题,作业管理问题。
      • 缺点:无交互能力。
  • 分时系统

    • 特点:多路性,独立性,及时性,交互性。
  • 实时系统

    • 特点:多路性,独立性,及时性,交互性和可靠性。
  • 微机操作系统

    • 单用户单任务系统、单用户多任务和多用户多任务系统。
  • 嵌入式操作系统

    嵌入式操作系统是运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作和控制的各种部件装置等资源进行统一协调、调度、指挥和控制的软件系统。

  • 集群系统

    集群系统(Clustered System)将两个或多个独立的系统耦合起来共同完成一项任务。集群的定义尚未定性,通常被大家接受的定义是集群计算机共享存储并通过LAN 网络紧密连接。集群通常有若干个节点计算机和一个或多个监视计算机,其中监视计算机用于对节点进行管理控制、发布工作指令等。

  • 网络操作系统

    网络操作系统是通过通信设施将物理上分散的、具有自治功能的多个计算机系统互连起来,实现信息交换、资源共享、可互操作和协作处理的系统。其目标是实现相互通信及资源共享

  • 分布式操作系统

    分布式系统是指多个分散的处理单元经互联网络连接而成的系统,其中每个处理单元既具有高度自治性,又相互协同,能在系统范围内实现资源管理、动态分配任务,还能并行地运行分布式程序。

    特点:统一性、共享性、透明性、自治性。

1.3 操作系统的环境

1.3.1 CPU运行模式

为了避免操作系统及其关键数据(如 PCB 等)受到用户程序有意或无意的破坏,通常将处理器的执行状态分为两种:核心态与用户态

  • 核心态。核心态又称管态、系统态,是操作系统管理程序执行时机器所处的状态。它具有较高的特权,能执行包括特权指令的一切指令,能访问所有寄存器和存储区
  • 用户态。用户态又称目态,是用户程序执行时机器所处的状态,是具有较低特权的执行状态,它只能执行规定的指令,只能访问指定的寄存器和存储区

用户态程序不能直接调用核心态程序,而是通过执行访问核心态的命令,引起中断,由中断系统转入操作系统内的相应程序,例如,在系统调用时,将由用户态转换到核心态。

特权指令只能由操作系统内核部分使用,不允许用户直接使用的指令,如I/0 指设置中断屏蔽指令、清内存指令、存储保护指令和设置时钟指令。

操作系统中一些与硬件关联较紧密的模块(如时钟管理、中断处理、设备驱动等)以及运行频率较高的程序(如进程管理、存储器管理、设备管理等)构成了操作系统的内核。内核的指令操作工作在核心态

  • 时钟管理。时钟是计算机的各部件中最关键的设备,操作系统通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换,如时间片轮转调度。
  • 中断机制。键盘或鼠标的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。在中断机制中,只有一小部分属于内核,负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少终端的处理时间,提高系统的并行处理能力。
  • 原语。原语是一些用于关闭中断的公用小程序
    • 处于操作系统最底层,是最接近硬件的部分。
    • 程序运行具有原子性,操作只能一气呵成。
    • 这些程序的运行时间较短,调用频繁。
  • 系统控制的数据结构及处理。在操作系统中,需要一些用来登记状态信息的数据结构,如作业控制块、进程控制块、设备控制块、各类链表、消息队列、缓冲器、空闲登记区、内存分配表等;除此之外还应该定义对这些数据结构的一系列操作:进程管理、存储器管理、设备管理。

1.3.2 中断和异常的处理

中断,也称外中断,是系统正常功能的一部分,例如,因进程调度使系统停止当前运行的进程转而执行其他进程,或者因缺少所需资源而中断当前操作,等待资源的到达,在系统处理完其他事情之后会继续执行中断前的进程。

异常,也称内中断,是由错误引起的,如文件损坏、进程越界等

通常异常会引起中断,而中断未必是由异常引起的。

1.3.3 系统调用

系统调用是操作系统提供的用户接口之一,是由操作系统实现的所有系统调用所构成的集合,即程序接口或应用编程接口(Application ProgrammingInterface,API),是应用程序同系统之间的接口。

操作系统的主要功能是为应用程序的运行创建良好的环境。为了达到这个目的,内核提供了一系列具备预定功能的内核函数,通过一组称为系统调用(System Call)的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,并将处理结果返回给应用程序。如果没有系统调用和内核函数,用户将不能编写大型应用程序。操作系统提供的系统调用通常包括进程控制、文件系统控制(文件读写操作和文件系统操作)系统控制、内存管理、网络管理、socket 控制用户管理以及进程间通信(信号、消息、管道、信号量和共享内存)。

当用户需要执行系统调用时,首先准备并传递系统调用所需的参数,通过陷入(trap)指令进入操作系统的系统内核,此时将从用户态进入内核态;之后执行相应的系统调用函数,使用特定的系统内核功能;最后将处理结果返回给用户进程,此时将从内核态返回用户态

在这里插入图片描述

1.4 操作系统的体系结构

操作系统的体系结构就是操作系统的组成结构。操作系统的体系结构主要包括模块组合结构、层次结构和微内核结构

1.4.1 模块组合结构

模块组合结构是软件工程出现以前的早期操作系统以及目前一些小型操作系统的体系结构。操作系统是一个有多种功能的系统程序,可以看作一个整体模块,也可以看作由若干个模块按一定的结构方式组成的系统。系统中的每一个模块都是根据它们要完成的功能来划分的,这些功能模块按照一定的结构方式组合起来,协同完成整个系统的功能。

  • 优点:结构紧密,接口简单直接,系统的效率相对较高。
  • 缺点:这种结构的模块之间可以随意转接,各模块相互牵连,不容易把握好模块的独立性,导致系统的结构不清晰。其次,这种结构的可扩展性较差。在更换一个模块或修改一个模块时,要先弄清模块间的接口,如果要按当初设计的模块接口来设计新的模块,而当初设计的模块接口很可能是随意约定的,那么要做这项工作就存在一定难度。最后,这种结构系统的可适应性差。随着系统规模的不断增大,采用这种结构构造的系统的复杂性会迅速增长,所以它只适用于系统小、模块少、使用环境比较稳定的系统。

1.4.2 层次结构

若要弥补模块组合结构中模块间调用存在的不足,就必须改善模块间毫无规则的相互调用、相互依赖的关系,尤其要清除模块间的循环调用。层次结构的设计就是从这一点出发,力求使模块之间调用的无序性变为有序,减少了模块调用的无规则性。按层次结构来设计操作系统,就是将操作系统的所有功能模块按功能的调用次序排列成若干层,使得功能模块之间只存在单向调用和单向依赖

  • 优点:模块间的组织和依赖关系清晰明了,上层功能是建立在下层功能基础之上的,系统的可读性、可适应性以及可靠性都得到了增强。此外,对某一层进行修改或替换时,最多只影响到邻近的两层,便于修改和扩充
  • 缺点:操作系统的各个功能模块应该放在哪一层,如何有效地进行分层是必须要考虑的问题。

1.4.3 微内核结构

随着网络技术的普遍应用和发展,很有必要为用户提供一个符合处理分布式信息的分布式系统环境。因此,操作系统可以采用微内核结构。微内核的主要思想是:在操作系统内核中只留下一些最基本的功能,而将其他服务尽可能地从内核中分离出去,由若干个运行在用户态下的进程(即服务器进程)来实现,形成所谓的“客户/服务器”模式,即C/S 模式。普通用户进程(即客户进程)可通过内核向服务器进程发送请求,以取得操作系统的服务。从微内核结构的主要思想可以看出,它非常适用于分布式系统。

  • 优点:首先,每个服务进程运行在独立的用户进程中,即便某个服务器失败或产生问题,也不会引起系统其他服务器和其他组成部分的崩溃,可靠性好;其次,系统具有很好的灵活性,只要接口规范,操作系统可以方便地增删服务功能;再次,便于维护,即修改服务器的代码不会影响系统其他部分;最后,这种结构的操作系统适合分布式处理的计算环境。
    户进程)可通过内核向服务器进程发送请求,以取得操作系统的服务。从微内核结构的主要思想可以看出,它非常适用于分布式系统。

  • 优点:首先,每个服务进程运行在独立的用户进程中,即便某个服务器失败或产生问题,也不会引起系统其他服务器和其他组成部分的崩溃,可靠性好;其次,系统具有很好的灵活性,只要接口规范,操作系统可以方便地增删服务功能;再次,便于维护,即修改服务器的代码不会影响系统其他部分;最后,这种结构的操作系统适合分布式处理的计算环境。

  • 缺点:这种结构的操作系统效率不高,因为所有的用户进程都要通过微内核相互通信,所以微内核本身就成了系统的“瓶颈”,尤其是通信频繁的系统。

猜你喜欢

转载自blog.csdn.net/pipihan21/article/details/129587160