当前位置:文档之家› 第二讲操作系统的启动

第二讲操作系统的启动

第二讲操作系统的启动
第二讲操作系统的启动

操作系统

实验报告

哈尔滨工程大学

软件学院

第二讲实验系统的启动

一、实验概述

1. 实验名称

实验系统的启动

2. 实验目的

跟踪调试EOS 在PC 机上从加电复位到成功启动的全过程,了解操作系统的启动过程。

查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。

3. 实验类型(验证、设计)

验证

4. 实验内容

调试EOS操作系统的启动过程包括:(1).使用Bochs做为远程目标机;(2).调试BIOS程序;(3).调试软盘引导扇区程序;(4).调试加载程序;(5).调试内核;(6).查看EOS启动后的状态和行为

二、实验环境

操作系统:windows xp

编译环境:OS Lab

三、实验过程

1. 设计思路和流程图

图2-1.EOS操作系统的启动过程流程图

2. 需要解决的问题及解答

(1).为什么EOS操作系统从软盘启动时要使用boot.bin和loader.bin两个程序?使用一个可以吗?它们各自的主要功能是什么?如果将loader.bin的功能移动到boot.bin文件中,则boot.bin文件的大小是否仍然能保持小于512字节?

答:boot文件夹包含了两个汇编文件boot.asm和loader.asm。这两个文件生成的二进制文件boot.bin和loader.bin会被写入软盘镜像文件。操作系统启动时boot.bin和loader.bin引导软盘加载程序,二者缺一不可。使用Boot.bin的主要功能是引导软盘;loader.bin的主要功能是加载程序。如果把loader.bin功能移动到boot.bin程序中,必然导致程序规模扩大,可能使其大于512字节。

(2).软盘引导扇区加载完毕后内存中有两个用户可用的区域,为什么软盘引导扇区程序选择将loader.bin加载到第一个可用区域的0x1000处呢?这样做有什么好处?这样做会对loader.bin文件的大小有哪些限制。

答:首先用户只用两个可用区域,加载位置非此即彼。第一个可用用户区是低地址区,且空间大小比较小,适合容纳小文件,所以我们选择将占用空间小的loder.bin加载到第一用户区。

优点:由低地址开始,便于检索查找。小文件占用小空间,节约资源。

限制:loader.bin文件必须小于1c00k.

(3).练习使用Bochs单步调试BIOS程序、软盘引导扇区程序和loader程序,加深对操作系统启动过程的理解。

(4).仔细比较实验指导10-5图和图10-6,尝试说明哪个是应用程序的进程,它和系统进程有什么区别,哪个是应用程序的主线程,它和系统线程有什么区别。

答:图10-6是应用程序的进程,在进程列表中只有一个ID为1的系统进程,其优先级为24,包含有10个线程,其中的ID为2的线程是该进程的主线程,系统进程没有映像名称。在线程列表中有10个线程,它们都是系统线程。

区别:主线程的优先级别高。存放在物理内存的低端。

3. 程序运行时的初值和运行结果

1. 调试BIOS程序

(1). 在Console窗口中输入调试命令sreg后按回车,显示当前CPU中各个段寄存器的值。其中CS寄存器信息行中的“s=0xf000”表示CS寄存器的值为

0xf000.

(2).输入调试命令r后按回车,显示当前CPU中各个通用寄存器的值。其中“rip: 0x00000000:0000fff0”表示IP寄存器的值为0xfff0。

(3).输入调试命令xp /1024b 0x0000,查看开始的1024个字节的物理内存。在Console中输出的这1K物理内存的值都为0,说明BIOS中断向量表还没有被加载

到此处。

(4). 输入调试命令xp /512b 0x7c00,查看软盘引导扇区应该被加载到的内

存位置。输出的内存值都为0,说明软盘引导扇区还没有被加载到此处。

2. 调试软盘引导扇区程序

a. 输入调试命令vb 0x0000:0x7c00,这样就在逻辑地址0x0000:0x7c00(相当于物理地址0x7c00)处添加了一个断点。

b. 输入调试命令c继续执行,在0x7c00处的断点中断。中断后会在Console窗口中输出下一个要执行的指令,即软盘引导扇区程序的第一条指令,如下 (0) [0x00007c00] 0000:7c00 (unk. ctxt): jmp .+0x006d (0x00007c6f) ; eb6d

c. 为了方便后面的使用,先在纸上分别记录下此条指令的字节码(eb6d)和此条指令要跳转执行的下一条指令的地址(括号中的0x00007c6f)。

d. 输入调试命令sreg验证CS寄存器(0x0000)的值。

e. 输入调试命令r验证IP寄存器(0x7c00)的值。

f. 由于BIOS程序此时已经执行完毕,输入调试命令xp /1024b 0x0000验证此

时BIOS中断向量表已经被载入。

g. 输入调试命令xp /512b 0x7c00显示软盘引导扇区程序的所有字节码。观察此块内存最开始的两个字节分别为0xeb和0x6d,这和引导程序第一条指令的字节码(eb6d)是相同的。

h.

输入调试命令xp /512b 0x0600验证图3-2中第一个用户可用区域是空白的。

i. 输入调试命令xp /512b 0x7e00验证图3-2中第二个用户可用区域是空白的。

j. 自己设计两个查看内存的调试命令,分别验证这两个用户可用区域的高地址端也是空白的。

k. 输入调试命令xp /512b 0xa0000验证图3-2中上位内存已经被系统占用。

l. 自己设计一个查看内存的调试命令,验证上位内存的高地址端已经被系统占用。

查看boot.lst文件

(1). 在“项目管理器”窗口中,右键点击“boot”文件夹中的boot.asm文件。

(2). 在弹出的快捷菜单中选择“打开生成的列表文件”,在源代码编辑器中就会打开文件boot.lst。

(3). 将boot.lst文件和boot.asm文件对比可以发现,此文件包含了

boot.asm文件中所有的汇编代码,同时在代码的左侧又添加了更多的信息。

(4). 在boot.lst中查找到软盘引导扇区程序第一条指令所在的行(第73行)

73 00000000 EB6D jmp short Start 此行包含的信息有:● 73是行号。

● 00000000是此条指令相对于程序开始位置的偏移(第一条指令应该为0)。

● EB6D是此条指令的字节码,和之前记录下来的指令字节码是一致的。

软盘引导扇区程序的主要任务就是将软盘中的loader.bin文件加载到物理内存

的0x1000处,然后跳转到loader程序的第一条指令(物理地址0x1000处的指令)继续执行loader程序。按照下面的步骤调试此过程:

