就是小黑框,特点:用户说一句,系统做一句,就好比在小黑框里输入一个命令就只回复一个命令
可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用
系统调用:又称广义指令,类似于函数调用,是应用程序请求操作系统服务的唯一方式。
操作系统主要向用户提供命令接口和程序接口(系统调用),此外还提供图形接口,当然,图形接口其实是调用了系统调用而实现的功能。
需要实现对硬件机器的拓展
裸机:没有任何软件支持的计算机。
在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
通常把覆盖了软件的机器称为扩充机器,又称虚拟机。
指两个或多个事件在同一时间间隔内发生。这些事件 宏观上是同时发生的,但是 微观上是交替发生的
对比 -----> 并行:
指两个或多个事件在同一时刻同时发生。
例子:
重要考点:
单核CPU VS 多核CPU:
单核CPU同一时刻只能执行一个程序,各个程序只能并发执行。
多核CPU同一时刻可以同时执行多个程序,多个程序并行执行。
即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
例子:
指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
例子1:
例子2:
利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟存储器
如果失去了并发性,即系统只能串行地运行各种程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性
例子:
引入脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的输入、输出。
监督程序------>操作系统的雏形。
缓解了一定程度的人机速度矛盾,资源利用率有所提升。
分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。
多道批处理系统是实现作业自动控制而无须人工干预的系统,而分时系统是实现人机交互的系统。
能对控制对象做出及时反应,可靠性高,响应及时,但资源利用率低。
能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。
必须在绝对严格的规定时间内完成处理。
如:导弹控制系统,自动驾驶系统
能接受偶尔违反时间规定。
如:12306火车订票系统、银行管理系统。
在CPU设计和生产的时候就划分了特权指令和非特权指令,因此CPU执行一条指令前就能判断出其类型。
用户态-------->核心态:是由硬件完成
核心态-------->用户态:是由操作系统程序执行后完成的
“中断”是让操作系统内核夺回CPU使用权的唯一途径。
“中断”会使CPU从用户态变为内核态,使操作系统重新夺回对CPU的控制权。
故障异常和陷入异常属于软件中断(程序性异常)
终止异常和外部中断属于硬件异常。
外中断又可分为:可屏蔽中断、不可屏蔽中断,异常属于不可屏蔽中断。
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口是由一组系统调用组成。
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。
输入/输出指令(I/O指令)是特权指令,所以输入/输出指令要在核心态下才能运行。
特权指令只能由内核即操作系统使用,内核可以执行处理器能执行的任何指令,用户程序只能执行出特权指令外的指令。
常见的特权指令:
输入输出指令(I/O指令)、开中断指令、关中断指令、修改PSW指令
通道技术:通道是一种硬件(小型CPU),可以执行I/O指令,从而管理I/O设备的工作
系统调用:
目的是为了使系统更稳定、安全,防止用户非法操作,所以将系统的核心功能封装成系统调用,但在系统调用过程中需要用户态和核心态的切换,造成效率降低,所以在一些专业性较强、实时性较高的操作系统中,可以不提供系统调用,以换取效率,如火箭,卫星上使用的操作系统
时钟管理------->需要硬件定时器,定期发出时钟脉冲
地址映射------->需要地址变换相关的硬件机构
中断系统-------->如:中断向量地址形成部件
在内核态下,CPU可以执行任何指令,在用户态下CPU只能执行非特权指令。
特权指令只能在核心态下执行,非特权指令既可以在核心态下执行,也可以在用户态下执行(但是访管指令仅在用户态下执行)
发出系统调用是在用户态下
执行系统调用是在核心态下
| 常见的非特权指令 | 常见的特权指令 |
| — | — |
| 取数指令 | 开中断指令 |
| 存数指令 | 关中断指令 |
| 读时钟指令 | 写时钟指令(置时钟指令) |
| 加减乘除等算数运算指令 | 输入/输出指令(I/O指令) |
| 寄存器清零指令 | 写PSW寄存器的指令 |
| 压栈/弹栈指令(push/pop) | |
| 跳转指令(转移指令)(JMP) | |
| trap指令(陷入指令)(访管指令) | |
| 设置断点指令 | |
| | |
从用户态切换到内核态必定是通过“中断”实现。
只要发生中断,就需要对中断进行处理,也必然会切换到内核态。
操作系统内核需要运行在内核态
操作系统的非内核功能运行在用户态
功能分层设计
微内核:
内核足够小、基于客户/服务器模式(C/S模式)、应用“机制与策略分离”原理、采用面向对象技术
微内核:
由于微内核结构能有效支持多处理机运行,故非常适合于分布式系统环境。
同义术语:虚拟机管理程序/虚拟机监控程序/VMM/Hypervisor
虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟器(VM),每个虚拟机器都可以独立运行一个操作系统