1.1OS的基本概念
1.1.1OS的概念
-
OS是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的 程序集合
-
OS不仅可以对软、硬件资源管理,还可对文件资源 管理⚡
源程序(源代码文件) 由程序员进行管理⚡ -
计算机系统自下而上可分为4部分:硬件、OS、应用程序、用户
——硬件
如中央处理器、内存、输入输出设备等,提供基本的计算资源。
——应用程序
如字处理程序、 电子制表软件、编译器、网络浏览器等,规定按何种方式 使用这些资源 来解决用户的计算问题。
——OS
- 管理各种计算机硬件
- 为应用程序 提供基础
- 并充当计算机硬件与用户之间的中介,设计、提供用户程序与硬件系统的界面⚡
- OS控制和协调 各用户的应用程序对 硬件的分配与使用。
OS是计算机系统中最基本的系统软件。

1.1.2OS的特征
OS是一种系统软件,
OS的基本特征/特殊性包括:并发、共享、虚拟、异步。
①并发(Concurrence)
- OS的并发性是指计算机系统中同时存在多个运行的程序,因此它具有 处理和调度 多个程序同时执行 的能力。
- 在OS中,引入进程的目的是使程序能并发执行。
- 在多道程序环境下,一段时间内,
宏观上有多道程序在同时执行,
而在每个时刻,单处理机环境下实际仅能有一道程序执行,
因此微观上这些程序仍是分时交替执行的。 - OS的并发性是通过分时得以实现的。
- 并发同一时间间隔内发生,同一时刻是并行。
- 并行性是指系统具有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。
并行性需要有相关硬件的支持,如多流水线或多处理机硬件环境。 - 并行:同一时刻 同时 进行两个(或多个)任务 ⚡(多核处理机)
并发:宏观上 两个(或多个)任务同时进行,但微观上看,同一时刻最多只有一个任务正在进行⚡
②共享(Sharing)
资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
- 共享可分为以下两种资源共享方式。
——互斥共享方式
__系统中的某些资源,如打印机、磁带机,虽然可供多个进程使用,但为使得所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程访问该资源。
__把在一段时间内只允许一个进程访问的资源称为临界资源。
__计算机系统中的大多数物理设备及某些软件中所用的栈、变量和表格,都属于临界资源,它们都要求被互斥地共享。
——同时访问方式
__系统中资源(eg:磁盘设备——若干个用户同时访问该文件)允许在一段时间内由多个进程“同时”访问。
__这里所说的 “同时”通常是宏观上的,
__微观上,这些进程可能是交替地对该资源进行访问即“分时共享”
并发和共享是OS两个最基本的特征⚡,两者之间互为存在的条件:
- 资源共享是以程序的并发为条件的
- 若系统不能对资源共享实施有效的管理(资源共享方式),则必将影响到程序的并发执行,甚至根本无法并发执行。
③虚拟(Virtual)
-
虚拟是指把一个物理上的实体变为若干逻辑上的对应物。
-
用于实现虚拟的技术,称为虚拟技术。
-
OS中利用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等。
-
虚拟处理器
利用多道程序设计技术把一个物理上的CPU(中央处理器)虚拟为多个逻辑上的CPU(让多道程序并发执行的方法,来分时使用一 个处理器,从而能同时为多个用户服务)
其余可类比 -
OS的虚拟技术可归纳为:
——时分复用技术,如处理器的分时共享;
——空分复用技术, 如虚拟存储器。
④异步(Asynchronism)
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性。
- 异步性使得OS运行在一种随机的环境下,可能导致进程产生与时间有关的错误
- 然而,只要运行环境相同,OS就须保证多次运行进程后都能获得相同的结果。
1.1.3OS的目标和功能
目标:
- 为了给多道程序提供良好的运行环境,OS应具有以下几方面的功能:处理机管理、存储器管理、设备管理和文件管理。
- 为了方便用户使用OS,还必须向用户提供接口。
- 同时, OS可用来扩充机器,以提供更方便的服务、更高的资源利用率。
举例理解:
例如,用户是雇主,OS是工人(操作机器),计算机(有处理机、存储器、设备、文件)是机器,工人能够控制和协调机器的工作,这就是OS对资源的管理;同时,工人必须接收雇主的命令,这就是“接口”;有了工人,机器就能发挥更大的作用,因此工人就成了“扩充机器”。
功能:
①OS作为计算机系统资源的管理者
(1)处理机管理
在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。
- 并发是指在计算机内同时运行多个进程,因此进程何时创建、何时撤销、如何管理、如何避免冲突、合理共享就是进程管理的最主要的任务。
- 进程管理的主要功能 包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。
(2)存储器管理
为给多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率。
- 主要包括内存分配与回收、地址映射、内存保护与共享、内存扩充等功能。
(3)文件管理
计算机中的信息都是以文件的形式存在的,OS中负责文件管理的部分称为文件系统。
- 文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
(4)设备管理
设备管理的主要任务是完成用户的IO请求,方便用户使用各种设备,并提高设备的利用率
- 主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能。
这些工作都由“工人”负责,“雇主”无须关注。
②OS作为用户与计算机硬件系统之间的接口
③OS实现了对计算机资源的扩充
- 没有任何软件支持的计算机称为裸机
- 操作系 统所提供的资源管理功能和方便用户的各种服务功能,将裸机改造成功能更强、使用更方便的机器;
- 我们通常把覆盖了软件的机器称为扩充机器或虚拟机。
1.2OS发展历程
1.2.1 手工操作阶段(此阶段无OS)
- 用户在计算机上算题的所有工作都要人工干预,如程序的装入、运行、结果的输出等。
- 随着计算机硬件的发展,人机矛盾(速度和资源利用)越来越大,必须寻求新的解决办法。
- 两个突出的缺点:
①用户独占全机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源利用率低。
②CPU等待手工操作,CPU的利用不充分。 - 唯一的解决办法就是用高速的机器代替相对较慢的手工操作来对作业进行控制。
1.2.2 批处理阶段(OS开始出现)
- 为了解决 人机矛盾 及 CPU和IO 设备之间速度不匹配的矛盾,出现了批处理系统。
- 按发展历程又分为单道批处理系统、多道批处理系统(多道程序设计技术出现以后)
1.单道批处理系统
-
引入脱机输入/输出技术(用外围+磁带完成),并由监督程序负责控制作业的输入、输出。⚡
-
脱机技术:脱离主机的控制,提前将作业数据输入/输出到磁带,用于缓和I/0设备与主机之间的速度矛盾。 ⚡
-
系统对作业的处理是成批进行的,但内存中始终保持一道作业。
-
单道批处理系统是在解决人机矛盾及CPU和IO设备速率不匹配的矛盾中形成的。
-
单道批处理系统的主要特征如下:
——自动性
在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。
——顺序性⚡
磁带上的各道作业顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序在正常情况下应完全相同,亦即先调入内存的作业先完成(类似堆)
单道程序设计的基本特征:顺序性⚡
——单道性
内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。 -
此时面临的问题是:每次主机内存中仅存放一道作业,每当它在运行期间发出输入/输出请求后,高速的CPU便处于等待低速的IO完成的状态。
-
为了进一步提高资源的利用率和系统的吞吐量,引入了多道程序技术。
2.多道批处理系统
-
引入中断技术⚡
-
提高单机资源利用率的关键技术是多道设计技术(脱机技术也可以提升,但不关键)
-
在批处理系统中采用多道程序设计技术就形成了多道批处理OS。
-
该系统把用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。
-
多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行,
-
这些程序共享系统中的各种硬/软件资源。
-
当一道程序因IO请求而暂停运行时,CPU便立即转去运行另一道程序。
-
它不采用某些机制来提高某一技术方面的瓶颈问题,而让系统的各个组成部分都尽量去 “忙”,因此切换任务所花费的时间很少,可实现系统各部件之间的并行工作,使其整体在单位时间内的效率翻倍。
(资本家看了都落泪) -
当然,多道批处理系统的设计和实现要比单道系统复杂很多,因为要充分利用各种资源,就要涉及各种资源的调度问题。
-
多道程序设计的特点是多道、宏观上并行、微观上串行。
——多道
计算机内存中同时存放多道相互独立的程序。
——宏观上并行
同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行, 但都未运行完毕。
——微观上串行
内存中的多道程序轮流占有CPU,交替执行。 -
多道程序设计技术的实现需要解决下列问题
——处理器、内存、IO设备的分配问题。
——如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性 -
优点:
——资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;
——系统吞吐量大,CPU和其他资源保持“忙碌”状态。(吞吐量是啥) -
缺点:
——用户响应的时间较长;
——不提供人机交互能力⚡,用户既不能了解自己的程序的运行情况,又不能控制计算机。 -
多道程序设计的基本特征:制约性、间断性、共享性⚡
- 单道程序系统:⚡
内存中最多只有一道作业,作业之间是串行执行的。
若当前作业等待I/O,则CPU闲置等待。 - 多道程序系统:⚡
内存中有多道作业,作业之间并发执行。
若当前作业等待I/O, 则CPU转而处理另一道作业。
1.2.3分时OS
- 所谓分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。
- 若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行, 把处理器让给其他作业使用,等待下一轮再继续运行。
- 由于计算机速度很快,作业运行轮转得也很快,因此给每个用户的感觉就像是自己独占一台计算机。
- 分时OS是指多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。
- 因此,实现分时系统最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令, 再将结果返回用户。
- 分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。
- 多道批处理是实现作业自动控制而无须人工干预的系统,
- 而分时系统是实现人机交互⚡的系统,这使得分时系统具有与批处理系统不同的特征。
- 分时系统的主要特征如下:
——同时性(多路性)
指允许多个终端用户同时使用一台计算机,即一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机
——交互性
用户能够方便地与系统进行人机对话,即用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。
——独立性
系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。
——及时性
用户 请求能在很短时间内获得 响应。⚡
分时系统 采用 时间片轮转⚡方式 使一台计算机同时为多个终端服务,使用户能够对系统的及时响应感到满意。
虽然分时OS较好地解决了人机交互问题,但在一些应用场合,需要系统能对外部的信息在规定的时间(比时间片的时间还短)内做出处理(比如飞机订票系统或导弹制导系统),因此,实时OS应运而生。
1.2.4 实时OS
- 为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时OS。这里的时间限制可以分为两种情况:
①若某个动作必须绝对地在规定的时刻(或规定的时间范围)发 生,则称为硬实时系统,如飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。
②若能够接受偶尔违反时间规定且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。 - 在实时OS的控制下,计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完接收的事件。实时OS的主要特点是及时性和可靠性。
- 通常采用抢占式的优先级高者优先算法⚡
1.2.5 网络OS和分布式计算机系统
- 网络OS把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送
- 网络OS最主要的特点是网络中各种资源的共享及各台计算机之间的通信。
- 分布式计算机系统是由多台计算机组成并满足下列条件的系统:
——系统中任意两台计算机通过通信方式交换信息;
——系统中的每台计算机都具有同等的地位,即没有主机也没有从机;
——每台计算机上的资源为所有用户共享:系统中的任意台计算机都可以构成一个子系统,并且还能重构;
——任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。 - 用于管理分布式计算机系统的OS称为分布式计算机系统。该系统的主要特点是:分布性和并行性。分布式OS与网 络OS的本质不同是,分布式OS中的若干计算机相互协同完成同一任务。
1.2.6 个人计算机OS
个人计算机OS是目前使用最广泛的OS,它广泛应用于文字处理、电子表格、游戏中,常见的有Windows、Linux和MacOS等、Linux和MacOS等
还有嵌入式OS、服务器OS、智能手机OS等
1.3OS运行环境
1.3.1处理器运行模式
- 在计算机系统中,通常 CPU 执行两种不同性质的程序:
一种是OS内核程序;
一种是用户自编程序(即系统外层的应用程序,简称“应用程序”)。 - 対操作系統而言,这两种程序的作用不同,前者是后者的管理者,
- 因此“管理程序”(内核程序)要执行一些特权指令,而 “被管理程序”(用户自编程序)出于安全考不能执行这些指令。
①特权指令⚡:是指不允许用户直接使用的指令,只允许OS使用⚡,
eg:I/O指令⚡、置中断指令,存取用于内存保护的寄存器、送程序状态字 到 程序状态字寄存器 等的指令。
②非特权指令:是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。

