操作系统——(1)计算机系统概述
本文最后更新于:5 个月前
1 操作系统的概念和功能
1.1 操作系统的概念(定义)
(1)操作系统是系统资源的管理者
(2)向上层提供方便易用的服务
(3)是最接近硬件的软件
1.2 操作系统的功能和目标
1.2.1 作为系统资源的管理者
执行一个程序前需要将该程序放到内存中,才能被CPU处理
1.2.2 向上层提供方便易用的服务
封装思想:操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可
GUI:图形化用户接口
用户可以使用形象的图形界面进行操作,而不再是需要记忆复杂的命令、参数
特点:用户说一句,系统跟着做一句
程序接口:可以在程序中进行系统调用
来使用程序接口。普通用户不能直接使用程序接口,只能提供程序代码间接
使用
系统调用类似于函数调用,是应用程序请求操作系统服务的唯一方式。
1.2.3 作为最接近硬件的层次
通常把覆盖了软件的机器称为扩充机器,又称为虚拟机。
处理机管理:进程创建、进程控制、进程同步、调度
存储器管理:
内存分配和回收
内存保护(确保每个用户程序仅在自己的内存空间运行;绝对不允许用户程序访问操作系统的程序和数据)
地址映射:逻辑地址转换为物理地址
内存扩充(虚拟存储技术):请求调入功能、置换功能
设备管理功能:
主要任务:1、完成I/O请求 2、提高CPU和I/O设备的利用率
缓冲管理:缓冲机制
设备分配
设备处理:设备驱动程序
文件管理功能:
文件存储空间管理
目录管理:按名存取
文件的I/O管理和保护
现代操作系统的新功能
系统安全:认证技术、密码技术、访问控制技术、反病毒技术
网络功能和服务:网络通信、资源通信、应用互操作
支持多媒体:接纳控制技术、实时调度、多媒体文件的存储
2 操作系统的特征
2.1 并发
并发:指两个或多个事件在同一时间间隔发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
并行:指两个或多个事件在同一时刻同时发生。
并发性是操作系统一个最基本的特征。
2.2 共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
2.2.1 并发和共享的关系
并发性
是指计算机系统同时存在着多个运行着的程序。
共享性
是指系统中的资源可供内存中多个并发执行的进程共同使用。
如果失去并发性,则系统只有一个程序正在运行,则共享性失去存在的意义;
如果失去共享性,则两个程序不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发
所以,并发和共享互为存在条件。
2.3 虚拟
虚拟
是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上的对应物(后者)是用户感受到的。
虚拟存储器技术中的“空分复用技术”
虚拟技术中“时分复用技术”,微观上处理机在各个微小的时间段内交替着为各个进程服务。
没有并发性,就谈不上虚拟性!!!
2.4 异步
异步
是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停。以不可预知的速度向前推进,这就是进程的异步性。
如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。
只有系统拥有并发性,才有可能导致异步性
3 操作系统的发展与分类
3.1 手工操作阶段
输入纸带,纸带机(打孔),计算机计算,输出纸带
主要缺点:用户独占全机、人机速度矛盾导致资源利用率低
3.2 批处理阶段——单道批处理系统
引入脱机输入/输出技术(用外围机+磁带,通过外围机把程序提前存到磁带里),并由监督程序负责控制作业的输入、输出
主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序,CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低
3.3 批处理阶段——多道批处理系统
操作系统正式诞生,用于支持多道程序并发运行
每次往内存中读入多道程序
主要优点:多道程序并发执行,共享计算机资源,资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量大
主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。没有在程序运行过程中输入一些参数)
多道批处理系统需要解决的问题:
处理机争用问题
内存分配和保护问题
I/O设备分配问题
文件的组织和管理问题
作业管理问题
用户与系统的接口问题
3.4 分时操作系统
主要优点:用户请求可以被及时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立
主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环为每个用户/作业服务一个时间片,不区分任务的紧急性
3.5 实时操作系统
实时任务的类型:
根据任务执行时是否呈现周期性来划分
根绝对截止时间的要求来划分
3.6 其他操作系统
分布式操作系统:
定义:基于软件实现的一种多处理机系统,是多个处理机通过通信线路互连而构成的松耦合系统
特征:分不行、透明性、同一性、全局性
功能:
单机处理机的功能
网络OS所拥有的全部功能
还包括:通信管理功能、资源管理功能、进程管理功能
嵌入式系统:
为了完成某个特定功能而设计的系统,或是有附加机制得到系统,或是其他部分的计算机硬件与软件的结合体
特点:系统内核小;具有可配置性
微机操作系统:
单用户任务操作系统
单用户多任务操作系统
多用户多任务操作系统
4 操作系统的运行机制
程序是如何运行的?
程序运行的过程其实就是CPU执行一条一条的机器指令的过程
“指令”就是处理机能识别、执行的最基本命令
4.1 特权指令VS非特权指令
操作系统内核作为“管理者”,有时会让CPU执行一些“特权指令”。如内存清零指令,这些指令影响重大,只允许“管理者”——即操作系统内核来使用
应用程序只能使用“非特权指令”
在CPU设计和生产的时候划分了特权和非特权指令,因此CPU执行一条指令前就能判断出其类型
4.2 内核态VS用户态
拓展:CPU中有一个寄存器叫程序状态字寄存器(PSW),其中有个二进制位,1表示内核态(核心态、管态),0表示用户态(目态)
4.3 内核态、用户态的切换
除了非法使用特权指令之外,还有很多时间会触发中断信号。一个共性是,但凡需要操作系统介入的地方,都会触发中断信号
5 中断和异常
5.1 中断的作用
CPU 上会运行两种程序,一种是操作系统的内核程序,一种是应用程序
“中断”是让操作系统内核夺回CPU使用权的唯一途径
如果没有“中断”机制,那么一旦应用程序上CPU运行,COU就会一直运行这个应用程序
5.2 中断的类型
5.2.1 内中断
与当前执行的指令有关,中断信号来源于CPU内部
若当前执行的指令是非法的,则会引发一个中断信号
有时候应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令——陷入指令(trap),该指令会引发一个内部中断信号
执行“陷入指令”,意味着应用程序主动地将CPU控制权还给操作系统内核。“系统调用”就是通过陷入指令完成的。
5.2.2 外中断
与当前执行的指令无关,中断信号来源于CPU外部
每一条指令执行结束时,CPU都会例行检查是否有外中断信号
1.时钟中断——由时钟部件(每隔一个时间片会给CPU发送一个时钟中断信号)发来的中断信号
2.I/O中断——由输入/输出设备发来的中断信号(当输入输出任务完成时,向CPU发送中断信号
5.3 中断机制的基本原理
6 系统调用
6.1 什么是系统调用,作用?
6.2 系统调用与库函数的区别
6.3 为什么系统调用是必须的?
如果两个进程可以随意地、并发地共享打印机资源,会导致内容混杂在一起
解决方法:由操作系统内核对共享资源进行统一的管理,并向上提供“系统调用”,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发出请求,内核会对各个请求进行协调处理
6.4 什么功能要用到系统调用?
6.5 系统调用的过程
注意:1.陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态
2.发出系统调用请求是在用户态,对系统调用的相应处理是在核心态下进行
7 操作系统的体系结构
7.1 操作系统的内核
原语是一种特殊的程序,具有原子性。也就是说,这段程序的运行必须一气呵成,不可被“中断”
内核是操作系统最基本、最核心的部分。实现操作系统功能的那些程序就是内核程序
注意:操作系统内核需要运行在内核态;操作系统的非内核功能运行在用户态
注意:变态的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性能
模块化结构:
将OS按功能划分成若干模块,并规定好各模块间的接口,称为:模块-接口法“
优点:提高OS设计的正确性、可理解性和易维护性
增强OS的可适应性
加速OS的开发过程
大部分现代OS采用可加载的内核模块来设计
内核有一组核心组件,提供核心服务
其他服务可在内核运行时动态实现(动态链接)
每个组件在需要时被加载到内核
微内核OS结构
基本概念
足够小的内核 应用“机制与策略分裂”原理
基于客户/服务器模式 采用面向对象技术
基本功能
进程管理、低级存储器管理、中断和陷入处理
微内核系统的优点和存在的问题
优点:提高了系统的可扩展性
增强了系统的可靠性
可移植性强
提供了对分布式系统的支持
融入了面向对象技术
缺点:运行效率有所降低
主要原因:在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和和进行用户/内核模型与上下文的多次切换
8 操作系统引导
操作系统引导——开机的时候,怎么让操作系统运行起来?
注:完整的操作系统初始化程序(即启动管理程序)可在个人目录下找到