计算机操作系统-第一章 操作系统引论-上

计算机操作系统(慕课版)

1.1 操作系统的目标和作用

1.1.1 操作系统的目标

  • 方便性、有效性、可扩充性、开放性。

1.1.2 操作系统的作用

  • 1.OS 作为用户与计算机硬件系统之间的接口

    • 命令方式(UNIX、DOS命令);
      在这里插入图片描述
      在这里插入图片描述
    • 系统调用方式(API)。
      在这里插入图片描述
    • GUl方式(Windows、LINUX)
      在这里插入图片描述
      操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件
      在这里插入图片描述
  • 2.OS 作为计算机系统资源的管理者

    • OS的主要功能也正是对 处理机、存储器、I/O设备以及信息(数据和程序) 这4类资源进行有效的管理。处理机管理负责处理机的分配与控制;存储器管理负责内存的分配与回收;I/O设备管理负责I/O设备的分配(回收)与操纵;文件管理负责文件的存取、共享与保护等。
      在这里插入图片描述
  • 3.OS 实现了对计算机资源的抽象

    • 裸机:一个完全无软件的计算机系统。
    • 虚拟机:覆盖了软件的机器,向用户提供一个对硬件操作的抽象模型。
    • 对于一个完全无软件的计算机系统(即裸机),在裸机上覆盖了一层I/O设备管理软件(简称I/O软件),这样用户即可利用这些数据结构及操作命令来进行数据输入或输出。在第一层软件(I/O软件)之上再覆盖一层用于管理文件的软件,由它来实现对文件操作的细节,并向上层提供一组实现对文件进行存取操作的数据结构及命令。在文件管理软件之上再覆盖一层面向用户的窗口软件,那么用户便可在窗口环境下方便地使用计算机,
    • OS是铺设在计算机硬件上的多层软件的集合,它们不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。

1.1.3 推动操作系统发展的主要动力

  • 1.不断提高计算机系统资源的利用率
    • 在20世纪50年代,促成了由单道批处理系统到多道批处理系统的演变。
    • 在20世纪60年代,出现了可以支持多个用户使用一台计算机的分时系统
    • 在20世纪70年代,提出了能够有效提高存储器系统利用率并能从逻辑上扩大内存的虚拟存储器技术
  • 2.方便用户
  • 3.器件不断更新换代
  • 4.计算机体系结构不断发展
    • 例如,当计算机由单处理机系统发展为多处理机系统时,相应地,OS也就由单处理机OS发展为多处理机OS。再如,当出现了计算机网络后,配置在计算机网络上的网络OS也就应运而生了。它不仅能有效管理好网络中的共享资源,还能向用户提供许多网络服务
  • 5.不断提出新的应用需求

1.2 操作系统的发展过程

20世纪50年代中期,出现了第一个简单的批处理系统。20世纪60年代中期,开发出了多道批处理系统,不久又推出了分时系统。与此同时,用于工业控制和武器控制的实时系统也相继问世。20世纪70—90年代,是VLSI和计算机体系结构大发展的年代,这一时期,微机、多处理机和计算机网络得以诞生并发展,相应地,也相继开发出了微机OS、多处理机OS、网络OS和分布式OS。OS得到了极为迅速的发展
在这里插入图片描述

1.2.1 未配置操作系统的计算机系统

  1. 人工操作方式
    早期的操作方式是由用户将事先已穿孔的纸带(或卡片),装入纸带输入机(或卡片输入机),再启动它们以将纸带(或卡片)上的程序和数据输入计算机,然后启动计算机运行。仅当程序运行完毕并取走计算结果后,才允许下一个用户上机。
    在这里插入图片描述
    缺点
    • ①用户独占全机
    • ②CPU等待人工操作
      • 当用户进行装带(卡)、卸带(卡)等人工操作时,CPU及内存等资源是空闲的。
    • 资源利用率极低
  2. 脱机 I/O方式
    • 事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的程序和数据输入磁带。当CPU需要这些程序和数据时,再从磁带上将它们高速地调入内存。
    • 当CPU需要输出时,可先由CPU把数据直接从内存高速地送到磁带上,然后在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。
    • 由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说,它们都是在脱离主机的情况下进行的,故称其为脱机I/O方式。而把在主机的直接控制下进行I/O的方式,称为联机I/O方式
    • 优点
      • 减少了CPU的空闲时间。
      • 提高了I/O速度。

