操作系统实验--实验环境的使用heu
- 格式:doc
- 大小:1.68 MB
- 文档页数:5
操作系统实验报告哈尔滨工程大学计算机科学与技术学院第七讲时间片轮转调度一、实验概述1. 实验名称时间片轮转调度2. 实验目的1)调试EOS的线程调度程序,熟悉基于优先级的抢先式调度。
2)为EOS添加时间片轮转调度,了解其它常用的调度算法。
3. 实验类型验证型实验,设计型实验4. 实验内容(1)准备实验(2)阅读控制台命令“rr”相关的源代码(3)调试线程调度程序(4)为EOS 添加时间片轮转调度(5)修改线程时间片的大小二、实验环境WINDOWS XP系统,EOS操作系统三、实验过程1. 设计思路和流程图2. 算法实现3. 需要解决的问题及解答4. 主要数据结构、实现代码及其说明5. 源程序并附上注释VOIDPspRoundRobin(VOID)/*++功能描述:时间片轮转调度函数,被定时计数器中断服务程序KiIsrTimer 调用。
参数:无。
返回值:无。
--*/{if(NULL!=PspCurrentThread&&Running ==PspCurrentThread->State) //判断中断线程是否仍处于运行状态{PspCurrentThread->RemainderTicks--;//时间片减少if(PspCurrentThread->RemainderTicks==0){//判断时间片是否为0PspCurrentThread->RemainderTicks=TICKS_OF_TIME_SLICE;//时间片大小设置if(BIT_TEST(PspReadyBitmap,PspCurrentThread->Priority)) //判断是否有线程的优先级于被中断线程优先级相同{ PspReadyThread(PspCurrentThread);//将被中断线程转入就绪状态,并将其插入对应优先级就绪队列的队尾}}}return 0;//返回一个值}6. 程序运行时的初值和运行结果(1)阅读控制台命令“rr”相关的源代码1)按F7生成在本实验3.1中创建的EOS Kernel项目。
《操作系统》课内实验报告一、实验目的本次《操作系统》课内实验的主要目的是通过实际操作和观察,深入理解操作系统的基本原理和功能,掌握常见操作系统命令的使用,提高对操作系统的实际应用能力和问题解决能力。
二、实验环境本次实验在计算机实验室进行,使用的操作系统为 Windows 10 和Linux(Ubuntu 发行版)。
实验所使用的计算机配置为:Intel Core i5 处理器,8GB 内存,500GB 硬盘。
三、实验内容1、进程管理在 Windows 系统中,通过任务管理器观察进程的状态、优先级、CPU 使用率等信息,并进行进程的结束和优先级调整操作。
在 Linux 系统中,使用命令行工具(如 ps、kill 等)实现相同的功能。
2、内存管理使用 Windows 系统的性能监视器和资源监视器,查看内存的使用情况,包括物理内存、虚拟内存的占用和分配情况。
在 Linux 系统中,通过命令(如 free、vmstat 等)获取类似的内存信息,并分析内存的使用效率。
3、文件系统管理在 Windows 系统中,对文件和文件夹进行创建、复制、移动、删除等操作,了解文件的属性设置和权限管理。
在 Linux 系统中,使用命令(如 mkdir、cp、mv、rm 等)完成相同的任务,并熟悉文件的所有者、所属组和权限设置。
4、设备管理在 Windows 系统中,查看设备管理器中的硬件设备信息,安装和卸载设备驱动程序。
在 Linux 系统中,使用命令(如 lspci、lsusb 等)查看硬件设备,并通过安装内核模块来支持特定设备。
四、实验步骤1、进程管理实验(1)打开 Windows 系统的任务管理器,切换到“进程”选项卡,可以看到当前系统中正在运行的进程列表。
(2)选择一个进程,右键点击可以查看其属性,包括进程 ID、CPU 使用率、内存使用情况等。
(3)通过“结束任务”按钮可以结束指定的进程,但要注意不要随意结束系统关键进程,以免导致系统不稳定。
华北电⼒⼤学操作系统实验报告(含思考题答案)操作系统综合实验( 20 -- 20 年度第学期)名称:题⽬:院系:班级:学号:学⽣姓名:指导教师:成绩:⽇期:年⽉实验⼀:实验环境的使⽤⼀、实验⽬的:1、熟悉操作系统集成实验环境OS Lab的基本使⽤⽅法。
2、练习编译、调试EOS操作系统内核以及EOS应⽤程序。
⼆、实验内容:1、启动OS Lab2、学习OS Lab的基本使⽤⽅法3、EOS内核项⽬的⽣成和调试4、EOS应⽤程序项⽬的⽣成和调试5、退出OS Lab6、保存EOS内核项⽬三、实验过程:本实验实验过程主要按照eos操作系统实验教程上所对应的章节来进⾏。
实验结果:(⼀)启动OS Lab :(⽆)(⼆)学习OS Lab的基本使⽤⽅法:(1)、创建了第⼀个项⽬:(2)、⽣成了第⼀个项⽬(3)、添加了func⽂件后经过⼀系列的调试,打印出了相关内容,按shift+F5结束调试。
(4)、查看变量的值:有3种⽅法:1、将⿏标移动到源代码编辑器中变量n的名称上,此时会弹出⼀个窗⼝显⽰出变量n当前的值(由于此时还没有给变量n赋值,所以是⼀个随机值)。
2、在源代码编辑器中变量n的名称上点击⿏标右键,在弹出的快捷菜单中选择“快速监视”,可以使⽤“快速监视”对话框查看变量n的值。
然后,可以点击“关闭”按钮关闭“快速监视”对话框。
3、在源代码编辑器中变量n的名称上点击⿏标右键,在弹出的快捷菜单中选择“添加监视”,变量n就被添加到了“监视”窗⼝中。
使⽤“监视”窗⼝可以随时查看变量的值和类型。
此时按F10进⾏⼀次单步调试,可以看到“监视”窗⼝中变量n的值会变为0(1)、调⽤堆栈:使⽤“调⽤堆栈”窗⼝可以在调试的过程中查看当前堆栈上的函数,还可以帮助理解函数的调⽤层次和调⽤过程。
EOS内核项⽬的⽣成和调试:(2)、新建EOS内核项⽬(3)、⽣成项⽬(4)、调试项⽬(5)、查看软盘镜像⽂件中的内容(6)、查看EOS SDK(Software Development Kit)⽂件夹EOS应⽤程序项⽬的⽣成和调试新建EOS应⽤程序项⽬⽣成项⽬:按F7⽣成项⽬调试项⽬:按F5进⾏各种调试查看软盘镜像⽂件中的内容:使⽤FloppyImageEditor⼯具打开该项⽬中的Floppy.img⽂件,查看软盘镜像中的⽂件。
华北电力大学
实验报告
|
|
实验名称操作系统综合实验
课程名称操作系统
|
|
专业班级:网络学生姓名:
学号:成绩:
指导教师:王德文/姜丽梅实验日期:2015年11月4日
2. 当loop线程在控制台1中执行,并且在控制台2中执行suspend命令时,为什么控制台1中的loop线程处于就绪状态而不是运行状态?
答:当在控制台2 中执行suspend命令时,实质上是优先级为24的控制台2线程抢占了处理器,也就是控制台2线程处于运行状态,所以此时loop线程处于就绪状态了。
图 1 调试EOS信号量的工作过程。
华北电力大学实验报告
第页共页。
操作系统实验报告1. 实验目的本次实验的目的是通过设计一个简单的操作系统,深入理解操作系统的基本原理、结构和功能,并通过实践掌握操作系统的核心概念和实现方式。
2. 实验环境本次实验使用的实验环境如下:- 操作系统:Linux Ubuntu 18.04- 开发语言:C/C++- 开发工具:GCC编译器,GNU Make3. 实验内容及步骤本次实验包括以下几个主要内容和步骤:3.1 系统引导- 在操作系统启动时,首先执行系统引导程序,加载操作系统内核到内存中。
- 系统引导程序负责初始化硬件设备,建立起基本的运行环境,然后将控制权转交给操作系统内核。
3.2 内核初始化- 内核初始化过程包括初始化各种数据结构,建立进程控制块(PCB),初始化设备驱动程序等。
- 内核初始化完成后,操作系统进入空闲状态,等待用户的操作请求。
3.3 进程管理- 操作系统需要支持进程管理功能,包括进程的创建、销毁、调度和切换等。
- 进程管理模块负责分配和回收进程资源,根据调度算法决定进程的执行顺序,实现进程的并发执行。
3.4 内存管理- 操作系统需要支持内存管理功能,包括内存的分配和释放、内存的保护和共享等。
- 内存管理模块负责维护内存的使用情况,并根据进程的需求进行内存的分配和回收。
3.5 文件系统- 操作系统需要支持文件系统,提供对文件的创建、打开、读写和关闭等操作。
- 文件系统模块负责管理文件和目录的结构,以及实现对文件的存储和访问策略。
4. 实验结果与分析我们根据上述步骤,设计并实现了一个简单的操作系统。
通过测试和分析,得出以下实验结果和结论:4.1 系统启动与内核初始化- 当系统启动时,我们能够成功加载操作系统的内核,并初始化各种硬件设备。
- 内核初始化过程能够正确建立进程控制块(PCB),并初始化各个设备驱动程序。
4.2 进程管理- 我们能够成功创建和销毁进程,并按照设定的调度算法进行进程的切换。
- 进程间能够实现正确的互斥和同步操作,避免资源竞争和死锁等问题。
操作系统实验报告哈尔滨工程大学计算机科学与技术学院第二讲操作系统的启动一、实验概述1. 实验名称操作系统的启动2. 实验目的跟踪调试EOS在PC机上从加电复位到成功启动的全过程,了解操作系统的启动过程。
查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。
3. 实验类型验证性实验4. 实验内容(1)准备实验(2)调试EOS操作系统的启动过程:1)使用Bochs做为远程目标机2)调试BIOS程序3)调试软盘引导扇区程序4)调试加载程序5)调试内核6)查看EOS启动后的状态和行为二、实验环境EOS操作系统和配套的IDE集成开发环境三、实验过程1. 设计思路和流程图2. 算法实现3. 需要解决的问题及解答(1)为什么EOS操作系统从软盘启动时要使用boot.bin和loader.bin两个程序?使用一个可以吗?它们各自的主要功能是什么?如果将loader.bin的功能移动到boot.bin文件中,则boot.bin文件的大小是否仍然能保持小于512字节?答:操作系统启动时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程序,加深对操作系统启动过程的理解。
最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改赠人玫瑰,手留余香。
操作系统实验报告哈尔滨工程大学计算机科学与技术学院第三讲进程的创建一、实验概述1. 实验名称进程的创建2. 实验目的1.练习使用EOS API函数CreateProcess创建一个进程,掌握创建进程的方法,理解进程和程序的区别。
2.调试跟踪CreateProcess函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位3. 实验类型验证型实验4. 实验内容(1)准备实验(2)练习使用控制台命令创建EOS应用程序的进程(3)练习通过编程的方式让应用程序创建另一应用程序的进程。
(4)调试Create Process函数(5)调试Ps Create Process函数(6)练习通过编程的方式创建应用程序的多个进程二、实验环境EOS实验系统,WINDOWS XP 操作系统三、实验过程1. 设计思路和流程图2.算法实现(1)创建十个进程代码#include "EOSApp.h"int main(int argc, char* argv[]){STARTUPINFO StartupInfo;PROCESS_INFORMATION A[10];ULONG ulExitCode; // 子进程退出码INT nResult = 0; // main 函数返回值。
0 表示成功,非 0 表示失败。
#ifdef _DEBUG__asm("int $3\n nop");#endifprintf("Create ten processes and wait for the processes exit...\n\n");StartupInfo.StdInput = GetStdHandle(STD_INPUT_HANDLE);StartupInfo.StdOutput = GetStdHandle(STD_OUTPUT_HANDLE);StartupInfo.StdError = GetStdHandle(STD_ERROR_HANDLE);int x[10],i=0;x[10]=0;for(i=0;i<10;i++){if(CreateProcess("A:\\Hello.exe", NULL, 0, &StartupInfo, &A[i])==0)x[i]=1;}for(i=0;i<10;i++){if(x[i]==0)WaitForSingleObject(A[i].ProcessHandle, INFINITE);}for(i=0;i<10;i++){if(x[i]==0){GetExitCodeProcess(A[i].ProcessHandle, &ulExitCode);printf("\nThe process %d exit with %d.\n",i, ulExitCode);}}for(i=0;i<10;i++){if(x[1]==0){CloseHandle(A[i].ProcessHandle);CloseHandle(A[i].ThreadHandle);}}if(x[i]!=0){printf("CreateProcess Failed, Error code: 0x%X.\n", GetLastError());nResult = 1;}return nResult;}3. 需要解决的问题及解答(1).在PsCreateProcess 函数中调用了PspCreateProcessEnvironment 函数后又先后调用了PspLoadProcessImage 和PspCreateThread 函数,学习这些函数的主要功能。
河北工业大学操作系统实验报告.. 操作系统实验指导书实验一进程控制与描述一、实验目的通过对Windows XP编程,进一步熟悉操作系统的基本概念,较好地理解Windows XP的结构。
通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows XP进程的“一生”。
二、实验环境硬件环境:计算机一台,局域网环境;软件环境:Windows XP,Visual C++ 6.0专业版或企业版。
三、实验内容和步骤第一部分Windows 编程Windows XP 可以识别的程序包括控制台应用程序、GUI应用程序和服务应用程序。
本实验中主要用到的是控制台应用程序和GUI应用程序。
1、简单的控制台应用程序创建一个名为“Hello”的应用程序, 在“开始”菜单中单击“程序”-一、实验目的通过对Windows XP编程,进一步熟悉操作系统的基本概念,较好地理解Windows XP的结构。
通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows XP进程的“一生”。
二、实验环境硬件环境:计算机一台,局域网环境;软件环境:Windows XP,Visual C++ 6.0专业版或企业版。
三、实验内容和步骤第一部分Windows 编程Windows XP 可以识别的程序包括控制台应用程序、GUI应用程序和服务应用程序。
本实验中主要用到的是控制台应用程序和GUI应用程序。
1、简单的控制台应用程序创建一个名为“Hello”的应用程序, 在“开始”菜单中单击“程序”:(如果运行不成功,则可能的原因是什么?)_2、GUI应用程序Windows XP Professional下的GUI应用程序,使用Visual C++编译器创建一个GUI应用程序,代码中包括了WinMain()方法,该方法GUI类型的应用程序的标准入口点。
在“开始”菜单中单击“程序”-2、GUI应用程序Windows XP Professional下的GUI应用程序,使用Visual C++编译器创建一个GUI 应用程序,代码中包括了WinMain()方法,该方法GUI类型的应用程序的标准入口点。
综合实验报告( 2013-- 2014年度第一学期)名称:计算机操作系统题目:计算机操作系统实验院系:计算机系班级:网络学号:学生姓名:指导教师:***设计周数:2周成绩:日期:2013 年11 月实验1 实验环境的使用一、实验目的1、熟悉操作系统集成实验环境OS Lab的基本使用方法。
2、练习编译、调试EOS操作系统内核以及EOS应用程序。
二、预备知识阅读本书第1章,对EOS操作系统和OS Lab集成实验环境有一个初步的了解。
重点学习第1.3节,掌握EOS操作系统内核和EOS应用程序的源代码是如何生成可执行文件的,以及OS Lab是如何将这些可执行文件写入软盘镜像文件并开始执行的。
三、实验内容1、启动OS Lab1. 在安装有OS Lab的计算机上,可以使用两种不同的方法来启动OS Lab:在桌面上双击“Tevation OS Lab”图标。
或者点击“开始”菜单,在“程序”中的“Tevation OS Lab”中选择“Tevation OS Lab”。
2. OS Lab每次启动后都会首先弹出一个用于注册用户信息的对话框(可以选择对话框标题栏上的“帮助”按钮获得关于此对话框的帮助信息)。
在此对话框中填入学号和姓名后,点击“确定”按钮完成本次注册。
3. 观察OS Lab主窗口的布局。
OS Lab主要由下面的若干元素组成:菜单栏、工具栏以及停靠在左侧和底部的各种工具窗口,余下的区域用来放置编辑器窗口。
2、学习OS Lab的基本使用方法2.1 新建Windows控制台应用程序项目新建一个Windows控制台应用程序项目的步骤如下:1. 在“文件”菜单中选择“新建”,然后单击“项目”。
2. 在“新建项目”对话框中,选择项目模板“控制台应用程序 (c)”。
3. 在“名称”中输入新项目使用的文件夹名称“oslab”。
4. 在“位置”中输入新项目保存在磁盘上的位置“C:\test”。
5. 点击“确定”按钮。
2.2 生成项目使用“生成项目”功能可以将程序的源代码文件编译为可执行的二进制文件,方法十分简单:在“生成”菜单中选择“生成项目”。
操作系统实验报告一操作系统实验报告一引言:操作系统是计算机系统中最核心的软件之一,它负责管理和协调计算机硬件和软件资源的分配和调度,为用户提供一个友好、高效、安全的计算环境。
本实验报告旨在总结和分析我在操作系统实验一中所学到的知识和经验,包括实验目的、实验环境、实验过程和实验结果等方面。
一、实验目的操作系统实验一的主要目的是熟悉和掌握操作系统的基本概念和基本操作。
通过实际操作,了解操作系统的启动过程、命令行界面的使用、文件和目录管理、进程管理等内容,为后续的实验和学习打下基础。
二、实验环境本次实验使用的操作系统是Linux,具体是Ubuntu 20.04 LTS版本。
实验所需的软件包括VirtualBox虚拟机软件和Ubuntu镜像文件。
三、实验过程1. 虚拟机环境搭建首先,需要安装VirtualBox虚拟机软件,并导入Ubuntu镜像文件。
通过设置虚拟机的内存大小、硬盘空间等参数,创建一个适合的虚拟机环境。
2. 操作系统启动启动虚拟机后,选择Ubuntu系统进行启动。
在启动过程中,可以观察到操作系统加载各种驱动程序和初始化系统资源的过程。
3. 命令行界面的使用Ubuntu系统默认使用命令行界面,需要掌握基本的命令行操作。
比如,使用cd命令切换目录,使用ls命令查看目录内容,使用mkdir命令创建新目录等。
4. 文件和目录管理在命令行界面下,可以使用各种命令进行文件和目录的管理。
比如,使用touch命令创建新文件,使用cp命令复制文件,使用rm命令删除文件等。
5. 进程管理操作系统需要管理和调度各个进程的执行。
在实验中,可以使用ps命令查看当前运行的进程,使用kill命令终止指定的进程。
四、实验结果通过实验,我成功地搭建了虚拟机环境,并启动了Ubuntu操作系统。
在命令行界面下,我熟练地使用了各种命令进行文件和目录的管理,也了解了进程的基本管理方法。
实验结果表明,我对操作系统的基本概念和基本操作有了初步的了解和掌握。
操作系统
实验报告
哈尔滨工程大学
计算机科学与技术学院
第一讲实验环境的使用
一、实验概述
1. 实验名称
实验环境的使用
2. 实验目的
熟悉操作系统集成实验环境 OS Lab 的基本使用方法。
练习编译、调试 EOS 操作系统内核以及 EOS 应用程序。
3. 实验类型
验证性实验
4. 实验内容
启动OSLab
学习OSLab基本使用方法
EOS内核项目的生成和调试
EOS应用程序项目的生成和调试
退出OSLab
保存EOS内核项目
二、实验环境
使用WIINDOWS XP操作系统和OS Lab集成实验环境,涉及C语言等编程语言。
三、实验过程
1. 设计思路和流程图
对于WINDOWS控制台应用程序:
对于EOS内核项目:
对于EOS应用程序项目:
2. 算法实现
验证性实验,无需算法
3. 需要解决的问题及解答
(1)练习使用单步调试功能(逐过程、逐语句),体会在哪些情况下应该使用“逐过程”调试,在哪些情况下应该使用“逐语句”调试。
练习使用各种调试工具(包括“监视”窗口、“调用堆栈”窗口等)。
解答:逐语句,就是每次执行一行语句,如果碰到函数调用,它就会进入到函数里面。
而逐过程,碰到函数时,不进入函数,把函数调用当成一条语句执行。
因此,在需要进入函数体时用逐语句调试,而不需要进入函数体时用逐过程调试。
(2)思考生成 EOS SDK 文件夹的目的和作用。
查看 EOS SDK 文件夹中的内容,明白文件夹的组织结构和各个文件的来源和作用。
查看 EOS 应用程
序包含了 SDK 文件夹中的哪些头文件,是如何包含的?
解答:EOS SDK是为应用程序调用系统API提供服务,可作为用户编程中可使用的工具包集合。
EOS SDK文件夹主要包括INC头文件、LIB文件夹导入库文件和BIN文件夹动态链接库,可执行程序,二进制文件。
EOS SDK包含的头文件有:eos.h负责导出API函数声明;eosdef.h负责导出函数类型的定义;error.h 负责导出错误码。
4. 主要数据结构、实现代码及其说明
5. 源程序并附上注释
6. 程序运行时的初值和运行结果
(1)控制台应用程序
1)新建项目2)生成项目3)执行项目
4)调试项目
观察输出如图
在源文件中添加fun.c文件
利用断点进行调试:
中断了执行
查看变量
(2)EOS内核项目
1)新建项目2)生成项目3)调试项目
4)查看软盘镜像文件中的内容
5)查看EOS SDK文件夹
使用release配置项目,会自动生成SDK文件夹
(3)EOS应用程序
1)新建项目2)生成项目3)调试项目4)查看软盘镜像文件内容
5)修改EOS项目名称
修改方式如图
四、实验体会
1、遇到问题以及解决:
(1)问题:找不到指定的文件或代码
解决:核对项目类型,注意不同的项目类型有不同的源代码和相关文
件。
(2)问题:在自己的计算机中无法正确运行拷贝过来的项目数据解决:要注意存储路径不能改变,在前后运行的两台机器中要选同样
的路径存放项目文件。
2、体会和收获:
熟悉了OS Lab实验环境,学会了EOS操作系统内核和EOS应用程序的基本调试方法,对EOS相关项目的编程方法增加了了解。
通过这次实验,我锻炼了动手实践的能力,提升了对于操作系统相关知识的兴趣,加深对操作系统理论知识的理解,并能将其应用到实际操作当中。