操作系统基本概念

操作系统的概念

计算机系统自上而下大致可分为4个部分:

  • 硬件

  • 操作系统

  • 应用程序

  • 用户

​ 操作系统(Operation System, OS)是指控制和整理整计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序合集。

操作系统石计算机系统中最基本的系统软件。

操作系统的特征

  1. 并发

    并发是指两个或多个事件在同一时间间隔内发生。

    操作系统的并发性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个应用程序同时执行的能力。

    在操作系统中,引入进程的目的是使程序能够并发。

    操作系统的并发性通过分时得以实现。

    并行性是指操作系统具有同时运行或操作的特性,在同一时刻能够完成两种或两种以上的工作。

  2. 共享

    资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

    共享可分为:

    • 互斥共享方式
    • 同时访问方式

    互斥共享方式

    设有进程A、B需要访问同一资源。仅当A进程访问并释放完该资源后,B进程才允许对该资源进行访问。这种访问方式被称为互斥访问方式

    把一段时间内只允许一个进程访问的资源称为临界资源。

    同时访问方式

    同时访问方式是指在同一时间段内允许多个进程进行访问。

    ”同时“通常是在围观上的。而在微观上,这些进程可以交替地对该资源进行访问,即”分时共享“。

    并发共享操作系统两个最基本地特征。两者之间互为存在的条件:

    1. 资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题。
    2. 若系统不能对资源共享进行有效的管理,则必将影响到程序的并发执行,甚至根本无法并发。
  3. 虚拟

    虚拟是值把一个物理上的实体变为若干逻辑上的对应物。

    利用多道程序技术可以将物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器

    利用虚拟存储技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩大存储器的容量。

    操作系统的虚拟技术可归纳为:

    • 时分复用技术,如处理器的分时共享
    • 空分复用技术,如虚拟存储器
  4. 异步

    多道程序环境允许程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。这便是进程的异步性。

操作系统的目标和功能

操作系统作为计算机系统资源的管理者

操作系统具有以下功能:

  • 处理机管理
  • 存储器管理
  • 设备管理
  • 文件管理
  1. 处理机管理

    在多道程序下,处理及的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。

    并发是值在计算机内同时运行多个进程,因而进程何时创建、何时销毁、如何管理、如何避免冲突、合理共享就是进程管理的最主要的任务。

    进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理及调度等。

  2. 存储器管理

    存储管理是为了给多道程序运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享及文件读写管理和保护等。

  3. 设备管理

    设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。

  4. 文件管理

    计算机中的信息都是以文件的主要形式存在的,操作系统中负责文件管理的部分称为文件系统。主要包括文件存储空间的管理、目录管理及文件读写管理和保护等。

操作系统为用户与计算机硬件系统之间的接口

为了方便用户使用操作系统,还必须像用户提供接口。操作系统提供的接口分两类:

  • 命令接口,用户利用这些操作命令来组织和控制作业的执行;
  • 程序接口,编程人员可以使用它们来请求操作系统服务。
  1. 命令接口

    使用命令接口进行作业的主要控制方式主要有两种方式:联机控制方式脱机控制方式

    按作业控制方式的不同,可将命令接口分为:联机命令接口脱机命令接口

    联机命令接口又称为交互命令接口,适用于分时或实时系统的接口。它又一组键盘操作命令组成。

    脱机命令接口又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成。

  2. 程序接口

    程序接口由一组系统调用(也称广义指令)组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及其他各种要求。

操作系统实现了对计算机资源的扩充

没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础。

我们通常把覆盖了软件的机器称为扩充机器或虚拟机。

