Operating System

什么是操作系统

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

  1. 负责管理协调硬件、软件等计算机资源的工作
  2. 为上层的应用程序、用户提供简单易用的服务
  3. 操作系统是系统软件,而不是硬件

Basic Concepts of OS

Processes:进程管理,进程树
Address spaces:地址空间,物理内存、虚拟内存
Files:文件系统,文件和目录
Input/Output:输入输出,I/O
Protection:硬件和软件
The shell:命令提示符
System Call:系统调用

  • 用户程序和系统程序之间的接口
  • 在内核模式执行
  • POSIX API/ Windows Win32 API
  • 系统调用类型
    • 进程控制:创建、终结进程,获取/设置 进程参数
    • 文件操作:Create;delete;read;write;get/set file attributes
    • 设备管理:Request;Release;Read;Write
    • Socket:Connection:Open/Accept/Read/Write/Close
    • 信息维护:获取当前的日期,OS Version等

image.png

Characters of OS 操作系统的特征

Concurrency:并发

并发 Concurrency:逻辑并发(宏观上看是同时执行的,微观上,是划分为小的时间片,一段时间A用,一段时间B用)
并行 Parallel:物理并发(A、B两个程序真的在同时执行

Share:共享

CPU,Main Memory,Storage,I/O devices
Space,Time
互斥共享方式:一个时间段只允许一个进程访问该资源
同时共享方式:允许一个时间段由多个进程“同时”对它们进行访问

Virtualization:虚拟

虚拟式把物理上的实体变为若干个逻辑上的对应物。物理上实体是物理存在的,而逻辑上对应物是用户感受到的。
空分复用技术:虚拟内存,虚拟存储器技术
时分复用技术:单核CPU多线程,虚拟处理器
没有并发性,就谈不上虚拟性

Asynchronism:异步

多道程序环境下,资源有限,程序以不可预知的速度向前推进,就是进程的异步性。
只有系统拥有并发性,才有可能导致异步性。

https://cdn.nlark.com/yuque/0/2020/png/431085/1579173184991-de572ab8-06fe-4e7b-95ee-e40b454954eb.png#align=left&display=inline&height=346&originHeight=346&originWidth=904&status=done&style=none&width=904
知识点:
并发与并行的区别
并发与共享互为存在条件
没有并发和共享,就谈不上虚拟和异步,因此并发共享是操作系统的两个最基本的特征

OS Runtime Structure 运行机制体系结构

运行机制

两种指令:

  • 特权指令:如I/O指令、内存清零指令
  • 非特权指令:如运算指令

两种处理器状态:程序状态字寄存器(PSW)

  • 用户态:CPU只能执行非特权指令
  • 核心态:特权指令、非特权指令都可以执行

两种程序:

  • 内核程序:系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态。
  • 应用程序:普通应用程序只能执行非特权指令,运行在用户态。


单体系统:全部操作系统在内核态中以单一程序的方式运行
主程序:处理服务过程请求
服务过程:执行系统调用
使用过程:辅助服务过程

层次式系统:上层软件都是在下一层软件的基础上构建的。

微内核:
仅有一个模块(微内核)运行在内核态,剩下全都在用户态。MINIX 3 微内核
只有时钟管理、中断处理、原语等,不包括进程管理、存储器管理、设备管理等功能。


Client-Server模式(Web运行模式)
服务器:提供服务
客户端:使用服务
服务器与客户端之间通过消息传递方式
虚拟机:

  1. VM370
  2. 多道程序
  3. 一个比裸机更方便、有扩展界面的计算机。裸机硬件的精确复刻品
  4. hypervisor Ⅰ

外核(exokernel):
通过拆分硬件资源来分配给虚拟机,比如一块硬盘,某个虚拟机获得磁盘的0-1023盘块,而另一台虚拟机获得1024-2047盘块。
这样做减少了映射层,这样就少了一张表格来维护重映像磁盘地址。

中断和异常

中断机制的诞生

发生中断意味着需要操作系统介入,开展管理工作

中断的概念和作用

  1. 中断发生时,CPU会立即进入核心态
  2. 中断发生后,当前运行进程暂停运行,并由操作系统内核对中断进行处理
  3. 中断信号不同,处理方式不同

有了中断,才能实现多道程序并发执行
中断可以使CPU从用户态切换为核心态,被操作系统获得计算机的控制权。

用户态→核心态 中断
核心态→用户态 改变程序状态字

中断的分类

内中断(也称异常、例外、陷入(陷阱)):信号来源:CPU内部,与当前执行的指令相关。
自愿中断——指令中断
强迫中断
硬件故障:如缺页
软件中断:如软件出现异常Exception
外中断(中断——狭义的中断):信号来源:CPU外部,与当前执行的指令无关
外设请求:如IO完成操作
人工干预:用户强制停止进程

外中断处理过程:

  1. 每条指令执行完后检查是否有中断请求
  2. 如果检测到中断请求,保护被中断程序的CPU环境(保护现场)(如程序状态字、程序计数器、寄存器)
  3. 根据中断信号处理中断程序
  4. 恢复原程序的CPU环境(恢复现场)并退出中断,返回原程序继续执行

系统调用

什么是系统调用


程序接口就是由一组系统调用来组成的

应用程序通过系统调用请求操作系统的服务。需要访问系统资源,都需要系统代为完成,所以需要系统调用,这样可以保证系统的稳定性和安全性,防止用户的非法操作。
系统调用会让CPU从用户态进入核心态

系统调用 & 库函数

系统调用是操作系统向上层提供的接口
有些库函数是对系统调用的进一步封装
当今应用程序大多通过高级语言直接or间接进行系统调用

系统调用背后过程

  1. 传递系统调用参数
  2. 执行陷入(trap、int)指令
  3. 执行系统调用相应服务程序
  4. 返回用户程序

操作系统的管理功能

  • 进程管理
  • 存储管理
  • 设备管理
  • 文件管理
  • 作业管理