【NJUSE操作系统】1. 计算机操作系统概述

1. 计算机操作系统概述

1.1 计算机系统概览

  1. 电子数字计算机,是一种能够自行按照已设定的程序进行数据处理的电子设备;是软件与硬件相结合、面向系统、侧重应用的自动化求解工具
  2. 1946年,首台计算机ENIAC诞生于美国。
  3. 短短70年,计算机技术迅猛发展,从科学计算、数据处理等应用领域,迅速扩展到实时控制、辅助设计、智能模拟等诸多领域
  4. 今天计算机无所不在,深入社会生活的各个领域,深深改变了当今人类社会的组织行为

发展历史

  1. 1945:电子真空管、机器语言,应用于科学计算
  2. 1956:晶体管、批处理控制、Fortran(科学计算的高级语言)/COBOL(数据处理的高级语言),扩展到数据处理领域
  3. 1959:集成电路、多道程序、操作系统/数据库/高级语言,应用领域继续扩展
  4. 1976:大规模/超大规模集成电路,向快速化/小型化/系统化/网络化/智能化等方面发展
  5. 1980:微型计算机出现,廉价化促使应用领域快速膨胀
  6. 1990:图形化人机交互技术,友善化推动了应用人群的快速扩展
  7. 2003:移动计算的出现,计算无处不在

计算机系统的组成

计算机系统:包括硬件子系统和软件子系统

  1. 硬件:借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统工作的实体
    1. 包括CPU,主存储器,I/O控制系统,外围设备等
  2. 软件:各种程序和文件,用于指挥计算机系统按指定的要求进行协同工作
    1. 包括系统软件、支撑软件和应用软件
    2. 关键系统软件是操作系统与语言处理程序
  3. 系统软件(操作系统)层是最靠近硬件的一层软件。
  4. 操作系统和支撑软件、应用软件之间的主要区别
    1. 操作系统有权利分配资源,支撑软件。应用软件只能通过操作系统使用资源,两者为控制和被控制的关系。
    2. 操作系统直接作用在硬件上,隔离其他上层软件,并为其提供接口和服务。

计算机系统的用户视图

在这里插入图片描述

计算机硬件:操作系统设计者直接在上工作(系统程序员:面向硬件编程的程序员)
应用:如Office/邮件

1.2 计算机硬件系统

计算机硬件系统的组成(4)

在这里插入图片描述

  1. 中央处理器
    1. 运算单元:执行具体机器指令的运算
    2. 控制单元:解译机器指令
  2. 主存储器:存储正在执行的程序和数据
  3. 外围设备
    1. 输出设备:显示器
    2. 输入设备:键盘、鼠标
    3. 存储设备:硬盘
    4. 网络通信设备:机机通信
  4. 总线:连接硬件系统的部件(如连接图中内容)

存储程序计算机特点

冯·诺伊曼等人在1946年总结并明确提出,被称为冯·诺伊曼计算机模型(存储程序计算机)

  1. 以运算单元为中心,控制流由指令流产生
  2. 采用存储程序原理,面向主存组织数据流
  3. 主存是按地址访问、线性编址的空间
  4. 指令由操作码和地址码组成
  5. 数据以二进制编码

存储程序计算机的结构

在这里插入图片描述

  1. 当前计算机硬件的经典结构和主流组织方式
  2. 存储器是这个模型的核心部分(运算器和控制器都面向存储器操作,外围设备也针对存储器进行数据的输入输出)

1. 总线及其组成

总线定义

  1. 总线是计算机各种功能部件之间发送信息的公共通信干线,它是CPU、内存、输入输出设备传递信息的公用通道
  2. 计算机的各个部件通过总线相连接,外围设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
  3. 按照所传输的信息种类,总线包括
    1. 一组控制线
    2. 一组数据线
    3. 一组地址线

总线分类

  1. 内部总线:用于CPU芯片内部连接各元件
  2. 系统总线:用于连接CPU、存储器和各种I/O模块等主要部件(下图均为系统总线)
    1. PCI总线用来连接块设备,速度较快
    2. E(ISA)主要是用来处理字符型输入设备,输入速度较慢

  1. 通信总线:用于计算机系统之间通信

2. 中央处理器 CPU

定义及组成

