第1章 计算机系统概述
1.1操作系统的基本概念
1.1.1操作系统的概念
软件是计算机系统的的灵魂,而软件的核心则为操作系统。
计算机自上而下大致分为四层,如图所示:
第1层 | 硬件 |
第2层 | 操作系统 |
第3层 | 应用程序 |
第4层 | 用户 |
操作系统是指控制和整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作和资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合,是计算机系统中最基本的系统软件。
1.1.2操作系统的特征
操作系统的基本特征:并发、共享、虚拟、异步
(1)并发
并发是指两个或者多个事件在同一时间间隔内发生。
注意同一时间间隔(并发)和同一时刻(并行)的区别。
(2)共享
是指系统中的资源可供内存中的多个并发执行的进程共同使用。
有两种方式,如下:
方式 | |
---|---|
互斥共享 | 一段时间内只允许一个进程访问该资源 |
同时访问 | 允许一段时间内由多个进程 “ 同时 ” 访问 |
(3)虚拟
虚拟是指把一个物理上的实体变为若干逻辑上的对应物。
(4)异步
多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的异步性
1.1.3操作系统的目标和功能
目标 | 提供的功能 |
---|---|
给多道程序提供良好的运行环境 | 处理机管理、存储器管理、设备管理、文件管理 |
方便用户使用操作系统 | 向用户提供接口 |
提供更方便的服务、更高的资源利用率 | 操作系统可扩充机器 |
1.2操作系统发展史
操作系统的发展历程如下图1.1所示:
(1)手工操作阶段(此阶段无操作系统)
用户在计算机上算题的所有工作都要人工干预。用户独占全机,资源利用率低;CPU等待手工操作,利用不充分。
(2)批处理阶段(操作系统开始出现)
解决人机矛盾及CPU和I/O设备之间的速度不匹配矛盾。
单道批处理系统:对作业的处理是成批进行的,内存中始终保持一道作业。特征有:自动性、顺序性、单道性
多道批处理系统:允许多个程序同时进入内存并允许他们在CPU中交替地运行,这些程序共享系统中的各种硬/软件资源。资源充分利用,系统吞吐量大,CPU和其他资源保持忙碌状态;但是用户响应的时间较长且无人机交互能力,用户不了解运行情况,不能控制计算机。
(3)分时操作系统
所谓分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。主要特征有:同时性、交互性、独立性、及时性
(4)实时操作系统
计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完接收的事件,目的是完成有时间限制的紧急任务且不需要时间片排队。实时操作系统的主要特点是:及时性和可靠性。
(5)网络操作系统和分布式计算机系统
网络操作系统是把计算机网络中的各台计算机有机的结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间数据的互相传送。特点是:网络中各种资源的共享和各台计算机之间的通信。
用于管理分布式计算机系统的操作系统称为分布式计算机系统,特点是:分布性和并行性,且若干计算机相互协助完成同一任务。
(6)个人计算机操作系统
是目前使用最广泛的操作系统,广泛的应用于文字处理、电子表格、游戏中,常见的有Windows、Linux、Macintosh等。
1.3操作系统运行环境
(1)处理器运行模式
计算机系统中,CPU执行的操作系统内核程序是用户自编程程序的管理者,且管理者要执行一些特权指令,而被管理者处于安全考虑不能执行这些指令。
特权指令:是指不允许用户直接使用的指令,如I/O指令、置中断指令、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令
非特权指令:是指允许用户直接使用的的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间(防止用户对系统造成破坏)。
大多数内核包括四方面:时钟管理、中断机制、原语、系统控制的数据结构及处理(进程管理,存储器管理和设备管理)。
(2)中断和异常的概念
发生异常或者中断时,运行用户态的CPU会立即进入核心态(通过硬件实现)。
定义 | |
---|---|
中断(外中断) | 是指来自CPU执行指令外部的事件 |
异常(内中断) | 是指来自CPU执行指令内部的事件 |
(3)系统调用
系统调用是指用户在程序中调用操作系统所提供的一些子程序,可视为特殊的公共子程序。
按功能分为如下几类:
设备管理、文件管理、进程控制、进程通信、内存管理
用户态到内核态的进入和退出,如下图所示:
1.4操作系统结构
随着操作系统功能的不断增多和代码规模的不断增大,提供合理的结构,对于降低操作系统复杂度、提升操作系统安全与可靠性来说变得尤为重要。
(1)分层法
(2)模块化
衡量模块的独立性有两个主要标准;
内聚性 | 指模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越好 |
耦合度 | 指模块间相互联系和相互影响的程度。耦合度越低,模块独立性越好 |
(3)宏内核
从操作系统内核架构划分,可分为宏内核和为内核。
宏内核,也称单内核或大内核,是指将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为用户程序提供高性能的系统服务。目前的主流操作系统都是基于宏内核架构。
(4)微内核
微内核架构,是指将内核中最基本的功能保留在内核,而将哪些不需要在核心态执行的功能移到用户态执行,降低内核的设计复杂性。
微内核的基本功能:进程(线程)管理、低级存储器管理、中断和陷入处理
微内核结构的优点:扩展性和灵活性、可靠性和安全性、可移植性、分布式计算
微内核主要是性能问题:频繁地在核心态和用户态之间进行切换,开销大,改善运行效率将频繁使用的系统服务移回内核,但又会使微内核容量明显增大。
(5)外核
不同于虚拟机克隆真实机器,另一种策略是对机器进行分区,给每个用户整个资源的一个子集。
外核机制减少了映射层,保持多个虚拟机彼此不发生冲突。
1.5操作系统引导
操作系统引导是指计算机利用CPU运行特定程序,通过程序识别硬盘,识别硬盘分区上的操作系统,最后通过程序启动操作系统。
引导过程:激活CPU、硬件自检、加载带有操作系统的硬盘、加载主引导记录MBR、扫描硬盘分区表、加载分区引导PBR、加载启动管理器,最后加载操作系统。
1.6虚拟机
概念:虚拟机是一台逻辑计算机,是指利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。
管理程序 | 特征 |
---|---|
第一类虚拟机(图1.7a) | 就像一个操作系统,且是唯一 一个 运行在最高特权级的程序 |
第二类虚拟机 (图1.7b) | 依赖于Windows、Linux等操作系统分配和调度资源的程序,很像一个普通进程 |
运行在两类虚拟机管理程序上的操作系统都称为:客户操作系统,对于第二类虚拟机管理程序,运行在底层硬件上的操作系统称为:宿主操作系统。
1.7本章疑难点
一、并行性与并发性的区别和联系
并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生,并发性是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但在单处理器系统中每个时刻却仅能有一道程序执行,因此微观上这些程序只能分时地交替执行。若在计算机系统中有多个处理器,则这些可以并发执行的程序便被分配到多个处理器上,实现并行执行,即利用每个处理器来处理一个可并发执行的程序。
二、特权指令与非特权指令
所谓特权指令,是指有特殊权限的指令,由于这类指令的权限最大,使用不当将导致整个系统崩溃,如清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等。若所有程序都能使用这些指令,则系统一天死机 n 次就不足为奇。为保证系统安全,这类指令只能用于操作系统或其他系统软件,不直接提供给用户使用。因此,特权指令必须在核心态执行。实际上, CPU 在核心态下可以执行指令系统的全集。形象地说,特权指令是那些儿童不宜的东西,而非特权指令是老少皆宜的东西。
为了防止用户程序中使用特权指令,用户态下只能使用非特权指令,核心态下可以使用全部指令。在用户态下使用特权指令时,将产生中断以阻止用尸便用特权指令。所以把用户程序放在用户态下运行,而操作系统中必须使用特权指令的那鄙分程予仕模心念卜运仃,保证了计篁机系
统的安全可靠。从用户态转换为核心态的唯一途径是中断或异常。
三、访管指令与访管中断
访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。
为什么要在程序中引入访管指令呢?这是因为用户程序只能在用户态下运行。若用户程序想要完成在用户态下无法完成的工作,该怎么办?解决这个问题要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。
处于用户态的用户程序使用访管指令时,系统根据访管指令的操作数执行访管中断处理程序,访管中断处理程序将按系统调用的操作数和参数转到相应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。
四、定义微内核结构OS的四个方面
1)足够小的内核。
2)基于客户/服务器模式。
3)应用“机制与策略分离”原理。机制是指实现某一功能的具体执行机构。策略则是在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。在传统的 OS 中,将机制放在 OS 内核的较低层中,把策略放在内核的较高层中。而在微内核 OS 中,通常将机制放在 OS 的微内核中。正因如此,才可以将内核做得很小。
4)采用面向对象技术。基于面向对象技术中的“抽象”和“隐蔽”原则能控制系统的复杂性,进一步利用“对象”“封装”和“继承”等概念还能确保操作系统的正确性、可靠性、易扩展性等。正因如此,面向对象技术被广泛应用于现代操作系统的设计之中。
转载:https://blog.csdn.net/weixin_51423778/article/details/127912381