少女祈祷中...

第一章 计算机操作系统概述

一、计算机系统

1、计算机系统概览

电子数字计算机:能够自行按照已设定的程序进行数据处理的电子设备

软件和硬件相结合,面向系统,侧重应用

用户视图:

2、计算机硬件系统

计算机硬件系统的组成

中央处理器

  • 运算单元
  • 控制单元

主存储器

外围设备

  • 输入设备
  • 输出设备
  • 存储设备
  • 网络通信设备

总线

当今计算机硬件经典结构和主流程序方式

总线

计算机各种功能部件之间传送信息的公共通信干线(CPU,内存,输入输出设备)

总线包括:

  • 一组控制线
  • 一组数据线
  • 一组地址线

总线的类型:

  • 内部总线:用于CPU芯片内部连接各元件
  • 系统总线:用于连接CPU、存储器和各种I/O模块等主要部件
  • 通信总线:用于计算机系统之间通信

中央处理器CPU

计算机的运算核心和控制单元,包括:

  • 运算逻辑部件
  • 寄存器部件
  • 控制部件

处理器与寄存器

存储器

外围设备

I/O控制方式:轮询/中断/DMA

3、计算机软件系统

组成:

  • 系统软件(操作系统,实用程序(方便用户所设,如文本编辑等)、语言处理程序、数据库管理系统)
  • 支撑软件(接口软件,工具软件,环境数据库)
  • 应用软件,用户按其需要自行编写的专用程序

程序员视图:

软件开发的不同层次:

  • 计算机硬件系统:机器语言
  • 操作系统之资源管理:机器语言+广义指令
  • 操作系统之文件系统:机器语言+系统调用
  • 数据库管理系统:+数据库语言
  • 语言处理程序:面向问题的语言

程序执行过程:

二、计算机操作技术

1、计算机操作技术的发展

手工操作:开关置内存地址/机器指令,按“装入地址”/“装入数据”/“运行”按钮

装入程序的引进:卡片和纸袋描述指令数据,自动化程序装入

引入汇编语言:汇编程序和汇编语言程序在计算机上形成可执行代码,然后输入数据得到运行结果

引入高级语言:先高级语言编译成目标代码,再连接程序形成可执行代码,最后输入数据得到运行结果

简单批处理系统的操作控制

引入作业控制语言,用户编写作业说明书,操作员控制计算机成批输入作业

屏蔽了硬件处理细节。I/0中断出现,实现CPU与I/O设备并行;磁带设备出现,输入方式得到提高

操作系统与自动化操作系统

能否同时输入作业重叠时间?需要多道程序同时执行,高速外存储设备

磁盘设备出现,实现计算机自动化控制

2、计算机操作系统

操作系统:简称OS,激素那几系统最基础的系统软件,管理软硬件资源,控制程序执行。为用户使用计算机提供良好的运行环境

  • 用户角度:管理资源,扩充硬件,控制程序执行
  • 人机交互:用户与机器的接口
  • 系统结构:大型软件系统,层次式模块化的程序结构

操作系统的组成

  • 进程调度子系统
  • 进程通信子系统
  • 内存管理子系统
  • 设备管理子系统
  • 文件管理子系统
  • 网络管理子系统
  • 作业控制子系统

操作系统的类型

操作控制方式看:

  • 多道批处理操作系统,脱机操作系统
  • 分时操作系统,交互式控制方式
  • 实时操作系统

应用领域分类

  • 服务器操作系统(Linux)
  • 并行操作系统
  • 网络操作系统
  • 分布式操作系统
  • 个人机操作系统(Windows)
  • 手机操作系统(Android)
  • 嵌入式操作系统
  • 传感器操作系统

三、深入观察操作系统

1、资源管理的视角

硬件资源:处理器、内存、外设

信息资源:数据、程序

屏蔽资源使用的底层细节:驱动程序(直接监视各类硬件资源,并向上提供接口)

资源的共享方式:独占/共享

资源的分配策略:静态分配(运行前一次拿到全部,使用效率低),动态分配(使用前临时申请,会有死锁),资源抢占方式(被抢占资源的进程需要回滚执行)

2、控制程序执行的视角

多道程序同时计算,同时假如内存抢CPU,才可以使外围设备充分运行,提高效率

多道程序处理器利用率计算:找出图中一个重复的区间,答案即为处理器占用时间区间的总时间\frac{处理器占用时间}{区间的总时间}

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

注意:不是多线程(一个进程中分多个线程)或流水线(一个线程中的多条指令同时执行)

特点:

  • CPU与外部设备充分并行
  • 外部设备之间充分并行
  • 发挥CPU的使用效率
  • 提高单位时间的算题量
  • 但是,单道程序的运算时间会增加

多道程序系统的实现:

进程:为进入内存执行的程序而建立的管理实体

OS管理与控制进程程序的执行,协调管理各类资源在进程中的使用

  • 处理器的管理和调度
  • 主存储器的管理和调度
  • 其他资源的管理和调度

实现要点:

  • 使用资源:调用操作系统提供的服务例程
  • 复用CPU:调度程序(CPU空闲时安排一个程序来用)
  • CPU与I/O充分并行:设备控制器与通道
  • 运行的程序让出CPU:中断

多道程序设计学习内容:

3、操作控制计算机的视角

系统操作方式:操作接口:系统程序

两类作业级接口:

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

脱机作业控制方式

OS:提供作业说明语言;用户:编写作业说明书,确定作业加工控制步骤;操作员:控制台输入作业;OS:作业控制程序自动控制作业执行

用户提交的是作业而非单条指令,然后电脑后续再执行。

联机作业控制方式

计算机:提供终端;用户:登录系统;OS:提供命令解释程序;用户:练级输入操作控制命令,直接控制作业步的执行(分时OS的交互控制方式)

用户是通过一条条命令实时输入控制的,例如Windows的powershell就是一个联机作业控制方式

命令解释程序:接收和执行一条命令(由用户提出,用于对作业加工处理)

处理过程:OS启动命令解释程序,等待输入(键盘中断、鼠标点击等)。用户每次输入一条命令就中断一次

  • 前台命令:在终端中占用当前的会话,执行结束后再次输出
  • 后台命令:终端内部处理的命令

4、人机交互的视角

设备包括:传统终端设备和新型模式识别设备,用户控制命令运行和理解

发展:60s行命令控制方式、70s全屏幕控制方式、70s后期WIMP界面(特征为窗口图标菜单和指示装置为基础的图形用户界面)、85年多媒体计算机(音频视频图形和人机交互控制结合)、80s虚拟现实系统(模拟三维虚拟世界,身临其境,支持三位HCL)

新型人机交互产品:侧重多媒体技术(触摸式桌面计算机、3D显示器等)、多通道技术(手写汉字识别系统,语音识别)

5、程序接口的视角

操作系统的程序接口:为程序运行扩充的编程接口

系统调用:为所有运行程序提供访问操作系统的接口,可以用于完成某种特定功能

实现机制

  • 陷入处理机制
  • 陷入指令(用于实现系统调用的中断)
  • 系统调用提供编号

要点:编写系统调用程序,设计入口地址表,陷入时保护现场

6、系统结构的视角

OS是第一个大规模软件系统,

OS构建:内核(最复杂)、进程、线程、管程等

设计概念:模块化/层次化/虚拟化

操作系统内核

  • 单内核:各部件杂然混居(Uinx/Linux/Windows)
  • 微内核:结构性部件与功能性部件的分离
  • 混合内核:微内核与单内核折中
  • 外内核:减少内核软件抽象化,专注于硬件的抽象化

操作系统实现的一种层次式结构:

另一种:

单内核与微内核