操作系统原理及安全
第一章 概论
“原理 机制 算法”
1.1 操作系统的概念
计算机系统由软件和硬件组成。
操作系统是配置在计算机硬件上的第一层软件,是对硬件的首次扩充。
它位于硬件与其他软件之间,是所有其他软件运行的基础。
In short:操作系统是管理计算机硬件的程序。操作系统并没有公认且统一的精确定义
1.2 三个重要概念
-
资源复用
- 共享地使用资源,解决资源不足的问题
- 可以分为:
1.时间复用:多个用户或程序轮流地使用某个资源,如CPU使用
2.空间复用:多个用户或程序同时使用资源的一部分,不需排队,如内存使用
-
资源虚化
- 让一个物理设备变成多个相对独立的对应物,也称虚拟性。这为资源复用提供里技术支持
-
资源抽象
- 化繁为简:把具体的资源管理变为较统一、简单的管理方式
- 对内封装细节,对外提供管理对象和访问接口
- 解决资源复杂的问题
- e.g.
1.进程抽象
2.虚存抽象
3.文件抽象
1.3 操作系统的类型
- 最基础的操作系统类型:
1.批处理操作系统:
- 批处理技术:计算机系统对一批作业自动进行处理的一种技术。
- 单处理机系统中多道程序运行的特点:
1.多道:内存中同时存放多道相互独立的程序
2.宏观上并行
3.微观上串行
4.提高了效率(单位时间的计算量up)但对每个程序来说,却延长了计算时间。系统资源利用率、吞吐率的提高是以用户的响应时间为代价的。
2.分时操作系统
- 分时技术:把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。(像一个循环队列)
3.实时操作系统
- 实时系统:指系统能及时响应外部事件的请求,在规定的时间内完成处理并控制时实任务协调一致地运行。(及时可靠)
1.4 操作系统的基本特征
操作系统的4个基本特征:并发性、共享性、虚拟性、异步性(或不确定性)。
- 1.并发(Concurrency)性:多个事件在同一时间间隔内发生
注意:并行性是指同一时刻内~。 - 2.共享性:系统中的资源可供多个并发执行的进程共同使用。
- 3.虚拟性:把物理上的实体变成逻辑上的对应物。
- 4.异步性:表现为多个作业的执行过程是走走停停的,其执行顺序和每个作业的执行时间是不确定的。
1.5 操作系统的作用和功能
-
作用:
1.OS作为用户与计算机硬件之间的接口。
操作系统改造和扩充过的计算机不但功能更强,使用也更为方便。用户可以直接调用系统提供的各种功能,而无需了解软硬件本身的细节,为用户提供了一个与底层细节无关可管理的运行环境,对于用户来讲OS便成为他与计算机硬件的一个接口。
2.OS作为计算机系统的资源管理者。
3.OS作为虚拟计算机。
操作系统是紧靠硬件的第一层软件。计算机上覆盖操作系统后,可扩展基本功能,为用户提供一台功能显著增强、使用更加方便、安全可靠性更好、效率明显提高的机器,称为虚拟计算机(Virtual Machine)
-
主要功能:
1.处理器管理 :主要任务是对处理器的分配和运行实施有效管理。
2.存储器管理 :主要任务是方便用户使用存储器,提高存储器利用率,从逻辑上扩充内存。
3.设备管理 :设备分配、缓冲管理、设备驱动、设备独立性。
4.文件管理 :主要任务是对文件进行管理,方便用户使用并保证文件安全性。
1.6 操作系统提供的服务和接口
-
服务:
1.程序执行:把程序载入内存并运行。2.输入输出操作:系统统一管理设备,为用户程序的运行提供I/O服务。
3.信息保存(文件管理系统):系统为用户提供文件读写等服务。
4.通信服务:提供进程间的通信服务。
5.错误检测及报告:能对用户程序运行过程中出现的错误进行检测并及时报告给用户。
6.资源分配:为进程的运行分配资源,如CPU等。
7.统计:统计用户使用资源的类型和数量。
8.保护:对计算机中存储的信息进行保护,确保资源的访问是受控的。
-
接口:
OS向用户提供了三类接口:
1.命令接口(操作接口):操作命令
2.程序接口:程序接口由一组系统调用命令组成。用户通过使用这些系统调用命令来请求操作系统提供的服务。
系统调用:由操作系统提供的一个或多个子程序模块实现的。可以分为设备管理、文件管理、进程控制、进程通信、内存管理。
- 为执行系统调用命令做准备:主要工作是保留线程,并把系统调用命令的参数放入指定存储单元。
- 执行系统调用:根据系统调用命令的编号找到子程序的入口地址,然后转去执行。
- 系统调用命令执行完成后的处理:主要工作是恢复现场,并把系统调用的返回参数送入指定存储单元。
-
系统调用与过程调用的区别:
1.运行状态不同:系统调用在核心态下运行,子程序在用户态下运行。
2.进入方式不同:系统调用通过中断进入,以实现运行状态的改变;子程序直接调用不涉及运行状态的改变。
3.图形接口(图形式命令接口)GUI:鼠标、桌面、图标
1.7 操作系统的运行环境和内核结构
-
操作系统的运行环境:
计算机与硬件提供的支持,构成了现代操作系统的运行环境。包括:处理器、存储器、设备、时钟、中断。 -
操作系统根据运行环境可分为:
1.系统初启程序:由时钟中断、外设中断所驱动。
2.服务程序:面向用户态,中断驱动。
3.系统内部模块:核心态,中断驱动。
-
操作系统的内核结构:
-
内核是操作系统的构件,或称基本单位。
-
内核作用:
1.为进程提供管理:进程难于自己管理自己,同时也难于用硬件实现。
2.需要一个软件对硬件处理器及相关资源进行首次改造,为进程执行提供良好的运行环境。
-
内核的基本功能:
1.中断处理:截获中断,转向中断处理例程。
2.短程调度:CPU调度,保存和恢复现场。
3.原语管理:原语是不可中断过程。
-
内核的基本属性:
1.内核是由中断驱动的。
2.内核的执行是连续的。
3.内核在屏蔽中断状态下执行。
4.内核可以使用特权指令。
-
-
四种主要的内核机构:
1.模块结构:功能独立的模块,全局相联构成一个整体。
2.层次结构:分类模块成几层。
3.微内核结构:内核(消息传递)+以C/S方式活动的进
程。4.虚拟机结构:Hypervisor、guestOS、HostOS;
-
再细分为本地虚拟化(type1)与主机虚拟化(type2)。
-
全虚拟化与半虚拟化(有无添加专门的虚拟化辅助指令)
-
- 硬件虚拟化:为了提高虚拟化性能,硬件厂商内置了相应的指令集,是虚拟化技术更接近物理机的速度,但仍不足、仍有提高空间。
-
操作系统设计的一个原则:
机制(Mechanism)与策略(Policy)分离原则:
- 机制——特定功能的函数
- 策略——如何使用函数(与内核无关)