华北电力大学本科毕业设计(论文)
1.2 国内外研究现状
操作系统并不是与计算机硬件一起诞生的,它是在人们使用计算机的过程中,为了满足两大需求:提高资源利用率、增强计算机系统性能,伴随着计算机技术本身及其应用的日益发展,而逐步地形成和完善起来的。
操作系统的发展经历了手工操作(无操作系统)、批处理系统、多道程序系统、分时系
统、实时系统、通用操作系统。如今,概念意义上的操作系统和通俗意义上的操作系统差距越来越大,通俗意义上的操作系统为了方便而把最普通的包和应用程序的集合包括在操作系统内,而随着操作系统的发展,一些功能更强的“第二类”操作系统软件也被包括进去。在今天,没有图形界面和各种文件浏览器已经不能称为一个真正的操作系统了。
另一方面,操作系统的发展和计算机硬件的发展紧密联系,而从计算机硬件发展的角度来看,操作系统的发展经过了大型机时代操作系统、小型机时代操作系统(Unix)和个人计算机时代操作系统。
大型机时代。早期的操作系统非常多样化,生产商生产出针对各自硬件的系统。每一个操作系统都有很不同的命令模式、操作过程和调试工具,即使它们来自同一个生产商。最能 反映这一状况的是,厂家每生产一台新的机器都会配备一套新的操作系统。这种情况一直持续到二十世纪六十年代IBM公司开发了System/360系列机器。尽管这些机器在性能上有明显的差异,但是他们有统一的操作系统——OS/360。OS/360的成功陆续地催化出MFT、MVT、SVS、MVS、MVS/XA、MVS/ESA、OS/390和z/OS。
小型机和UNIX的崛起。UNIX操作系统是由AT&T公司开发出来的。由于它的早期版本是完全免费的,可以轻易获得并随意修改,所以它得到了广泛的接受。后来,它成为开发小型机操作系统的起点。由于早期的广泛应用,它已经成为的操作系统的典范。不过,它始终属于AT&T公司,只有那些能负担的起许可费的企业才用得起,这限制了它的应用范围。
早期的操作系统是可以被用户软件所利用的功能的集合。一些有能力的公司发展更好的系统,但他们不支持其他公司硬件的特性。
60年代末70年代初,几种硬件支持相似的或提供端口的软件可在多种系统上运行。早期的系统已经利用微程序来在他们的系统上实现功能。事实上,除了360/165和360/168外,360/40之后的大部分360系列的机器都实行微程序设计。
个人计算机时代。Apple, DOS 和以后微型处理器的发展使计算机的应用普及至中小企及个人爱好者。而计算机的普及又推动了硬件组件公共接口的发展(如S-100,SS-50,Apple
2
华北电力大学本科毕业设计(论文)
II,ISA和PCI总线),并逐渐地要求有一种“标准”的操作系统去控制它们。在这些早期的计算机中,主要的操作系统是8080/8085/Z-80 CPU用的Digital Research’s CP/M-80,它建立在数码设备公司(Digital Research)几个操作系统的基础上,主要针对PDP-11架构。在此基础上又产生了MS-DOS(或IBM公司的PC-DOS)。这些计算机在ROM(只读存储器)都有一个小小的启动程序,可以把操作系统从磁盘装载到内存。IBM-PC系列的BIOS是这一思想的延伸。自1981年第一台IBM-PC诞生以来,BIOS的功能得到不断地增强。
随着显示设备和处理其成本的降低,很多操作系统都开始提供图形用户界面。如:许多UNIX提供的X Window一类的系统、微软的Windows系统、苹果公司的Mac系统和IBM公司的OS/2等。最初的图形用户界面是由Xerox Palo Alto研究中心70年代初期研发出来的,之后被许多公司模仿,继承发展。
1.3 主要研究内容
1. 实现一个能够在裸机上运行的简易的操作系统。
? 该操作系统在保护模式下运行,是一个多任务的操作系统,可以进行任务调度
以及任务之间的通信。
? 该操作系统具有自己的硬盘驱动程序,并实现一个简易的文件系统,能够实现
基本的文件操作系统调用。
? 该操作系统具有简单的内存管理功能。
? 该操作系统使用键盘和显示器作为基本的输入输出系统。
? 该操作系统具有简易的命令行风格的用户界面,实现一些主要的操作系统命令。 2. 在时间允许的情况下,进一步改善用户界面,能够实现一个简易的图形用户界面,
可以使用鼠标进行操作,并能够输出声音(选做)。
3. 将已完成的简易操作系统制作成软盘镜像文件,可在虚拟机中运行。 4. 将已完成的简易操作系统制作成光盘在真机上运行(选做)。 5. 撰写毕业论文。 6. 答辩。
3
华北电力大学本科毕业设计(论文)
第2章 操作系统运行环境及运行原理简述
2.1 计算机系统硬件组成简述
如图2-1所示,这是一个计算机系统硬件组成的简单模型。
鼠标 键盘 显示器 磁盘 USB控制器 图形适配器 I/O总线 寄存器文件 PC ALU 主存储器 总线接口 CPU 系统总线 I/O桥 存储器总线 磁盘控制器 扩展插槽 图2-1 计算机系统硬件组成的简单模型 2.1.1 总线
贯穿整个系统的是一组电子管道,称作“总线”,它携带信息字节并负责在各个部件之间传递。通常总线被设计成传送定长的字节块,也就是“字”(word)。一个字的字节数(被称为“字长”)是一个基本的系统参数,在各个系统中可能不相同。现在的很多机器字长有的是4个字节(即32bit),有的是8个字节(即64bit)。[1]
2.1.2 I/O设备
输入/输出设备(I/O设备)是系统与外部世界的联系通道。如图2-1所示,示例系统包括4个I/O设备:作为用户输入的键盘和鼠标,作为用户输出的显示器,以及用于长期存储数据和程序的磁盘驱动。
每个I/O设备都通过一个“控制器”或者“适配器”与I/O总线相连。“控制器”和“适配器”之间的主要区别是它们的封装方式。“控制器”是置于I/O设备本身或者系统的主板上的芯片组内,而“适配器”是是一块插在主板插槽上的卡。但是这两者的任务一样的,它们都负责在I/O总线和I/O设备自检传递和翻译信息。
4
华北电力大学本科毕业设计(论文)
2.1.3 主存
主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序所处理的数据。 从物理组成的角度来说,主存是一组动态随机存取存储器芯片组成的,从逻辑来说,
主存就是一个线性的字节数组,每一个字节都有唯一的地址,这些地址从0开始。一般来说,组成程序的每条机器指令都由不同数量的字节构成,与C程序变量相对应的数据项的大小是根据类型变化的。
2.1.4 处理器
中央处理单元(CPU),简称处理器,是解释和执行存储在主存中指令的引擎。处理器的核心是一个字长的存储设备,称为程序计数器(PC),在任何时刻,PC都指向主存中的某条机器语言指令。
从系统通电开始,直到系统断电,处理器都一直在不断地执行程序计数器所指向的指令,再更新程序计数器,使其指向下一条需要执行的指令,这条指令不一定和上一条执行的指令相邻。处理器看上去是按照一个非常简单的指令执行模型来操作的,这个模型是由指令集结构决定的。
这样的简单操作并不多,而且操作是围绕主存、寄存器文件、和算术逻辑单元(ALU)进行的。寄存器文件是一个小的但是高速的存储设备,由一些1字长的寄存器组成,每个寄存器有唯一的名字和特别的使用方式。而ALU则负责计算,计算数据和地址。
下面是一些简单操作的例子,可以通过这些例子更好地了解CPU的各个部件在CPU工a) 加载:把一个字节(或者一个字)从主存复制到寄存器,寄存器里原来的值被覆盖。
b) 存储:把一个字节(或者一个字)从寄存器复制到主存的某个位置,以覆盖内存中该位置原来的值。
c) 计算:把两个寄存器的内容复制到ALU,ALU对这两个字做算术运算,并将结果存在一个寄存器中,寄存器里原来的值被覆盖。
d) 跳转:从指令中抽取一个字,并将这个字复制到程序计数器(PC)中,实现跳转。 e) 处理器看上去指示它的指令集结构的简单实现,但是实际上现代处理器使用了非常复杂的机制来加速程序的执行。所以,可以这样区分“处理器的指令集结构”和“微体系结构”:“指令集结构描述的是每条机器代码指令的效果”,而“微体系结构”描述的是处理器实际上是如何实现的。
作的作用和工作原理。CPU在执行的要求下,可能会执行以下操作:
2.2 操作系统的基本特性
操作系统的基本特性有并发性、虚拟性、共享性、异步性,其中,并发性和虚拟性是操作系统最重要的两个特性。
5
华北电力大学本科毕业设计(论文)
2.2.1并发性
并行性和并发性是既相似又有区别的两个概念,并行性是指两个或者多个事件在同一时刻发生,而并发性是指两个或者多个事件在同一时间间隔内发生。
为了使多个程序能够在系统中并发执行,系统必须为每个程序建立进程(Process)。简单来说,进程是指在系统中能独立运行并作为资源分配的基本单位,由一组机器指令、数据和堆栈等组成,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。一个进程在运行时需要一定的资源,如CPU、存储空间以及I/O设备等。
操作系统中程序的并发执行将使系统复杂化,以至于在系统中必须增设若干新的功能模块,分别用于对CPU、内存、I/O设备以及文件系统等重要资源进行管理,并控制好系统中各个进程的运行。
长期以来,进程都是操作系统中可以拥有资源并作为独立运行的基本单位。当一个进程因故不能继续运行,操作系统便调度另一个程序运行。但是由于进程拥有自己的资源,故使得调度付出的代价非常大,所以人们引入比进程更小的单位——线程。通常一个进程中包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的OS中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统转,所以对地进行调度所花费的系统资源很少,从而能够更高效地提高系统内多个程序并发执行的程度。
2.2.2共享性
在操作系统中,所谓共享,是指系统中的资源可供内村中并发执行的进程共同使用,相应的,把这种西苑共同使用成为资源共享,或者是资源复用。由于资源的属性不同,进程对资源的复用方式也不同,主要实现资源共享的方式有以下两种:互斥共享方式和同时访问方式。
2.2.3虚拟性
操作系统中的所谓“虚拟性”,是指通过虚拟技术把一个物理实体变为若干逻辑上的对应物。物理实体是实际存在的,而逻辑对应物是现对于用户来说的,是用户感觉到的可以使用的东西。这个技术的实现主要有两种途径,时分复用技术和空分复用技术。
通俗地理解,时分复用技术就是将物理设备的使用机会按时间划分为许多小段,各个用户(或进程)在调度进程的调度下,交替使用这些使用设备的机会,常见的例子有:系统通过对处理机进行分片,然后把时间片分配给各个进程,实现了把一台物理上的处理机虚拟位多台逻辑上的处理机,从而在每台逻辑处理机上运行一道程序。通常把用户感觉到的处理机成为虚拟处理机。
而空分复用技术则被用来提高存储空间的利用率,常见的有虚拟磁盘技术和虚拟存储器技术。
6