再论计算机系统
-
计算器零碎由”躯体 “和” 灵魂“两局部组成
- ”躯体“:形成计算机系统的电子设备(硬件)
- ”灵魂“:指挥”躯体“实现”动作“的指令序列(软件)
- ”躯体“外围:中央处理器(CPU)
- ”灵魂“外围:操作系统(OS)
计算机系统的诞生是为了执行数据处理(计算)工作。那么,如何获取计算工作,并反馈工作执行后果?
数据输出与输入是计算机系统不可获取的局部
计算工作执行流程
- 通过交互设施或网络向计算机系统发动申请
- 依据申请将工作指令加载进入内存
- CPU 从内存中取指令,并逐条执行
- 计算工作的最终后果暂存入内存
- 内存数据通过交互设施或网络设备进行反馈
操作系统与过程概要
-
什么是程序?
-
程序的实质是指令和数据的汇合
- 指令:批示 CPU 执行动作的命令
- 数据:CPU 执行动作的操作指标
-
-
程序的分类
- 应用程序:用户可间接应用,为用户提供间接帮忙的程序
- 程序中间件:少数应用程序的通用性能,用于辅助应用程序的运行
- 操作系统:间接操作硬件设施,并为应用程序与程序中间件提供运行环境
当代计算机系统架构图
过程 - 程序的执行
- 通常状况下,程序在操作系统上以过程为单位运行
- 每个程序运行后由一个或多个过程形成
- 过程是操作系统工作的根本单元,也是系统资源的根本调配单位
-
程序是”死“的,过程是”活“的
- 程序的实质只是二进制数据,不加载执行没有任何价值
- 过程是计算机系统对程序的一次加载执行,即:执行计算工作的过程
程序 VS 过程
深入浅出驱动程序
应用程序与外部设备
- 少数状况下,应用程序须要借助外部设备能力实现计算工作
- 外部设备:除 CPU 与内存之外的其它计算机硬件(如:硬盘,网卡,显卡)
应用程序设施拜访
-
间接拜访
- 开发成本高:应用程序必须相熟各类外设的硬件个性
- 开发周期长:业务逻辑 + 设施逻辑
- 利用场景难:其它应用程序可能同时拜访外设
-
间接拜访
- 应用程序通过软件层(驱动程序)接口以对立形式拜访外设
设施驱动程序
- 设施驱动程序是外设拜访接口,对应用程序提供对立的外设拜访形式
Linux 设施驱动模型
- 形象各种外设的个性,简化设施驱动开发方式
- 设施类型:字符设施,块设施,网络设备,等
- 对于对立类型的设施,能够通过对立接口进行拜访
Linux 零碎工作模式
Linux 设施驱动模型
存在问题
设施驱动程序并非惟一拜访外设的形式
如何限度过程必须依照规定通过驱动程序拜访外部设备?
Linux 零碎工作模式
内核职责:以对立的形式有序的调配硬件资源,保障用户工作依照冀望的形式执行。
-
用户模式(User Mode)
- 执行应用程序公有代码,受限制的拜访内存,无奈间接拜访外部设备
-
内核模式(Kernel Mode)
- 执行内核代码,可拜访所有硬件资源,可立刻暂停过程的执行(过程治理)
- 绝大多数设施驱动程序执行于内核模式
工作模式与零碎调用
Linux 零碎的工作模式:零碎调用(System Call)
- 应用程序与操作系统内核的间接接口(表现形式为函数)
- 零碎调用决定了应用程序如何与内核打交道
-
为什么须要零碎调用
- 系统资源无限,须要对立有序的调度
- 多个过程可能拜访同一资源,进而产生抵触
- 一些特定的性能必须有操作系统内核实现(如:准确延时)
- 。。。
- 过程零碎调用后,由用户模式切换到内核模式(执行内核代码)
- 工作模式的转变通常由中断触发(不同于一般函数调用)
- 用户过程通过零碎调用申请内核实现资源分配,硬件拜访等操作
- 所有过程申请集中到内核,内核可对立调度解决,协调过程的执行
Linux 零碎编程概要
Linux 零碎的工作模式
计算机系统缩影
Linux 零碎编程
波及的内容