中央处理器是计算机的运算核心(Core)和控制单元(Control Unit),组成如下:

  1. 运算逻辑部件:一个或多个运算器
  2. 寄存器部件:
    1. 通用寄存器
    2. 控制与状态寄存器
    3. 高速缓冲存储器(Cache)
  3. 控制部件
    1. 实现各部件间联系的数据、控制及状态的内部总线
    2. 负责对指令译码、发出为完成每条指令所要执行操作的控制信号、实现数据传输等功能的部件

运算单元和控制单元

在这里插入图片描述

  1. 运算单元:算术逻辑单元
  2. 控制单元:包括指令译码和中断的处理,以及一些重要的控制寄存器(PC/IR/Flag),包括了MAR/MDR。用内部总线连接。
    1. PC/IR/Flag:重要的控制寄存器
    2. MAR/MDR:和主存进行沟通的存储器,用系统总线连接
  3. 内部总线
  4. 不包括的部分
    1. 通用寄存器
    2. Cache
    3. IOAR/IODR(IO的数据寄存器&地址寄存器)

3. 存储器的组织层次

在这里插入图片描述

  1. 主存及以上都是易失型(挥发性)设备(加电存储,关机消除)

  2. 最常见的长效性存储器:本地硬盘

  3. 提高存储效率:本地固态硬盘,容量小,访问速度更快,可用来存放操作系统等关键的系统文件

  4. 远程外存储器:利用网络处理设备实现丰富的存储容量

4. 外围设备

设备类型

  1. 输入设备
  2. 输出设备
  3. 存储设备
  4. 网络设备:机机通信(不同网络设备块大小不一样,如字和字节,处理上有特殊性)

控制方式

  1. 轮询方式:CPU忙式控制,CPU执行内存数据交换
  2. 中断方式:CPU启动外设,外设结束后中断CPU善后,CPU执行内存数据交换
  3. DMA方式:CPU启动DMA,DMA独立执行输入输出与内存数据交换,处理完成后,DMA中断CPU善后

SoC片上系统

  1. 片上系统(SoC, System ona Chip)
  2. 在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术
  3. 所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等
  4. SoC是与其它技术并行发展的,如绝缘硅(SOI),它可以提供增强的时钟频率,从而降低微芯片的功耗

用户态和内核态

  1. 用户态和内核态之间可以相互转化
  2. 内核态可以进行系统调用,完成中断处理

1.3 计算机软件系统

计算机软件系统组成

  1. 系统软件
    1. 操作系统:实施对各种软硬件资源的管理控制
    2. 实用程序:为方便用户所设的外围的扩展程序,如文本编辑等
    3. 语言处理程序:把用汇编语言/高级语言编写的程序,翻译成可执行的机器语言程序
    4. 数据库管理系统
  2. 支撑软件:支持用户使用计算机的环境,提供开发工具,也可以认为是系统软件的一部分。
    1. 接口软件
    2. 工具软件
    3. 环境数据库等
  3. 应用软件:是用户按其需要自行编写的专用程序

程序员的计算机系统视图

在这里插入图片描述

  1. 计算机硬件系统:机器指令(枯燥繁琐)
  2. 操作系统与实用软件:扩展机器指令,系统调用、操作系统与应用软件(屏蔽一些硬件的使用信息,编程着重于CPU的计算,OS增加了系统调用的集合)
  3. 数据库语言:数据库管理系统,可以不再对流进行处理,而是对象式和关系式的数据处理(仍需要机器指令+数据库语言两种语言进行设计)
  4. 语言处理系统:高级语言,变向对目标进行解决
  5. 支撑软件:使用软件工程工具,提高程序效率

软件开发的不同层次

  1. 计算机硬件系统:机器语言
  2. 操作系统之资源管理:机器语言+广义指令(扩充了硬件资源管理)
  3. 操作系统之文件系统:机器语言+系统调用(扩充了信息资源管理)
  4. 数据库管理系统:+数据库语言(扩充了功能更强的信息资源管理)
  5. 语言处理程序:面向问题的语言

计算机程序执行过程

在这里插入图片描述

  1. 转换程序:如第四代语言会被转成PASCAL/C等第三代语言
  2. 解释程序:Java语言
  3. 连接程序:连接目标代码程序+库函数->可执行程序(操作系统接口下)
  4. 内存执行程序:可在OS的支撑下在不同硬件平台运行
  5. 数据库管理系统:扩展对数据的管理

1.4 计算机操作技术的发展