在具体实现上,
将CPU的运行模式划分为 用户态(目态) 和 核心态(又称管态、内核态)。
-
可以理解为CPU内部有一个小开关,
当开关为0时,CPU处于核心态,此时CPU可以执行特权指令,切换到用户态的指令也是特权指令。(特权指令必须在核心态运行)⚡
当开关为1时,CPU处于用户态,此时CPU只 能执行非特权指令。 -
应用程序运行在用户态,OS内核程序运行在核心态。
-
应用程序向OS请求服务时通过使用访管指令⚡,从而产生一个中断事件将OS转换为核心态。
-
在软件工程思想和结构化程序设计方法影响下诞生的现代OS,几乎都是分层式的结构。
-
OS的各项功能分别被设置在不同的层次上。
一些与硬件关联较紧密的模块,如时钟管理、中断处理、设备驱动等处于最低层。
其次是运行频率较高的程序,如进程管理、存储器管理 和设备管理等。
这两部分内容构成了OS的内核。
这部分内容的指令操作工作在核心态。 -
内核是计算机上配置的底层软件,它管理着系统的各种资源,可以看作是连接应用程序和硬件的一座桥梁,大多数OS的内核包括4方面的内容。
-
CPU处理核心态时,即可执行特权指令,又可执行非特权指令(除trap指令) ⚡

