1. 计算机的简介
1.1 计算机的基本组成
(1)处理器(processor)
(2)主存储器(main memory)
①易失性;②也称为“Real memory” OR “primary memory”
(3)输入输出模块(I/O modules)
①二级存储设备;②通信设备;③终端
(4)系统总线(system bus)
①包括控制总线、地址总线和数据总线等。
②为处理器、主存和输入/输出模块间提供通讯的设施
1.2 计算机部件
(1)存储地址寄存器(MAR):确定下一次读写的存储器地址
(2)存储缓冲寄存器(MBR)
①写入存储器的数据
②从存储器中读出的数据
(3)I/O地址寄存器(I/O AR):确定一个特定的输入/输出设备
(4)I/O缓冲寄存器(I/O BR):缓存输入/输出设备与处理器间的交换数据
(5)程序计数器(PC):包含将取指令的地址
(6)指令寄存器(IR):包含最近取的指令内容。
1.3 指令周期
(1)处理器执行的程序由一组指令组成
(2)一个单一的指令执行称为一个指令周期
(3)一个指令的执行需要两个步骤
①处理器从存储器读一条指令:fetch
②处理器执行指令:excute
1.4 取指令和执行指令
(1)取指令:处理器从程序计数器(PC)保存的地址中取指令,并存放在指令寄存器(IR)中。
(2)执行指令:处理器解析IR中的指令并执行对应的操作,这些操作分为四类:
①处理器—存储器:在存储器和处理器之间传递数据
②处理器—IO:处理器和I/O模块间传递数据
③数据处理:数据的算术操作和逻辑操作
④控制:改变执行顺序
2. 操作系统的目标、功能和主要特性
2.1 操作系统的概念
(1)应用程序和系统硬件之间的接口
(2)控制应用程序执行的程序
(3)操作系统与普通的计算机软件相同,都是由处理器执行的一段和一组程序。
(4)操作系统经常释放控制,并且必须依赖于处理器才能恢复控制。
2.2 操作系统的目标
(1)方便:操作系统使计算机更易于使用
(2)有效:更有效的利用计算机资源
(3)扩展的能力:不影响服务的情况下,有效的开发、测试和引入新的系统功能。
2.3 操作系统的功能
(1)计算机的层次视图
(2)操作系统提供的服务
①程序开发;②程序执行;③I/O设备访问;④文件访问控制;⑤系统访问;⑥错误检测与响应(内部或外部的硬件错误,如存储器错误或设备错误;软件错误,如算术溢出或试图访问被禁止的存储器单元;操作系统无法确认的应用程序的请求)
2.4 操作系统的主要特性
(1)易扩展性(硬件或软件方面的扩展)
(2)并发性
(3)共享性
(4)异步性(如邮件的收与发的异步)
(5)虚拟性
3. 操作系统的发展
(1)串行处理
这是个久远的年代(上世纪50年代也不算太远哈),计算机一次只能运行一个程序,要通过输入设备读入程序(读卡器吧)运行结束后再将结果输出到打印机。这个年代是没有操作系统的。
(2)简单批处理系统
①这个算是操作系统的鼻祖吧?常驻内存的一个监控程序,要运行的程序被管理员组织成一批,监控程序从存储器(卡片或磁带)读取要执行的Job将处理器控制权转交给程序运行结束后(成功或失败)控制权返回监控程序继续读入下一个任务。
②简单批处理节约了计算机调度和准备的时间——任务不再是一个一个的处理了,变成一批了。
(3)多道程序批处理系统
①现代操作系统进程切换之父?由于内存的加大除了容纳操作系统、一个程序以外还有足够的空间容纳第二、第三个程序,所以就有了同时运行多个程序的能力。在第一个程序被阻塞后(I/O等),可以转交控制权个第二、第三个程序。
②多道程序批处理节约了CPU等待I/O等慢速设备的时间,这个效率的提升非常客观。
(4)分时系统
注意关注在人的交互上。人肯定是比I/O还慢的设备了,由于早年计算机资源的稀缺当然要达到多人共用一台机器的目的。分时操作系统把计算机资源做时间切片,用户通过终端连接到计算机,每个中断都获取到时间切片内的计算资源,由于人是反应很钝的,所以就像每人都有一台计算机服务一样。
4. 现代操作系统的特征
(1)微内核体系统结构:只给内核分配一些最基本的功能,包括地址空间、进程间通信和基本调度。其他的操作系统服务都是由运行在用户模式下且与其它应用程序类似的进程提供的,这些进程可根据特定的应用和环境需求进行定制,有时也称这些进程为服务器。这种方法把内核和服务程序的开发分离开,可以为特定的应用程序或环境要求定制服务程序。
(2)多线程:指把执行一个应用程序的进程划分成可以同时运行的多个线程。
(3)对称多处理:可调度进程或线程到所有的处理器运行。对称多处理技术一个很具有吸引力的特征是多处理器的存在对用户是透明的。操作系统负责在多个处理器中调度线程或进程,并且负责处理器间的同步。
(4)分布式操作系统:使用户产生错觉,使多机系统好像具有一个单一的内存空间、外存空间以及其他的统一存取措施,如分布式文件系统。
(5)面向对象设计:面向对象设计的原理用于给小内核增加模块化的扩展上。在操作系统一级,基于对象的结构使程序员可以定制操作系统,而不会破坏系统的完整性。