1.2.2 单道批处理系统

  1. 单道批处理系统的处理过程
    • 需要先把一批作业以脱机I/O方式输入到磁带上,并在系统中配上监督程序(操作系统的雏形)。
    • 处理过程:首先由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业;当该作业处理完成时,又把运行控制权交还给监督程序,再由监督程序把磁带上的第二个作业调入内存。
    • 虽然该系统对作业的处理是成批进行的,但在内存中始终只保持一道作业,故称之为单道批处理系统
    • 单道批处理系统是在解决人机矛盾和CPU与I/O设备速度不匹配矛盾的过程中形成的。(优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。)
      在这里插入图片描述
  2. 单道批处理系统的缺点
    • 系统中的资源得不到充分利用
      • 内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便会处于等待状态,并且必须在该程序I/O完成后才能继续运行。此外,I/O设备的低速性也使CPU的利用率显著降低。图1-6所示为单道程序的运行情况,从图中可以看出,在t2~t3、t6~t7时间间隔内CPU空闲。
      • 为了能在系统中运行较大的作业,通常在计算机中都配置了较大容量的内存,但实际情况是有80%以上的作业都属于中小型作业,因此在单道程序环境下,也必定会造成计算机内存的浪费。类似地,为了满足各种类型作业的需要,在系统中将会配置多种类型的I/O设备,显然在单道程序环境下其也不能得到充分利用。
        在这里插入图片描述

1.2.3 多道批处理系统

  1. 多道程序设计的基本概念
    • 在20世纪60年代中期引入了多道程序设计技术,由此形成了多道批处理系统(操作系统正式诞生)。
      在这里插入图片描述
    • 在该系统中,用户所提交的作业会被先存放在外存上,并排成一个队列,称为“后备队列”。然后由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
    • 利用其因I/O操作而暂停执行时的CPU空档时间调度另一道程序
  2. 多道批处理系统的优缺点
    • ① 资源利用率高。
    • ②系统吞吐量大。
    • 多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。
    • ③平均周转时间长。作业要排队并依次进行处理
    • 无交互能力。提交后,用户不能与自己的作业进行交互.(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。eg:无法调试程序/无法在程序运行过程中输入一些参数)
  3. 多道批处理系统需要解决的问题
    • ①争用处理机问题
    • ②内存分配与保护问题
    • ③I/O设备分配问题
    • ④文件的组织与管理问题
    • ⑤作业管理问题
    • ⑥用户与系统的接口问题

OS是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

1.2.4 分时系统

  1. 分时系统的引入
    为了满足用户对人机交互的需求。
    用户的需求:
    • (1)人机交互。方便地对程序中的错误进行修改。但批处理系统做不到
    • (2)共享主机。每个用户都希望能像独占全机一样,不会感觉到其他用户的存在。
    • 分时系统:指在一台主机上连接多个配有显示器和键盘的终端所形成的系统,(计算机以时间片为单位轮流为各个用户/作业服务),该系统允许多个用户同时通过自己的终端以交互方式使用计算机,并共享主机中的资源。
  2. 分时系统实现过程中的关键问题
    • 在多道批处理系统中,作业都先驻留在外存中,即使以后被调入内存,也要经过较长时间的等待方能运行;
    • 为了实现人机交互,必须解决的关键问题是:允许有多个用户同时通过自己的键盘键入命令,系统也应能将全部命令及时接收并处理。
    • (1)及时接收。要做到及时接收多个用户键入的命令或数据,只须在系统中配置一个多路卡即可。
      • 多路卡的作用是实现分时多路复用,即主机能以很快的速度周期性地扫描各个终端,并在每个终端处停留一段很短的时间(如30ms)以接收从终端发来的数据。
      • 为了能使从终端上输入的数据被依次逐条地进行处理,还需要为每个终端配置一个缓冲区,用于暂存用户键入的命令或数据。
    • (2)及时处理
      • 各个用户的作业都必须驻留在内存中,并能频繁地获得处理机运行。
      • 为了实现人机交互,必须彻底改变原来批处理系统的运行方式,转而采用下面的方式。
        • ①采用作业直接进入内存的方式。因为作业在磁盘上是不能运行的,所以其应直接进入内存。
        • ②采用轮转运行的方式。系统规定每个作业每次只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。(一个时间片就是一段很短的时间,如30ms。)
  3. 分时系统的特征
    • (1)多路性。允许将多台终端同时连接到一台主机,并分时使用。
    • (2)独立性。用户感觉独占主机。
    • (3)及时性。用户的请求能在很短时间内获得响应(1-3秒)。
    • (4)交互性。用户可通过终端与系统进行广泛的人机对话。