1.时钟管理
- 在计算机的各种部件中,时钟是最关键的设备。
- 时钟的第一功能是计时,OS需要通过时钟管理,向用户提供标准的系统时间。
- 另外,通过时钟中断的管理,可以实现进程的切换。
例如,在分时OS中采用时间片轮转调度,在实时系统中按截止时间控制运行,在批处理系统中通过时钟管理来衡量一个作业的运行程度等。 - 因此,系统管理的方方面面无不依赖于时钟。
2.中断机制
- 引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。
- 后来逐步得到发展,形成了多种类型,成为OS各项操作的基础。
例如,键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。 - 可以说现代OS是靠中断驱动的软件。
- 中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序,这样可以减少中断的处理时间,提高系统的并行处理能力。
3.原语
- 按层次结构设计的OS底层必然是一些可被调用的公用小程序,它们各自完成一个规定的操作。它们的特点如下:
①处于OS的最底层,是最接近硬件的部分。
②这些程序的运行具有原子性,其操作只能一气呵成(出于系统安全性和便于管理考虑)。
③这些程序的运行时间都较短,而且调用频繁。
通常把具有这些特点的程序称为原语(AtomicOperation)。 - 定义原语的直接方法是关闭中断, 让其所有动作不可分割地完成后再打开中断。
- 系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语,使它们成为内核的组成部分。
4.系统控制的数据结构及处理
- 系统中用来登记状态信息的数据结构很多,如作业控制块、进程控制块(PCB)、设备控制块、各类链表、消息队列、缓冲区、空闲区登记表、内存分配表等。
- 为了实现有效的管理,系统需要一些基本的操作,常见的操作有以下3种:
①进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
②存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
③设备管理。缓冲区管理、设备分配和回收等。
从上述内容可以了解,核心态指令(特权指令)⚡ 实际上包括系统调用类指令和一些针对时钟(置/写时钟指令)⚡、中断、原语的操作指令。 - 读时钟指令是非特权指令,但核心态下可以执行读时钟指令⚡
1.3.2 中断和异常的概念
- 在OS中引入核心态和用户态这两种工作状态后,就需要考虑这两种状态之间如何切换。
- OS内核工作在核心态,而用户程序工作在用户态。
- 从 核心态 到 用户态 的转换是由 OS程序 执行后完成的,而
用户态到核心态 的转换则是由 硬件 (不是用户程序)完成的。 ⚡ - 系统不允许 用户程序 实现核心态的功能⚡,而它们又必须使用这些功能。
- 因此,需要在核心态建立一些“门”,以便实现从用户态进入核心态。
在实际OS中,CPU运行上层程序时唯一能进入这些“门”的途径就是通过中断或异常。
也就是说 通过中断机制实现了OS由 用户态 到 核心态 的转换⚡ - 发生中断或异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的
(例如, 用一个特殊寄存器的一位来表示CPU所处的工作状态,0表示核心态,1表示用户态。
若要进入 核心态,则只需将该位置0即可)。 - 中断是OS中非常重要的一个概念,对一个运行在计算机上的实用OS而言,缺少了中断机制,将是不可想象的。
- 原因是OS的发展过程大体上就是一个想方设法不断提高资源利用率的过程,而提高资源利用率就需要在程序并未使用某种资源时,把它对那种资源的占有权释放,而这一行为就需要通过中断实现。
1.中断和异常的定义
- 中断(Interruption)也称外中断,是指来自CPU执行指令外部的事件,通常用于信息输入输出,如设备发出的I/O结束中断,表示设备输入/输出处理已经完成。
时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。 - 异常(Exception)也称内中断,是指来自CPU执行指令内部的事件,如程序的非法操作码、地址越界、运算溢出、虚存系统的缺页及专门的陷入指令等引起的事件。
异常不能被屏蔽,一旦出现,就应立即处理。
2.中断和异常的分类
- 外中断可分为可屏蔽中断和不可屏蔽中断。
——可屏蔽中断是指通过INTR线发出的中断请求,通过改变屏蔽字可以实现多重中断,从而使得中断处理更加灵活。
——不可屏蔽中断是指通过NMI线发出的中断请求,通常是紧急的硬件故障,如电源掉电等。异常也是不能被屏蔽的。 - 异常/内中断 可分为 故障、自陷和终止。
——故障(Fault) 通常是由指令执行引起的异常,如非法操作码、 缺页故障、除数为0、运算溢出等。
——自陷(Trap) 是一种事先安排的“异常”事件,用于在用户态下调用操作系统内核程序,如条件陷阱指令。
——终止(Abort) 是指出现了使得CPU无法继续执行的硬件故障,如控制器出错、存储器校验错等。 - 故障异常和自陷异常属于软件中断(程序性异常),终止异常和外部中断属于硬件中断。
- (外部)中断保存信息的原则:保存中断处理程序结束返回之后 在原程序中还需使用 且 原程序不可恢复的内容⚡


