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

操作系统 操作系统的启动

操作系统 操作系统的启动
操作系统 操作系统的启动

操作系统

实验报告

哈尔滨工程大学

软件学院

第二讲操作系统的启动

一、实验概述

1. 实验名称

操作系统的启动

2. 实验目的

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

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

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

验证

4. 实验内容

4.1 准备实验

4.2 调试EOS操作系统的启动过程

4.2.1 使用Bochs做为远程目标机

4.2.2 调试BIOS程序

4.2.3 调试软盘引导扇区程序

4.2.4 调试加载程序

4.2.5 调试内核

4.2.6 EOS启动后的状态和行为

二、实验环境

实验使用的操作系统:Wingdows xp

实验工具:Oslab

三、实验过程

实验过程:

1.查看CPU在没有执行任何指令之前主要寄存器中的数据,以及内存中的数据:

1. 1启动调试后在Console窗口中输入调试命令sreg后按回车,显示当前CPU 中各个段寄存器的值,如图1.1。

图1.1

1.2输入调试命令r后按回车,显示当前CPU中各个通用寄存器的值,如图1.2

图1.2

1.3.输入调试命令xp /1024b 0x0000,查看开始的1024个字节的物理内存。

如图1.3

图1.3

在Console中输出的这1K物理内存的值都为0,说明BIOS中断向量表还没有被加载到此处。如图1.3

1.4.输入调试命令xp /512b 0x7c00,查看软盘引导扇区应该被加载到的内存位置。如图1.4

图1.4

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

可以验证BIOS第一条指令所在逻辑地址中的段地址和CS寄存器值是一致的,偏移地址和IP寄存器的值是一致的。由于内存还没有被使用,所以其中的值都为0。

2. BIOS在执行完自检和初始化工作后,会将软盘引导扇区加载到物理地址0x7c00-0x7dff位置,并从0x7c00处的指令开始执行引导程序,所以接下来练习从0x7c00处调试软盘引导扇区程序:

2.1. 输入调试命令vb 0x0000:0x7c00,这样就在逻辑地址0x0000:0x7c00(相当于物理地址0x7c00)处添加了一个断点。输入调试命令c继续执行,在0x7c00处的断点中断。中断后会在Console窗口中输出下一个要执行的指令,即软盘引导扇区程序的第一条指令。输入调试命令sreg验证CS寄存器(0x0000)的值,如图2.1

图2.1

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

图2.2

2.3输入调试命令xp /512b 0x7c00显示软盘引导扇区程序的所有字节码。

图2.3

观察此块内存最开始的两个字节分别为0xeb和0x6d,这和引导程序第一条指令的字节码(eb6d)是相同的。

2.4输入调试命令xp /512b 0x0600

由输出结果可验证第一个用户可用区域是空白的。

2.5输入调试命令xp /512b 0x7e00

图2.5

由图可验证第二个用户可用区域是空白的。

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

图2.6.1

图2.6.2

由图2.6.2和图2.6.2可知,两个用户地址可用区域的高地址端也是空白的

2.7输入调试命令xp /512b 0xa0000。

图2.7

由此图可验证上位内存已经被系统占用

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

图2.8

由此图可验证上位内存的高地址端已经被系统占用。

3.软盘引导扇区程序的主要任务就是将软盘中的loader.bin文件加载到物理内存的0x1000处,然后跳转到loader程序的第一条指令(物理地址0x1000处的指令)继续执行loader程序。按照下面的步骤调试此过程:

3.1 输入调试命令vb 0x0000:0x7d81添加一个断点。输入调试命令c继续执行,到断点处中断。输入调试命令xp /8b 0x1000查看内存0x1000处的数据,验证此块内存的前三个字节和loader.lst文件中的第一条指令的字节码是相同的。

图3.1.1

图3.1.2

由图3.1.1中的前三个字节:0x19,0x18,0x01可验证与图3.1.2中的loader.lst文件中的第一条指令(E91801)的字节码是相同的

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

由于loader.bin的大小为1566字节,转为十六进制即为61E,而loader.bin 的开始地址为0x1000,所以loader.bin的最后地址为0x161E,减去八位,即为

0x1616,查看loader.lst最后八位

图3.2.1

图3.2.2

由图3.2.1可知最后的几位0x93,0xff,0xff,0xff,0xc9,0xc2,0x04,0x00,可验证

与图3.2.2中最后的指令:E993FFFFFF,C9,C20400相同