主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

1.2.5 实时系统

实时系统:指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
最主要的特征:实时性,将时间作为关键参数,

  1. 实时系统的类型

    • (1)工业(武器)控制系统。
    • (2)信息查询系统。
    • (3)多媒体系统。
    • (4)嵌入式系统。
  2. 实时任务的类型
    (1)周期性实时任务和非周期性实时任务。

    • 都必须联系着一个截止时间(deadline),或称为最后期限,其可分为两种。
      • ①开始截止时间:指某任务在某时刻以前必须开始执行;
      • ②完成截止时间:指某任务在某时刻以前必须执行完成。

    (2)硬实时任务和软实时任务。

    • 硬实时(hard real time,HRT)任务是指系统必须满足任务对截止时间的要求,否则可能出现难以预测的后果。
    • 软实时(soft real time,SRT)任务也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,则其对系统产生的影响也不会太大。
  3. 实时系统与分时系统特征的比较

    • (1)多路性。
    • (2)独立性。
    • (3)及时性。一般为秒级到毫秒级
    • (4)交互性。
    • (5)可靠性。分时系统要求系统可靠,实时系统要求系统高度可靠,因为任何差错都可能会带来无法预料的灾难性后果。

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性

1.2.6 微机操作系统

  1. 单用户单任务 OS
    CP/M(8位)和MS-DOS(16位)。
  2. 单用户多任务 OS
    如Windows 3.1、Windows 95/98等。
  3. 多用户多任务 OS
    UNIX系统、各种类UNIX系统(如Solaris、Linux等)以及Windows NT/Server系列的系统。
    具有界面友好、管理方便和适于普及等优点外,还具有支持多用户使用、可移植性良好、功能强大、通信能力强等优点。

1.2.7 嵌入式操作系统

  1. 嵌入式系统
    • 嵌入式系统(embedded system) 是为了完成某个特定功能而设计的系统,或是具有附加机制的系统,或是其他部分的计算机硬件与软件的结合体。
    • 有实时限制,如响应速度、测量精度、持续时间等
  2. 嵌入式 OS:应用于嵌入式系统的OS。
    嵌入式(实时)µC/OS-II、嵌入式Linux、Windows Embedded、VxWorks,以及应用在智能手机和平板电脑上的Android、iOS等
  3. 嵌入式 OS 的特点
    系统内核小
    系统精简
    实时性高
    具有可配置性

1.2.8 网络操作系统

网络OS:用于在计算机网络环境下对网络资源进行管理和控制,实现数据通信及对网络资源的共享,为用户提供网络资源接口的一组软件和规程的集合。
UNIX、Linux、Windows NT/2000/Server等。

  1. 网络 OS 的特征
    (1)硬件独立性
    (2)接口一致性
    (3)资源透明性
    (4)系统可靠性
    (5)执行并行性
  2. 网络 OS 的功能
    网络OS不仅涵盖了单处理机OS的全部功能,还具有支持数据通信、应用互操作、网络管理等功能。

1.2.9 分布式操作系统

  1. 分布式系统
    分布式系统(distributed system),是基于软件实现的一种多处理机系统,是多个处理机通过通信线路互联而构成的松散耦合系统,系统的处理和控制功能分布在各个处理机上。
    • 特征
      分布性
      透明性
      同一性
      全局性。
  2. 分布式 OS
    分布式OS是配置在分布式系统上的公用OS
    例子:万维网、鸿蒙OS。
    • 分布式OS的功能
      • 单处理机OS的主要功能
      • 网络OS所拥有的全部功能
      • 还包括:通信管理功能、资源管理功能、进程管理功能。

分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
在这里插入图片描述

1.3 操作系统的基本特性

批处理系统有着高的资源利用率和系统吞吐量,分时系统能获得及时响应,实时系统具有实时特征。
除此之外,它们还共同具有并发、共享、虚拟和异步这4个基本特性

1.3.1 并发