3.中断和异常的处理过程
中断和异常处理过程的大致描述如下:
- 当CPU在执行用户程序的第i条指令时检测到一个异常事件,或在执行第i条指令后发现一个中断请求信号,则CPU打断当前的用户程序,然后转到相应的中断或异常处理程序去执行。
- 若中断或异常处理程序能够解决相应的问题,则在中断或异常处理程序的最后,CPU通过执行中断或异常返回指令,回到被打断的用户程序的第i条指令或第i+1条指令继续执行;
- 若中断或异常处理程序发现是不可恢复的致命错误,则终止用户程序。
- 通常情况下,对中断和异常的具体处理过程由OS(和驱动程序) 完成。

1.从用户态切换到内核态必定要通过“中断实现。 ⚡
2.只要发生中断,就需要对中断进行处理,也必然会切换到到内核态 ⚡

1.3.3 系统调用 ⚡
- 系统调用功能是OS向用户程序提供的接口⚡
- 系统调用存在的目的:为了使系统更稳定、安全,要防止小白用户、恶意用户进行非法的越权操作 ⚡
- 解决方案:将系统的核心功能封装为系统调用
引出的问题:系统调用过程需要用户态 与 核心态的切换,降低效率 ⚡ - 在一些专业性较强、实时性要求较高的OS中,可不提供系统调用,以换取效率,如NASA使用的 VxWorks系统(在火箭、卫星上使用) ⚡
- 系统调用不是OS必须提供的功能,中断处理才是 ⚡(
易错)
计算机的各种错误的处理、进程切换等都需要中断处理。无中断、无并发。
-
系统调用,是指用户在程序中调用OS所提供的一些子功能,系统调用可视为特殊的公共子程序。
-
系统中的各种共享资源都由OS统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、进行I/O传输及管理文件等),都必须通过系统调用方式向OS提出服务请求,并由OS代为完成。
-
通常,一个OS提供的系统调用命令有几十条乃至上百条之多。
这些 系统调用 按功能大致可分为如下几类。
——设备管理。完成设备的请求、释放、设备启动等功能。
——文件管理。完成文件的读、写、创建、删除等功能。
——进程控制。完成进程的创建、撤销、阻塞、唤醒等功能。
——进程通信。完成进程之间的消息传递、信号传递等功能。
——内存管理。完成内存的分配、回收、获取作业占用内存区大小及始址等功能。 -
显然,系统调用相关功能涉及系统资源管理、进程管理之类的操作,对整个系统的影响非常大,因此必定需要使用某些特权指令才能完成,
所以系统调用的处理需要由OS内核程序负责完成,要运行在核心态。
但是 系统调用该事件 发生在用户态⚡ -
用户程序可以执行陷入指令(访管指令或trap指令⚡) 来发起 系统调用,请求OS提供服务。访管指令不是特权指令⚡
-
可以这么理解,
-用户程序执行“陷入指令”,相当于把CPU的 使用权 主动交给OS内核程序(CPU状态会从用户态进入核心态),之后OS内核程序再对系统调用请求做出相应处理。
-处理完成后,OS内核程序又会把CPU的使用权还给用户程序 (即CPU状态会从核心态回到用户态)。 -
这么设计的目的是:
用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求OS代为执行,以便【保证系统的稳定性和安全性,防止用户程序随意更改或访问重要的系统资源,影响其他进程的运行】。 -
这样,OS的运行环境就可以理解为:
_用户通过OS运行 上层程序(如系统提供的命令解释程序或用户自编程序),而这个上层程序的运行依赖于OS的底层管理程序提供服务支持,
_当需要管理程序服务时,系统则通过硬件中断机制进入核心态,运行管理程序;
_也可能是程序运行出现异常情况,被动地需要管理程序的服务,这时就通过异常处理来进入核心态。
_管理程序运行结束时,用户程序需要继续运行,此时通过相应的 保存的程序现场 退出中断处理程序或异常处理程序,返回断点处继续执行。