4.Loader程序的主要任务是将操作系统内核(kernel.dll文件)加载到内存中,

然后让CPU进入保护模式并且启用分页机制,最后进入操作系统内核开始执行(跳

转到kernel.dll的入口点执行)。按照下面的步骤调试上述过程:

4.1使用添加物理地址断点的调试命令pb 0x1513添加一个断点。输入调试命令c 继续执行,到断点处中断

图4.1

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

图4.2

4.3在start.c源代码文件中的KiSystemStartup函数名上点击鼠标右键,在弹出的快捷菜单中选择“添加监视”,KiSystemStartup函数就被添加到了“监视”窗口中。在“监视”窗口中可以看到此函数地址为

图4.3

与在虚拟内存x80001117处保存的函数入口地址相同,说明的确是由Loader程序进入了操作系统内核。

5.按F5继续执行EOS操作系统内核,在Display窗口中显示EOS操作系统已经启动,并且控制台程序已经开始运行了。查看EOS的版本号:

5.1. 在控制台中输入命令“ver”后按回车。输出EOS版本后的控制台如图所示。

图5.1

5.2查看EOS启动后的进程和线程的信息:在控制台中输入命令“pt”后按回车。输出的进程和线程信息如图10-5所示。

图5.2

6.

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

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

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

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

图6.1

6.2待EOS启动完毕,在EOS控制台中输入命令“hello”后按回车。此时Hello.exe 应用程序就开始执行。迅速按Ctrl+F2切换到控制台2,并输入命令“pt”后按回车。输出的进程和线程信息如图10-6所示。

图6.2.1

7.思考与练习

7.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字节。

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

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

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

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

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

答:图6.2.1是应用程序的进程,在进程列表中只有一个ID为1的系统进程,

其优先级24,包含有10个线程,其中的ID为2的线程是该进程的主线程,系统进程没有映像名称。在线程列表中有10个线程,它们都是系统线程。

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

四、实验体会

通过本次试验,我对计算机存储结构有了更深的认识,了解操作系统的启动过程。理解操作系统启动后的工作方式。同时也提高了写作报告的能力。能更加熟练的运用实验环境了。

操作系统的启动实验报告

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

一.实验概述 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)的值。

WindowsXP启动过程概述

WindowsXP启动过程概述 从按下计算机开关启动计算机,到登入到桌面完成启动,一共经过了以下几个阶段: 1. 预引导(Pre-Boot)阶段; 2. 引导阶段; 3. 加载内核阶段; 4. 初始化内核阶段; 5. 登陆。 每个启动阶段的详细介绍 a) 预引导阶段 在按下计算机电源使计算机启动,并且在Windows XP专业版操作系统启动之前这段时间,我们称之为预引导(Pre-Boot)阶段,在这个阶段里,计算机首先运行Power On Self Test (POST),POST检测系统的总内存以及其他硬件设备的现状。如果计算机系统的BIOS(基础输入输出系统)是即插即用的,那么计算机硬件设备将经过检验以及完成配置。计算机的基础输入输出系统(BIOS)定位计算机的引导设备,然后MBR(Master Boot Record)被加载并运行。在预引导阶段,计算机要加载Windows XP的NTLDR文件。 b) 引导阶段 Windows XP Professional引导阶段包含4个小的阶段。 首先,计算机要经过初始引导加载器阶段(Initial Boot Loader),在这个阶段里,NTLDR 将计算机微处理器从实模式转换为32位平面内存模式。在实模式中,系统为MS-DOS保留640kb内存,其余内存视为扩展内存,而在32位平面内存模式中,系统(Windows XP Professional)视所有内存为可用内存。接着,NTLDR启动内建的mini-file system drivers,通过这个步骤,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区,以便发现以及加载Windows XP Professional,到这里,初始引导加载器阶段就结束了。 接着系统来到了操作系统选择阶段,如果计算机安装了不止一个操作系统(也就是多系统),而且正确设置了boot.ini使系统提供操作系统选择的条件下,计算机显示器会显示一个操作系统选单,这是NTLDR读取boot.ini的结果。(至于操作系统选单,由于暂时条件不够,没办法截图,但是笔者模拟了一个,见图一。) 在boot.ini中,主要包含以下内容: [boot loader]

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操作系统是微软公司在个人电脑

计算机启动过程

计算机启动过程 讲课教师:黄小龙 计算机启动过程总体分为两个过程,即硬件启动过程和操作系统启动过程。本课中操作系统我们仅选用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. 实验名称 操作系统的启动 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的处于运行状态