(1). 在boot.lst文件中查找到加载完毕loader.bin文件后要跳转到loader 程序中执行的指令(第278行) 278 00000181 EA00100000 jmp 0:LOADER_ORG 根据此指令相对于程序开始(0x7C00)的偏移(0x0181)可以得到此指令的逻辑地址为0x0000:7D81。

(2). 输入调试命令vb 0x0000:0x7d81添加一个断点。

(3). 输入调试命令c继续执行,到断点处中断。在Console窗口中显示 (0) [0x00007d81] 0000:7d81 (unk. ctxt): jmp far 0000:1000 ; ea00100000 此条指令会跳转到物理内存0x1000处(即Loader程序的第一条指令)继续执行。

(4). 按照打开boot.lst文件的方法打开loader.lst文件,并在此文件中查找到loader程序的第一条指令(第33行) 33 00000000 E91801 jmp Start

(5). 输入调试命令xp /8b 0x1000查看内存0x1000处的数据,验证此块内存的前三个字节和loader.lst文件中的第一条指令的字节码是相同的。

(6). 根据之前记录的loader.bin文件的大小,自己设计一个查看内存的调试命令,查看内存中loader程序结束位置的字节码,并与loader.lst文件中最后指令的字节码比较,验证loader程序被完全加载到了正确的位置。

调试加载程序

Loader程序的主要任务是将操作系统内核(kernel.dll文件)加载到内存中,然后让CPU进入保护模式并且启用分页机制,最后进入操作系统内核开始执行(跳转到kernel.dll的入口点执行)。按照下面的步骤调试上述过程:

(1). 在loader.lst文件中查找到准备进入EOS操作系统内核执行的指令(第755行) 755 0000014F FF15[17010080] call dword [va_ImageEntry]

(2). 计算此条指令的物理地址要复杂一些:偏移地址实际上是相对于节(节SECTION是NASM汇编中的概念)开始的。由于在boot.asm程序中只有一个节,所以之前计算的结果都是正确的,但是在loader.asm程序中有两个节,并且此条指令是在第二个节中。下面引用的代码是loader.lst中第一个节的最后一条指令(第593行) 593 000003C1 C20600 ret 6 因为第一个节中最后一条指令的偏移为0x03c1,并占用了3个字节(字节码为C20600),所以可以计算出进入内核执行的指令所在的物理地址为0x1513(0x1000+0x03c1+0x3+0x14f)。

(3).使用添加物理地址断点的调试命令pb 0x1513添加一个断点。

(4). 输入调试命令c继续执行,到断点处中断。在Console窗口中显示要执

行的下一条指令(注意,此时的逻辑地址都为虚拟地址): (0) [0x00001513] 0008:0000000080001513 (unk. ctxt): call dword ptr ds:0x80001117 ;

ff1517110080 由于这里使用了函数指针的概念,所以,根据反汇编指令可以确定内核入口点函数的地址就保存在虚拟地址0x8000117处的四个字节中。

(5). 使用查看虚拟内存的调试命令x /1wx 0x80001117查看内存中保存的32位函数入口地址,在Console窗口中会输出类似下面的内容:

0x0000000080001117 : 0x800***** 记录下此块内存中保存的函数地址,后面的实验会验证内核入口点函数的地址与此地址是一致的。

调试内核:

(1). 在OS Lab的“项目管理器”窗口中打开ke文件夹中的start.c文件,此文件中只定义了一个函数,就是操作系统内核的入口点函数KiSystemStartup。

(2). 在KiSystemStartup函数中的代码行(第61行) KiInitializePic(); 添加一个断点。

(3). 现在可以在Console窗口中输入调试命令c继续调试,在刚刚添加的断点处中断。

(4). 在start.c源代码文件中的KiSystemStartup函数名上点击鼠标右键,在弹出的快捷菜单中选择“添加监视”,KiSystemStartup函数就被添加到了“监视”窗口中。在“监视”窗口中可以看到此函数地址为 {void (PVOID)} 0x800***** 与在虚拟内存x80001117处保存的函数入口地址相同,说明的确是由Loader程序进入了操作系统内核。

(5). 按F5继续执行EOS操作系统内核,在Display窗口中显示EOS操作系统已经启动,并且控制台

程序已经开始运行了。

EOS启动后的状态和行为

(1). 在控制台中输入命令“ver”后按回车。

(2). 输出EOS版本后的控制台。

查看EOS启动后的进程和线程的信息:

(1). 在控制台中输入命令“pt”后按回车。

(2). 输出的进程和线程信息如图所示。

查看有应用程序运行时进程和线程的信息:

1. 在OS Lab中选择“调试”菜单中的“停止调试”,结束之前的调试。

2. 在OS Lab“项目管理器”窗口中双击Floppy.img文件,使用FloppyImageEditor 工具打开此软盘镜像文件。

3. 打开配套资源“学生包”,在其中找到本实验对应的文件夹。可以在本书前言部分找到“学生包”的下载地址。

4. 将本实验文件夹中的Hello.exe文件拖动到FloppyImageEditor工具窗口的文件列表中释放,Hello.exe文件即被添加到软盘镜像文件中。Hello.exe一个EOS 应用程序,其源代码可以参见本实验文件夹中的Hello.c源文件。

5. 在FloppyImageEditor中选择“文件”菜单中的“保存”后关闭FloppyImageEditor。

6. 按F5启动调试。

7. 待EOS启动完毕,在EOS控制台中输入命令“hello”后按回车。此时Hello.exe 应用程序就开始执行。

8. 迅速按Ctrl+F2切换到控制台2,并输入命令“pt”后按回车。输出的进程和线

程信息如图所示。

仔细比较上面的两张图,尝试说明哪个是应用程序的进程,它和系统进程有什么区别,哪个是应用程序的主线程,它和系统线程有什么区别。(见问题解答)四、实验体会

通过本次试验,我对计算机存储结构有了更深的认识,了解了EOS启动后的状态和行为,理解了操作系统启动后的工作方式。在设计查看内存的调试命令,查看内存中loader程序结束位置的字节码计算地址时遇到难题,但在和同学讨论中解决了问题,为以后进一步的学习打下了基础。

现代操作系统(第三版)答案

MODERN OPERATING SYSTEMS SECOND EDITION PROBLEM SOLUTIONS ANDREW S.TANENBAUM Vrije Universiteit Amsterdam,The Netherlands PRENTICE HALL UPPER SADDLE RIVER,NJ 07458课后答案网 w w w .k h d a w .c o m