操作平台与操作系统

  1. 任意一台机器都有其操作平台与操作系统
    1. 例子: 洗衣机
      1. 确定水量、洗衣时间、洗涤强度、洗衣粉
      2. 启动按钮
      3. 指示灯显示工作状态
    2. 这一方式可以总结为:开关表示,按钮控制,亮灯显示操作平台的精细化和系统化,产生了操作系统
  2. 计算机也不例外,由此产生了极为系统的计算机操作平台——计算机操作系统

第一代:计算机的手工操作

  1. 开关表示,按钮控制,亮灯显示(下图是最原始的计算机,不断装入地址和数据)

  1. 问题:手工操作速度与电子计算速度不匹配
  2. 最简单的操作系统的操作,非常复杂并且容易出错。

改进1:引入装入程序

  1. 引入卡片和纸带描述程序指令与数据
  2. 引入装入程序(Loader)
    1. 自动化执行程序装入,必要时进行地址转换
    2. 通常存放在ROM中
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kOBI8M5w-1663995197863)(C:\Users\84368\AppData\Roaming\Typora\typora-user-images\image-20220924123408950.png)]

    一般执行顺序是从机器语言程序到装入程序,再到内存储器。
    装入程序的数据是非常麻烦的

改进2:引入汇编语言后的计算机控制

在这里插入图片描述

改进3:引入高级语言后的计算机控制

在这里插入图片描述
添加进入高级语言之后,连接程序时非常重要的,将一些共有的操作进行封装(如将字符串函数封装成库函数再引入)

使用汇编语言的程序的编译运行程序为:汇编、执行

使用高级语言的程序的编译运行程序为:编译、链接、执行

第二代:简单批处理系统的操作控制

  1. 简单批处理系统的处理过程
    1. 引入作业控制语言,用户编写作业说明书,描述对一次计算机求解(作业)的控制(如编译、连接、执行是三个作业,每个作业都可指明它的运行程序/加工处理的对象/加工处理的结果)
    2. 操作员控制计算机成批输入作业(一次输入多个作业说明书/相关的程序数据),成批执行作业
  2. 这一方式明显缩短了手工操作的时间,提高了计算机系统利用率
  3. 这一阶段,磁带的出现,使得卡片与纸带等机械输入方式得以进一步提高
  4. 简单批处理系统本质上是一种半自动化的操作方式,不算操作系统
    1. 解决了手工操作和计算机机械操作不匹配的矛盾(优点)
    2. 没有解决了手工操作与中央处理器电子操作速度不匹配的矛盾(缺点)
  5. 简单批处理系统的解决方案(即解决不匹配的矛盾)是允许多道程序同时运行

第三代: 操作系统与自动化操作控制

  1. 诞生背景:电子计算速度与机械I/O速度的矛盾:你在输,我在等
  2. 解决方案:在程序执行过程中能否同时输入作业重叠时间
    1. 需要多道程序同时执行(需允许程序的切换)
    2. 程序切换需要高速的外存储设备的支撑
  3. 磁盘设备出现:计算机操作系统浓墨登场,实现了计算机系统的自动化控制

1.5 计算机操作系统

计算机操作系统的定义

  1. OS是计算机系统最基础的系统软件,管理软硬件资源、控制程序执行,改善人机界面,提供各种服务,合理组织计算机工作流程,为用户使用计算机提供良好运行环境。
  1. 定位(计算机系统最基础的系统软件):处于硬件之上(最接近硬件)的系统软件
  2. 用途(管理软硬件资源):
    1. 管理硬件资源,首先进行抽象,提供系统调用和中断等服务给上层资源使用。
    2. 管理软件资源,管理文件抽象的数据资源以及在操作系统环境下可能被启动运行的应用程序,并创建成进程,然后再为进程分配相应的资源,包括CPU资源、处理器资源、外设资源和程序运行中的文件系统需要的资源。也可以映射为三个基本抽象。
  3. 用途(控制程序的执行):在操作系统环境下,加入的软件系统的实体,要被创建成一些进程,并由操作系统来统管所有的进程。
  4. 用途(改善人机界面):操作系统最终是呈现给终端用户使用,必须改善用户界面,方便人群使用。由于操作系统定位的人群不同,则风格不同,比如服务器的命令行控制。
  5. 用途(合理组织计算机工作流程):体现资源调度和管理
  6. 总结(为用户使用计算机提供良好运行环境)
  1. 简而言之,操作系统是方便用户、管理和控制计算机软硬件资源的系统程序集合
    1. 用户角度看,OS管理计算机系统的各种资源,扩充硬件的功能,控制程序的执行
    2. 人机交互看,OS是用户与机器的接口,提供良好的人机界面,方便用户使用计算机,在整个计算机系统中具有承上启下的地位
    3. 系统结构看,OS是一个大型软件系统,其功能复杂,体系庞大,采用层次式、模块化的程序结构

