• CTSS:compatible Time-Sharing System
  • MULTICS:Multiplexed Infomation and Computing System 多任务系统

深入观察操作系统

资源管理的视角

计算机系统的资源

硬件资源
处理器、内存、外设
信息资源
数据、程序

管理的视角

  • 处理器资源:那个程序占有处理器运行?
  • 内存资源:程序/数据在内存中如何分布?
  • 设备管理:如何分配、去配和使用设备? — IO设备等外设都是由操作系统统一管理,防止造成无序状态
  • 信息资源管理:如何访问文件信息?
  • 信号量资源:如何管理进程之间的通信

屏蔽资源使用的底层细节

驱动程序:最底层的、直接控制和监视各类硬件(或文件)资源的部分
职责是隐藏底层硬件的具体细节,并向其他部分提供一个抽象的、通用的接口
比如说:打印一段文字或一个文件,既不需知道文件信息存储在硬盘上的细节,也不必知道具体打印机类型和控制细节

资源的共享方式

独占使用方式(时分复用)
如:打印机在一个时间段内只能被一个进程独立使用
并发使用方式
如:一个文件可以同时被多个进程一起读

资源分配策略

  • 静态分配方式:进程运行前一次拿到全部独占资源
    • 资源使用效率低
  • 动态分配方式:使用资源前临时申请
    • 可能产生竞争资源的死锁
    • 并发访问的难题-详见第六章
  • 资源抢占方式
    • 被抢夺资源的进程需要回滚执行

控制程序执行的视角

多道程序同时计算

CPU速度与I/O速度不匹配的矛盾,非常突出 – CPU以摩尔定律的速度发展,IO设备的速度受制于机械设备
只有让多道程序同时进入内存争抢CPU运行,才可以够使得CPU和外围设备充分并行,从而提高计算机系统的使用效率。关键是提高CPU的利用率
并行:在同一个时间点有两个事件在同时发生。
并发:在某一个时间区间内,两件事情交替发生。
image.png

多道程序设计

指让多个程序同时进入计算机的主存储器进行计算

多道程序设计的特点

  • CPU与外部设备充分并行
  • 外部设备之间充分并行
  • 发挥CPU的使用效率
  • 提高单位时间的算题量 — 系统整体性能得到了优化
  • 但是,单道程序的运算时间会增加

多道程序系统的实现

  • 为进入内存执行的程序建立管理实体:进程
  • OS应能管理与控制进程程序的执行
  • OS协调管理各类资源在进程间的使用
    • 处理器的管理和调度
    • 主存储器的管理和调度
    • 其他资源的管理和调度

多道程序系统的实现要点

  • 如何使用资源:调用操作系统提供的服务例程(如何陷入操作系统)
  • 如何复用CPU:调度程序(在CPU空闲时让其他程序运行)
  • 如何使CPU与I/O设备充分并行:设备控制器与通道(专用的I/O处理器)
  • 如何让正在运行的程序让出CPU:中断(中断正在执行的程序,引入OS处理)

内核是中断驱动的 Reactive

操作控制计算机的视角

计算机系统操作方式

  • OS规定了合理操作计算机的工作流程
  • OS的操作接口——系统程序

OS提供给用户的功能级接口,为用户提供的解决操作计算机和计算共性问题的所有服务的集合
OS的两类作业级接口

  • 脱机作业控制方式:作业控制语言
  • 联机作业控制方式:操作控制命令

脱机作业控制方式

OS:提供作业说明语言
用户:编写作业说明书,确定作业加工控制步骤,并与程序数据一并提交
操作员:通过控制台输入作业
OS:通过作业控制程序自动控制作业的执行
例:批处理OS的作业控制方式,UNIX的shell程序,DOS的bat文件