SOLUTIONS TO CHAPTER 1PROBLEMS 1.An operating system must provide the users with an extended (i.e.,virtual)machine,and it must manage the I/O devices and other system resources. 2.Multiprogramming is the rapid switching of the CPU between multiple processes in memory.It is commonly used to keep the CPU busy while one or more processes are doing I/O. 3.Input spooling is the technique of reading in jobs,for example,from cards,onto the disk,so that when the currently executing processes are ?nished,there will be work waiting for the CPU.Output spooling consists of ?rst copying printable ?les to disk before printing them,rather than printing directly as the output is generated.Input spooling on a personal computer is not very likely,but output spooling is. 4.The prime reason for multiprogramming is to give the CPU something to do while waiting for I/O to complete.If there is no DMA,the CPU is fully occu-pied doing I/O,so there is nothing to be gained (at least in terms of CPU utili-zation)by multiprogramming.No matter how much I/O a program does,the CPU will be 100percent busy.This of course assumes the major delay is the wait while data are copied.A CPU could do other work if the I/O were slow for other reasons (arriving on a serial line,for instance). 5.Second generation computers did not have the necessary hardware to protect the operating system from malicious user programs. 6.It is still alive.For example,Intel makes Pentium I,II,and III,and 4CPUs with a variety of different properties including speed and power consumption.All of these machines are architecturally compatible.They differ only in price and performance,which is the essence of the family idea. 7.A 25×80character monochrome text screen requires a 2000-byte buffer.The 1024×768pixel 24-bit color bitmap requires 2,359,296bytes.In 1980these two options would have cost $10and $11,520,respectively.For current prices,check on how much RAM currently costs,probably less than $1/MB. 8.Choices (a),(c),and (d)should be restricted to kernel mode. 9.Personal computer systems are always interactive,often with only a single user.Mainframe systems nearly always emphasize batch or timesharing with many users.Protection is much more of an issue on mainframe systems,as is ef?cient use of all resources. 10.Every nanosecond one instruction emerges from the pipeline.This means the machine is executing 1billion instructions per second.It does not matter at all how many stages the pipeline has.A 10-stage pipeline with 1nsec per 课后答案网 w w w .k h d a w .c o m

操作系统的启动实验报告

操作系统实验报告 工程大学 计算机科学与技术学院

一.实验概述 1.实验名称:操作系统的启动 2.实验目的: 1)跟踪调试EOS在PC机上从加电复位到成功后启动的全过程,了解操作系统的启动过程; 2)查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。 3.实验类型:验证,设计 4.实验容: 1)准备实验,启动OS Lab,新建一个EOS Kernel项目; 2)调试EOS操作系统的启动过程 ①使用Bochs作为远程目标机 ②调试BIOS程序 ③调试软盘引导扇区程序 ④调试加载程序 ⑤调试核 ⑥查看EOS启动后的状态和行为 二.实验环境 操作系统:windows XP 编译器:Tevalaton OS Lab 语言:C++ 三.实验过程 1.设计思路和流程图: 2.实验过程:

1)在Console窗口中输入调试指令sreg,查看当前CPU中各个段寄存器的值,其中CS寄存器信息行中的“s=0xf000”表示CS寄存器的值为0xf000。 2)输入调试命令r,显示当前CPU中各个通用寄存器的值,“rip: 0x00000000:0000fff0”表示 IP 寄存器的值为 0xfff0。 3)输入调试命令 xp /1024b 0x0000,查看开始的 1024 个字节的物理存。在Console 中输出的这 1K 物理存的值都为 0,说明 BIOS 中断向量表还没有被加载到此处。 4)输入调试命令 xp /512b 0x7c00,查看软盘引导扇区应该被加载到的存位置。输出的存值都为 0,说明软盘引导扇区还没有被加载到此处。 可以验证 BIOS 第一条指令所在逻辑地址中的段地址CS寄存器值是一致的,偏移地址和 IP 寄存器的值是一致的。由于存还没有被使用,所以其中的值都为0。 5)输入调试命令 vb 0x0000:0x7c00,这样就在逻辑地址 0x0000:0x7c00(相当于物理地址 0x7c00)处添加了一个断点。输入调试命令 c 继续执行,在 0x7c00 处的断点中断。中断后会在 Console 窗口中输出下一个要执行的指令,即软盘引导扇区程序的第一条指令。 6)输入调试命令 sreg 验证 CS 寄存器(0x0000)的值。

WINDOWS 网络操作系统的发展史

WINDOWS 网络操作系统的发展史 2009-05-21 18:16 网络操作系统的发展史 Microsoft开发的Windows是目前世界上用户最多、并且兼容性最强的操作系统。最早的Windows操作系统从1985年就推出了。改进了微软以往的命令、代码系统Microsoft Dos。Microsoft Windows是彩色界面的操作系统。支持键鼠功能。默认的平台是由任务栏和桌面图标组成的。任务栏是显示正在运行的程序、“开始”菜单、时间、快速启动栏、输入法以及右下角的托盘图标组成。而桌面图标是进入程序的途径。默认的系统图标有“我的电脑”、“我的文档”、“回收站”,另外,还会显示出系统的自带的“IE浏览器”图标。运行Windows的程序主要操作都是由鼠标和键盘控制的。鼠标的左键单击默认是是选定命令,鼠标左键双击是运行命令。鼠标右键单击是弹出菜单。WIndows系统是“有声有色”的操作系统。《连线》杂志日前发表分析文章称,在过去的23年中,Windows操作系统经历了一个从无到有,从低级到高级的发展过程。总体趋势是功能越来越强大了,用户使用起来越来越方便了,但其发展进程并非是一帆风顺的,中间也曾多次出现曲折。应用最广泛的Windows操作系统在不断地发展,其发展进程充满了不确定性。Windows的成功与处理器速度的提高和内存容量的增加可谓“休戚与共”。微软依靠大量第三方软件让用户喜欢上了Windows。 1、Windows 1.0 Windows 1.0 微软第一款图形用户界面Windows 1.0的发布时间是1985年11月,比苹果Mac晚了近两年。由于微软与苹果间存在一些法律纠纷,Windows 1.0缺乏一些关键功能,例如重叠式窗口和回收站。用现在的眼光看,它的失败并不令人感到意外。Windows 1.0只是对MS-DOS的一个扩展,它本身并不是一款操作系统,但确实提供了有限的多任务能力,并支持鼠标。Microsoft Windows 1.0操作系统是微软公司在个人电脑

操作系统 第三版 中国铁路出版社