操作系统的组成

操作系统组成的子系统描述
进程调度子系统负责管理调度进程
进程通信子系统负责进程间的通信解决方案
内存管理子系统负责管理内存与虚存
设备管理子系统负责管理我们的外围设备的使用
文件管理子系统负责管理文件信息,提供系统调用,Linux需要考虑如何在线性的地址空间,如何建立非线性的层次式目录结构以实现按名存储
网络通信子系统实现网络操作系统,涉及到分布式等
作业控制子系统提供用户操作控制计算机系统,在服务器、云计算等资源虚拟化环境下

操作系统的类型

1. 从控制方式来看

  1. 多道批处理操作系统
    1. 采用脱机控制方式(因为程序员不直接操作计算机)
    2. 程序员通过作业说明书来描述对作业的控制方式
    3. 操作员根据说明书来成批加载作业和控制计算机系统
    4. 优点:资源利用率高,作业吞吐量大
    5. 缺点:作业周转周期长、不具备交互式计算能力,不利于程序的开发和测试
  2. 分时(Time Sharing)操作系统:交互控制,核心是划分CPU的时间
    1. 时间片调度思想:CPU的时间等分
    2. 在终端上进行交互式会话,具有同时性、独立性、及时性和交互性的特点。(如当今鼠标、键盘、显示器的交互)
    3. 和批处理操作系统区别:追求目标、适应作业、资源利用率不同。
    4. Eg:100MHz的CPU,如果有10个终端用户使用,那么一个终端用户大概使用10MHz的CPU来使用
  3. 实时(Real Timing)操作系统:支持分时交互,又有大量的进程处理突发实时任务
    1. 硬实时:最严格的实时操作系统
    2. 软实时:可以在某些地方不严格
  4. 通用操作系统:某个操作系统兼具批处理、分时和实时处理的全部或两种功能。

2. 从应用领域领域来看

  1. 服务器操作系统、并行操作系统
  2. 网络操作系统、分布式操作系统
  3. 个人机操作系统、手机操作系统
  4. 嵌入式操作系统、传感器操作系统

1.6 资源管理的角度

  1. 硬件资源:处理器、内存和外设(字符型设备等)
  2. 信息资源(可以理解为软件资源):数据和程序

管理计算机系统的软硬件资源

  1. 处理器资源:哪个程序占有处理器运行?
  2. 内存资源:程序/数据在内存中如何分布?
  3. 设备管理:如何分配、去配和使用设备?
  4. 信息资源管理:如何访问文件信息?
  5. 信号量资源:如何管理进程之间的通信?

资源管理最重要的是:屏蔽资源使用的底层细节

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

资源的共享与分配方式

  1. 资源共享方式
    1. 独占使用方式:只能被一个程序独占使用
    2. 并发使用方式:在同一时段可以被多个程序使用,虚拟共享Spooling
  2. 资源分配策略:对于独占使用方式的分配方式
    1. 静态分配方式,运行程序进入内存前已经将所有的内存完成分配,好处是不会死锁,坏处是效率低(如使用资源的时间不足10%)
    2. 动态分配方式,随用随分配,可能导致死锁
    3. 资源抢占方式,如果你在使用,我的优先级高,我可以抢过来使用,但是涉及到保存状态(资源回滚)的问题

1.7 程序控制的角度

多道程序同时计算

  1. CPU速度与I/O速度不匹配的矛盾,非常突出
  2. 只有让多道程序同时进入内存争抢CPU运行,才可以够使得CPU和外围设备充分并行,从而提高计算机系统的使用效率

多道程序同时计算例子

在这里插入图片描述
在这里插入图片描述

处理器利用率=处理器时间/(输入机+处理器+磁带机)

