操作系统的启动实验报告

合集下载

windows的实验报告(完整版)

windows的实验报告(完整版)

windows的实验报告(完整版)实验标题:Windows的实验报告一、实验目的本实验旨在深入了解Windows操作系统的基本原理和功能,并掌握Windows操作系统的安装、配置和使用方法。

二、实验内容1. Windows操作系统的安装通过制作启动盘或使用光盘安装,选择适当的版本和安装选项进行Windows操作系统的安装。

2. Windows操作系统的配置进行系统设置,包括语言和区域设定、时区设定、键盘和鼠标设置等。

3. Windows操作系统的使用掌握Windows操作系统的基本操作,包括桌面管理、文件和文件夹管理、应用程序的安装和卸载、系统设置等。

4. Windows操作系统的网络配置了解并设置Windows操作系统的网络连接,包括有线网络和无线网络的配置。

三、实验步骤1. Windows操作系统的安装按照安装引导界面的指示,选择合适的选项完成安装过程。

注意选择适配的驱动程序并进行相应设置。

2. Windows操作系统的配置在系统设置中,选择适当的语言和区域,设定正确的时区。

根据个人需求,进行键盘和鼠标相关设置。

3. Windows操作系统的使用3.1 桌面管理:了解和使用桌面的基本布局,包括桌面图标的添加、删除、移动等操作。

3.2 文件和文件夹管理:学习使用资源管理器对文件和文件夹进行管理,包括创建、复制、粘贴、删除等操作。

3.3 应用程序的安装和卸载:了解如何通过Windows商店或第三方应用程序进行安装,并学会使用控制面板进行软件的卸载。

3.4 系统设置:掌握系统设置的方法,包括背景壁纸的更换、屏幕分辨率的调整、电源管理等。

4. Windows操作系统的网络配置4.1 有线网络的配置:了解如何通过网线连接计算机和局域网以及设置IP地址、子网掩码等网络参数。

4.2 无线网络的配置:学习如何连接无线网络并进行密码设置,了解无线网络的高级配置选项。

四、实验结果经过以上实验步骤的操作,成功完成了Windows操作系统的安装、配置和使用。

操作系统实验实验报告

操作系统实验实验报告

操作系统实验实验报告一、实验目的操作系统是计算机系统中最为关键的核心软件,它管理着计算机的硬件资源和软件资源,为用户提供了一个方便、高效、稳定的工作环境。

本次操作系统实验的目的在于通过实际操作和实践,深入理解操作系统的基本原理和核心概念,掌握操作系统的基本功能和操作方法,提高对操作系统的认识和应用能力。

二、实验环境本次实验使用的操作系统为 Windows 10 专业版,开发工具为Visual Studio 2019,编程语言为 C 和 C++。

实验硬件环境为一台配备Intel Core i7 处理器、16GB 内存、512GB SSD 硬盘的个人计算机。

三、实验内容(一)进程管理实验1、进程创建与终止通过编程实现创建新的进程,并在完成任务后终止进程。

在实验中,我们使用了 Windows API 函数 CreateProcess 和 TerminateProcess 来完成进程的创建和终止操作。

通过观察进程的创建和终止过程,深入理解了进程的生命周期和状态转换。

2、进程同步与互斥为了实现进程之间的同步与互斥,我们使用了信号量、互斥量等同步对象。

通过编写多线程程序,模拟了多个进程对共享资源的访问,实现了对共享资源的互斥访问和同步操作。

在实验中,我们深刻体会到了进程同步与互斥的重要性,以及不正确的同步操作可能导致的死锁等问题。

(二)内存管理实验1、内存分配与释放使用 Windows API 函数 VirtualAlloc 和 VirtualFree 进行内存的分配和释放操作。

通过实验,了解了内存分配的不同方式(如堆分配、栈分配等)以及内存释放的时机和方法,掌握了内存管理的基本原理和操作技巧。

2、内存分页与分段通过编程模拟内存的分页和分段管理机制,了解了内存分页和分段的基本原理和实现方法。

在实验中,我们实现了简单的内存分页和分段算法,对内存的地址转换和页面置换等过程有了更深入的理解。

(三)文件系统实验1、文件操作使用 Windows API 函数 CreateFile、ReadFile、WriteFile 等进行文件的创建、读取和写入操作。

操作系统实验二实验报告

操作系统实验二实验报告