WINDOWS操作系统启动过程详解

WINDOWS操作系统启动过程详解 基本上,操作系统的引导过程是从计算机通电自检完成之后开始进行的,而这一过程又可以细分为预引导、引导、载入内核、初始化内核,以及登录这五个阶段。 预引导阶段: 当我们打开计算机电源后,预引导过程就开始运行了。在这个过程中,计算机硬件首先要完成通电自检(Power-On Self Test,POST),这一步主要会对计算机中安装的处理器、内存等硬件进行检测,如果一切正常,则会继续下面的过程。 如果计算机BIOS是支持即插即用的(基本上,现阶段能够买到的计算机和硬件都是支持这一标准的),而且所有硬件设备都已经被自动识别和配置,接下来计算机将会定位引导设备(例如第一块硬盘,设备的引导顺序可以在计算机的BIOS设置中修改),然后从引导设备中读取并运行主引导记录(Master Boot Record,MBR)。至此,预引导阶段成功完成。 引导阶段: 引导阶段又可以分为:初始化引导载入程序、操作系统选择、硬件检测、硬件配置文件选择这四个步骤。在这一过程中需要使用的文件包括:Ntldr、Boot.ini、https://www.doczj.com/doc/b513909655.html,、Ntoskrnl.exe、Ntbootdd.sys、Bootsect.dos(非必须)。 初始化引导载入程序: 在这一阶段,首先出场的是ntldr,该程序会将处理器由实模式(Real Mode)切换为32位平坦内存模式(32-bit Flat Memory Mode)。不使用实模式的主要?因是,在实模式下,内存中的前640KB是为MS-DOS保留的,而剩余内存则会被当作扩展内存使用,这样Windows XP将无法使用全部的物理内存。而32位平坦内存模式下就好多了,Windows XP自身将能使用计算机上安装的所有内存(其实最多也只能用2GB,这是32位操作系统的设计缺陷)。 接下来ntldr会寻找系统自带的一个微型的文件系统驱动。大家都知道,DOS和Windows 9x操作系统是无法读写NTFS文件系统分区的,那么Windows XP的安装程序为什么可以读写NTFS分区?其实这就是微型文件系统驱动的功劳了。只有在载入了这个驱动之后,ntldr 才能找到硬盘上被格式化为NTFS或者FAT/FAT32文件系统的分区。如果这个驱动损坏了,就算硬盘上已有分区,ntldr也认不出来。 读取了文件系统驱动,并成功找到硬盘上的分区后,引导载入程序的初始化过程就已?完成了,随后我们将会进行下一步。 操作系统选择: 这一步并非必须,只有在计算机中安装了多个Windows操作系统的时候才会出现。不过无论计算机中安装了几个Windows,计算机启动的过程中,这一步都会按照设计运行一遍,但只有在确实安装了多个系统的时候,系统才会显示一个列表,让你选择想要引导的系统。 如果已经安装了多个Windows操作系统,那么所有的记录都会被保存在系统盘根目录下一个名为boot.ini的文件中。ntldr程序在完成了初始化工作之后就会从硬盘上读取boot.ini 文件,并根据其中的内容判断计算机上安装了几个Windows,它们分别安装在第几块硬盘的第几个分区上。如果只安装了一个,那么就直接跳过这一步。但如果安装了多个,那么ntldr就会根据文件中的记录显示一个操作系统选择列表,并默认持续30秒。如果你没有选

操作系统的发展历程

操作系统的发展历程 操作系统有: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硬

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的启动过程之前,对系统结构有一个初步概念是很重要的。

实验一操作系统的引导