第一章引论 1、计算机硬件是指计算机系统中由电子、机械和光电元件等组成的各种部件和设备。由这些部件和设备依据计算机系统结构的要求构成的有机整体,称为计算机硬件系统 2、计算机软件是指安装在计算机系统中的程序和有关的文件 3、按应用将软件分类为:系统软件、支撑软件和应用软件 4、操作系统的定义:操作系统是计算机系统中的系统软件,能有效的组织和管理计算机系统中的硬件和软件资源,合理的组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使的用户能够合理、方便、有效的使用计算机,使整个计算机系统能更高效运行的一组程序模块的集合。 5、操作系统的目标:①方便性。②有效性。③可扩充性。④开放性。 6、单道批处理系统的特征:①自动性。②顺序性。③单道性。 7、多处理机操作系统的类型:①非对称多处理机模式②对称多处理机模式 8、网络操作系统的功能:①网络通信。②资源管理。③网络服务。 ④网络管理。⑤互操作能力。 9、资源的分类(4类):处理机、存储器、I/O设备以及文件(程序和数据)。 10、处理及管理的功能:1进程控制 2进程同步 3进程通信 4调度。

11、处理机 :一般的处理机由运算器、一系列的寄存器以及高速缓存构成。 12、计算机存储系统的设计主要考虑3个问题:容量、速度和成本。 13、缓冲区:硬件设备之间进行数据传输时,专门用来暂存这些数据的一个存储区域。 第二章用户接口和作业管理 1、作业;通常是指用户在一次计算过程中或者一次事物处理过程中要求计算机系统所做的工作的集合。 2、每个作业有一个作业控制块,所有作业的作业控制块构成一个表,该表称为作业表 3、操作系统与用户之间的接口可以分为命令接口、程序接口和图形接口。 4、一个作业的建立过程包括两个子过程:一个是作业控制块JCB的建立,一个是作业的输入。 5、一般可以将作业的状态分为4个状态,即提交状态、后备状态、运行状态、完成状态。 第三章进程与进程管理 1、进程:进程是具有独立功能的可并发执行的程序在一个数据集合上的运行过程 2、进程的特征:(1)动态性(2)并发性(3)独立性(4)异步

计算机启动过程

计算机启动过程 讲课教师:黄小龙 计算机启动过程总体分为两个过程,即硬件启动过程和操作系统启动过程。本课中操作系统我们仅选用Windows XP 的启动过程讲解。 一、硬件启动过程 ⑴加电 按下电源开关后,电源就开始向主板和其它设备供电,此时电压还不稳定, 主板上的控制芯片组会向CPU 发出并保持一个RESET(重置)信号,让CPU 初始化。当电源开始稳定供电后,芯片组便撤去RESET 信号(如果是按下Reset 按钮来重启,那么松开该按钮时芯片组就会撤去RESET 信号)。然后,CPU 马上就从地址FFFF0H 处开始执行指令(这是BIOS 的起始地址),但放在这里的只是一条跳转指令,跳到系统真正的BIOS 启动代码处,由BIOS 的代码进行下一步的POST 自检。 ⑵BIOS 进行post