- 在OS这一层面上,我们关心的是系统核心态和用户态的软件实现与切换,对于硬件层面的具体理解,可以结合“计算机组成原理”课程中有关中断的内容进行学习。
- 下面列举一些由用户态转向核心态的例子:
①用户程序要求OS的服务,即系统调用。
②发生一次中断。
③用户程序中产生了一个错误状态。
④用户程序中企图执行一条特权指令。
⑤从核心态转向用户态由一条指令实现,这条指令也是特权命令,一般是中断返回指令。 - 若程序的运行由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以它不是特权指令。
- 由用户态进入核心态,不仅状态需要切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈,但这个系统堆栈也是属于该进程的。
----- OS提供给用户程序/编程人员使用的接口:系统调用/程序接口
OS提供给用户直接使用的接口:命令接口、GUI
OS提供给用户间接使用的接口:程序接口/系统调用


中止系统服务:如Linux中的exit系统调用请求中止进程 ⚡
申请系统资源:如open系统调用,可请求打开一个文件或IO设备 ⚡
释放系统资源:如close系统调用可请求关闭一个文件或O设备⚡
拓展
-
软件 = 程序 + 其他文件⚡
-
interface可以翻译为界面,也可以是接口
-
通道:理解为一个独立的小CPU,用来专门处理I/O请求
通道技术:通道是一种硬件(CPU的小马仔),通道可以执行I/O指令,从而管理I/O设备的工作 -
处理机:中央处理器CPU
-
设备:eg:输入、输出设备
-
系统调用的别名:程序接口、广义指令(应试)⚡
-
广义指令:一系列指令序列的封装。用户态发出,核心态执行