羅莇莈莀芆罿膁实验目的<编辑> ?薆膀袄螄腿蝿蒀熟悉hit-oslab实验环境; ?羁羄薅芈薀袄螇建立对操作系统引导过程的深入认识; ?膃肃蒈肈肄莄螆掌握操作系统的基本开发过程; ?袅蚈袀芃膆袆葿能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 螈莈蒃蚄肆芁莃实验内容<编辑> 腿薃蒆芅蝿蒃蒃此次实验的基本内容是: 1.螃肃蒅薀蚃芄羇阅读《Linux内核完全注释》的第6章,对计算机和Linux 0.11的引导过程 进行初步的了解; 2.袅衿膈袂肆膇羁按照下面的要求改写0.11的引导程序bootsect.s 3.聿羀羂薄芇蕿羂有兴趣同学可以做做进入保护模式前的设置程序setup.s。 蒈膂莆蒇莁肂莃改写bootsect.s主要完成如下功能: 1.莂羃蚆袈节膄膈bootsect.s能在屏幕上打印一段提示信息“XXX is booting...”,其中XXX是 你给自己的操作系统起的名字,例如LZJos、Sunix等(可以上论坛上秀秀谁的OS名字最帅,也可以显示一个特色logo,以表示自己操作系统的与众不同。) 螅袆蚀蒂羆莈艿改写setup.s主要完成如下功能: 1.羆芈薁蒄薈肁薁bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。而 setup.s向屏幕输出一行"Now we are in SETUP"。 2.肀螁芆蚈虿蚁芃setup.s能获取至少一个基本的硬件参数(如内存参数、显卡参数、硬盘参 数等),将其存放在内存的特定地址,并输出到屏幕上。 3.羁袃袇蒁袁肅膅setup.s不再加载Linux内核,保持上述信息显示在屏幕上即可。 蚅肇羈肁袆莅袁实验报告<编辑> 芇螀膀蒄蝿荿膁在实验报告中回答如下问题: 1.莈莀芆罿膁芀膃有时,继承传统意味着别手蹩脚。x86计算机为了向下兼容,导致启动过程 比较复杂。请找出x86计算机启动过程中,被硬件强制,软件必须遵守的两个“多此一举”的步骤(多找几个也无妨),说说它们为什么多此一举,并设计更简洁的替代方案。

操作系统发展史

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/b513909655.html,、config.sys、autoexec.bat。五个。其中最重要的是头三个,是启动必需要的。 Win2000/XP的启动文件:ntldr、https://www.doczj.com/doc/b513909655.html,、boot.ini、bootfont.bin、bootsect.dos、https://www.doczj.com/doc/b513909655.html,、ntbootdd.sys等。其中ntldr和https://www.doczj.com/doc/b513909655.html, 对于2000与XP共存的系统引导至关重要。 我简单介绍下各个文件的作用 ntldr,操作系统载入程序,位于系统分区根目录下。 boot.ini, 用于指定Windows的安装位置和磁盘属性。位于系统分区根目录下。bootfont.bin, 对非英文操作系统的启动菜单标题提供文字支持。不是必需的。bootsect.dos, 用于启动旧版操作系统所需要的引导扇区。 https://www.doczj.com/doc/b513909655.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/b513909655.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.文件操纵类,主要用于文件的创建、打开、关闭、读/写及文件读写指针的移动和

计算机操作系统期末考试题及答案

2006―2007 学年度第二学期 一、单项选择题(每题1分,共20分) 1.操作系统的发展过程是( C ) A、原始操作系统,管理程序,操作系统 B、原始操作系统,操作系统,管理程序 C、管理程序,原始操作系统,操作系统 D、管理程序,操作系统,原始操作系统 2.用户程序中的输入、输出操作实际上是由( B )完成。 A、程序设计语言 B、操作系统 C、编译系统 D、标准库程序 3.进程调度的对象和任务分别是( C )。 A、作业,从就绪队列中按一定的调度策略选择一个进程占用CPU B、进程,从后备作业队列中按调度策略选择一个作业占用CPU C、进程,从就绪队列中按一定的调度策略选择一个进程占用CPU D、作业,从后备作业队列中调度策略选择一个作业占用CPU 4.支持程序浮动的地址转换机制是( A、动态重定位 ) A、动态重定位 B、段式地址转换 C、页式地址转换 D、静态重定位 5.在可变分区存储管理中,最优适应分配算法要求对空闲区表项按( C )进行排列。 A、地址从大到小 B、地址从小到大 C、尺寸从小到大 D、尺寸从大到小 6.设计批处理多道系统时,首先要考虑的是( 系统效率和吞吐量 )。 A、灵活性和可适应性 B、系统效率和吞吐量 C、交互性和响应时间 D、实时性和可靠性 7.当进程因时间片用完而让出处理机时,该进程应转变为( )状态。 A、等待 B、就绪 C、运行 D、完成 8.文件的是指防止文件被( )。 A、篡改 B、破坏 C、窃取 D、删除 9.若系统中有五个并发进程涉及某个相同的变量A,则变量A的相关临界区是由( )临界区构成。 A、2个 B、3个 C、4个 D、5个 10.按逻辑结构划分,文件主要有两类:(记录式文件)和流式文件。 A、记录式文件 B、网状文件 C、索引文件 D、流式文件 11.UNIX中的文件系统采用(、流式文件)。 A、网状文件 B、记录式文件 C、索引文件 D、流式文件 12.文件系统的主要目的是()。 A、实现对文件的按名存取 B、实现虚拟存贮器 C、提高外围设备的输入输出速度 D、用于存贮系统文档 13.文件系统中用()管理文件。 A、堆栈结构 B、指针 C、页表 D、目录 14.为了允许不同用户的文件具有相同的文件名,通常在文件系统中采用()。 A、重名翻译 B、多级目录 C、约定 D、文件名 15.在多进程的并发系统中,肯定不会因竞争( )而产生死锁。 A、打印机 B、磁带机 C、CPU D、磁盘 16.一种既有利于短小作业又兼顾到长作业的作业调度算法是( )。 A、先来先服务 B、轮转 C、最高响应比优先 D、均衡调度 17.两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的()。 A、互斥 B、同步 C、调度 D、伙伴 18.当每类资源只有一个个体时,下列说法中不正确的是()。 A、有环必死锁 B、死锁必有环 C、有环不一定死锁 D、被锁者一定全在环中 19.数据文件存放在到存储介质上时,采用的逻辑组织形式是与( )有关的。 A、文件逻辑结构 B、存储介质特性 C、主存储器管理方式 D、分配外设方式 20.在单处理器的多进程系统中,进程什么时候占用处理器和能占用多长时间,取决于( )。 A、进程相应的程序段的长度 B、进程自身和进程调度策略 C、进程总共需要运行时间多少 D、进程完成什么功能