POST就是加电自检,它是Power On Sel f Test的缩写。它是检查一些关键设备是否存在和能否正常工作,如内存和显卡等。如果发现错误,则通过喇叭发声来报告错误情况,此时的声音长短和次数代表了错误类型。 注:由于POST的检测过程在显示卡初始化之前,因此POST 自检过程发现的错误是无法在屏幕上显示出来的。 ⑶BIOS检测硬件的各种信息 BIOS进行加电自检后,就开始检测计算机上硬件设备的各种信息,如设备类型、工作频率、芯片组型号、出厂厂商等。这阶段的硬件检测顺序是:显示卡、CPU、内存、其它标准硬件设备(如硬盘、光驱、软驱、外设等)。 ⑷BIOS更新ESCD 按下来系统BIOS将更新ESCD(Extended System Configuration Data,扩展系统配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的数据,这些数据被存放在CMOS之中。通常ESCD数据只在系统硬件配置发生改变后才会进行更新,因此不是每次启动都能看到"Update ESCD... Success"这样的信息。不过,某些主板的BIOS在保存ESCD数据时使用了与Windows 9x 不相同的数据格式,于是Windows 9x在每一次启动都会把ESCD 数据转换成自己的格式,导致BIOS每次重新启动时都认为是硬件配置发生变化,并重新改写ESCD数据,这就是为什么有的计算机在每次启动时都会显示"Update ESCD... Success"信息的原因。

操作系统的发展史及特点

操作系统的发展史及特点 1.CP/M系统 计算机语言百花争妍的七十年代,计算机本身正向微型化方向发展。1971年,Intel 公司成功地研制出了四位Intel 4004芯片,1973年,又研制成功八位Intel 8086芯片。微型机的诞生,已经指日可待。 七十年代中期,台式微机,工作站,超级微机,膝上机相继面世,“谁来指挥他们”,人们千呼万唤。 事实上,早在1972年,AMAA(美国微型机协会)就悄悄地为一个“指挥系统”作临产前的准备了,他们用PL/M程序设计语言为Intel 8086编写了纸带编辑程序ED。1973年,PL/M 的创始人Gary Kildall博士决定“挂帅亲征”,很快在DEC公司的主机TOPS-10上,培植成功一个管理程序和数据的“胚胎”。博士旗开得胜,感觉当然是“味道好极了!”,但Intel 公司及其它著名电脑公司却对此充耳不闻,这使“元帅”和“士兵”们很是光火,1974年,“胚胎”得以向全世界公布:版本号V1.3;大名:CP/M;全称:Control Program/Monitor (控制程序或监控程序)。 虽然CP/M V1.3 是为肩任“控制程序和数据”的“上帝”而来的,但“上帝一世”却颇受冷落,电脑业者依旧冷眼旁观。1975年,CP/M V1.4 继承“王位”,开始大造舆论,加之Kildall 博士创建了Digital Research(数字研究公司),为CP/M呐喊欢呼,CP/M陆续被各国微机厂商采用,围绕他的软件也爆炸般地得到了开发。CP/M变红发紫,神话般普及,被推崇为“标准八位机软件总线”,Kildall 博士更是声名远播。 CP/M其实就是第一个微机操作系统,享有指挥主机、内存、磁鼓、磁带、磁盘、打印机等硬设备的特权。通过控制总线上的程序和数据,操作系统有条不紊地执行着人们的指令,如同指挥一台晚会或乐队,高效率地合奏美妙的乐章。 繁荣的CP/M家族不断添丁。运行在Intel 8080芯片上的CP/M—80;运行在8088、8086芯片上的叫CP/M—86;而在Motorola(摩托罗拉)68000 上运行的CP/M叫做CP/M-68K。CP/M—80、CP/M—86、CP/M-68K等组成了庞大的CP/M家族。 单用户的CP/M—80操作系统,后来发展成多用户的MP/M—80,单用户的CP/M—86又发展成并发的CP/M—86和多用户MP/M— 86,它们成为家族的新生力量。 CP/M开创了软件的新纪元,称得上是计算机改朝换代的里程碑。 2.DOS系统 七十年代末期,CP/M后院起火,其微机操作系统霸主地位开始动摇。 1979年,IBM公司为开发16位微处理器Intel 8086,请微软公司(Microsoft)为IBM PC 设计一个磁盘操作系统,微软公司慷慨承诺,但当时手头仅有XENIX操作系统,XENIX操作系统要求处理器支持存贮管理和保护设备的功能,可PC机的CPU 8086/8088 均不具备此功能。微软公司急于满足PC机的要求,购买了由西雅图公司工程师Tim Paterson研制的、可在8088上运行的CP/M—86“无性系”——SCP—DOS操作系统的销售权,将SCP—DOS改称MS—DOS V1.0发表。为避“偷梁换柱”的嫌疑,微软公司又于1981年8月推出了支持内存为320KB 的MS-DOS 1.1版。由于蓝色巨人的推波助澜,操作系统软件市场几乎一夜之间呈现出一边倒的局面,CP/M地位岌岌乎可危。 随后,IBM 公司向微软公司购得MS-DOS使用权,将其更名为PC-DOS 1.0。MS-DOS又称PC-DOS,就是这个原因。 MS-DOS取得巨大成功的原因在于它的最初设计思想及其追求目标的正确和恰当,那就是为用户上机操作和应用软件开发提供良好的外部环境。首先使用户可以非常方便的使用几十个DOS命令,或以命令行方式直接键入或在DOS4.0以上版本下以DOS Shell菜单驱动,

操作系统(第三版)习题答案

第一章操作系统引论 1.设计现代OS的主要目标是什么 答:(1)有效性(2)方便性(3)可扩充性(4)开放性 2.OS的作用可表现在哪几个方面 答:(1)OS作为用户与计算机硬件系统之间的接口 (2)OS作为计算机系统资源的管理者 (3)OS实现了对计算机资源的抽象 3.为什么说OS实现了对计算机资源的抽象 答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。 4.试说明推动多道批处理系统形成和发展的主要动力是什么 答:主要动力来源于四个方面的社会需求与技术发展: (1)不断提高计算机资源的利用率; (2)方便用户; (3)器件的不断更新换代; (4)计算机体系结构的不断发展。 5.何谓脱机I/O和联机I/O 答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。 而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。6.试说明推动分时系统形成和发展的主要动力是什么 答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表现在:CPU的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接

控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。 7.实现分时系统的关键问题是什么应如何解决 答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。 8.为什么要引入实时OS 答:实时操作系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。引入实时OS 是为了满足应用的需求,更好地满足实时控制领域和实时信息处理领域的需要。9.什么是硬实时任务和软实时任务试举例说明。 答:硬实时任务是指系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。举例来说,运载火箭的控制等。软实时任务是指它的截止时间并不严格,偶尔错过了任务的截止时间,对系统产生的影响不大。举例:网页内容的更新、火车售票系统。 10.在8位微机和16位微机中,占据了统治地位的是什么操作系统 答:单用户单任务操作系统,其中最具代表性的是CP/M和MS-DOS. 11.试列出Windows OS 中五个主要版本,并说明它们分别较之前一个版本有何改进。 答: (1)Microsoft Windows 是微软公司在个人电脑上开发图形界面的首次尝试。(2)Windows 95是混合的16位/32位系统,第一个支持32位。带来了更强大、更稳定、更实用的桌面图形用户界面,结束了桌面操作系统间的竞争。

操作系统的发展历程

操作系统的发展历程 操作系统有:1.DOS操作系统;2.Mac OS操作系统;3.Windows 系统;4.Unix系统;5.Linux系统;6.OS/2系统; 一、 DOS操作系统 DOS是Diskette Operating system的缩写,意思是磁盘操作系统。DOS是1981~1995年的个人电脑上使用的一种主要的操作系统。由于早期的DOS系统是由微软公司为IBM的个人(PC)电脑开发的,故而即称之为PC-DOS,又以其公司命名为MS-DOS,因此后来其他公司开发的与MS-DOS兼容的操作系统,也延用了这种称呼方式,如:DR-DOS、Novell-DOS ....,以及国人开发的汉字DOS(CC-DOS)等等。 MS-DOS发展,从早期1981年不支持硬盘分层目录的DOS1.0,到当时广泛流行的DOS3.3,再到非常成熟支持CD-ROM的DOS6.22,以及后来隐藏到Windows9X下的DOS7.X,前前后后已经经历了20年,至今仍然活跃在PC舞台上,扮演着重要的角色。 DOS是在直接内存下运行,程序设计员只能在1MB以下的存储器上操作。DOS容许使用的内存空间只有640KB(其他的348KB为ROM BIOS和其他卡所保留),在DOS下无法运行超过640KB的大程序。 DOS系统是字符式的操作系统,所有操作都通过键盘输入“命令行”来执行。微软公司推出它的Windows操作系统以后,由于

Windows操作系统的几乎所有操作都可以通过鼠标的点击来完成,不必再去记忆繁杂的命令,也省去了键盘输入“命令行”的操作。这种对用户友好的操作界面,使得Windows操作系统很快的就占据了PC 舞台上主角位置,而把DOS推倒了舞台的边缘。但是,为了一些特定的需要,Windows操作系统里保留了DOS命令形式,在需要时在系统的内存中拿出640K的内存,开辟出虚拟一个DOS运行的环境(“虚拟机”)来执行DOS命令。这种Windows操作系统里开辟的DOS运行环境,只不过是Windows操作系统里面的许多窗口中的一个窗口而已,它与Windows操作系统出现之前dos独占系统的全部资源的情况已大不相同。 “纯DOS”就是相对于这种情况而言的:不打开windows系统,只用软盘或其他媒体(如光盘、U盘等)启动机器,进入DOS系统,这时的DOS独享系统的全部资源,这时的环境状态就叫“纯DOS”状态。由于没有打开windows系统,所以与windows有关的一切软件、病毒、木马......,都不能起作用,不能控制你的任何资源,从而你可以在这种环境里,把那些你不想要的东东清理干净! 1981年,MS-DOS 1.0发行,作为IBM PC的操作系统进行捆绑发售,支持16k内存及160k的5寸软盘。在硬件昂贵,操作系统基本属于送硬件奉送的年代,谁也没能想到,微软公司竟会从这个不起眼的出处开始发迹。 1982年,支持双面磁盘。 1983年MS-DOS 2.0随IBM XT发布,扩展了命令,并开始支持5M硬

操作系统实验-第二讲、操作系统的启动

操作系统 实验报告 哈尔滨工程大学 计算机科学与技术学院

第二讲操作系统的启动 一、实验概述 1. 实验名称 操作系统的启动 2. 实验目的 1)、跟踪调试eos在pc机上从加电复位到成功启动的全过程,了解操作系统的启动过程。 2)、查看eos启动后的状态和行为,理解操作系统启动后的工作方式。 3. 实验类型(验证、设计) 验证 4. 实验内容 1)、启动OS Lab。 2)、新建一个EOS Kernel 项目。 3)、在“项目管理器”窗口中打开boot 文件夹中的boot.asm 和loader.asm 两个汇编文件。boot.asm 是软盘引导扇区程序的源文件,loader.asm 是loader 程序的源文件。简单阅读一下这两个文件中的NASM 汇编代码和注释。 4)、按F7 生成项目。 5)、生成完成后,使用Windows 资源管理器打开项目文件夹中的Debug 文件夹。找到由boot.asm 生成的软盘引导扇区程序boot.bin 文件,该文件的大小一定为512 字节(与软盘引导扇区的大小一致)。找到由loader.asm 生成的loader 程序loader.bin 文件,记录下此文件的大小1566 字节,在下面的实验中会用到。找到由其它源文件生成的操作系统内核文件kernel.dll。 二、实验环境 进行实验使用的操作系统、编译器、语言及工具等。 操作系统:Windows XP 编译器:Tevalaton OS Lab 语言:C++