操作系统实验二实验报告一、实验目的本次操作系统实验二的主要目的是深入理解和掌握进程管理的相关概念和技术,包括进程的创建、执行、同步和通信。

通过实际编程和实验操作,提高对操作系统原理的认识,培养解决实际问题的能力。

二、实验环境本次实验使用的操作系统为 Windows 10,编程环境为 Visual Studio 2019。

三、实验内容及步骤(一)进程创建实验1、首先,创建一个新的 C++项目。

2、在项目中,使用 Windows API 函数`CreateProcess`来创建一个新的进程。

3、为新进程指定可执行文件的路径、命令行参数、进程属性等。

4、编写代码来等待新进程的结束,并获取其退出代码。

(二)进程同步实验1、设计一个生产者消费者问题的模型。

2、使用信号量来实现生产者和消费者进程之间的同步。

3、生产者进程不断生成数据并放入共享缓冲区,当缓冲区已满时等待。

4、消费者进程从共享缓冲区中取出数据进行处理,当缓冲区为空时等待。

(三)进程通信实验1、选择使用管道来实现进程之间的通信。

2、创建一个匿名管道,父进程和子进程分别读写管道的两端。

3、父进程向管道写入数据,子进程从管道读取数据并进行处理。

四、实验结果及分析(一)进程创建实验结果成功创建了新的进程,并能够获取到其退出代码。

通过观察进程的创建和执行过程,加深了对进程概念的理解。

(二)进程同步实验结果通过使用信号量,生产者和消费者进程能够正确地进行同步,避免了缓冲区的溢出和数据的丢失。

分析结果表明,信号量机制有效地解决了进程之间的资源竞争和协调问题。

(三)进程通信实验结果通过管道实现了父进程和子进程之间的数据通信。

数据能够准确地在进程之间传递,验证了管道通信的有效性。

五、遇到的问题及解决方法(一)在进程创建实验中,遇到了参数设置不正确导致进程创建失败的问题。

通过仔细查阅文档和调试,最终正确设置了参数,成功创建了进程。

(二)在进程同步实验中,出现了信号量使用不当导致死锁的情况。

(完整word版)操作系统实验报告.实验一 WINDOWS进程初识

(完整word版)操作系统实验报告.实验一 WINDOWS进程初识

操作系统教程实验指导书实验一WINDOWS进程初识1、实验目的(1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。

(2)掌握WINDOWS API的使用方法。

(3)编写测试程序,理解用户态运行和核心态运行。

2、实验内容和步骤(1)编写基本的Win32 Consol Application步骤1:登录进入Windows,启动VC++ 6.0。

步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。

创建一个新的控制台应用程序工程。

步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。

步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。

编译成可执行文件。

步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows “命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:\课程\os课\os实验\程序\os11\debug>hello.exe运行结果 (如果运行不成功,则可能的原因是什么?) :答:运行成功,结果:(2)计算进程在核心态运行和用户态运行的时间步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。

步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。

步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。

操作系统实验报告

操作系统实验报告

篇一:操作系统实验报告完全版《计算机操作系统》实验报告班级:姓名:学号:实验一进程控制与描述一、实验目的通过对windows 2000编程,进一步熟悉操作系统的基本概念,较好地理解windows 2000的结构。

通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解windows 2000中进程的“一生”。

二、实验环境硬件环境:计算机一台,局域网环境;软件环境:windows 2000 professional、visual c++6.0企业版。

三、实验内容和步骤第一部分:程序1-1windows 2000 的gui 应用程序windows 2000 professional下的gui应用程序,使用visual c++编译器创建一个gui应用程序,代码中包括了winmain()方法,该方法gui类型的应用程序的标准入口点。

:: messagebox( null, “hello, windows 2000” , “greetings”,mb_ok) ;/* hinstance */ , /* hprevinstance */, /* lpcmdline */, /* ncmdshow */ )return(0) ; }在程序1-1的gui应用程序中,首先需要windows.h头文件,以便获得传送给winmain() 和messagebox() api函数的数据类型定义。

接着的pragma指令指示编译器/连接器找到user32.lib库文件并将其与产生的exe文件连接起来。

这样就可以运行简单的命令行命令cl msgbox.cpp来创建这一应用程序,如果没有pragma指令,则messagebox() api函数就成为未定义的了。

这一指令是visual studio c++ 编译器特有的。