操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。

  1. 并行与并发
    • 并行是指两个或多个事件在同一时刻发生,
    • 并发是指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的
    • 单处理机系统同一时刻只能执行一个程序,各个程序只能并发地执行
    • 多处理机系统同一时刻可以同时执行多个程序,多个程序可以并行地执行
  2. 引入进程
    • 在一个未引入进程的系统中,同属于一个应用程序的计算程序和I/O程序只能顺序执行,但在为计算程序和I/O程序分别建立一个进程(process)后,这两个进程便可并发执行。
    • 进程:是指在系统中能独立运行并能作为资源分配对象的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。

1.3.2 共享

一般情况下的资源共享(sharing)与OS环境下的资源共享,含义并不完全相同。前者只是说明某种资源能被大家使用

在OS环境下的资源共享(资源复用):是指系统中的资源可供内存中多个并发执行的进程共同使用。

实现资源共享的主要方式

  1. 互斥共享方式
    • 系统中的某些资源,如打印机、磁带机等,虽然可以提供给多个进程(线程)使用,但应规定在一段时间内只允许一个进程访问该资源。
    • 在一段时间内只允许一个进程访问的资源,称为临界资源(或独占资源)。
    • 系统中的大多数物理设备以及栈、变量和表格等,都属于临界资源,都只能被互斥地共享。
  2. 同时共享方式
    • 系统中还有一类资源,允许在一段时间内由多个进程“同时”对它们进行访问
    • 这里所说的“同时”,在单处理机环境下是宏观意义上的;而在微观上,这些进程对该资源的访问是交替进行的。
    • 典型的可供多个进程“同时”访问的资源是磁盘设备。

并发和共享互存

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

1.3.3 虚拟

在OS中,把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能,称为“虚拟”。前者是实的,即实际存在的;后者是虚的,是用户感觉存在的东西。

  1. 时分复用技术
    时分复用技术能提高资源利用率的根本原因在于,它会令某设备在为一个用户服务的空闲时间转去为其他用户服务,进而使设备得到最充分的利用。
    • (1)虚拟处理机技术。
      • 虽然系统中只有一台处理机,但通过时分复用技术能实现(宏观上)同时为多个用户服务,使每个终端用户都认为有一个处理机在专门为他服务。
      • 我们把用户所感觉到的处理机称为虚拟处理机
    • (2)虚拟设备技术。
      • 利用时分复用技术,将一台物理上的I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备。
  2. 空分复用技术
    • 空分复用技术就是利用存储器的空闲空间(如某道程序阻塞时被换出到外存而空出来的内存空间)来存放其他程序以提高内存的利用率的。
    • 单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量这一功能,因此还必须引入虚拟存储技术才能达到此目的。
    • 虚拟存储技术在本质上是实现内存的分时复用,即它可以通过分时复用内存的方式,使一道程序仅在远小于它的内存空间中运行。
      • 例如,一个100MB的用户程序之所以可以运行在30MB的内存空间,实质上是因为每次只把用户程序的一部分调入内存运行,运行完成后就将该部分换出,再换入另一部分到内存中运行,

虚拟的实现,如果是采用时分复用技术,即对某一物理设备进行分时使用,设N是某物理设备所对应的虚拟的逻辑设备数,则每台虚拟设备的平均速度必然等于或小于物理设备速度的1/N。类似地,如果是采用空分复用技术,则此时一台虚拟设备平均占用的空间必然也等于或小于物理设备所拥有空间的1/N。
显然,如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性

1.3.4 异步

对于内存中的每个进程,其在何时能获得处理机并运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需要多少时间才能完成等,都是不可预知的。
进程的异步性(asynchronism):在多道程序环境下,系统允许多个进程并发执行。由于资源等因素的限制,进程的执行通常不可能“一气呵成”,而是会以“停停走走”的方式运行。进程是以人们不可预知的速度向前推进的
如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性

重要考点:

理解并发和并行的区别
并发和共享互为存在条件
没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征

1.4 操作系统的运行环境