三、实验过程(每次实验不一定下面6条都写,根据实际情况定) *需要解决的问题以及解答 (1)、自己设计两个查看内存的调试命令,分别验证这两个用户可用区域的高地址端也是空白的。 答:命令为:xp /512b 0x7a00和cp /512v 0x9fe00。因为第一个用户区的高位地址截止到0x7c00,第二个用户区高位地址截止到0xA0000,命令表示显示从0x7a00和0x9fe00以后512b空间的所有字节码,即两个用户区的高位地址端,可以看到所有字节全为0,说明高地址端是空白的。如图一、图二所示。(2)、自己设计一个查看内存的调试命令,验证上位内存的高地址端已经被系统占用。 答:命令为:xp /512b 0xffe00。因为上位内存的高位地址截止到0x100000,命令表示显示从0xffe00以后的512b空间的所有字节码,即两个用户区的高位地址端。可以看到所有字节都有值,说明高地址端被占用。如图三所示。(3)、根据之前记录的loader.bin文件的大小,自己设计一个查看内存的调试命令,查看内存中loader程序结束位置的字节码,并与loader.lst文件中最后指令的字节码比较,验证loader程序被完全加载到了正确的位置。 答:命令为xp /8b 0x1616.程序的初始位置为0x1000,加上1566的十六进制61E-8b,答案即为1616.如图四、图五、图六、图七所示。 (4)、仔细比较实验指导10-5图和10-6图,尝试说明哪个是应用程序的进程,它和系统进程有什么区别,那个是应用程序的主线程,它和系统线程有什么区别? 答:进程列表中ID为31的进程是应用程序的进程,其优先级为8,包含1个线程,主线程ID为33,映像名称为a:\hello.exe。而ID为1的是系统进程,其优先级为24,包含有10个线程,其中的ID为2的线程是该进程的主线程,系统进程没有映像名称。主要区别为:应用程序的进程优先级较低。 线程列表中ID为33的线程是应用程序的线程,其优先级为8,处在阻塞状态,而ID为20~28的是系统进程,其优先级为24,其中ID为22的处于运行状态

计算机操作系统(第三版)-复习题答案

操作系统第一章复习题 一、选择题 1、下列选项中,( D )不是操作系统关心的主要问题。 A 管理计算机裸机 B 设计、提供用户程序与计算机硬件系统的界面。 C 管理计算机系统资源 D 高级程序设计语言的编译器 2、多道批处理系统的主要缺点是( C )。 A CPU利用率低 B 不能并发执行 C 缺少交互性 D 以上都不是。 3、在操作系统中,( D )部分属于微内核。 A 输入/输出井的管理程序,及作业调度软件。 B 用户命令解释程序 C 磁盘文件目录管理软件 D 进程通信服务例程 4、通常在分时系统中运行的作业称为( C )。 A 前台作业 B 后台作业 C 终端型作业 D 批量型作业 5、在下面的选项中,( A )不属于操作系统提供给用户的可用资源。 A 中断机制 B 处理机 C 存储器 D I/O 设备 6、操作系统在计算机系统中处于( B )的位置。 A 计算机硬件和软件之间 B 计算机硬件和用户之间 C 处理机和用户程序之间 D 外部设备和处理机之间 7、操作系统是对( C )进行管理的软件。 A 软件 B硬件 C计算机资源 D 应用程序 8、操作系统中采用多道程序设计技术提高了CPU和外部设备的( A )。 A 利用率 B 可靠性 C 稳定性 D 兼容性 9、操作系统提供给程序员的接口是( B )。 A 进程 B 系统调用 C 库函数 D B和C 10、所谓( B )是指将一个以上的作业放入内存,并且同时处于运行状态,这些作业共享处理机的时间和外围设备等其他资源。 A 多重处理 B 多道程序设计 C 实时处理 D 共行执行 11、实时系统必须在( C )内处理完来自外部的事件。 A 响应时间 B 周转时间 C 规定时间 D 调度时间 12、在操作系统中,并发性是指若干事件( C )发生。 A 在同一时刻 B 一定在不同时刻 C 在某一时间间隔 D 依次在不同时间间隔内 13、订购机票系统处理各个终端的服务请求,处理后通过终端回答用户,所以它是一个( D )。 A 分时系统 B 多道批处理系统 C 计算机网络 D实时信息处理系统 二、填空题 1、操作系统两个最基本的特征是(并发)和(共享),两者之间互为存在条件。 2、实时系统应具有的两个基本特征,它们是(及时性)和(高可靠性)。 3、允许多个用户以交互方式使用计算机的操作系统称为(分时操作系统);允许多个用户 将多个作业提交给计算机集中处理的操作系统称为(批处理操作系统);计算机系统能

Windows启动过程详解

