# 操作系统的概念功能和目标

# 操作系统的概念

操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配:以提供给用户和其他软件方便的接口和环境:它是计算机系统最基本的系统软件

image-20230126095144155

  1. 操作系统是系统资源的管理者
  2. 向上层提供方便易用的服务
  3. 是最接近硬件的一层软件

# 操作系统的功能和目标

# 作为系统资源的管理者

# 提供的功能

  1. 处理机管理
  2. 存储器管理
  3. 文件管理
  4. 设备管理

# 目标

  1. 安全
  2. 高效

# 向上层提供方便易用的服务

image-20230126095650286

# 联机命令接口实例(Windows 系统)

连接命令接口 = 交互式命令(用户说一句,系统执行一句)

# 脱机命令接口实例(Windows 系统)

脱机命令接口 = 批处理命令接口(用户说一堆,系统执行一堆)

# 程序接口

可以在程序中进行系统调用来使用程序接口,普通用户不能直接使用程序接口,只能通过程序代码间接使用

# 作为最接近硬件的层次

  1. 需要实现对硬件机器的拓展
  2. 没有任何软件的计算机称为逻辑,在裸机之上安装操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强,使用更方便的机器
  3. 通常把覆盖了软件的汲取称为扩充机器,又称为虚拟机

# 操作系统的特征

# 并发

# 并发概念

指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生

# 并行概念

指的是多个事件在同一时刻发生

# 操作系统的并发性

计算机系统中同时运行着多个程序,这些程序宏观上看的同时运行的,微观上看是交替运行的

  1. 单核 CPU 同一时刻只能运行一个程序,各个程序只能并发执行
  2. 多核 CPU 同一时刻能运行多道程序,多个程序可以并行执行

# 共享

# 共享概念

资源共享,指的是系统中资源可供内存中多个并发执行的进程同时使用

# 两种资源共享

# 互斥共享

系统中某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源

# 同时共享

系统中的某些资源,允许一个时间段内由多个进程同时对他们进行访问

# 并发和共享的关系

  1. 并发性指计算机系统同时存在多个运行着的程序
  2. 共享性指系统中资源可提供多个并发执行的进程共同使用
  3. 如果失去并发性,系统中只有一个系统在运行,共享性会失去价值
  4. 如果失去共享性,则无法同时发送文件,就无法并发

# 虚拟

# 虚拟概念

物理上的实体变为若干个逻辑上的对应物,物理实体是实际存在的,而逻辑上对应物是用户感受到的

# 空分复用技术

虚拟存储器技术

# 时分复用技术

虚拟机处理器

如果失去并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了,因此,没有并发,就谈不上虚拟性

# 异步

# 异步概念

在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性

# 操作系统的发展与分类

# 手工操作阶段

image-20230126102147616

# 批处理阶段 —— 单道批处理系统

引入脱机输入 / 输出技术,并由监督程序负责控制作业的输入输出

image-20230420215246224

image-20230420215312043

  1. 优点:缓解了一定程度上的人机速度矛盾,资源利用率有所提升
  2. 却带你:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序,CPU 有大量事件实在空闲等待时间,资源利用率依旧低

# 批处理阶段 —— 多道批处理阶段

image-20230420215533372

# 分时操作系统

image-20230420215327824

分时操作系统:计算机以时间为单位轮流为每一个用户 / 作业服务,各个用户可通过终端与计算机进行交互

  1. 优点:用户请求可以被及时响应,解决了人机交互问题,允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在
  2. 缺点:不能优先处理一些紧急的任务,操作系统对各个用户 / 作业都是公平的,循环的为每个用户作业服务一个时间片,不区分任务的紧急性

# 实时操作系统

能够优先响应一些紧急任务,某些紧急任务不需要时间片排队

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件,实时操作系统主要特点是及时性和可靠性

# 硬实时系统

必须严格在规定时间内完成处理(导弹制导,自动驾驶等)

# 软实时系统

能接收偶尔违反时间规定(12306 火车订票系统)

# 操作系统运行机制

# 内核程序 & 应用程序

内核程序组成操作系统内核(Kernel)

# 特权指令 & 非特权指令

操作系统内核作为管理者,有时会让 CPU 执行一些特权指令

应用程序只能使用非特权指令执行

# 内核态 & 用户态

  1. 处于内核态时:说明此时正在运行的是内核程序,此时可以执行特权指令
  2. 处于用户态时:说明此时正在运行的是应用程序,此时只能执行非特权指令

# 中断和异常

# 中断的作用

中断会使 CPU 由用户态转变为内核态,使操作系统重新夺回对 CPU 的控制权

中断是让操作系统唯一夺回 CPU 使用权的唯一途径

# 中断类型

# 内中段

与当前执行指令有关,中断信号来源于中断内部(异常)

# 外中断

与当前执行命令无关,中断信号来源于 CPU 外部(中断)

# 中断分类

# 内中断(异常,例外)

# 陷阱,陷入(trap)

有陷入指令林发,用程序故意引发的

# 故障(fault)

有错误条件引起的,可能被内核程序修复,内核程序修复故障后会把 CPU 使用权还给程序,让它继续执行下去

# 终止(abort)

由致命错误引起,内核程序无法修复错误,因此一般不再将 CPU 的使用权还给终止的程序,而是直接终止该用户程序

# 外中断(中断)

# 时钟中断

# IO 请求中断

# 中断机制的基本原理

不同的中断信号,需要用不同的中断处理程序来处理,当 CPU 检测到中断信号后,会根据中断信号的类型取查询中断向量表,以此来找到相应的中断处理程序在内存中的存放位置

# 系统调用

# 系统调用意义

系统调用是操作系统提供给应用程序使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来获得操作系统内核的服务

# 系统调用与库函数的区别

普通应用程序 可直接进行系统调用,也可使用库函数,有的库函数还涉及系统调用,有的不涉及
编程语言 向上提供库函数,有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序编程更加方便
操作系统 向上提供系统调用,使得上层模拟程序请求内核的服务
裸机

image-20230126173344159

# 系统调用的过程

image-20230126173515275

传递系统调用参数 --> 执行陷入指令(用户态) --> 执行相应的内请求核程序处理系统调用(和心态) --> 返回应用程序

# 操作系统的体系结构

# 操作系统的内核

image-20230126175721068

内核时操作系统最基本,最核心的部分

实现操作系统内核功能的那些程序就是内核程序

image-20230126175827572

# 操作系统的体系结构

image-20230126175921230

# 大内核和微内核比较

# 大内核

  1. 将操作系统的主要功能模块都作为系统内核,运行在和心态
  2. 优点:高性能
  3. 缺点:内核代码庞大,结构混乱,难以维护

# 微内核

  1. 只把最基本的功能保留在内核
  2. 优点:内核功能少,结构清晰,方便维护
  3. 缺点:需要频繁的在核心态与用户态之间切换,性能低