王道考研操作系统-1.计算机系统概述
操作系统
是指控制和管理整个计算机系统的硬件和软件资源,合理地组织调度计算机的工作和资源的分配;提供给用户和软件方便的接口和环境;是计算机系统中最基本的系统软件。
应包括:
1)能有效地组织和管理四大资源的软件
2)合理地对各类作业进行调度和控制它们运行的软件
3)方便用户使用计算机的软件
计算机系统自上而下大致可以分为4部分:用户、应用程序、操作系统和硬件。如下图:
-
操作系统的基本特征
-
并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。操作系统的并发性是通过分时得以实现的。在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而微观上这些程序仍是分时交替执行的。操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。在内存中的多个程序都分别建立一个进程,它们就可以并发执行,这样提高系统资源的利用率和系统的吞吐量。
并行是指两个或多个事件在同一时刻同时发生。并行性需要有相关硬件的支持,如多流水线或多处理机硬件环境。
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行 -
共享:指系统中的资源可供内存中多个并发执行的进程共同使用。(调入内存的进程是当前执行的进程,它们共享系统资源)
互斥共享:当进程A要访问某资源时,必须先提出请求。若此时该资源空闲,系统便可将之分配给请求进程A使用。此后若再有其他进程也要访问该资源,只要A未用完就必须等待。仅当A进程访问完并释放系统资源后,才允许另一进程对该资源进行访问。这种资源共享方式称为互斥式共享。
把这种在一段时间内只允许一个进程访问的资源,成为临界资源(或独占资源)。同时访问:允许在一段时间内由多个进程“同时”对它们进行访问。“同时”是宏观意义上,微观上进程对该资源的访问是交替进行的。“同时”访问的典型资源是磁盘设备(访问文件等),一些用重入码编写的文件也可被“同时”共享,即允许若干个用户同时访问该文件。
-
并发和共享的关系:
并发性指计算机系统中同时存在着多个运行着的程序。
共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。并发和共享是多用户(多任务)OS的两个最基本的特征。它们是互为存在的条件
-
虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。前者是实际存在的,后者是用户感受到的。
时分复用技术,虚拟处理机技术,是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器的。利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU。它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。提高了处理机的效率。
空分复用技术,虚拟存储器技术。将一台机器的物理存储器变为虚拟存储器,从逻辑上扩充存储器的容量。是利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。提高内存的利用率。
-
异步:是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是以不可预知的速度向前推进。如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。
-
操作系统功能
-
操作系统作为计算机系统资源的管理者
在一个计算机系统中,通常都含有多种硬件和软件资源。归纳起来可将这些资源分为四类:
1)处理机管理
2)存储器管理
3)文件管理
4)设备管理 -
操作系统作为用户与计算机硬件系统之间的接口
用户可通过三种方式使用计算机,即通过命令方式、系统调用方式和图标——窗口方式来实现与操作系统的通信,并取得它的服务。
1)命令接口分为联机命令接口和脱机命令接口。- 联机命令接口又称交互式命令接口,适用于分时或实时系统的接口。可以理解为“用户说一句(命令),系统做一句(命令)”,强调了交互性。cmd,shell。
- 脱机命令接口又称批处理命令接口,适用于批处理系统,由一组作业控制命令组成。可以理解为“用户说一堆(命令),系统做一堆(命令)”,用户不能直接干预作业运行。bat文件。
2)程序接口(广义指令)
可以在程序中进行系统调用来使用程序接口。用户间接使用使用程序接口(系统调用)来请求OS中的服务。用户程序非系统调用。系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在核心态。
3)图标——窗口
一般是图形用户界面(GUI),如Windows、安卓等的图形化操作界面 -
补充
操作系统作为最接近硬件的层次
没有任何软件支持的计算机成为裸机。覆盖了软件的机器称为扩充机器,又称之为虚拟机。操作系统为编程人员提供的接口是程序接口,即系统调用。
用户程序只能通过系统调用的方式来请求内核为其服务,间接地使用各种资源。
系统缓存由操作系统管理,操作系统不提供管理系统缓存的系统调用。
系统开机后,操作系统的程序会被自动加载到内存中的系统区,这段区域是RAM。
库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),库函数属于用户程序而非系统调用,是语言或应用程序的一部分,可以运行在用户态。系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在核心态。未使用系统调用的库函数,其执行效率通常要比系统调用的高。使用系统调用时,需要上下文的切换及状态的转换(用户态->核心态)
操作系统的发展与分类
-
手工操作阶段(此阶段无操作系统)
-
批处理阶段(操作系统开始出现)
为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,出现了批处理系统。-
单道批处理系统(一个接一个地处理,减少机器空闲等待时间)
主要特征:单道性。内存中仅有一道监督程序,每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。
自动性。在顺利的情况下,作业能自动地逐个运行,而无须人工干预。
顺序性。先调入内存的作业先完成。
缺点:系统中的资源得不到充分的利用。是因为在内存中仅有一道程序,程序在发出I/O请求后,CPU便处于等待状态使CPU的利用率显著降低。
-
多道批处理系统(操作系统正式诞生)
为了进一步提高资源的利用率和系统吞吐量,引入了多道程序设计技术,形成了多道批处理系统。
允许多个程序同时进入内存并允许它们在CPU中交替地运行,程序共享系统中的各种硬/软件资源。
中断技术使得多道批处理系统和I/O设备可与CPU并行工作,提高了多道程序运行环境中CPU的利用率。
特点:
①多道。计算机内存中同时存放多道互相独立的程序。
②宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。
③微观上串行。内存中的多道程序轮流占有CPU,交替执行。
优点:
①资源利用率高。引入多道批处理能使多道程序交替运行,CPU处于忙碌状态;在内存中装入多道程序可提高内存的利用率,提高I/O设备的利用率。
②系统吞吐量高。系统开销小。
缺点:
①平均周转时间长。作业要排队依次进行处理,而作业的周转时间较长,通常需几个小时,甚至几天。
②无交互能力。用户不能进行交互。
与单道程序系统相比,多道程序系统的优点是CPU利用率高、系统吞吐量大以及I/O设备利用率高。
-
-
分时操作系统(解决了人机交互问题)
分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。一个时间片就是一段很短的时间。
分时操作系统是指多个用户通过自己的终端同时共享一台主机,用户可以同时与主机进行交互操作而互不干扰,用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。多路卡功能:及时接收多个用户键入的命令或数据。多路卡的作用是实现分时多路复用。
实现及时处理则需要采用两种方式:
作业直接进入内存。因为作业在磁盘上是不能运行的,所以作业应直接进入内存。
采用轮转运行方式。系统规定每个作业每次只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。分时系统的特征:
①多路性(同时性)。指允许多个终端用户同时使用一台计算机。
②独立性。指每个用户在各自的终端上进行操作,彼此之间互不干扰,给用户的感觉就像是他一人独占主机进行操作。
③及时性。指用户的请求在很短时间内获得响应。
④交互性。用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。 -
实时操作系统(有优先级)
时操作系统最主要的特征是将时间作为关键参数。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,要在严格的时限内处理完事件。资源利用率不是实时操作系统主要追求的目标,资源利用率低。实时系统的进程调度,通常采用抢占式的优先级高者优先算法。特点:及时性、可靠性
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
-
实时任务的类型:
周期性实时任务和非周期性实时任务周期性实时任务:外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外部设备。
非周期性实时任务:并无明显的周期性,但都必须联系着一个截止时间(最后期限)。它又分为:①开始截止时间,指某任务在某时间以前必须开始执行。②完成截止时间,指某任务在某时间以前必须完成。 -
硬实时任务和软实时任务
硬实时任务(HRT)是指必须满足任务对截止时间的要求,否则可能出现难以预测的后果。如导弹控制系统等。
软实时任务(SRT)是指能接受偶尔违法时间规定的事情发生。如信息查询系统。
-
-
网络操作系统和分布式计算机系统
网络操作系统是网络中各个计算机有机地结合起来,实现数据传送,资源共享和相互通信。
分布式操作系统:主要特点是分布性和并行性。系统中各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
操作系统的运行环境
计算机系统中,通常CPU执行两种不同性质程序:一种是操作系统内核程序;另一种是用户自编程序(即系统外层的应用程序,或简称“应用程序”)。内核是操作系统最重要最核心的部分,也是最接近硬件的部分,操作系统的功能未必都在内核中,如图形化用户界面 GUI。甚至可以说,一个操作系统只要有内核就够了(eg:Docker—>仅需Linux内核)
CPU有两种状态,核心态(又称核心态、内核态)和用户态(目态)
处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令和非特权指令。
处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令。
特权指令,是指计算机中不允许用户直接使用的指令,如I/O指令、置中断指令、内存清零指令、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。
拓展:CPU 中有一个寄存器叫 程序状态字寄存器(PSW),其中有个二进制位,1表示“核心态”,0表示“用户态”。
内核态->用户态:执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权。
用户态->内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。
注意:
操作系统内核需要运行在内核态。
操作系统的非内核功能运行在用户态。
所以采用微内核的话,需要频繁地在核心态和用户态之间切换。
中断和异常的概念
中断也称外中断,指来自CPU执行指令以外事件的发生,与当前执行的指令无关,时钟中断表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。
“中断”是让操作系统内核夺回CPU使用权的唯一途径。有时候应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令——陷入指令,该指令会引发一个内部中断信号。执行“陷入指令”,意味着应用程序主动地将CPU控制权还给操作系统内核。“系统调用”就是通过陷入指令完成的。
异常(内中断、例外、陷入(trap)),指源自CPU执行指令内部的事件,与当前执行的指令有关,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,异常不能被屏蔽,一旦出现应立即处理。
中断机制的基本原理:
不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。