操作系统发展历程

  1. 手工操作阶段(在此阶段无操作系统)

    用户在计算机上算题的所有工作都要人工干预。

    手工操作系统有两个突出的缺点:

    1. 用户独占全机,虽然不会出现因资源已被奇特用户占用而等待的现象,但资源利用率低。
    2. CPU等待手工操作,CPU的利用不充分。
  2. 批处理阶段

    批处理系统按发展历程有分为单批道处理系统、多批道处理系统。

    单批道处理系统

    单批处理系统是在解决人机矛盾及CPU和I/O设备速率不匹配的矛盾中形成的。

    单批处理系统大的主要特征如下:

    • 自动性:在顺利的情况下,磁带上的一批作业能自动地逐个完成,而无须人工干预。
    • 顺序性:磁带上的各道作业能够有序地进入内存,并按照顺序完成。
    • 单道性:内存中仅有一道程序运行。只有在一道程序完成或者发生异常时,后继程序进入内存运行。

    单批道处理系统的问题:每次主机内存中仅放入一道作业,每当他在运行期间,发出shuru/输出请求后,高速的CPU便处于等待低俗的I/O完成的状态。

    多批道处理系统

    多批道程序技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中地各种软硬件资源。

    多道程序设计地特点是多道、宏观上并行、微观上串行。

    • 多道:计算机内存中同时存放多道相互独立的程序。
    • 宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。
    • 微观上串行。内存中的多道程序轮流占有CPU,交替执行。

    在批处理系统中采用多道程序设计技术就形成了多道批处理操作系统。该系统把用户提交的作业成批地送入计算机内存,然后由作业调度程序自由地选择作业运行。

    优点:资源利用率高,多道程序共享计算机资源,从而是各种资源得到充分利用;系统吞吐量大,CPU和其他资源保持“忙碌”状态。

    缺点:用户响应地时间较长;不提供人机交互能力,用户既不能了解自己地程序地运行情况,又不能控制计算机。

  3. 分时操作系统

    分时技术,是指把处理器地运行时间分成时间很短的时间片,把时间片轮流把处理器分配给个联机作业使用。

    分时操作系统系统是指多个用户通过终端共同使用一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。

    多道批处理系统是实现作业自动控制而无人工干预的系统,而分时系统是实现人机交互的系统。

    分时系统的主要特征如下:

    1. 同时性:同时性也称多路性,指允许多个终端用户同时使用一台计算机。
    2. 交互性:用户能够方便地与系统进行人机对话。
    3. 独立性:系统中多个用户可以彼此独立地进行操作,互不干扰。
    4. 及时性:用户请求能在很短时间内获得响应。
  4. 实时操作系统

    为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。
    时间限制分为两种情况:

    • 某个动作必须在规定地时刻内发生,称为硬实时系统。这类系统必须提供绝对保证,让某个特定地动作在规定时间内完成。
    • 若能够偶尔违反时间规定且不会引起任何永久性地损害,则称为软实时系统

    实时操作系统的主要特点是及时性和可靠性。

  5. 网络操作系统和分布式计算机系统

    网络操作系统最主要的特点是网络中各种资源的共享及各台计算机之间的通信。

    分布式计算机系统是由多台计算机组成并满足下列条件的系统:

    • 系统张任意两台计算机通过通信方式交换信息
    • 系统中每台计算机都具有同等的地位,即没有主机也没有从机
    • 每台计算机上的资源为使用用户共享
    • 系统中的任意计算机都可以构成一个子系统,并且还能重构
    • 任何工作都能分布在几台计算机上,由它们并行工作、协同完成。

    分布式操作系统的主要特点是:

    • 分布性
    • 并行性

操作系统运行环境

  1. 处理器运行模式

    CPU执行两种不同性质的程序:

    • 一种是操作系统的内核程序;
    • 另一种是用户自编程序

    “管理程序”(即内核程序)要执行一些特权指令,而“被管理程序”(即用户自编程序)处于安全考虑,不能执行这些指令。

    1. 特权指令:是指不允许用户直接使用的指令。
    2. 非特权指令:是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。

    内核是计算机配置上的底层软件,它管理着系统的各种资源,可以看作是连接应用程序和硬件的一座桥梁,大多数操作系统的内核分为四个方向:

    1. 时钟管理

      时钟是最关键的设备。

      时钟的第一功能是计时。

      通过时钟的管理,可以实现进程的切换。

      系统管理的方方面面无不依赖于时钟。

    2. 终端机制

      引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。

      现代操作系统是靠中断驱动的软件。

      中断机制中,只有一小部分功能属于内核,它们负责保护和回复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。

    3. 原语

      通常把具有这些特点的程序称为原语:

      • 处于操作系统的对低层,是最接近硬件的部分。
      • 这些程序的运行具有原子性,其操作只能一气呵成。
      • 这些程序的运行时间较短,而且调用频繁。

      定义原语的直接方法是关闭中断,让其左右动作不可分割地完成后再打开中断。

    4. 系统控制的数据结构及处理

      为了实现有效管理,系统需要一些基本地操作,常见的操作有3种:

      • 进程管理:进程状态管理、进程调度和分派、创建于撤销进程控制块等,
      • 存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
      • 设备管理:缓冲区管理、设备分配和回收等。

      核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。

  2. 中断和异常的概念

    在实际操作系统中,CPU运行上层程序时唯一进入这些“门”的途径就是通过中断或异常。

    发生中断或异常,运行用户态的CPU会立即进入核心态,这是通过硬件实现的。

    中断是操作系统中一个非常重要的概念,对一个运行在计算机上的使用操作系统而言,缺少了中断机制,将是不可想象的。原因是,操作系统的发展过程大体就是一个想方设法不断提高资源利用率的过程,而提高资源利用率就需要子啊程序并未使用某种资源是,把他对那种资源的占有权释放,而这一行为就需要通过中断实现。

    中断和异常的定义

    中断也称外中断,是指来自CPU执行指令外部的事件,通常用于信息输入/输出。

    时钟中断,表示一个固定的时间片已到,让处理及处理计时、启动定时运行的任务等。

    异常也称内中断,是指来自CPU执行指令内部的事件。

    中断和异常的分类

    外中断可分为

    • 可屏蔽中断:通过INTR线发出的中断请求,通过改变屏蔽关键字可以实现多重中断,从而使得中断处理更加灵活。
    • 不可屏蔽中断:通过MNI线发出的中断请求,通常是紧急的硬件故障。

    异常可分为:

    • 故障:由指令执行引起的异常
    • 自陷:是一种事先安排好的“异常”事件,用于在用户态下调用操纵系统内核程序。
    • 终止:是指出现了使得CPU无法继续执行的硬件故障

    故障异常和自陷异常属于软件中断,终止异常和外部中断属于硬件中断。

  3. 系统调用

系统调用,是指用户在程序调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。

系统调用按功能分类可分为:

  • 设备管理。
  • 文件管理
  • 进程控制
  • 进程通信
  • 内存管理

系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态。用户程序可以执行陷入指令(又称访管指令或trap指令)来发起系统调用,请求操作系统提供服务

若程序的运行由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以不是特权指令。