Windows启动过程详解 我们每天都在和Windows打交道,很多人可能每天都要面对多次W indows的启动过程,可是您知道在Windows的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?这些就是本文试图告诉您的。 本文的适用范围 随着技术的发展,我们能够见到的计算机硬件种类越来越多。以计算机上最重要的组件CPU来说,目前就有很多选择。当然,这里的选择并不是说AMD或者Intel这种产品品牌,而是指其内部的体系结构。目前常见的CPU体系结构主要基于复杂指令集(Complex I nstruction Set Computing,CISC)或者精简指令集(Reduced Ins truction Set Computing,RISC),我们常用的Intel的Pentium、C eleron系列以及AMD的Athlon、Sempron系列都是基于复杂指令集的,而这些基于复杂指令集的CPU还有32位和64位的寄存器数据带宽区别。关于这些指令集以及寄存器数据带宽之间的区别等内容比较繁杂,而且不是本文的重点,感兴趣的朋友可以自己在网上搜索相关内容。因为CPU种类的不同,在不同CPU的系统中运行的Wind ows的启动过程也有一些小的不同。本文将会以目前来说最普遍的,在x86架构的系统上安装的32位Windows XP Professional为例向

您介绍。 基本上,操作系统的引导过程是从计算机通电自检完成之后开始进行的,而这一过程又可以细分为预引导、引导、载入内核、初始化内核,以及登录这五个阶段。 在继续阅读之前,首先请注意图1,这是Windows XP的操作系统结构,其中包括了一些在后台工作的组件以及经常和我们打交道的程序。在了解Windows XP的启动过程之前,对系统结构有一个初步概念是很重要的。

操作系统发展史

CP/M系统 计算机语言百花争妍的七十年代,计算机本身正向微型化方向发展。1971年,Intel 公司成功地研制出了四位Intel 4004芯片,1973年,又研制成功八位Intel 8086芯片。微型机的诞生,已经指日可待。 七十年代中期,台式微机,工作站,超级微机,膝上机相继面世,“谁来指挥他们”,人们千呼万唤。 事实上,早在1972年,AMAA(美国微型机协会)就悄悄地为一个“指挥系统”作临产前的准备了,他们用PL/M程序设计语言为Intel 8086编写了纸带编辑程序ED。1973年,PL/M的创始人Gary Kildall博士决定“挂帅亲征”,很快在DEC公司的主机TOPS-10上,培植成功一个管理程序和数据的“胚胎”。博士旗开得胜,感觉当然是“味道好极了!”,但Intel 公司及其它著名电脑公司却对此充耳不闻,这使“元帅”和“士兵”们很是光火,1974年,“胚胎”得以向全世界公布:版本号V1.3;大名:CP/M;全称:Control Program/Monitor (控制程序或监控程序)。 虽然CP/M V1.3 是为肩任“控制程序和数据”的“上帝”而来的,但“上帝一世”却颇受冷落,电脑业者依旧冷眼旁观。1975年,CP/M V1.4 继承“王位”,开始大造舆论,加之Kildall 博士创建了Digital Research(数字研究公司),为CP/M呐喊欢呼,CP/M陆续被各国微机厂商采用,围绕他的软件也爆炸般地得到了开发。CP/M变红发紫,神话般普及,被推崇为“标准八位机软件总线”,Kildall 博士更是声名远播。 CP/M其实就是第一个微机操作系统,享有指挥主机、内存、磁鼓、磁带、磁盘、打印机等硬设备的特权。通过控制总线上的程序和数据,操作系统有条不紊地执行着人们的指令,如同指挥一台晚会或乐队,高效率地合奏美妙的乐章。 繁荣的CP/M家族不断添丁。运行在Intel 8080芯片上的CP/M—80;运行在8088、8086芯片上的叫CP/M—86;而在Motorola(摩托罗拉)68000 上运行的CP/M 叫做CP/M-68K。CP/M—80、CP/M—86、CP/M-68K等组成了庞大的CP/M家族。 单用户的CP/M—80操作系统,后来发展成多用户的MP/M—80,单用户的CP/M—86又发展成并发的CP/M—86和多用户MP/M— 86,它们成为家族的新生力量。 CP/M开创了软件的新纪元,称得上是计算机改朝换代的里程碑。 DOS系统 七十年代末期,CP/M后院起火,其微机操作系统霸主地位开始动摇。 1979年,IBM公司为开发16位微处理器Intel 8086,请微软公司(Microsoft)为IBM PC设计一个磁盘操作系统,微软公司慷慨承诺,但当时手头仅有XENIX 操作系统,XENIX操作系统要求处理器支持存贮管理和保护设备的功能,可PC

多系统启动引导原理简介

多系统启动引导原理简介 多系统启动引导原理简介 大部分同学对多重系统引导原理的一知半解,我把我知道的简单介绍一下。 我先来介绍分区,从启动引导的角度讲,磁盘分区可以分为系统分区和引导分区。系统分区主要用于启动Windows系统,通常,系统分区总是C:\。而引导分区则是装有Windows操作系统的分区,即%SystemRoot%所在分区。 我们知道,主盘系统分区的第一个扇区中储存着系统的主引导记录,就是通常说的MBR区。它负责搜索磁盘上可启动的分区,然后把引导代码装入内存。对于DOS来说,MBR由Fdisk生成。主引导记录所在分区是系统分区,除此之外装有操作系统并能引导启动的分区是引导分区,引导分区的第一扇区储存着引导代码,用来引导本分区相应的操作系统。 下面我们来看下启动文件,Win98一般为: io.sys、msdos.sys、https://www.doczj.com/doc/d47929874.html,、config.sys、autoexec.bat。五个。其中最重要的是头三个,是启动必需要的。 Win2000/XP的启动文件:ntldr、https://www.doczj.com/doc/d47929874.html,、boot.ini、bootfont.bin、bootsect.dos、https://www.doczj.com/doc/d47929874.html,、ntbootdd.sys等。其中ntldr和https://www.doczj.com/doc/d47929874.html, 对于2000与XP共存的系统引导至关重要。 我简单介绍下各个文件的作用 ntldr,操作系统载入程序,位于系统分区根目录下。 boot.ini, 用于指定Windows的安装位置和磁盘属性。位于系统分区根目录下。bootfont.bin, 对非英文操作系统的启动菜单标题提供文字支持。不是必需的。bootsect.dos, 用于启动旧版操作系统所需要的引导扇区。 https://www.doczj.com/doc/d47929874.html,, 用于检测计算机的硬件配置信息,并将这些信息返回给ntldr。ntbootdd.sys, 当ATA技术被禁用或磁盘控制器是SCSI类型或磁盘控制器不支持扩展INT 13调用时,提供驱动支持。而不用通过BIOS来直接访问。不是必需的。 在含有98或更旧版的多重启动上,问题就复杂点,要由OS Loaer来引导启动。先来认识下OS Loaer,它是Windows自带的多操作系统引导管理工具。注意OS Loaer存在于引导分区第一扇区而非MBR,就是在98或更旧版本系统所在分区。而常见的几种引导工具软件如BootMagic和System Commander则位于MBR区。现在我们假设硬盘里装有98、2000、XP三个系统,那么系统启动时首先由BIOS 把MBR装入内存,并把控制权交给MBR引导启动,计算机搜索MBR中的分区表,找出活动分区,如果在引导分区中有OS Loaer时,主引导记录加载OS Loaer,由OS Loaer读取boot.ini文件,并出现启动选择菜单,如果用户选择启动Win98,那么就装载Bootsect.dos这个文件。Bootsect.dos文件是Win98引导扇区的镜像,位于系统分区根目录下。如果多个操作系统中没有9X或更旧版本的话,则该文件不会存在。如果选Win2000/WinXP,那么就装载Ntldr和https://www.doczj.com/doc/d47929874.html,,由Ntldr和Ntdetect引导启动Win2000/WinXP。(有必要说明一下,2000系统里的Ntldr和Ntdetect与XP里的Ntldr和Ntdetect是不同的,2000可由XP 的Ntldr和Ntdetect引导启动,反过来,2000里的Ntldr和Ntdetect却不能引导XP,这就是为什么在2000与XP共存的机里,重装了2000后不能引导XP 的原因。因为2000会用它的Ntldr和Ntdetect覆盖掉XP的) 呵呵我可能讲得有点啰嗦,不过大家看到这里也许明白我们在多系统环境下重装