宏观分析:

  1. 对于甲、乙两道程序,如果两个程序的操作之间是没有冲突的
    1. 独占计算机单道运行时均需1小时,占用CPU时间18分钟,CPU利用率为30%
    2. 按多道程序设计方法同时运行,CPU利用率50%,由于要提供36分钟的CPU时间,大约运行72分钟。考虑到OS调度开销,实际花费时间还要长些,如80分钟
  2. 两道作业而言,提高效率33%,整体的系统的吞吐率会高
  3. 单道作业而言,延长执行时间20分钟(甲原来1小时现在80分钟),即延长了33%的时间

多道程序设计及优点

  1. 多道程序设计:指允许多个作业(程序)同时进入计算机系统的内存并启动交替计算的方法
  2. 多道程序设计的特点
    1. CPU与外部设备充分并行
    2. 外部设备之间充分并行
    3. 发挥CPU、内存和设备的使用效率
    4. 提高单位时间的算题量(吞吐率)
  3. 多道程序设计的主要缺点:延长了作业的周转时间。

多道程序系统的实现

  1. 进入内存执行的程序建立管理实体:进程(动态概念,驻留在操作系统中)
  2. OS应该能管理与控制进程程序的执行
  3. OS协调管理各类资源在进程间的使用
    1. 处理器的管理和调度
    2. 主存储器的管理和调度
    3. 其他资源的管理和调度
    4. 信号量的管理和调度

多道程序系统的实现要点

  1. 如何使用资源:调用操作系统提供的服务例程(如何陷入操作系统)
  2. 如何复用CPU:调度程序(在CPU空闲时让其他程序运行)
  3. 如何使CPU与I/O设备充分并行:设备控制器与通道(专用的I/O处理器)
  4. 如何让正在运行的程序让出CPU:中断(中断正在执行的程序,引入OS处理),能够恢复现场而不是从头运行

1.8 操作系统控制计算机的角度

计算机系统操作方式

  1. OS规定了合理操作计算机的工作流程
  2. OS的操作接口——系统程序:OS提供给用户的功能级接口,为用户提供的解决操作计算机和计算共性问题的所有服务的集合
  3. OS的两类作业级接口
    1. 脱机作业控制方式:作业控制语言,比如批处理
    2. 联机作业控制方式:操作控制命令

1. 脱机作业控制方式

  1. 脱机作业控制的各角色工作
    1. OS:提供作业说明语言,通过作业控制程序自动控制作业的执行
    2. 用户:编写作业说明书,确定作业加工控制步骤,并与程序数据一并提交
    3. 操作员:通过控制台成批输入作业
    4. OS:通过作业控制程序自动控制作业的执行
  2. 例:批处理OS的作业控制方式,UNIX的shell程序,DOS的bat文件
  3. 多道批处理:可以多道作业交替占用处理器运行

2. 联机作业控制方式

  1. 联机作业控制方式的各角色工作
    1. 计算机:提供终端(键盘/显示器)
    2. 用户:登录系统
    3. OS:提供命令解释程序
    4. 用户:进行联机输入命令,直接控制作业步的执行
  2. 例:分时OS的交互控制方式
  3. 图形化无非就是把上述操作图形化了而已

命令解释程序

  1. 命令解释程序:接受和执行一条用户提出的对作业的加工处理命令
  2. 当一个新的批作业被启动,或新的交互型用户登录进系统时,系统就自动地执行命令解释程序,负责读入控制卡或命令行,作出相应解释,并予以执行
  3. 实现方式
    1. 命令解释语言包含命令的执行代码,一旦收到命令后,就转向相应的命令处理代码执行,执行过程中往往会使用到系统调用
    2. 由专用的实用程序实现,执行时将命令所对应的命令处理文件装入内存
  4. 会话语言:可编程的命令解释程序,UNIX的Shell
  5. 图形化的命令控制方式
  6. 多通道交互的命令控制方式(不管何种方式,处理过程都类似)

命令解释程序的处理过程

  1. OS启动命令解释程序,输出命令提示符,等待键盘中断/鼠标点击/多通道识别
  2. 每当用户输入一条命令(暂存在命令缓冲区)并按回车换行时,申请中断
  3. CPU响应后,将控制权交给命令解释程序,接着读入命令缓冲区内容,分析命令、接受参数,执行处理代码
  4. 前台命令执行结束后,再次输出命令提示符,等待下一条命令(前台:命令按顺序执行)
  5. 后台命令处理启动后,即可接收下条命令(后台:不管命令是否结束,马上接收下一条命令)

1.9 人机交互的角度

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