脱机输入/输出技术是为了解决CPU和I/O设备之间速度不匹配的矛盾而提出的,此技术减少了CPU的空闲等待时间,提高了I/O速度。其输入/输出方式如下图所示。
94d41989dc954dfba4579a23c42a0f89.jpg
为解决低速输入设备与CPU速度不匹配的问题,可以将用户程序和数据在一台外围机的控制下,预先从低速输入设备(纸带机)输入到输入带上,当CPU需要这些程序和数据时,再直接从输入带高速输入到内存,从而大大加快输入速度,减少CPU等待输入的时间,这就是脱机输入技术。
类似地,当程序运行完毕或告一段落,当CPU需要输出时,无须直接把计算结果送至低速输出设备(打印机),而是高速地把结果送到输出带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是脱机输出技术。若输入/输出操作在主机控制下进行,则称为联机输入/输出。
采用脱机输入/输出技术后,低速I/O设备上数据的输入/输出都在外围机的控制下进行,而CPU只与高速的输入带及输出带打交道,从而有效地减少了CPU等待慢速设备输入/输出的时间。

联机作业控制方式

计算机:提供终端(键盘/显示器)
用户:登录系统
OS:提供命令解释程序
用户:联机输入操作控制命令,直接控制作业步的执行
例:分时OS的交互控制方式

命令解释程序

命令解释程序:接受和执行一条用户提出的对作业的加工处理命令
当一个新的批作业被启动,或新的交互型用户登录进系统时,系统就自动地执行命令解释程序,负责读入控制卡或命令行,作出相应解释,并予以执行
会话语言:可编程的命令解释程序
图形化的命令控制方式
多通道交互的命令控制方式
image.png

image.png

人机交互的角度

操作系统的人机交互部分

OS改善人机界面,为用户使用计算机提供良好的环境
人机交互设备包括传统的终端设备和新型的模式识别设备
OS的人机交互部分用于控制有关设备运行和理解执行设备传来的命令
人机交互功能是决定计算机系统友善性的重要因素,是当今OS研发热点

人机交互的初期发展

交互式控制方式

  • 行命令控制方式:1960年代开始使用
  • 全屏幕控制方式:1970年代开始使用

斯坦福研究所提出的发展计划

  • 始于1960年代,1980年代广泛应用
  • 强调人而不是技术是人机交互的中心
  • 代表性成果:鼠标、菜单与窗口控制

人机交互发展-WIMP界面

缘起:70年代后期Xerox的原型机Star
特征:窗口(Windows) 、图标(Icons)、菜单(Menu) 和指示装置(PointingDevices)为基础的图形用户界面WIMP
得益:Apple最初采用并大力推动
时间:1990年代开始广泛使用
不足:不允许同时使用多个交互通道,从而产生人-机交互的不平衡

程序接口的视角

操作系统的程序接口

操作系统的程序接口:操作系统为程序运行扩充的编程接口
系统调用:操作系统实现的完成某种特定功能的过程;为所有运行程序提供访问操作系统的接口
POSIX支持

系统调用的实现机制

  • 陷入处理机制:计算机系统中控制和实现系统调用的机制。 用户程序陷入系统程序
  • 陷入指令:也称访管指令,或异常中断指令,计算机系统为实现系统调用而引起处理器中断的指令。 内核也称为管态
  • 每个系统调用都事先规定了编号,并在约定寄存器中规定了传递给内部处理程序的参数

系统调用的实现要点
编写系统调用处理程序
设计一张系统调用入口地址表,每个入口地址指向一个系统调用的处理程序,并包含系统调用自带参数的个数
陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场
image.png

  • 特权指令只能在内核空间中使用
  • 系统调用没有建立名空间,只能按号调用
  • 在用户态和内核态中不断切换
  • CPU在内核态中管理,需要消耗一段时间,但不能过多消耗
  • 模式切换:类似C/S client(请求方的进程) 与 server(应答方的进程),建立了请求应答的关系。特权指令被封装在内核态中,用户态无法直接执行相关指令,所以需要通过接口请求内核的服务
  • 保护CPU现场:为了被停下来的进程A再恢复时,仍然能够从停止的地址开始(因为内核空间处理完后,处理器会继续调度,不一定会继续执行A)

Linux系统调用执行流程

image.png

image.png

dispatch 查系统调用的入口地址表

模式切换

本质:修改模式位
用户:mode = 1
内核:mode = 0
image.png

系统结构的视角

微内核:缩小内核的规模。
process要获得文件系统,需要先内核发起请求,再发给文件系统,然后再返回给内核,再返回给process,时间延长
image.png