电脑启动过程详解

电脑从按完开关加电开始直到进入到系统桌面的整个过程详解本文以Windows2000/xp和Windows Vista/7两个内核做讲解 电脑从加电到进桌面可以分为两大部分: 无论是Windows2000/XP还是Windows Vista/7,在硬件自检方面都是想同的,不同的是在系统加截。 硬件部分: 在讲解前,我们先来了解几个概念: BIOS:即“Basic Input/Output System”(基本输入输出系统),它是一组被“固化”在计算机主板上的一块 ROM 中直接关联硬件的程序,保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序,其主要功能是为计算机提供最底层的、最直接的硬件设置和控制,它包括系统 BIOS(主板 BIOS).其它设备 BIOS(例如 IDE 控制器 BIOS、显卡 BIOS 等)其中系统 BIOS 占据了主导地位.计算机启动过程中各个 BIOS 的启动都是在它的控制下进行的。 CMOS:即“Complementary Metal-Oxide-Semiconductor”(互补金属氧化物半导体),它本是计算机系统内一种重要的芯片,保存了系统引导最基本的资料。 内存地址:我们知道,内存空间的最基本单位是位,8 位视为一个字节,即我们常用的单位 B,内存中的每一个字节都占有一个地址(地址是为了让 CPU 识别这些空间,是按照 16 进制表示的),而最早的 8086 处理器只能识别 1MB(2 的 20 次方 B)的空间,这 1MB 内存中低端(即最后面)的 640KB 就被称为基本内存,而剩下的内存(所有的)则是扩展内存。这 640KB 的空间分别由显存和各 BIOS 所得。 我们来看一下硬件部分的流程图:

操作系统原理与实践教程(第二版)第2章习题答案

第2章操作系统的界面 (1) 请说明系统生成和系统引导的过程。 解: 系统的生成过程:当裸机启动后,会运行一个特殊的程序来自动进行系统的生成(安装),生成系统之前需要先对硬件平台状况进行检查,或者从指定文件处读取硬件系统的配置信息,以便根据硬件选择合适的操作系统模块组,比较重要的信息通常有:CPU类型、内存大小、当前关联设备的类型和数量以及操作系统的重要功能选项和参数。按照这些信息的指示,系统生成程序就可以正确地生成所需的操作系统。 系统引导的过程:系统引导指的是将操作系统内核装入内存并启动系统的过程。主要包括初始引导、内核初始化、全系统初始化。初始引导工作由BIOS完成,主要完成上电自检,初始化基本输入输出设备,载入操作系统内核代码等工作。内核被载入内存后,引导程序将CPU控制权交给内核,内核将首先完成初始化功能,包括对硬件、电路逻辑等的初始化,以及对内核数据结构的初始化,如页表(段表)等。全系统初始化阶段要做的就是启动用户接口程序,对系统进行必要的初始化,使系统处于等待命令输入状态。 (2) 操作系统具有哪些接口?这些接口的作用是什么? 解: 操作系统为用户提供的接口有图形接口、命令接口和程序接口几种形式。 操作系统包括三种类型的用户接口:命令接口(具体又可分为联机命令接口与脱机命令接口)、程序接口及图形化用户接口。其中,命令接口和图形化用户接口支持用户直接通过终端来使用计算机系统,而程序接口则提供给用户在编制程序时使用。 (3) 请说明操作系统具有的共性服务有哪些不同类别,这些类别分别用于完成什么功能? 解:所有的操作系统都通过一些基本服务来帮助用户简单便捷地使用计算机各类资源,它们包括以下几个类别: 1.控制程序运行:系统通过服务将用户程序装入内存并运行该程序,并且要控制程序 在规定时间内结束。 2.进行I/O操作:用户是不能直接控制设备的,只能通过操作系统与外部设备进行交 互,由系统调用将结果显示在屏幕上或交给用户。 3.操作文件系统:为了保证实现“按名存取”,文件系统应该为用户提供根据文件名 来创建、访问、修改、删除文件的方法,以确保文件数据的安全可靠以及正确存取。 4.实现通信:操作系统需要提供多个程序之间进行通讯的机制,来控制程序的执行顺 序。 5.错误处理:操作系统通过错误处理机制,以便及时发现错误并采取正确的处理步骤, 避免损害系统的正确性和统一性。 (4) 系统调用的用途是什么? 解: 通常,在操作系统内核设置有一组用于实现各种系统功能的子程序(过程),并将它们提供给用户程序调用。每当用户在程序中需要操作系统提供某种服务时,便可利用一条系统调用命令,去调用所需的系统过程。这即所谓的系统调用。系统调用的主要类型包括: 1.进程控制类,主要用于进程的创建和终止、对子进程结束的等待、进程映像的替换、 进程数据段大小的改变以及关于进程标识符或指定进程属性的获得等; 2.文件操纵类,主要用于文件的创建、打开、关闭、读/写及文件读写指针的移动和

相关主题
文本预览
相关文档 最新文档