-
不涉及系统调用的库函数:如的“取绝对值”的函数
涉及系统调用的库函数:如“创建一个新文件”的函数 -
代码可重入一一多个进程/线程共享一段代码,执行结果不会相互影响。这类代码可以很安全地被多个进程/线程共享
-
CPU利用率:CPU忙”的时间所占的比例
系统开销:除了处理作业之外,系统在进程、内存等管理上消耗的时间
系统吞吐量:单位时间内CPU完成作业数量
I/O设备利用率:I/O设备"忙"的时间所占的比例
(应试简单理解) -
并发特性 往往伴随 并行特性
eg:多任务操作系统,其处理两个作业时,CPU处理A作业,同时I/O可处理B作业⚡ -
手工操作阶段 到 批处理阶段 到 分时系统 到 实时系统 到 手工操作系统
下一个优点解决了前一个缺点,不由得想到否定之否定规律 -
中断:与硬件相关,外部设备通过发送中断信号通知CPU抽空处理设备请求
屏蔽中断指令:实现关中断,使当前操作不可被中断。相当于一个门。 -
访管中断:由访管指令(trap指令)引起的内中断就是“访管中断”
-
中断向量表
-
CPU唯一的一个功能:执行指令序列(一条一条的执行机器指令)

操作系统(OS)是管理计算机硬件与软件资源的程序,提供了并发、共享、虚拟和异步等特征。它管理处理机、存储器、设备和文件,同时作为用户与硬件之间的接口。OS的发展历程包括手工操作、批处理、分时、实时和分布式系统等阶段,适应了不同场景的需求。
1509

被折叠的 条评论
为什么被折叠?