接下来是winmain() 方法。

其中有四个由实际的低级入口点传递来的参数。

计算机操作系统实验课实验报告

计算机操作系统实验课实验报告

实验报告实验课程: 计算机操作系统学生姓名:XXX学号:XXXX专业班级:软件2014年12月25日目录实验一熟悉Windows XP中的进程和线程 (3)实验二进程调度 (7)实验三死锁避免—银行家算法的实现 (16)实验四存储管理 (22)实验一熟悉Windows XP中的进程和线程一、实验名称熟悉Windows XP中的进程和线程二、实验目的1、熟悉Windows中任务管理器的使用。

2、通过任务管理器识别操作系统中的进程和线程的相关信息。

3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。

三、实验结果分析1、启动操作系统自带的任务管理器:方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。

2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并完成下表:表一:统计进程的各项主要信息3、启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。

再从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是任务管理器无法结束进程,原因是该系统是系统进程。

4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所有窗口最小化,看看你的计算机系统起来什么样的变化桌面上图标菜单都消失了、得到的结论 explorer.exe是管理桌面图标的文件(说出explorer.exe进程的作用)。

5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进程“explorer.exe”的各项信息,并填写下表:进程:explorer.exe 中的各个线程6、注意某些线程前有“+”,如图所示:,说明二者之间的差异前有“+”其器线程下有窗口。

四、心得体会通过本次实验,我了解到了windows系统中进程的管理与操作,我了解了如何切出任务管理器,任务管理器应用与其他与进程相关的知识,明白了有些系统程序不能够关闭,系统中的进程与线程虽然很多,但是其中有许多关联,只要弄清楚其中的关联那么就能够运用好进程与线程,达到我们的目的。

大一计算机windows实验报告

大一计算机windows实验报告

标题:大一计算机Windows实验报告引言:本实验旨在帮助大一计算机专业的学生熟悉Windows操作系统的基本功能和操作方法,为日后的学习和工作打下坚实的基础。

通过实际操作,我们能够更好地理解Windows操作系统的特点和优势,并学会使用各种常见的应用程序。

实验环境:本实验使用的硬件为一台配置较高的计算机,操作系统为Windows 10,并且安装了Microsoft Office套件以及其他必要的工具软件。

实验步骤:1.首先,我们启动计算机并登录到Windows操作系统。

2.接下来,我们熟悉桌面界面和任务栏的布局,了解如何打开和关闭应用程序。

3.我们学会使用Windows资源管理器,浏览计算机文件和文件夹的层次结构,并掌握复制、剪切和粘贴文件的方法。

4.然后,我们深入学习Windows操作系统的设置选项,包括个性化设置、网络连接设置和安全设置等。

5.我们尝试使用Windows自带的文本编辑器编写简单的文档,并保存到指定位置。

6.进一步,我们学习如何使用Microsoft Office中的Word处理程序创建和格式化文档。

7.在Microsoft Excel中,我们探索如何创建表格、进行基本的数据处理和生成图表。

8.最后,我们使用Windows自带的邮件应用程序设置邮箱,并发送和接收电子邮件。

实验结果:通过本次实验,我成功地掌握了Windows操作系统的基本功能和操作方法。

我熟悉了桌面界面、任务栏布局,学会了打开和关闭应用程序。

我能够轻松浏览计算机文件和文件夹,并使用复制、剪切和粘贴功能进行文件操作。

此外,我还学会了个性化设置、网络连接设置和安全设置等重要选项。

在Microsoft Office套件中,我能够熟练地使用Word处理程序编写和格式化文档,以及在Excel 中创建表格、进行数据处理和生成图表。

最后,我成功地设置了邮箱,并能够发送和接收电子邮件。

分析与讨论:在实验过程中,我遇到了一些小问题,例如文件操作时出现了拷贝错误和命名错误。

操作系统实验报告哈工大

操作系统实验报告哈工大

计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360117姓名乐云指导教师周学权计算机操作系统课程实验报告专业信息管理与信息系统班级 1203601学号 120360114姓名郭鑫指导教师周学权操作系统实验实验1 使用虚拟机安装系统 4学时【实验目的】1.了解虚拟机软件的使用。

2.了解使用虚拟机安装Windows及Ubuntu操作系统。

【实验内容】1. 安装虚拟机软件VirtualBox。

2. 配置VirtualBox环境安装WindowsXP,并在虚拟机中启动windowsXP。

