总线
type
status
date
slug
summary
tags
category
icon
password
Property
 

总线的基本概念

  • 为什么要总线:计算机各个部件之间需要通信,但是不能简单的使用两两连接的方式
  • 什么是总线:
    • 是连接各个部件的信息传输线
    • 是各个部件之间共享的传输介质
  • 总线上信息的传输:
    • notion image
存储器
type
status
date
slug
summary
tags
category
icon
password
Property
 

存储器分类

按存储介质分类:
  • 半导体存储器 TTL 、MOS 易失
  • 磁表面存储器 磁头、载磁体 非易失
  • 磁芯存储器 硬磁材料、环状元件 非易失
  • 光盘存储器 激光、磁光材料 非易失
 
输入输出系统
type
status
date
slug
summary
tags
category
icon
password
Property
 

 

概述

IO的发展

  • 早期:
    • 分散连接,每一个设备有专门的控制电路(增删麻烦) CPU和IO串行工作:程序查询方式
  • 接口模块和DMA阶段 总线连接,CPU和IO并行工作:中断方式和DMA方式
  • 具有通道结构的阶段:一个小型的处理器,只用来管理IO
计算机的运算方法
type
status
date
slug
summary
tags
category
icon
password
Property
 

 

无符号数和有符号数

 

数的定点表示和浮点表示

定点运算

CPU的结构和功能
type
status
date
slug
summary
tags
category
icon
password
Property
 

 

CPU 的结构

CPU的功能

  • 控制器功能:
    • 取指令 指令控制
    • 分析指令 操作控制
    • 执行指令,发出各种操作命令
指令系统
type
status
date
slug
summary
tags
category
icon
password
Property
 

notion image

机器指令

  • 指令的格式是什么?操作码 地址码 寻址方式
  • 指令的字长:固定字长、可变字长
 

指令的一般格式

notion image
控制单元的功能
type
status
date
slug
summary
tags
category
icon
password
Property
 

微操作命令的分析

完成一条指令的四个工作周期:取指周期,间址周期,执行周期,中断周期
 

取指周期

notion image
取指令的过程可归纳为以下几个操作:
  1. 现行指令地址送至存储器地址寄存器
控制单元的设计
type
status
date
slug
summary
tags
category
icon
password
Property
 

 

组合逻辑设计

组合逻辑控制单元框图

CU外特性
notion image
节拍信号
notion image
操作系统介绍
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
冯·诺依曼(Von Neumann)计算模型:处理器从内存中获取(fetch)一条指令,对其进行解码(decode),然后执行(execute)它。完成这条指令后,处理器继续执行下一条指令,依此类推,直到程序最终完成
 
在现代的操作系统设计中(考虑多程序同时运行),程序并不直接访问硬件(需要保护硬件资源),这时就需要一个软件来协调二者:通过受保护的方式分配资源给各个程序,允许程序共享内存,让程序能够与设备交互。
这一软件就是操作系统(Operating System,OS),因此操作系统也可以看作硬件与应用程序间的抽象层。
 
如何将资源虚拟化?
操作系统主要利用一种通用的技术——虚拟化(virtualization),将物理资源(如处理器、内存或磁盘)转换为更通用、更 强大且更易于使用的虚拟形式。因此,有时将操作系统称为虚拟机(virtual machine)
为了让用户可以告诉操作系统做什么,从而利用虚拟机的功能(如运行程序、分配内存或访问文件),操作系统提供了一些接口(API),供调用。由于操作系统提供这些调用来运行程序、访问内存和设备,甚进行其他相关操作,我们有时也会说操作系统为应用程序提供了一个标准库(standard library)。
 
因为虚拟化让许多程序运行(从而共享CPU),让许多程序可以同时访问自己的指令和数据(从而共享内存),让许多程序访问设备(从而共享磁盘等),所以操作系统有时被称为资源操理器(resource manager)。每个CPU、内存和磁盘都是系统的资源(resource),操作系统扮演的主要角色就是管理这些资源。
CPU虚拟化-进程
type
status
date
slug
summary
tags
category
icon
password
Property
 
程序本身是没有生命周期的,只是存在磁盘上面的一些指令(也可能是一些静态数据)。是操作系统让这些字节运行起来,让程序发挥作用。
 
人们常常希望同时运行多个程序,虽然只有少量的物理CPU可用,但是操作系统如何提供几乎有无数个的CPU可用的假象?
操作系统通过虚拟化CPU 来提供这种假象。通过让一个进程只运行一个时间片,然后切换到其他进程,操作系统提供了存在多个虚拟CPU 的假象。这就是时分共享CPU 技术,允许用户如愿运行多个并发进程。潜在的开销就是性能损失,因为如果CPU 必须共享,每个进程的运行就会慢一点。
 
  • 时分共享(time sharing)是操作系统共享资源所使用的最基本的技术之一。通过允许资源由一个实体使用一小段时间,然后由另一个实体使用一小段时间,如此下去,所谓的资源(例如,CPU 或网络链接)可以被许多人共享。
  • 时分共享的自然对应技术是空分共享,资源在空间上被划分给希望使用它的人。例如,磁盘空间自然是一个空分共享资源,因为一旦将块分配给文件,在用户删除文件之前,不可能将它分配给其他文件。
 
 

抽象:进程

操作系统为正在运行的程序提供的抽象,就是所谓的进程(process)。在任何时刻,我们都可以清点它在执行过程中访问或影响的系统的不同部分,从而概括一个进程。
CPU虚拟化-机制:受限直接执行
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
构建虚拟化时存在一些挑战:
  • 性能:如何在不增加系统开销的情况下实现虚拟化?
  • 控制权:如何有效地运行进程,同时保留对 CPU 的控制?
 
操作系统必须以高性能的方式虚拟化CPU,同时保持对系统的控制。为此,需要硬件和操作系统支持。操作系统通常会明智地利用硬件支持,以便高效地实现其工作。
 

策略:直接执行

只需直接在CPU上运行程序即可。
OS 希望启动程序运行时,它会在进程列表中为其创建一个进程条目,为其分配一些内存,将程序代码(从磁盘)加载到内存中,找到入口点(main()函数或类似的),跳转到那里,并开始运行用户的代码。
notion image
CPU虚拟化-进程调度
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
进程调度,顾名思义就是内核如何安排接下来要运行的进程。一般来说,在时钟中断的时候,或者某进程因为缺少资源而进入内核的时候,内核会安排进程调度程序来选择退出内核态的时候接下来运行的进程。进程调度的底层机制就是上下文切换。
 
一个完全可操作的调度准则,对操作系统中运行的进程(有时也叫工作负载)做出如下的假设:
  • 每一个工作运行相同的时间
  • 所有的工作同时到达
  • 一旦开始,每个工作保持运行直到完成
  • 所有的工作只用CPU(不执行IO操作)
  • 每个工作的运行时间是已知的