计算机操作系统——操作系统基础

操作系统基础

一、操作系统的基本概念

操作系统(operating system,OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,其主要作用是管理硬件设备,提高它们的利用率和系统吞吐量,并为用户和应用程序提供一个简单的接口,以便于用户和应用程序使用硬件设备。OS是现代计算机系统中最基本和最重要的系统软件,而其他的诸如编译软件、数据库管理软件等系统软件以及大量的应用软件,都直接依赖于OS的支持,并须取得OS所提供的服务。事实上OS已成为现代计算机系统、多处理机系统、计算机网络等都必须配置的系统软件。

(一)操作系统的目标

1. 方便性

一台配置了操作系统的计算机可以方便的通过操作系统的工具和命令来操作使用计算机,极大方便了用户使用计算机硬件,也使计算机更加易学易用。

2. 有效性

有效性有两层含义,有效性所包含的第一层含义是提高系统资源的利用率。在早期未配置OS的计算机系统中,诸如处理机、输入/输出(input/output,I/O)设备等都经常处于空闲状态,各种资源无法得到充分利用,因此在当时,提高系统资源利用率是推动OS发展最主要的动力。有效性的第二层含义是提高系统的吞吐量。OS可以通过合理地组织计算机的工作流程,加速程序的运行,缩短程序的运行周期来提高系统的吞吐量。

方便性和有效性是设计OS时最重要的两个目标。在过去很长一段时间内,由于计算机系统非常昂贵,有效性显得特别重要。然而,近十几年来,随着硬件越来越便宜,在设计配置在微机上的OS时,似乎更加重视如何提高用户使用计算机的方便性。因此,在微机操作系统中都配置了深受用户欢迎的图形用户界面,并为程序员提供了大量的系统调用,方便了用户对计算机的使用。

3. 可扩充性

为适应计算机硬件、体系结构以及应用发展的要求,OS必须具有很好的可扩充性。可扩充性的好坏与OS的结构有着十分紧密的联系,由此推动了OS结构的不断发展。OS从早期的无结构发展成模块化结构,进而又发展成分层式结构,近年来OS已广泛采用微内核结构。该结构能方便地增添新的功能和模块,以及对原有功能和模块进行修改,具有良好的可扩充性。

4. 开放性

所谓开放性,是指系统能够遵循国际标准,特别是遵循开放系统互连(open system interconnect,OSI)参考模型。事实上,凡遵循国际标准而开发的硬件和软件都能彼此兼容,并方便地实现互连。开放性已成为20世纪90年代以后计算机技术的一个核心问题,也是衡量一个新推出的系统或软件能否被广泛应用的重要因素。

(二)操作系统的作用

1. 人机交互

OS作为用户与计算机硬件系统之间的接口,其含义是:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机硬件系统;或者说,用户在OS的帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。通常操作系统提供的人机交互有以下几种方式。

  1. 命令接口:分为联机命令接口与脱机命令接口两种方式,其中联机命令接口又叫交互式命令接口,用户通过终端向操作系统提交命令,执行完成后返回终端控制权等待命令;脱机命令接口又称作批处理命令接口,由一组作业控制命令组成,批量提交给系统并逐条命令解释执行。
  2. 程序接口:程序接口由一组系统调用(广义指令)组成,用户在程序中使用这些系统调用来请求操作系统提供服务,例如用户使用图形用户界面(GUI)方便地使用操作系统。

2. 资源管理

OS作为计算机系统资源的管理者。在一个计算机系统中,通常含有多种硬件和软件资源。归纳起来可将这些资源分为4类:处理机、存储器、I/O设备以及信息(数据和程序)。相应地,OS的主要功能也正是对这4类资源进行有效的管理。处理机管理负责处理机的分配与控制;存储器管理负责内存的分配与回收;I/O设备管理负责I/O设备的分配(回收)与操纵;文件管理负责文件的存取、共享与保护等。可见,OS的确是计算机系统资源的管理者。

值得进一步说明的是,当一台计算机系统同时供多个用户使用时,诸多用户对系统中共享资源(包括数量和时间)的需求有可能会发生冲突。为此,OS必须对共享资源的使用请求进行授权,以协调诸多用户对共享资源的使用。

3. 资源抽象(资源扩充)

操作系统(OS)通过对计算机资源的抽象,让用户更容易使用计算机。想象一下,如果你面对的是一台完全没有任何软件的电脑,你需要直接和硬件打交道,比如操作硬盘、内存、I/O设备等等。这需要你对硬件非常了解,操作起来非常复杂。

为了解决这个问题,人们在裸机上添加了I/O软件,这些软件把硬件设备的复杂操作隐藏起来,提供了一些简单的命令(比如读取或写入命令)供用户使用。这样,用户可以通过这些命令和数据结构来进行操作,而不用关心硬件是如何具体工作的。这个过程就像是给计算机穿上了一层外衣,让它变得更容易使用。

不仅如此,在I/O软件的基础上,人们还可以继续添加文件管理软件和窗口软件等,这些软件进一步抽象和简化了对硬件的操作。比如,文件管理软件让用户可以轻松地管理文件,而不必担心文件在硬盘上的存储细节;窗口软件则提供了图形界面,让用户可以通过点击图标来操作计算机。

因此,操作系统实际上是由多层软件组成的,它们通过逐层抽象,把复杂的硬件操作隐藏起来,提供了更强大的功能和更简单的使用方式。最终,用户只需要通过这些简化的接口和命令,就可以方便地使用计算机,而不必了解底层硬件的工作原理。用户最终看到的是功能更强、使用方便的虚机器。

(三)操作系统的发展动力

1. 提高计算机系统资源的利用率

提升CPU、I/O设备及存储器系统的利用率。

2. 方便用户

方便人机交互,推进计算机的迅速普及和广泛应用。

3. 器件换代

适应微机芯片向16位、32位、64为以及多处理机的发展,以及计算机外设类型的增多,操作系统的功能和性能也在逐渐变强。

4. 计算机体系结构的不断发展

多处理机OS与网络OS。

5. 不断提出新的应用需求

计算机走进各行各业,操作系统随不同应用需求的增加而发展。

(四)操作系统的基本特性

尽管各种操作系统有着各自不同的特征,但是总体上都具备以下四个基本特性。

1. 并发

并发并行是既相似又有区别的两个概念。并行是指两个或多个事件在同一时刻发生(实际上的同时进行),而并发是指两个或多个事件在同一时间间隔内发生(微观上交替执行,宏观上并行执行)。

并发是指多个任务(或进程、线程)可以在同一时间段内同时进行。这种并发性并不意味着任务真正同时执行,因为单处理机系统每一时刻仅能有一道程序运行,而操作系统通过时间片轮转等调度机制,让多个任务在微观上交替执行,给用户一种“同时运行”的感觉。并发性提高了资源的利用率,使计算机能够同时处理多个任务,如在一个程序下载文件的同时,另一个程序处理文本。

  • 进程并发:不同的进程在同一时间段内执行。
  • 线程并发:同一进程中的多个线程在同一时间段内执行。

在一个未引入进程的系统中,同属于一个应用程序的计算程序和I/O程序只能顺序执行,即只有在计算程序的执行告一段落后才允许I/O程序执行;换言之,在执行I/O程序时,计算程序也不能执行。但在为计算程序和I/O程序分别建立一个进程(process)后,这两个进程便可并发执行。若对内存中的多个程序都分别建立一个进程,则它们就可以并发执行,这样便能极大限度地提高系统资源的利用率,以及增加系统的吞吐量。

所谓进程,是指在系统中能独立运行并能作为资源分配对象的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。事实上,进程和并发是现代OS中最重要的基本概念,也是OS运行的基础。

操作系统通过进程调度、线程调度等机制来实现并发性,同时避免因资源竞争导致的死锁、竞争条件等问题。倘若在计算机系统中有多个处理机,那么这些能并发执行的程序,便可被分配到多个处理机上实现并行执行,即利用每个处理机来处理一个可并发执行的程序。这样,多个程序便可同时执行。

2. 共享

共享是指计算机系统中的资源可以被多个任务同时使用,这里的资源共享指的是资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。共享的资源包括CPU、内存、磁盘、I/O设备等。操作系统通过资源管理机制,确保不同任务在使用共享资源时不发生冲突,并且每个任务都能有效地访问资源。共享的主要目标是提高系统资源的利用率,同时保证系统的稳定性和公平性。实现资源共享有以下两种方式:

  1. 互斥共享:某些资源(如打印机)只能在同一时间被一个任务使用,操作系统通过锁机制或信号量机制来实现互斥访问。
  2. 同时共享:某些资源(如硬盘、内存)可以被多个任务同时访问,操作系统通过虚拟化等技术实现了同时共享,并确保任务之间的互不干扰。

并发和共享是多用户(多任务)OS的两个最基本的特征。它们互为对方存在的条件,即一方面,资源共享是以进程的并发执行为条件的,若系统不允许并发执行,也就不存在资源共享问题;另一方面,若系统不能对资源共享实施有效的管理,以协调好各进程对共享资源的访问,则必然会影响各进程间并发执行的程度,甚至会使它们根本无法并发执行。

3. 虚拟

虚拟是指通过某种技术手段,将物理实体(如处理器、存储器、设备等)转化为若干个逻辑上的对应物,使用户或应用程序能够感知到一个不存在的“虚拟”资源。虚拟化技术通过优化资源的使用方式,提高资源利用率,为多任务处理和用户隔离提供了可能性。

操作系统中,虚拟技术广泛应用于处理器、内存和I/O设备的管理。它通过时分复用和空分复用,将有限的物理资源转化为多个虚拟资源,从而提高系统的整体性能。

时分复用技术

时分复用(Time Division Multiplexing, TDM)是通过在不同时间片内分配资源,实现资源共享的技术。它在操作系统中主要用于虚拟处理器和虚拟设备的实现。

  • 虚拟处理器技术:在多道程序设计中,操作系统为每个程序建立进程,并通过时分复用技术在处理器上轮流运行这些进程。虽然物理上只有一个处理器,但由于操作系统的快速切换,使得每个用户都感受到自己独占了一个处理器,这就是虚拟处理器的概念。

  • 虚拟设备技术:类似的,时分复用也用于将一个物理设备(如打印机)虚拟成多个逻辑设备。通过为不同用户分配时间片,多个用户可以“同时”使用同一物理设备,感知上好像每个人都有一台专属设备。

空分复用技术

空分复用(Space Division Multiplexing, SDM)通过在空间上划分资源来实现共享。

  • 虚拟内存技术:空分复用在内存管理中的应用尤为显著。通过将物理内存划分为多个虚拟内存页,并利用空闲的内存空间存放其他程序数据,操作系统不仅提高了内存的利用率,还通过虚拟存储技术实现了逻辑上的内存扩展。

虚拟存储的核心在于分时复用,即通过按需调度程序的不同部分到内存中执行,使得即使物理内存小于程序的需求,程序依然可以顺利运行。举例来说,一个100MB的程序可以在仅有30MB内存的环境中运行,原因是操作系统会根据需要动态调度程序的部分内容进出内存。

采用虚拟技术,操作系统可以将物理设备“分割”为多个虚拟设备,显著提高了资源的利用率。然而,这也意味着每个虚拟资源的性能通常等于或小于物理资源性能的1/N(N为虚拟设备数量)。例如,虚拟处理器的平均速度会因为时分复用而低于物理处理器的速度。

4. 异步

异步是指任务的执行并不是连续的,而是以不确定的速度向前推进的。由于系统资源有限,任务在执行过程中可能会因为等待I/O操作或资源竞争而被挂起,导致执行过程断断续续。

  • 任务的异步性:任务的执行可能会因为系统的调度机制被暂停,等资源可用时再继续执行。

  • 事件驱动的异步:操作系统通过事件机制,处理用户输入、I/O操作等外部事件,使得系统能够及时响应这些事件。

异步性保证了系统的灵活性和响应速度,使得操作系统能够在不确定性和复杂性中维持系统的稳定运行。它使得操作系统在处理多任务时能够高效应对各种突发情况和资源调度问题。

二、操作系统的发展历程

另见笔记

三、程序的运行环境

(一)CPU 运行环境

内核模式,用户模式。

(二)中断和异常的处理

(三)系统调用

(四)程序的链接与装入

(五)程序运行时的内存映像与地址空间

四、操作系统结构

分层,模块化,宏内核,微内核,外核。

五、操作系统引导

六、虚拟机


计算机操作系统——操作系统基础
https://blog.cxhap.top/2024/08/18/计算机操作系统——操作系统基础/
作者
DingWH03
发布于
2024年8月18日
许可协议