3. 配置VirtualBox环境安装Ubuntu 10.10,并在虚拟机中启动Ubuntu。

【实验环境】VirtualBox4.0Windows XPUbuntu 8.04【实验过程】一、创建虚拟机首先运行VirtualBox,单击左上角的“新建”。

单击下一步。

出现如下图的界面,在名称后输入自己起的名字,如test选择自己想要安装的系统类型和版本,本次试验是安装windows xp系统设置完成后,单击下一步。

接下来是设置虚拟机的内存大小,本次实验操作的计算机内存为4GB,所以我选择分配给我的虚拟机的内存为512MB,然后单击下一步。

接着创建虚拟硬盘,选择创建新的虚拟硬盘,单击下一步。

选择虚拟硬盘的类型,默认选择了VDI类型,单击下一步。

接下来选择为动态扩展类型,因为计算机的存储空间不大。

单击下一步。

动态扩展:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间的范围就为0~10G。

固定大小:如果你为你的虚拟磁盘分配的是10G空间,虚拟磁盘占用真实磁盘空间永远不是10G,不管虚拟磁盘空间是否被全部使用。

选择虚拟机在本地磁盘中的位置和大小,单击下一步。

确认虚拟机的详细情况,点击下一步。

这时我们已经成功的创建了一个虚拟机了,接下来我们要开始配置这个虚拟机安装操作系统选择刚才创建的虚拟机,然后单击上方的“开始”弹出了首次运行向导,单击下一步。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统实验报告
工程大学
计算机科学与技术学院
一.实验概述
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)的值。

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

8)输入调试命令 xp /512b 0x0600 可验证第一个用户可用区域是空白的。

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

10)软盘引导扇区程序的主要任务就是将软盘中的 loader.bin 文件加载到物理存的 0x1000 处,然后跳转到 loader 程序的第一条指令(物理地址 0x1000 处的指令)继续执行 loader 程序。

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

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

12)调试核,在项目管理器中打开start.c文件,对其中的操作系统核入口点函数KiSystemStartup添加断点及监视,在监视窗口中可以看到此函数的地址,与在虚拟存x80001117处保存的函数入口地址相同,说明的确是由loader程序进入了操作系统核。

13)在控制台中输入命令“ver”,可得EOS的的版本,在控制台中输入命令“pt”,课查看输出的进程和线程信息。

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

在线程列表中有 10 个线程,它们都是系统线程。

其中优先级为 0 的是空闲线程,当没有优先级大于 0 的线程占用处理器时,空闲线程就会在处理器上运行并处于运行状态(Running),否则就处于就绪状态(Ready)。

ID 为 20 的线程是控制台派遣线程,用于将键盘事件派遣到活动的控制台线程,所以在没有键盘事件发生的时间里,该线程
都处于阻塞状态(Waiting)。

余下的八个线程都是控制台线程,分别对应于八个控制台,由于它们执行的是同一个控制台线程函数(ke/sysproc.c 文件中的 KiShellThread 函数),所以它们开始执行的地址都是相同的。

控制台线程只有在处理控制台命令的时候才会处于运行状态,其它时间它们都在等待控制台命令的输入,会处于阻塞状态。

由于本次是在控制台 1 中执行的 pt 命令,所以控制台 1 对应的线程处于运行状态,而其它的七个控制台线程都处于阻塞状态。

14)将实验文件夹中的hello.exe文件添加到软盘镜像文件中,并在EOS启动完毕后,在EOS控制台中输入命令“hello”,迅速切换到控制台2,输入命令“pt”,可查看输出的进程和线程信息。

四.实验体会
本次实验了解了操作系统启动后的行为和状态,通过一步步具体的操作,理解了操作系统启动后运行的每个方面。

在实验的过程中,对于自己设计的命令,可以在给定的围进行尝试,并不仅仅是将步骤中的例子略微改动,对于验证loader.lst文件最后的字节码命令,需要经过一定的计算,由于其文件大小为1.56KB,因此需要将最后的位置减去8b,得到最后一个字节码的位置,因此是0x1616。

通过比较hello程序添加之前之后的进程状态比较,可以看出ID为33的线程是应用程序的主线程,数量只有一个,hello程序和系统进程区别是SYSTEM栏是N,且优先级比系统低,系统是24,应用程序是8。

相关文档
最新文档