1.4.1 硬件支持

  • 现代通用计算机系统包括一个或多个CPU和若干个设备控制器,通过公用总线相连而成,该总线提供了共享内存的访问功能。每个设备控制器负责一类特定的设备,如磁盘驱动器、音频设备或视频显示器等。
  • 当打开计算机电源或重启计算机以便开始运行时,计算机需要运行一个初始程序或引导程序(bootstrap program)。该引导程序通常很简单,一般位于计算机的固件(firmware)中,如只读存储器(read-only memory,ROM)或电擦除可编程只读存储器(electrically-erasable programmable read-only memory,EEPROM)等。它会初始化系统的各个组件(如CPU寄存器、设备控制器等)以及内存内容。引导程序必须知道如何加载OS并开始执行系统。为了实现这一目标,引导程序必须定位OS内核并将其加载到内存中。
  • OS的内核(kernel),是指OS一直运行在计算机上的程序。(由很多内核程序组成了“操作系统内核”,或简称“内核(Kernel))除了内核外,还有其他两类程序:系统程序和应用程序。前者是与系统运行有关的程序,但不是内核的一部分;后者是与系统运行无关的所有其他程序。
    • 内核是操作系统最重要最核心的部分,也是最接近硬件的部分
      甚至可以说,一个操作系统只要有内核就够了(eg:Docker-一>仅需Linux内核)
      操作系统的功能未必都在内核中,如图形化用户界面GUI
  • CPU只能从内存中加载指令,因此要执行的程序必须位于内存。通用计算机运行的大多数程序通常位于可读写内存,也称为随机存取存储器(random access memory,RAM)。内存通常为动态随机存取存储器(dynamic random access memory,DRAM),它采用半导体技术来实现。当然计算机也会采用其他形式的内存,如ROM或EEPROM等。所有形式的内存都提供字节数据,每个字节都有地址。CPU会通过一系列load或store内存指令来对指定的内存地址进行操作

1.4.2 操作系统内核

  • 现代OS一般会划分为若干层次,再将不同功能分别设置在不同层次中。通常将一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序、运行频率较高的模块(如时钟管理模块、进程调度模块等)以及许多模块所公用的一些基本操作,都安排在紧靠硬件的软件层次中,并将它们常驻内存。它们通常被称为OS内核。
  • 这种安排方式的目的在于:一是便于对这些软件进行保护,防止它们遭受其他应用程序的破坏;二是可以提高OS的运行效率。

大多数OS内核都包含了以下两类功能

OS内核功能

  1. 支撑功能
    • (1)中断处理
      • 中断处理是内核最基本的功能,是整个OS赖以活动的基础,OS中许多重要的活动,无不依赖于中断。
      • 通常,为减少处理机中断的时间,提高程序执行的并发性,内核在对中断进行“有限处理”后便会转入相关的进程,由这些进程继续完成后续的处理工作。
    • (2)时钟管理
      • 时钟管理是内核的一项基本功能,在OS中的许多活动都需要得到它的支撑,
      • 如在时间片轮转调度中,每当时间片用完时,便会由时钟管理产生一个中断信号,促使调度程序重新进行调度。同样,在实时系统中的截止时间控制、批处理系统中最长运行时间的控制等,也无不依赖于时钟管理功能。
    • (3)原语操作
      • 所谓原语(primitive),就是由若干条指令组成的,用于完成一定功能的一个过程。它与一般过程的区别在于:它们是“原子操作”(action operation)。
      • 所谓原子操作,是指一个操作中的所有动作要么全做、要么全不做,此即原子性。换言之,它是一个不可分割的基本单位
      • 因此,原语在执行过程中不允许被中断。原子操作在内核态下执行,常驻内存。在内核中可能有许多原语,如用于对链表进行操作的原语、用于实现进程同步的原语等
        在这里插入图片描述
  2. 资源管理功能
    • (1)进程管理。在进程管理中,或者由于各个功能模块(如进程的调度与分派、进程的创建与撤销等)的运行频率较高,或者由于它们为多种原语操作(如用于实现进程同步的原语操作、常用的进程通信原语操作等)所需要,通常将它们放在内核中,以提高OS的性能。
    • (2)存储器管理。存储器管理软件的运行频率也比较高,如用于实现将用户空间的逻辑地址变换为内存空间的物理地址的地址变换机构,用于内存分配与回收的模块,以及用于实现内存保护和对换功能的模块等,通常都放在内核中,以保证存储器管理具有较高的运行速度。
    • (3)设备管理。由于设备管理与硬件(设备)紧密相关,因此其中很大部分也都设置在内核中,如各类设备的驱动程序、用于缓和CPU与I/O设备速度不匹配矛盾的缓冲管理模块、用于实现设备分配与设备独立性功能的模块等。