人机交互的初期发展

  1. 交互式控制方式
    1. 行命令控制方式:1960年代开始使用,一行一行进行编辑
    2. 全屏幕控制方式:1970年代开始使用
  2. 斯坦福研究所提出的发展计划
    1. 始于1960年代,1980年代广泛应用
    2. 强调而不是技术人机交互的中心
    3. 代表性成果:鼠标、菜单与窗口控制(单窗口)

人机交互发展-WIMP界面

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

人机交互发展-多媒体计算机

  1. 缘起:1985年的MPC
  2. 把音频视屏、图形图像和人机交互控制结合起来,进行综合处理的计算机系统
  3. 构成:多媒体硬件平台、多媒体OS 、图形用户接口、多媒体数据开发工具
  4. 提供与时间有关的时变媒体界面(既控制信息呈现,也控制何时呈现/如何呈现感觉更好)
  5. 人机交互界面需要使用多种媒体,同时支持多通道交互整合,改善用户体验

人机交互发展-虚拟现实系统(临境系统)

  1. 缘起:1980年代的虚拟现实新型用户界面
  2. VR通过计算机模拟三维虚拟世界,根据观察点、观察点改变的导航和对周围对象的操作,来模拟临境(身临其境)的感觉
  3. 支持多通道交互整合,改善用户体验
  4. 支持用户主动参与的高度自然的三维HCI,以及语音识别、头部跟踪、视觉跟踪、姿势识别等新型HCI
  5. 容许用户产生含糊和不精确的输入

1.10 程序接口的角度

系统调用

操作系统的程序接口:系统调用

  1. 操作系统实现的完成某种特定功能的过程
  2. 为所有运行程序提供访问操作系统的接口

系统调用的实现机制

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

系统调用的实现要点

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

系统调用的实现流程

  1. 硬件和操作系统来合作完成
    1. 中断(陷入)是由硬件完成的
    2. 查入口地址和系统调用服务的处理是由操作系统完成的
  2. CPU执行程序中编写的由访管指令实现的系统调用时会产生异常,通过陷阱机制,处理器的状态由用户态转换为内核态,进入操作系统并执行相应的服务例程,以获得操作系统服务。在这里插入图片描述

系统调用函数调用
调用形式按地址转向功能号调用
实现方式用户态转换内核态,在内核态执行访问核心栈用户态
被调用代码位置动态调用,服务例程位于操作系统内静态调用,调用程序和被调用程序在同一程序内
提供方式由操作系统提供编程语言提供

1.10 系统结构的角度

操作系统软件的规模

  1. 在计算机软件发展史上,OS是第一个大规模的软件系统
  2. 1960年代,由OS开发所衍生的体系结构、模块化开发、测试与验证、演化与维护等研究,直接催生了软件工程这一新兴研究领域(SE另一个催生来源是DB应用引发的需求与规格)
  3. OS作为大型软件,结构设计是关键

操作系统软件的结构设计

  1. OS构件
    1. 内核:核心的部分,操作系统必须有一个内核
      1. 单内核:内核中各部件杂然混居的形态,始于1960年代,广泛使用;如Unix/Linux,及Windows(自称采用混合内核的CS结构),单内核导致内核会非常大
      2. 微内核:
        1. 1980年代始,强调结构性部件与功能性部件的分离,大部分OS研究都集中在此,效率不高所以仅局限于学术界
        2. 仅将所有应用必须的核心功能放入内核,其他功能都在内核之外,由在用户态运行的服务进程实现(内核会变小)
      3. 混合内核:微内核和单内核的折中,较多组件在核心态中运行,以获得更快的执行速度(未有较成功的例子)
      4. 外内核:尽可能减少内核的软件抽象化和传统微内核的消息传递机制,使得开发者专注于硬件的抽象化;部分嵌入式系统使用
    2. 进程
    3. 线程
    4. 管程
  2. 设计概念
    1. 模块化
    2. 层次式
    3. 虚拟化

操作系统实现的层次结构

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

在这里插入图片描述

  1. 现在文件系统也会划归到内核中

操作系统实现的第二种层次结构

在这里插入图片描述

  1. 过程机制(实现中断嵌套调用)、指令解译、电路执行是由硬件完成。
  2. 文件系统调用可以放在内核里,也可以放在内核外。
  3. 当前操作系统除了硬件电路以外都是由操作系统管理
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值