操作系统的启动流程

1、预引导(Pre-Boot)阶段 2、引导阶段 3、加载内核阶段 4、初始化内核阶段 5、登陆 每个启动阶段的详细介绍 一、预引导阶段在按下计算机电源使计算机启动, 并且在Windows XP操作系统启动之前这段时间, 我们称之为预引导(Pre-Boot)阶段, 在这个阶段里,计算机首先运行Power On Self Test(POST), POST检测系统的总内存以及其他硬件设备的现状。 如果计算机系统的BIOS(基础输入/输出系统)是即插即用的, 那么计算机硬件设备将经过检验以及完成配置。 计算机的基础输入/输出系统(BIOS)定位计算机的引导设备, 然后MBR(Master Boot Record)被加载并运行。 在预引导阶段,计算机要加载Windows XP的NTLDR文件。 二、引导阶段 Windows XP Professional引导阶段包含4个小的阶段。 首先,计算机要经过初始引导加载器阶段(Initial Boot Loader), 在这个阶段里,NTLDR将计算机微处理器从实模式转换为32位平面内存模式。 在实模式中,系统为MS-DOS保留640kb内存,其余内存视为扩展内存, 而在32位平面内存模式中,系统(Windows XP Professional)视所有内存为可用内存。 接着,NTLDR启动内建的mini-file system drivers, 通过这个步骤,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区, 以便发现以及加载Windows XP Professional, 到这里,初始引导加载器阶段就结束了。 接着系统来到了操作系统选择阶段, 如果计算机安装了不止一个操作系统(也就是多系统), 而且正确设置了boot.ini使系统提供操作系统选择的条件下, 计算机显示器会显示一个操作系统选单, 这是NTLDR读取boot.ini的结果。 三、加载内核阶段在加载内核阶段,ntldr加载称为Windows XP内核的ntokrnl.exe。 系统加载了Windows XP内核但是没有将它初始化。 接着ntldr加载硬件抽象层(HAL,hal.dll),然后, 系统继续加载HKEY_LOCAL_MACHINE\system键, NTLDR读取select键来决定哪一个Control Set将被加载。 控制集中包含设备的驱动程序以及需要加载的服务。 NTLDR加载HKEY_LOCAL_MACHINE\system\service\...下start键值为0的最底层设备驱动。当作为Control Set的镜像的Current Control Set被加载时, ntldr传递控制给内核,初始化内核阶段就开始了。 四、初始化内核阶段在初始化内核阶段开始的时候, 彩色的Windows XP的logo以及进度条显示在屏幕中央, 在这个阶段,系统完成了启动的4项任务: 内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINE\HARDWARE键。 内核通过引用HKEY_LOCAL_MACHINE\system\Current的默认值复制Control Set来创建了

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