1.4.3 处理机的双重工作模式

  • 一般地,处理机至少需要两种单独运行模式用户态(user mode)和内核态(kernel mode)。用户态也称为目态,内核态也称为管态或系统态。计算机硬件(CPU中有一个寄存器叫程序状态字寄存器(PSW))可以通过一个模式位(mode bit) 来表示当前模式:内核态(0)和用户态(1)
    • 提供了区分系统正在运行用户代码或内核代码的能力。
    • 内核态 说明此时正在运行的是内核程序,执行包括特权指令在内的一切指令。用户态 说明此时正在运行的是应用程序,不能执行特权指令。
    • 当用户程序通过系统调用请求OS服务时,系统必须从用户态切换到内核态,以满足请求,
    • 当存在系统引导时,硬件会从内核态开始工作,OS接着加载,然后在用户态下执行用户程序。一旦有中断或陷阱,硬件就会从用户态切换到内核态(即将模式位置0)。因此,每当OS能够控制计算机时,它就处于内核态。在将控制权交给用户程序前,系统会切换到用户态(将模式位置1)。
    • “中断”是让操作系统内核夺回CPU使用权的唯一途径
      在这里插入图片描述
  • 双重模式执行提供了保护手段,以防止OS和用户程序受到错误用户程序的影响。这种保护可通过如下方式实现:将可能引起损害的机器指令当作特权指令(privileged instruction),硬件只有在内核态下才允许执行特权指令;其他指令为非特权指令(non-privileged instruction)。具体说明如下。
    • (1)特权指令,是指在内核态下运行的指令,它对内存空间的访问范围基本不受限制。
      • 它不仅能访问用户空间,还能访问系统空间,如执行启动外部设备、设置系统时钟时间、关中断、切换执行状态等操作、内存清零指令。切换到用户态的指令也是特权指令。
    • (2)非特权指令,是指在用户态下运行的指令。
      • 应用程序所使用的都是非特权指令,它只能完成一般性的操作和任务,不能对系统中的硬件和软件进行直接访问,对内存的访问范围也局限于用户空间。这样,可以防止应用程序的运行异常对系统造成破坏。
    • 这种限制是由硬件实现的,如果在应用程序中使用了特权指令,则硬件并不会执行该指令,而是会认为该指令非法,并发出权限出错信号,OS在捕获到这个信号后,将会转入相应的错误处理程序,以停止该应用程序的运行,并重新进行程序调度。
      在这里插入图片描述

1.4.4 中断与异常

  • 现代OS是中断驱动(interrupt driven) 的。如果没有进程需要执行,没有I/O设备需要服务,没有用户需要响应,那么OS就会静静地等待某个事件发生事件总是由中断(interrupt)或陷阱(trap)引起的
    • 陷阱(或异常内中断)是一种由软件引起的中断,或源于出错(如除数为零、执行特权指令或无效存储访问等),或源于用户程序的特定请求(如执行OS的某个服务等。此时会执行一条特殊的指令一一陷入指令,执行“陷入指令”,意味着应用程序主动地将CPU控制权还给操作系统内核。系统调用”就是通过陷入指令完成的)。
      • 与当前执行的指令有关,中断信号来源于CPU内部
      • 内中断的三种类型
    • 中断(外中断)是硬件通过系统总线发送信号到CPU来触发的。当CPU被中断时,它会停止正在做的事,并立即转到固定位置再继续执行。该固定位置通常包含中断处理程序的开始地址。中断处理程序开始执行并在执行完后,CPU会重新执行被中断的计算。
      • 时钟中断一一由时钟部件发来的中断信号,从而可以实现并发。I/O中断一一由输入/输出设备发来的中断信号
      • 与当前执行的指令无关,中断信号来源于CPU外部
      • CPU在执行完一条指令后会检查有没有外中断信号。
        在这里插入图片描述
  • 中断是计算机体系结构的重要组成部分
    • 虽然每个计算机都设计有各自的中断机制,但是它们的有些功能是相同的。中断应将控制转移到合适的中断处理程序,实现这一转移的直接方法是,调用一个通用程序以检查中断信息,接着,该程序会调用特定的中断处理程序。不过,中断处理应当快捷。
    • 因此可以根据中断信号的类型去查询“中断向量表”(中断处理程序的指针表)来间接调用中断处理程序,通常,指针表位于低地址内存(地址为100左右的位置),其中包含各种设备的中断处理程序的地址。这种地址被称为中断向量(interrupt vector)。对于任一给定的中断请求,可通过唯一的设备号来索引,进而为其提供设备的中断处理程序的地址。许多不同的OS(如Windows系统和UNIX系统)都采用这种方式来处理中断。
      在这里插入图片描述
      在这里插入图片描述

计算机操作系统-第一章 操作系统引论-下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值