以上就是给各位分享【重学计算机】计算机操作系统,其中也会对计算机操作系统课程重要吗进行解释,同时本文还将给你拓展1.1计算机操作系统概论、1.计算机发展阶段计算机发展历史机械式计算机机电式计算机电子计
以上就是给各位分享【重学计算机】计算机操作系统,其中也会对计算机操作系统课程重要吗进行解释,同时本文还将给你拓展1.1 计算机操作系统概论、1.计算机发展阶段 计算机发展历史 机械式计算机 机电式计算机 电子计算机 逻辑电路与计算机 二极管 电子管 晶体管 硅 门电路 计算机 电磁学计算机二进制、4.计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动、【-】计算机操作系统等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- 【重学计算机】计算机操作系统(计算机操作系统课程重要吗)
- 1.1 计算机操作系统概论
- 1.计算机发展阶段 计算机发展历史 机械式计算机 机电式计算机 电子计算机 逻辑电路与计算机 二极管 电子管 晶体管 硅 门电路 计算机 电磁学计算机二进制
- 4.计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动
- 【-】计算机操作系统
【重学计算机】计算机操作系统(计算机操作系统课程重要吗)
一、操作系统概述
1. 计算机软硬件系统
- 冯诺伊曼结构
- 以运算单元为核心,控制流由指令流产生
- 程序和数据存储在主存中
- 主存是按地址访问,线性编址
- 指令由操作码和地址码组成
- 数据以二进制编码
- 其他:参考《重学计算机-计算机组成原理》
2. 计算机操作系统的发展
- 概述:任何一台机器都有其操作平台和操作系统
- 洗衣机:开关表示、按钮控制、亮灯显示
- 演进过程
- 手工操作:手动调动地址和数据按钮录入内存,然后点运行
- 引进装入程序:用卡片和纸带,通过ROM上的装入程序载入内存
- 汇编语言:对指令提供了助记符号
- 高级语言:面向问题
- 简单批处理系统:编写作业控制程序,缩短手工操作的时间
- 多道批处理系统:排队执行作业,不能同时,也不能和计算机交互
- 分时系统、实时系统:进程间切换,引入中断机制
- 通用操作系统:同时具备以上功能
3. 不同视角下的操作系统
- 资源管理的角度:
- 资源:硬件资源(处理器、内存、外设),软件资源(数据、程序)
- 例子:驱动程序
- 共享:资源独占、并发共享
- 分配:静态、动态、抢占
- 程序控制的角度:进程
- 操作方式的角度:脱机、联机
- 人机交互的角度:行命令、全屏幕控制、窗口界面、虚拟现实
- 程序接口的角度:系统调用(陷入机制)
- 系统结构的角度:
- OS构件:内核、进程、线程、管程
- 设计概念:模块化、层次化、虚拟化
二、处理器管理
1. 指令与处理器模式
- 指令执行周期:取指、译码、执行
- 指令分类(根据权限)
- 特权指令:只能被操作系统内核使用(启动IO,置PC值)
- 非特权指令:所有程序都能使用
- 处理器模式:
- 共有四种:0内核模式,1系统调用,2共享库程序,3用户模式
- 一般来说:只有0内核模式(能执行全部指令)和3用户模式(只能执行非特权指令)
- 模式切换:
- 用户模式 --> 内核模式(系统调用、异常、响应中断)
- 内核模式 --> 用户模式(中断返回指令)
2. 中断
- 概念:
- 操作系统是中断驱动的。即中断是激活操作系统的唯一方式
- 广义中断:停止CPU正在执行的进程,转而执行中断处理程序,处理完后返回原进程或调度新进程
- 狭义中断:源于处理器之外的中断事件,IO中断、时钟中断、外部信号中断
- 中断源:
- 处理器硬件故障中断事件:内存故障
- 程序性中断事件:除0异常、缺页异常
- 自愿性中断事件:系统调用
- IO中断事件:IO完成
- 外部中断事件:鼠标点击
- 中断系统:
- 实现:硬件完成中断响应,软件完成中断处理
- 中断装置:
- 处理器外中断:由中断控制器实现
- 处理器内中断(陷阱):由指令控制逻辑实现
- 系统调用(系统陷阱):执行陷入指令时直接触发,即系统陷阱
- 中断处理流程
- 多中断处理:中断屏蔽、中断优先级、中断嵌套
3. 进程
- 进程:操作系统进行资源分配和调度的独立单位
- 进程解剖:OS管理进程的数据结构P + 内存代码 + 内存数据 + 通用寄存器R + PSW
- 进程状态:
- 进程数据:
- 进程控制块PCB:是OS用于记录进程状态和环境信息的数据结构
- 标识信息:进程标识(进程标识号、进程组标识号)
- 现场信息:用户可见寄存器内容、控制/状态寄存器内容、栈指针内容
- 控制信息:进程调度信息、进程组成信息、队列指引元、通信相关、进程特权信息、处理器使用信息、资源清单信息
- 进程映像:某一时刻进程的内容及执行状态集合
- 进程控制块、进程程序块、进程数据块、核心栈
- 进程上下文:进程执行的环境支持(CPU现场、Cache中的执行信息)
- 用户级、寄存器级、系统级
- 进程控制块PCB:是OS用于记录进程状态和环境信息的数据结构
- 进程的管理
- 进程实现的队列模型
- 进程控制流程
- 进程创建:进程表增加一项,申请PCB并初始化,生成标识,建立映像,分配资源,移入就绪队列
- 进程撤销:从队列中移除,归还响应资源。。。
- 进程阻塞:保存现场,修改PCB,移入等待队列
- 进程唤醒:从等待队列移出,修改PCB,进入就绪队列
- 进程挂起:修改进程状态并出入相关队列,收回内存等资源送至对换区
- 进程激活:分配内存,修改状态并出入相关队列
- 原语
- 概念:由若干指令构成的完成某种特定功能,有原子性
- 应用:修改OS核心数据结构(进程表、PCB池)
- 进程切换与模式切换
- 流程: 俩进程上下文切换(保存被中断的上下文、进程调度、恢复待运行的上下文)
- 模式切换:用户态到内核态这种。进程切换必须在内核态完成,所以必须经理模式切换
4. 线程
- 多线程技术:一个进程内有多个线程
- 思路:将进程的两个功能“独立分配资源”和“调度执行”功能分开
- 分类:
- KLT:内核级多线程
- ULT:用户级别多线程
- 多线程实现的混合策略
- 一个ULT绑定多个KLT
5. 处理器调度
- 处理器调度的层次:高级、中级、低级
- 处理器调度算法
- 原则:资源利用率、响应时间、周转时间(进入系统到出系统时间)、吞吐量(单位时间处理进程数)、公平性
- 算法:优先数算法、时间片轮转、分级调度算法、彩票算法
三、存储管理
1. 存储管理的基本概念
- 逻辑地址:用户地址,从零开始编号
- 一维逻辑地址:(地址)
- 二维逻辑地址:(段号: 段内地址)
- 主存储器的复用方式
- 按分区:主存划分为多个固定/可变分区,一个程序占一个分区
- 按页架:主存划分为多个固定页架,一个程序占多个页架
- 存储管理的模式
- 单连续:一维逻辑地址程序,占一个固定/可变分区
- 段 式:二维逻辑地址程序,占多个可变分区
- 页 式:一维逻辑地址程序,占多个页架
- 段页式:二维逻辑地址程序,占多个页架
- 地址转换:逻辑地址 --> 物理地址
- 静态重定位:程序装入内存时转换(早期OS)
- 动态重定位:CPU执行时转换,效率考虑需要硬件帮助
- 虚拟存储器
- 由于程序的局部性顺序性等,可以考虑只将部分程序调入主存,其他的随用随调
- 达到了面对程序员主存扩容的目的
2. 单连续分区存储管理
- 单用户连续分区管理:主存区划分为系统区和用户区,采用静态重定位进行地址转换,一般适用于单用户单任务操作系统(DOS)
- 固定分区管理:一个程序占一个分区,有主存分配表,容易产生内零头
- 可变分区管理:按进程内存需求动态分配内存空间,容易产生外零头
3. 页式存储管理 **
- 概念:
- 主存分页架,程序分页。
- 不同程序页可放在不同主存页架中,不需要连续
- 页和页架关系由页表维护
- 用位示图表示主存分配与去配,用进程页表维护进程逻辑完整性
- 地址:
- 逻辑地址:页号 + 单元号
- 物理地址:页架号 + 单元号
- 快表:
- 利用Cache存放部分页表
- 同Cache缓存内存数据一样,也是相联存储器技术,并且有淘汰策略,具体见《重学计算机 -- 计算机组成原理》
- 页式虚拟存储
- 页表:标识位 + 主存块号 + 辅存地址
- 实现:
- 查页表,若页在内存,则生成绝对地址
- 若不在内存,发起缺页中断
- OS响应缺页中断,若内存有空闲页架,则从辅存中调入页。更新页表快表
- 若无空闲页架,先淘汰页,再调入
- 页面调度算法:
- 同Cache和内存的调度策略,具体参考《重学计算机 -- 计算机组成原理》
4. 其他
- 段式存储管理:基本不用,略
- 段页式存储管理:基本不用,略
- 内存管理单元MMU:
- 作用:管理虚拟存储器的硬件控制线路,把虚拟地址映射为物理地址,并提供内存保护,必要时淘汰页面
- 实现:用一种数据结构 反置页表IPT
PS:许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还有用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片段。覆盖块0首先运行,结束时他将调用另一个覆盖块。虽然覆盖块的交换是由OS完成的,但是必须先由程序员把程序先进行分割,这是一个费时费力的工作,而且相当枯燥。人们必须找到更好的办法从根本上解决这个问题。不久人们找到了一个办法,这就是虚拟存储器(virtual memory).虚拟存储器的基本思想是程序,数据,堆栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。比如对一个16MB的程序和一个内存只有4MB的机器,操作系统通过选择,可以决定各个时刻将哪4M的内容保留在内存中,并在需要时在内存和磁盘间交换程序片段,这样就可以把这个16M的程序运行在一个只具有4M内存机器上了。而这个16M的程序在运行前不必由程序员进行分割。
四、设备管理
1. IO的控制方式
- 演进过程:轮询 --> 中断 --> DMA --> IO通道
- 经典布局:南北桥
- PS:详见《计算机组成原理》
2. IO的实现
- 软件实现层次:硬件 --> 中断处理程序 --> 设备驱动程序 --> 独立于设备的IO软件 --> 用户空间的IO软件
- IO缓冲:
- 解决问题:
- 设备与CPU速度不匹配
- 逻辑记录大小和物理记录大小不一致
- 减少IO操作对CPU的中断次数
- 实现:缓冲区
- 内存中开辟一个专门临时存放IO数据的区域
- 分类:单缓冲、双缓冲、多缓冲
- 解决问题:
3. 磁盘
- 调度策略
- 移臂调度:以双向调度中的电梯调度算法为经典
- 旋转调度:写数据时采用交叉因子写入方式,可以提高旋转读数据的命中率
五、文件系统
1. 文件系统
- 文件系统概述
- 文件的组织:
- 逻辑结构:流式、记录式
- 物理结构:顺序、连接、直接、索引
- 文件的存取:顺序、直接、索引
- 文件的控制:逻辑控制、物理控制
- 文件的使用:打开、关闭、读、写、控制
- 文件的组织:
- 文件的存储
- 块:存储介质上连续存储的区域,是主存与辅存信息交换的单位
- 顺序存取设备:光盘、磁带
- 直接存取设备:磁盘
2. 文件
- 文件的逻辑结构
- 流式文件:只是由一段字节序列构成的
- 记录式文件:有含义有结构的信息,比如员工工资记录
- 文件的物理机构
- 顺序文件:块块之间相连,批处理文件和系统文件一般都这么存。---> 数组
- 连接文件:有连接字指向下一个块地址。---> 链表
- 直接文件:又叫散列文件。对内容进行散列存储到相应物理位置。 ---> 散列表
- 索引文件:为文件建立一个索引表,可多级。 ---> 增加了散列表的链表
- 文件的目录
- 概念:实现文件按名存取的关键数据结构
- 分类:一级目录、二级目录、树型目录
六、并发程序设计
1. 并发程序的基本概念
- 程序顺序性
- 内部顺序性:CPU严格按照顺序执行指令
- 外部顺序性:程序员设计程序时往往用顺序设计的思想
- 顺序程序特性
- 程序执行的顺序性
- 计算环境的封闭性: 程序执行时犹如独占资源
- 计算结果的确定性
- 计算过程的可再现性
- 并发进程
- 无关的并发进程:一组并发进程,在不同变量集上运行
- 交往的并发进程:一组并发进程,共享某些变量,相互影响
- 并发进程制约关系
- 进程互斥:争夺某一个资源
- 进程同步:共同完成某一个任务,协调先后顺序
- 发生问题:
- 与时间有关的错误:结果错误、永远等待
- 临界区:
- 临界资源:一次只能被一个进程使用的资源(互斥共享变量)
- 临界区:是个程序段,是并发进程中与互斥共享变量相关的程序段
- 相关的临界区:两个进程的临界区有相同的临界资源(必须互斥进入)
- 问题:
- 多个并发进程访问临界资源存在制约关系
- 如果两个进程同时处在相关的临界区,会发生与时间有关的错误
- 临界区管理的要求:
- 一次至多允许一个进程停留在相关临界区
- 一个进程不能无限制停留在临界区内
- 一个进程不能无限制等待进入临界区内
- 临界区嵌套使用
2. 并发程序控制和问题
- 临界区管理实现:
- 思路:判断锁和获取锁要作为原子操作,不然会死锁或时间错误
- 实现:
- 原子指令:测试并建立锁指令、对换指令(忙式等待,效率不高)
- 中断控制:进出临界区时开关中断,这样临界区执行时就不会被中断,自然实现了原子性
- 这个时操作系统的原语,是操作系统解决这个问题的办法
- 不建议用户程序使用,因为无法保证程序员设计出短小精悍的原语
- PV操作:用信号量,“申请-等待队列-中断恢复”
- 生产者消费者问题:
- 进程间通信
- 信号量:低级通信方式
- 信件:进程通信机制(直接通信、间接通信)
- 基于流:多个进程共同使用一个缓冲区
- RPC:远程过程调用
- 死锁
- 概念:两个进程分别等待对方占有的资源
- 死锁的产生
- 互斥:进程互斥地使用资源
- 占有和等待:一个进程得不到资源,就等待且不释放已有资源
- 不剥夺:进程不能从另一个进程抢走资源
- 循环等待:每个进程都等待它前一个进程所持有的资源
- 死锁的防止
- 破坏上述四个条件之一即可
- eg. 层次分配:资源分成多个层次,一个进程获得某个资源后只能获得比他层次更高的资源
- 死锁的避免:银行家算法
- 死锁的检测:
-
算法:warshall闭包
1.1 计算机操作系统概论
【操作系统(Opreating System)】:是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
- 管理好这些设备,提高其利用率和系统的吞吐量;
- 为用户和应用程序提供一个简单的接口
- 是现代计算机系统中最基本和最重要的系统软件
【操作系统的作用】:这里从用户、资源管理以及资源抽象等方面进行分析
- OS作为用户与计算机硬件系统之间的接口:即OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统
其中包括三大类,即命令接口、程序接口以及GUI
Ⅰ 命令接口:又分为联机命令和脱机命令,其中联机命令为一对一模式,脱机命令为一堆对一堆模式
Ⅱ 程序接口:系统调用
Ⅲ GUI:图形用户界面
- OS作为计算机系统资源的管理者:一个计算机系统中的资源可分为四类,分别是处理器、存储器、I/O设备及文件(数据和程序)
其中
Ⅰ 处理器管理用于分配和控制处理器
Ⅱ 存储器管理主要负责内存的分配与回收
Ⅲ I/O设备管理主要负责I/O设备的分配回收与操作
Ⅳ 文件操作适用于对文件的存取、共享和保护
具体功能细节 将在后面展开论述
- OS实现了对计算机资源的抽象:通常把覆盖了上述软件的机器称为扩充机器或虚机器。它向用户提供了一个对硬件操作的抽象模型,用户可以利用这个模型提供的接口操作计算机,无序了解具体的物理接口实现细节;例如,将I/O设备抽象为一组数据结构以及一组操作命令,如write、read命令等;此外,这种类型的抽象是可以进行叠加的,并且随着抽象层次的提高,抽象模型接口所提供的功能也将变得越来越强大,可见,OS是建立在计算机硬件上的多层软件的集合。
【操作系统的基本特性】:
- 并发(Concurrence)
Ⅰ 区分并发与并行
1)并发:两个或多个事件在同一时间间隔内发生;在多道程序环境下,并发是指一段时间在宏观上有多个程序在同时运行,但在单处理机系统中,这些程序是按时间片分别执行的,所以微观上仍是交替执行
2)并行:多个事件在同一时刻同时发生
Ⅱ 进程概念的引入:所谓进程,是指系统中能独立运行并作为资源分配基本的基本单位,其由一组机器指令、数据和堆栈组成,是一个能独立运行的活动实体。多个进程之间可以并发执行并交换信息
- 共享(Sharing):OS环境下的资源共享又被称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用
Ⅰ 互斥共享
Ⅱ 同时访问
并发和共享是多用户、多任务操作系统的两个最基本特征,其互为存在条件(资源共享是以进程的并发执行为条件的,若系统不允许并发执行也就不存在共享问题;此外,若系统不能实现资源有效管理,必然会影响并发的进行)
- 虚拟(Virtual):通过某种技术将一个物理实体变为若干逻辑对应的物理功能
Ⅰ 时空复用
Ⅱ 空分复用
- 异步(Asynchronism):进程是以人们不可预知的速度向前推进的,即进程的异步性(因此,OS也配备了进程同步机制)
1.计算机发展阶段 计算机发展历史 机械式计算机 机电式计算机 电子计算机 逻辑电路与计算机 二极管 电子管 晶体管 硅 门电路 计算机 电磁学计算机二进制
引言
任何事物的创造发明都来源于需求和欲望
而科学技术的发展则推动实现了目标
正是因为人类对于计算能力孜孜不倦的追求,才创造了如今规模的计算机.
计算机,字如其名,用于计算的机器.这就是最初计算机的发展动力.
在漫长的历史长河中,随着社会的发展和科技的进步,人类始终有计算的需求
进行运算时所运用的工具,也经历了由简单到复杂,由低级向高级的发展变化。
本文尽可能的仅仅描述逻辑本质,不去追究实现细节
计算(机|器)的发展与数学/电磁学/电路理论等自然科学的发展息息相关
计算(机|器)的发展有四个阶段
手动阶段
机械阶段
机电阶段
电子阶段
手动阶段
顾名思义,就是用手指进行计算,或者操作一些简易工具进行计算
最开始的时候人们主要是借助简单的工具比如手指/石头/打绳结/纳皮尔棒/计算尺等,
我想大家都用手指数过数;
有人用一堆石子表示一些数目;
也有人曾经用打绳结来计数;
再后来有了一些数学理论的发展,纳皮尔棒/计算尺则是借助了一定的数学理论,可以理解为是一种查表计算法.
你会发现,这里还不能说是计算(机|器),只是计算而已,更多的靠的是心算以及逻辑思维的运算,工具只是一个简简单单的辅助.
机械阶段
我想不用做什么解释,你看到机械两个字,肯定就有了一定的理解了,没错,就是你理解的这种普通的意思,
一个齿轮,一个杠杆,一个凹槽,一个转盘这都是一个机械部件.
人们当然不满足于简简单单的计算,自然想制造计算能力更大的机器
机械阶段的主题思想其实也很简单,就是通过机械的装置部件比如齿轮旋转,动力传送等来表示数据记录,进行运算,也即是机械式计算机,这样说有些抽象.
我们举例说明:
契克卡德是现今公认的机械式计算第一人,他发明了契克卡德计算钟
我们不去纠结这个东西到底是如何实现的,只描述事情逻辑本质
其中他有一个进位装置是这样子的
可以看到采用十进制,转一圈之后,轴上面的一个突出齿,就会把更高一位(比如十位)进行加一
这就是机械阶段的精髓,不管他有多复杂,他都是通过机械装置进行传动运算的
还有帕斯卡的加法器
他是使用长齿轮进行进位
再有后来的莱布尼茨轴,设计的更为精巧
我觉得对于机械阶段来说,如果要用一个词语来形容,应该是精巧,就好似钟表里面的齿轮似的
不管形态究竟如何,终究也还是一样,他也只是一个精巧了再精巧的仪器,一个精密设计的机关装置
首先要把运算进行分解,然后就是机械性的依靠齿轮等部件传动运转来完成进位等运算.
说计算机的发展,就不得不提一个人,那就是巴贝奇
他发明了史上著名的差分机,之所以叫差分机这个名字,是因为它计算所使用的是帕斯卡在1654年提出的差分思想
我们仍旧不去纠结他的原理细节
此时的差分机,你可以清晰地看得到,仍旧是一个齿轮又一个齿轮,一个轴又一个轴的更加精巧的仪器
很显然他仍旧又仅仅是一个计算的机器,只能做差分运算
再后来1834年巴贝奇提出来了分析机的概念 一种通用计算机的概念模型
正式成为现代计算机史上的第一位伟大先驱。
之所以这样说,是因为他在那个年代,已经把计算机器的概念上升到了通用计算机的概念,这比现代计算的理论思想提前了一个世纪
它不局限于特定功能,而且是可编程的,可以用来计算任意函数——不过这个想法是构思在一坨齿轮之上的.
巴贝奇设计的分析机主要包括三大部分
1、用于存储数据的计数装置,巴贝奇称之为“仓库”(store),相当于现在CPU中的存储器
2、专门负责四则运算的装置,巴贝奇称之为“工厂”(mill),相当于现在CPU中的运算器
3、控制操作顺序、选择所需处理的数据和输出结果的装置
而且,巴贝奇并没有忽略输入输出设备的概念
此时你回想一下冯诺依曼计算机的结构的几大部件,而这些思想是在十九世纪提出来的,是不是不寒而栗!!!
巴贝奇另一大了不起的创举就是将穿孔卡片(punched card)引入了计算机器领域,用于控制数据输入和计算
你还记得所谓的第一台计算机"ENIAC"使用的是什么吗?就是纸带!!
ps:其实ENIAC真的不是第一台~
所以说你应该可以理解为什么他被称为"通用计算机之父"了.
他提出的分析机的架构设想与现代冯诺依曼计算机的五大要素,存储器 运算器 控制器 输入 输出是吻合的
也是他将穿孔卡片应用到计算机领域
ps:穿孔卡片本身并不是巴贝奇的发明,而是来自于改进后的提花机,最早的提花机来自于中国,也就是一种纺织机
只是可惜,分析机并没有真正的被构建出来,但是他的思维理念是超前的,也是正确的
巴贝奇的思想超前了整整一个世纪,不得不提的就是女程序员艾达,有兴趣的可以google一下,Augusta Ada King
机电阶段与电子阶段使用到的硬件技术原理,有不少是相同的
主要差别就在于计算机理论的成熟发展以及电子管晶体管的应用
为了接下来更好的说明,我们自然不可避免的要说一下当时出现的自然科学了
自然科学的发展与近现代计算的发展是一路相伴而来的
文艺复兴运动使人们从传统的封建神学的束缚中慢慢解放,文艺复兴促进了近代自然科学的产生和发展
你要是实在没事情做,可以探究一下"欧洲文艺复兴革命对近代自然科学发展史有何重要影响"这一议题
电磁学
据传是1752年,富兰克林做了实验,在近代发现了电
随后,围绕着电,出现了很多旷世的发现.比如电磁学,电能生磁,磁能生电
这就是电磁铁的基本原型
根据电能生磁的原理,发明了继电器,继电器可以用于电路转换,以及控制电路
电报就是在这个技术背景下被发明了,下图是基本原理
但是,如果线路太长,电阻就会很大,怎么办?
可以用人进行接收转发到下一站,存储转发这是一个很好的词汇
所以继电器又被作为转换电路应用其中
二进制
而且,一个很重要的事情是,德国人莱布尼茨大约在1672-1676发明了二进制
用0和1两个数码来表示的数
逻辑学
更准确的说是数理逻辑,乔治布尔开创了用数学方法研究逻辑或形式逻辑的学科
既是数学的一个分支,也是逻辑学的一个分支
简单地说就是与或非的逻辑运算
逻辑电路
香农在1936年发表了一篇论文<继电器和开关电路的符号化分析>
我们知道在布尔代数里面
X表示一个命题,X=0表示命题为假;X=1表示命题为真;
如果用X代表一个继电器和普通开关组成的电路
那么,X=0就表示开关闭合 X=1就表示开关打开
不过他当时0表示闭合的理念跟现代正好相反,难道觉得0是看起来就是闭合的吗
解释起来有些别扭,我们用现代的看法解释下他的观点
也就是:
(a) 开关的闭合与打开对应命题的真假,0表示电路的断开,命题的假 1表示电路的连通,命题的真
(b)X与Y的交集,交集相当于电路的串联,只有两个都联通,电路才是联通的,两个都为真,命题才为真
(c)X与Y的并集,并集相当于电路的并联,有一个联通,电路就是联通的,两个有一个为真,命题即为真
这样逻辑代数上的逻辑真假就与电路的连通断开,完美的完全映射
而且,所有的布尔代数基本规则,都非常完美的适合开关电路
基本单元-门电路
有了数理逻辑和逻辑电路的基础理论,不难得出电路中的几个基础单元
Vcc表示电源 比较粗的短横线表示的是接地
与门
串联电路,AB两个电路都联通时,右侧开关才会同时闭合,电路才会联通
符号
另外还有多输入的与门
或门
并联电路,A或者B电路只要有任何一个联通,那么右侧开关就会有一个闭合,右侧电路就会联通
符号
非门
右侧开关常闭,当A电路联通的时候,则右侧电路断开,A电路断开时,右侧电路联通
符号:
所以你只需要记住:
与是串联/或是并联/取反用非门
机电阶段
接下来我们说一个机电式计算机器的优秀典范
机电式的制表机
霍尔瑞斯的制表机,主要是为了解决美国人口普查的问题.
人口普查,你可以想象得到自然是用于统计信息,性别年龄姓名等
如果纯粹的人工手动统计,可想而知,这是多么复杂的一个工程量
制表机首次将穿孔技术应用到了数据存储上,你可以想象到,使用打孔和不打孔来识别数据
不过当时设计还不是很成熟,比如如果现代,我们肯定是一个位置表示性别,可能打孔是女,不打孔是男
当时是卡片上用了两个位置,表示男性就在标M的地方打孔,女性就在标F的地方打孔,不过在当时也是很先进了
然后,专门的打孔员使用穿孔机将居民信息戳到卡片上
紧接着自然是要统计信息
利用电流的通断来识别数据
对应着这个卡片上的每个数据孔位,上面有着金属针,下面有着容器,容器装着水银
按下压板时,卡片有孔的地方,针可以通过,与水银接触,电路接通,没孔的地方,针就被挡住。
如何将电路通断对应到所需要的统计信息?
这就用到了数理逻辑与逻辑电路了
最上面的引脚是输入,通过打孔卡片的输入
下面的继电器是输出,根据结果 通电的M将产生磁场, 牵引特定的杠杆,拨动齿轮完成计数。
看到没,此时已经可以根据打孔卡片作为输入,继电器组成的逻辑电路作为运算器,齿轮进行计数的输出了
制表机中的涉及到的主要部件包括: 输入/输出/运算
1896年,霍尔瑞斯创立了制表机公司,他是IBM的前身.....
有一点要说明
并不能笼统的说谁发明了什么技术,下一个使用这种技术的人,就是借鉴使用了发明者或者说发现者的理论技术
在计算机领域,很多时候,同样的技术原理可能被好几个人在同一时期发现,这很正常
还有一位大神,不得不介绍,他就是康拉德·楚泽 Konrad Zuse 德国
http://zuse.zib.de/
因为他发明了世界上第一台可编程计算机——Z1
图为复制品,复制品其实机械工艺上比37年的要现代化一些
尽管zuse生于1910,Z1也是大约1938建造完成,但是他其实跟机械阶段的计算器并没有什么太大区别
要说和机电的关系,那就是它使用电动马达驱动,而不是手摇,所以本质还是机械式
不过他的牛逼之处在于在也设想出来了现代计算机一些的理论雏形
将机器严格划分为处理器和内存两大部分
采用了二进制
引入浮点数,发明了浮点数的二进制规格化表示
靠机械零件实现与、或、非等基础的逻辑门
虽然作为机械设备,但是却是一台时钟控制的机器。其时钟被细分为4个子周期
处理器是微代码结构的操作被分解成一系列微指令,一个机器周期一条微指令。
微指令在运算器单元之间产生具体的数据流,运算器不停地运作,每个周期都将两个输入寄存器里的数加一遍。
可编程 从穿孔带读入8比特长的指令 指令已经有了操作码 内存地址的概念
这些全都是机械式的实现
而且这些具体的实现细节的理念思维,很多也是跟现代计算机类似的
可想而知,zuse真的是个天才
后续还研究出来更多的Z系列
虽然这些天才式的人物并没有一起坐下来一边烧烤一边讨论,但是却总是"英雄所见略同"
几乎在相同时期,美国科学家斯蒂比兹(George Stibitz)与德国工程师楚泽独立研制出二进制数字计算机,就是Model k
Model I不但是第一台多终端的计算机,还是第一台可以远程操控的计算机。
贝尔实验室利用自身的技术优势,于1940年9月9日,在达特茅斯学院(Dartmouth College)和纽约的本部之间搭起线路.
贝尔实验室后续又推出了更多的Model系列机型
再后来又有Harvard Mark系列,哈佛与IBM的合作
哈佛这边是艾肯IBM是其他三位
Mark I也通过穿孔带获得指令,和Z1是不是相同?
穿孔带每行有24个空位
前8位标识用于存放结果的寄存器地址,中间8位标识操作数的寄存器地址,后8位标识所要进行的操作
——结构已经非常类似后来的汇编语言
内部还有累加寄存器,常数寄存器
机电式的计算机中,我们可以看到,有些伟大的天才已经构思设想出来了很多被应用于现代计算机的理论
机电时期的计算机可以说是有不少机器的理论模型已经算是比较接近现代计算机了
而且,有不少机电式的型号一直发展到电子式的年代,部件使用电子管来实现
这为后续计算机的发展提供了不可磨灭的贡献
电子管
我们现在再转到电学史上的1904年
一个叫做弗莱明的英国人发明了一种特殊的灯泡-----电子二极管
先说一下爱迪生效应:
在研究白炽灯的寿命时,在灯泡的碳丝附近焊上一小块金属片。
结果,他发现了一个奇怪的现象:金属片虽然没有与灯丝接触,但如果在它们之间加上电压,灯丝就会产生一股电流,趋向附近的金属片。
这股神秘的电流是从哪里来的?爱迪生也无法解释,但他不失时机地将这一发明注册了专利,并称之为“爱迪生效应”。
此处完全可以看得出来,爱迪生是多么的有商业头脑,这就拿去申请专利去了~此处省略一万字....
金属片虽然没有与灯丝接触,但是如果他们之间加上电压,灯丝就会产生一股电流,趋向附近的金属片
就是图中的这样子
而且这种装置有一个神奇的功能:单向导电性,会根据电源的正负极连通或者断开
其实上面的形式和下图是一样的,要记住的是左边靠近灯丝的是阴极 阴极电子放出
用现在的术语解释就是:
阴极是用来放射电子的部件, 分为氧化物阴极和碳化钍钨阴极。
一般来说氧化物阴极是旁热式的, 它是利用专门的灯丝对涂有氧化钡等阴极体加热, 进行热电子放射。
碳化钍钨阴极一般都是直热式的,通过加热即可产生热电子放射, 所以它既是灯丝又是阴极。
然后又有个叫做福雷斯特的人在阴极和阳极之间,加入了金属网,现在就叫做控制栅极
通过改变栅极上电压的大小和极性,可以改变阳极上电流的强弱,甚至切断
电子三极管的原理大致就是这样子的
既然可以改变电流的大小,他就有了放大的作用
不过显然,是电源驱动了他,没有电他本身不能放大
因为多了一条腿,所以就叫做电子三极管
我们知道,计算机应用的其实只是逻辑电路,逻辑电路是与或非门组成,他并不是真的在乎到底是谁有这个本事
之前继电器能实现逻辑门的功能,所以继电器被应用到了计算机上
比如我们上面提到过的与门
之所以继电器可以实现逻辑门的功能,就是因为它具有"控制电路"的功能,就是说可以根据一侧的输入情况,决定另一侧的情况
那新发明的电子管,根据它的特性,也可以应用于逻辑电路
因为你可以控制栅极上电压的大小和极性,可以改变阳极上电流的强弱,甚至切断
也达到了根据输入,控制另外一个电路的功能,只不过从继电器换成电子管,内部的电路需要变化下而已
电子阶段
现在应该说一下电子阶段的计算机了,可能你早就听过了ENIAC
我想说你更应该了解下ABC机.他才是真正的世界上第一台电子数字计算设备
阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,通常简称ABC计算机)
1937年设计,不可编程,仅仅设计用于求解线性方程组
但是很显然,没有通用性,也不可编程,也没有存储程序机制,他完全不是现代意义的计算机
上面这段话来源于:http://www4.ncsu.edu/~belail/The_Introduction_of_Electronic_Computing/Atanasoff-Berry_Computer.html
主要陈述了设计理念,大家可以上面的这四点
如果你想要知道你和天才的距离,请仔细看下这句话
he jotted down on a napkin in a tavern
世界上第一台现代电子计算机埃尼阿克(ENIAC),也是继ABC之后的第二台电子计算机.
ENIAC是参照阿塔纳索夫的思想完整地制造出了真正意义上的电子计算机
奇葩的是为啥不用二进制...
建造于二战期间,最初的目的是为了计算弹道
ENIAC具有通用的可编程能力
更详细的可以参看维基百科:
https://zh.wikipedia.org/zh-cn/%E9%9B%BB%E5%AD%90%E6%95%B8%E5%80%BC%E7%A9%8D%E5%88%86%E8%A8%88%E7%AE%97%E6%A9%9F
不过ENIAC程序和计算是分开的,也就意味着你需要手动输入程序!
并不是你理解的键盘上敲一敲就好了,是需要手工插接线的方式进行的,这对使用来说是一个巨大的问题.
有一个人叫做冯·诺伊曼,美籍匈牙利数学家
有意思的是斯蒂比兹演示Model I的时候,他是在场的
而且他也参与了美国第一颗原子弹的研制工作,任弹道研究所顾问,而且其中涉及到的计算自然是极为困难的
我们说过ENIAC是为了计算弹道的,所以他早晚会接触到ENIAC,也算是比较顺理成章的他也加入了计算机的研制
冯诺依曼结构
1945年,冯·诺依曼和他的研制小组在共同讨论的基础上
发表了一个全新的“存储程序通用电子计算机方案”——EDVAC(Electronic Discrete Variable Automatic Computer)
一篇长达101页纸洋洋万言的报告,即计算机史上著名的“101页报告”。这份报告奠定了现代电脑体系结构坚实的根基.
报告广泛而具体地介绍了制造电子计算机和程序设计的新思想。
这份报告是计算机发展史上一个划时代的文献,它向世界宣告:电子计算机的时代开始了。
最主要是两点:
其一是电子计算机应该以二进制为运算基础
其二是电子计算机应采用存储程序方式工作
并且进一步明确指出了整个计算机的结构应由五个部分组成:
运算器、控制器、存储器、输入装置和输出装置,并描述了这五部分的职能和相互关系
其他的点还有,
指令由操作码和地址码组成,操作码表示操作的性质,地址表示操作数的存储位置
指令在存储器内按照顺序存放
机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成
人们后来把根据这一方案思想设计的机器统称为“冯诺依曼机”,这也是你现在(2018年)在使用的计算机的模型
我们刚才说到,ENIAC并不是现代计算机,为什么?
因为不可编程,不通用等,到底怎么描述:什么是通用计算机?
1936年,艾伦·图灵(1912-1954)提出了一种抽象的计算模型 —— 图灵机 (Turing Machine)
又称图灵计算、图灵计算机
图灵的一生是难以评价的~
我们此处仅仅说他对计算机的贡献
下面这段话来自于百度百科:
图灵的基本思想是用机器来模拟人们进行数学运算的过程
所谓的图灵机就是指一个抽象的机器
图灵机更多的是计算机的科学思想,图灵被称为 计算机科学之父
它证明了通用计算理论,肯定了计算机实现的可能性
图灵机模型引入了读写与算法与程序语言的概念
图灵机的思想为现代计算机的设计指明了方向
冯诺依曼体系结构可以认为是图灵机的一个简单实现
冯诺依曼提出把指令放到存储器然后加以执行,据说这也来源于图灵的思想
至此计算机的硬件结构(冯诺依曼)以及计算机的自然科学理论(图灵)
已经比较完全了
计算机经过了第一代电子管计算机的时代
随后出现了晶体管
晶体管
肖克利1947年发明了晶体管,被称为20世纪最重要的发明
硅元素1822年被发现,纯净的硅叫做本征硅
硅的导电性很差,被称为半导体
一块纯净的本征硅的半导体
如果一边掺上硼一边掺上磷 然后分别引出来两根导线
这块半导体的导电性获得了很大的改善,而且,像二极管一样,具有单向导电性
因为是晶体,所以叫做晶体二极管
而且,后来还发现加入砷 镓等原子还能发光,称为发光二极管 LED
还能特殊处理下控制光的颜色,被大量应用
如同电子二极管的发明过程一样
晶体二极管不具有放大作用
又发明了在本征半导体的两边掺上硼,中间掺上磷
这就是晶体三极管
只要电流I1 发生一点点变化 电流I2就会大幅度变化
也就是说这种新的半导体材料就像电子三极管一样具有放大作
所以被称为晶体三极管
晶体管的特性完全适合逻辑门以及触发器
世界上第一台晶体管计算机诞生于肖克利获得诺贝尔奖的那年,1956年,此时进入了第二代晶体管计算机时代
再后来人们意识到:晶体管的工作原理和一块硅的大小实际没有关系
可以将晶体管做的很小,但是丝毫不影响他的单向导电性,照样可以方法信号
所以去掉各种连接线,这就进入到了第三代集成电路时代
随着技术的发展,集成的晶体管的数量千百倍的增加,进入到第四代超大规模集成电路时代
4.计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动
计算机的启动
地址空间分成了两部分ROM和RAM
ROM位于主板上,是主板生产的时候就有的一部分
机器加电之后
会先去读取ROM中的已经固化的一些指令
主要是自检Power-On Self-Test,POST
主要包括 CPU 显卡,内存
还有一些基本的初始化(比如之前说到有些地方寄存器要清零 都是一种初始化)
也就是对于计算机来说想要正常工作的一个底线,最基本的功能
所以这个ROM系统也叫作BIOS Basic Input/Output System
就好像他的名字一样,这个系统并不能给我们提供服务,只是说计算机可以提供服务了
还有一个启动顺序的概念 计算机内可能有多个不同的存储设备
有一个启动模块存储启动顺序信息
然后会根据设置读取第一块存储设备
BIOS系统接着读取硬盘上固定位置的数据
这个位置的数据结构是约定好的---通常是硬盘的0面0磁道的第一个扇区
读入到内存,然后用一个跳转指令进入到这里进行执行
硬盘的0面0磁道的第一个扇区 是主引导扇区
这是一个约定规范,就像接头暗号一样,我往这里存,你从这里读
引导分区包含了 启动指令和数据,以及分区表
每个分区有分区资料,表明分区的起始位置,大小 类型以及是否为活动分区
类型表明分区是哪种操作系统管理的
活动分区表示应该被启动的
中央处理器读取到了应该被启动的操作系统的引导代码,将他读取到内存中
接着就是操作系统自身加载的过程了
所以计算机的启动,就是计算机电路上电之后,读取一系列二进制数据,执行指令的过程.
【-】计算机操作系统
今天的关于【重学计算机】计算机操作系统和计算机操作系统课程重要吗的分享已经结束,谢谢您的关注,如果想了解更多关于1.1 计算机操作系统概论、1.计算机发展阶段 计算机发展历史 机械式计算机 机电式计算机 电子计算机 逻辑电路与计算机 二极管 电子管 晶体管 硅 门电路 计算机 电磁学计算机二进制、4.计算机启动过程的简单介绍 计算机启动流程 计算机BIOS作用 POST 开机自检 计算机启动顺序 分区表 操作系统启动、【-】计算机操作系统的相关知识,请在本站进行查询。
本文标签: