第一章 操作系统概论
[TOC]
1. 操作系统的概念
(1). 计算机系统的层次结构
[图片上传失败...(image-1c07ea-1582351565368)]
操作系统:
- 负责管理协调硬件,软件等计算机资源的工作
- 为上层的应用程序,用户提供简单易用的服务
- 是系统软件,而不是硬件
(2). 操作系统的概念
操作系统(Operating System, OS)是指空值和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,与提供给用户和其他软件方面的接口和环境,它是计算机系统中最基本的系统软件.
(3). 操作系统的功能和目标
作为系统资源的管理者,操作系统提供的功能有:处理剂管理,存储器管理,文件管理,设备管理.要实现的目标是安全且高效的完成以上功能.
作为用户和计算机硬件之间的接口,操作系统提供的功能有:命令接口(联机命令接口和脱机命令接口),程序接口和GUI.目标是方便用户使用.其中命令接口允许用户直接使用(联机命令接口:用户说一句,系统做一句(终端中的交互式命令).脱机命令接口:用户说一堆,系统做一堆(.sh文件)).程序接口允许用户通过程序间接使用,由一组系统调用组成.
作为最接近硬件的层次,需要提供的功能和目标:实现对硬件机器的拓展.
2. 操作系统的特征
其中并发和共享是两个最基本的特征,二者互为存在条件,
(1). 并发
并发是指两个或者多个事件在同一时间间隔内发生,在宏观上是同事发生的,但在微观上是交替发生的.
容易混淆的是并行:指两个或者多个事件在同一时刻同时发生.
当今的多核处理器,每个核心之间是并行处理程序的,每个核心自己并发执行多个程序.异步xing
(2). 共享
共享就是资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用.
两种资源共享方式:
- 互斥共享方式:一个时间只允许一个进程访问该资源(QQ和微信同时视频聊天占用摄像头)
- 同事共享方式:允许一个时间段内有多个进程"同时"对它们进行访问(这里的同时类似并发中的微观上交替访问).(QQ和微信同时发送文件,访问硬盘)
(3). 并发和共享的关系
并发性是指计算机系统中同事存在这多个运行着的程序.共享性是指系统中的资源可供内存中多个并发执行的进程共同使用.二者互为条件.
(4). 虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物.物理实体是实际存在的,而逻辑上的对应物是用户感受到的.
虚拟存储器技术可以让实际内存只有4GB,但在用户看来内存似乎远大于4GB.(空分复用技术)
虚拟处理器技术可以让单核的CPU同时运行多个程序,在用户看来似乎有多个CPU一样.(时分复用技术)
如果失去了并发性,那么就谈不上并发性了.
(5). 异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进.(资源占用导致阻塞)
系统拥有并发性,才有可能导致异步性.
3. 操作系统的发展与分类
(1). 手工操作阶段
无操作系统,纸带打孔时代.
CPU速度远大于输入输出,且用户独占全机,导致资源利用率极低.
(2). 单排批处理阶段
由外围机将多个纸带机的输入存储在磁带中,组成工作队列,计算机按照队列执行任务.
解决了一定程度的人机速度矛盾,资源利用率有所提升.缺点在于内存中只能有一道程序运行,CPU还是有大量的空闲时间.
处理作业的过程:读入作业1-->计算作业1-->输出作业1-->读入作业2-->计算作业2-->输出作业2-->读入作业3-->计算作业3-->输出作业3
(3). 多道批处理阶段
计算机一次从磁带中读入多道程序,程序会并发的执行,需要中断技术的支持.操作系统正式诞生.
优点:并发执行,共享计算机资源,资源利用率大大提升,系统吞吐量大.
缺点:用户响应时间长,没有人机交互.
处理作业的过程:读入作业1-->计算作业1(同时读入作业2)-->输出作业1(同时计算作业2,读入作业3)-->计算作业3(同时输出作业2)-->输出作业3.
(4). 分时操作系统
计算机以时间片为单位轮流为各个用户/作业服务.
优点:用户请求可以被即时响应,解决了人机交互问题
缺点:不能优先处理一些紧急任务.
(5). 实时操作系统
计算机系统接收到外部信号后即时进行处理,并且要在严格的实现内处理完成.主要特点是及时性和可靠性.
优点:能够响应一些紧急任务,这种紧急任务不需要排队.
可以分为:
- 硬实时操作系统:必须在绝对严格的时间内完成处理(导弹控制系统等)
- 软实时操作系统:能够接受偶尔违反时间规定
(6). 其他几种操作系统
网络操作系统:将网络中的得得计算机邮寄结合起来,实现网络中各种资源的共享和各台计算机之间的通信.
分布式操作系统:分布性和并行性.系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行,协同完成这些任务.
4. 操作系统的运行机制和体系结构
(1). 运行机制
操作系统有两种指令:==特权指令==(内存清零)和==非特权指令==(普通的运算指令).两种处理器状态:==用户态==(只能执行非特权指令)和==核心态==(可以执行特权指令),由程序状态寄存器(PSW)中的某标志位来标识状态.
那么运行在操作系统的程序也可以被分为==内核程序==和==应用程序==.内核程序运行在核心态,可以执行特权指令和非特权指令.应用程序运行在用户态,只能执行非特权指令.
(2). 操作系统内核
内核是计算机上配置的底层软件,是操作系统最基本,最核心的部分.实现操作系统内核功能的那些程序就是内核程序.
(3). 操作系统的体系结构
操作系统分为大内核和微内核两种.大内核操作系统将主要功能模块都作为系统内核,运行在核心态.而微内核操作系统只将最基本的功能保留在内核,复杂的功能调用系统内核中的基本功能.
大内核相对微内核性能更好,因为一个功能模块在大内核操作系统中不需要多次调用系统内核,直接一次性在内核中做好就可以了.但缺点是内核代码庞大,结构混乱,难以维护.
微内核优点在于内核功能少,结构清晰,缺点是需要频繁的在用户态和核心态之间切换.
5. 中断和异常
(1). 中断机制的诞生
多道程序并发执行需要操作系统不定时的切换正在执行的任务.
中断机制的本质就是需要操作系统介入,开展管理工作.
- 当中断发生后,CPU立即进入核心态
- 当中断发生后,当前运行的进程会被暂停,并由操作系统对终端进行处理
- 对于不同的中断信号,操作系统会进行不同的处理
==中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权.==
(2). 中断的分类
(3). 外中断的处理过程
- 执行完每个指令之后,CPU都会检查当前是否有外部中断信号.
- 如果检测到外部中断信号,则需要保护被中断进程的CPU环境(保存).
- 根据中断信号类型转入响应的中断处理程序.
- 恢复原进程的CPU环境并退出中断,返回原进程继续向下执行.
6. 系统调用
(1). 什么是系统调用
操作系统作为用户和硬件之间的接口,需要向上提供一些简单的服务,主要包括命令接口(面向用户,DOS,Linux命令等)和程序接口(面向应用程序).
操作系统向各个进程提供系统资源时,只能由用户进程以系统调用的形式进行请求,操作系统会对各个请求进行协调管理.这样可以保证系统的稳定性和安全性.
系统调用相关处理涉及到了对系统资源的管理,对进程的的控制等等.这些功能需要执行特权指令,因此系统调用的相关处理需要在核心态下进行.
(2). 系统调用的过程
程序中进行系统调用时,对应的汇编语言指令中会使用==陷入指令(int指令)==将CPU的使用权交给操作系统,进入==核心态==.陷入指令会带有一系列==参数==,是为了告诉操作系统此时应当进行的是那种系统调用.系统调用完成后CPU交还给应用程序,继续后面的指令.