北京大学操作系统实习JOS Lab3实验报告
操作系统实验报告3

操作系统实验报告3一、实验目的本次操作系统实验的主要目的是深入了解和掌握操作系统中进程管理、内存管理以及文件系统等核心概念和相关技术,并通过实际的实验操作,提高对操作系统原理的理解和应用能力。
二、实验环境本次实验使用的操作系统为 Windows 10,开发工具为 Visual Studio 2019。
三、实验内容及步骤(一)进程管理实验1、创建进程使用 C++语言编写程序,通过调用 Windows API 函数`CreateProcess`来创建一个新的进程。
在创建进程时,设置进程的优先级、环境变量等参数,并观察进程的创建过程和相关的系统资源使用情况。
```cppinclude <windowsh>include <iostream>int main(){STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory(&si, sizeof(si));sicb = sizeof(si);ZeroMemory(&pi, sizeof(pi));//设置进程的优先级为 HIGH_PRIORITY_CLASS DWORD priorityClass = HIGH_PRIORITY_CLASS;//创建进程if (!CreateProcess(NULL, //应用程序名称"notepadexe",//命令行参数NULL, //进程安全性NULL, //线程安全性FALSE, //不继承句柄priorityClass, //进程优先级NULL, //环境变量NULL, //当前目录&si,&pi)){std::cout <<"CreateProcess failed Error code: "<<GetLastError()<< std::endl;return 1;}//等待进程结束WaitForSingleObject(pihProcess, INFINITE);//关闭进程和线程的句柄CloseHandle(pihProcess);CloseHandle(pihThread);return 0;}```2、进程同步与互斥编写一个多线程程序,模拟生产者消费者问题。
操作系统实验报告3

步骤4:单击“Build”菜单中的“Compile 31.cpp”命令,并单击“是”按钮确认。系统对3-1.cpp 进行编译。 步骤5:编译完成后,单击“Build”菜单中 的“Build 3-1.exe”命令,建立3-1.exe可执行文件。 操作能否正常进行?如果不行,则可能的原因是 什么? 能 步骤6:在工具栏单击“Execute Program” (执行程 序) 按钮,执行3-1.exe程序。 运行结果 (分行书写。如果运行不成功,则可能的 原因是什么?) : 1) event created 2) child created 3) Parent waitichild processng on child. 4) beginning…… 5) event signaled
API名称 CreateEvent() OpenEvent() SetEvent() ResetEvent() PulseEvent() 表3-1 用于管理事件对象的API 描述 在内核中创建一个新的事件对象。此函数允许有安全性 设置、手工还是自动重置的标志以及初始时已接受还是未 接受信号状态的标志 创建对已经存在的事件对象的引用。此API函数需要名 称、继承标志和所需的访问级别 将手工重置事件转化为已接受信号状态 将手工重置事件转化为非接受信号状态 将自动重置事件对象转化为已接受信号状态。当系统释 放所有的等待它的线程时此种转化立即发生
源的线程应该在实际执行操作之前获得互斥体, 而在访问结束时立即释放互斥体,以允许下一个 等待线程获得互斥体,然后接着进行下去。 与事件对象类似,互斥体容易创建、打开、使用 并清除。利用CreateMutex() API可创建互斥体, 创建时还可以指定一个初始的拥有权标志,通过 使用这个标志,只有当线程完成了资源的所有的 初始化工作时,才允许创建线程释放互斥体。
《操作系统》实验报告(3) (2)

#include <stdio.h>
main(){
int p1, p2;
while ((p1=fork())==-1);
if (p1==0)
printf(“this is the child1 process!\n”);
else {
while ((p2=fork())==-1);
exit(0);}
else if(pid==0)
{execl(“/bin/ls”,”ls”,”-al”,”/etc/passwd”,(char *)0);
exit(0);}
else
{pid=waitpid(pc,NULL,0);
printf(“the child process:%d\n”,pid);}
while ((p2=fork())==-1);/*父进程创建第二个进程,直到成功*/
if (p2==0)/* 0返回给子进程2*/
putchar(‘c’);/*子进程2的处理过程*/
else putchar(‘a’);/*子进程2创建完成后,父进程的处理过程*/}
}
多次运行结果大多数都是bca,偶尔会出现bac或者cab。进程的处理过程太短,多次运行可能出现差错。
任务6:编写一段程序,使用系统调用fork( )创建一个子进程。子进程通过系统调用exec系列函数调用命令ls,调用exit( )结束。而父进程则调用waitpid( )等待子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。
创建进程的系统调用:
fork( ),创建一个新进程。
系统调用格式:pid=fork( );
}
任课教师签名:2011年4月日
操作系统实践报告模板

操作系统实践报告模板一、实践概述本次实践主要是对操作系统的基本原理和功能进行了解和实际操作。
通过搭建实验环境、学习和调试代码,加深对操作系统的理解和掌握。
本报告将从实践目的、实验环境搭建、实验过程和实验结果等方面进行详细介绍。
二、实践目的1. 理解操作系统的基本概念和原理2. 学习操作系统的实际应用和调试技术3. 掌握操作系统的基本功能和操作方法三、实验环境搭建1. 硬件环境:Intel处理器的PC机2. 软件环境:Linux操作系统、GNU编译器、调试器等四、实验过程1. 熟悉操作系统的基本原理和功能通过阅读相关的教材和资料,对操作系统的基本概念和原理进行了解和学习,包括进程管理、内存管理、文件系统等内容。
2. 搭建实验环境在实验室环境中搭建了Linux操作系统的实验环境,安装了必要的软件和工具,准备好进行实际操作。
3. 编写和调试实验代码编写了一些简单的操作系统代码,进行了编译和调试,通过调试器对代码进行了逐步调试,查看代码执行过程和结果,加深了对操作系统的理解。
4. 实际操作和测试运行编写的操作系统代码,测试各个功能的正常性,包括进程的创建和调度、内存的分配和释放、文件的读写等操作,对实验结果进行了记录和分析。
五、实验结果1. 成功搭建了实验环境,完成了对操作系统的编写和调试2. 实现了基本的操作系统功能,操作系统能够进行进程管理、内存管理和文件系统的操作3. 通过实际操作,加深了对操作系统的理解和掌握六、实践反思1. 实践中遇到了一些问题,如代码的调试和错误处理等,通过查阅资料和请教老师解决了这些问题,提高了解决问题和自学能力2. 实践让我更加深入地了解了操作系统的运行原理和机制,对操作系统的重要性和应用价值有了更清晰的认识3. 实践的过程中锻炼了动手能力和团队合作意识,对操作系统的实际应用能力有了更强的提升七、总结通过本次操作系统实践,我对操作系统的理论知识和实际应用有了更深入的了解和掌握,对操作系统的重要性和功能有了更清晰的认识。
操作系统-ucore-lab3

操作系统-ucore-lab3操作系统实验报告题⽬:虚拟内存管理⽬录⼀、内容 (2)⼆、⽬的 (3)三、实验流程 (3)四、实验环境与结果分析 (3)五、实验体会和思考题 (10)⼀、内容本次实验是在实验⼆的基础上,借助于页表机制和实验⼀中涉及的中断异常处理机制,完成Page Fault异常处理和FIFO页替换算法的实现,结合磁盘提供的缓存空间,从⽽能够⽀持虚存管理,提供⼀个⽐实际物理内存空间“更⼤”的虚拟内存空间给系统使⽤。
这个实验与实际操作系统中的实现⽐较起来要简单,不过需要了解实验⼀和实验⼆的具体实现。
实际操作系统系统中的虚拟内存管理设计与实现是相当复杂的,涉及到与进程管理系统、⽂件系统等的交叉访问。
如果⼤家有余⼒,可以尝试完成扩展练习,实现extended clock页替换算法。
练习1:给未被映射的地址映射上物理页(需要编程)完成do_pgfault(mm/vmm.c)函数,给未被映射的地址映射上物理页。
设置访问权限的时候需要参考页⾯所在VMA的权限,同时需要注意映射物理页时需要操作内存控制结构所指定的页表,⽽不是内核的页表。
注意:在LAB2EXERCISE1处填写代码。
执⾏make qemu后,如果通过check_pgfault函数的测试后,会有“check_pgfault() succeeded!”的输出,表⽰练习1基本正确。
请在实验报告中简要说明你的设计实现过程。
请回答如下问题:请描述页⽬录项(Pag Director Entry)和页表(Page Table Entry)中组成部分对ucore实现页替换算法的潜在⽤处。
如果ucore的缺页服务例程在执⾏过程中访问内存,出现了页访问异常,请问硬件要做哪些事情?练习2:补充完成基于FIFO的页⾯替换算法(需要编程)完成vmm.c中的do_pgfault函数,并且在实现FIFO算法的swap_fifo.c中完成map_swappable和swap_out_vistim函数。
操作系统实践报告

操作系统实践报告操作系统实践报告⒈引言本报告旨在详细介绍操作系统实践的过程、方法及结果。
操作系统是计算机科学中的重要领域,它扮演着管理计算机系统资源和提供用户接口的关键角色。
通过实践操作系统的设计与实现,我们可以深入理解其原理和功能,并掌握操作系统的开发技术。
⒉背景知识在开始操作系统实践之前,我们需要掌握一些背景知识,包括计算机体系结构、计算机网络、编程语言和数据结构等。
了解这些知识可以帮助我们更好地理解操作系统的工作原理,并优化设计与实现过程。
⒊实践目标本次操作系统实践的目标是设计和实现一个简单的操作系统原型。
我们将重点关注以下方面:⑴进程管理:包括进程创建、调度和终止等功能。
⑵内存管理:实现内存分配和回收机制,保证系统的稳定性和效率。
⑶文件管理:设计文件系统,实现文件的创建、读写和删除等操作。
⑷用户接口:提供方便易用的用户界面,使用户能够方便地操作系统。
⒋实践步骤本次实践可以划分为以下几个步骤:⑴确定系统需求:明确操作系统的功能和性能要求,为后续设计与实现提供指导。
⑵设计系统架构:根据需求分析,设计操作系统的组成部分和各个模块之间的交互关系。
⑶实现系统核心功能:依据系统架构,逐步实现进程管理、内存管理、文件管理等核心功能。
⑷测试和调试:对系统进行全面测试和错误调试,确保系统的正确性和稳定性。
⑸优化性能和安全性:针对系统存在的性能和安全问题进行优化和改进,提升系统的整体质量。
⒌实践结果通过以上步骤的实践,我们最终得到了一个简单而高效的操作系统原型。
该操作系统具备良好的用户界面和稳定的性能,能够满足基本的计算和文件管理需求。
未来可以进一步扩展和优化该操作系统,使其适用于更复杂的应用场景。
⒍附件本文档涉及以下附件:- 操作系统实践代码- 操作系统实践测试数据- 操作系统实践报告附属资料⒎法律名词及注释本文档所涉及的法律名词及其注释如下:- 版权:指对作品拥有的独占权力,授予著作权人对作品的操纵、经济利益的追求和其他权利。
操作系统实验报告3

《操作系统》实验报告
实验序号:3 实验项目名称:作业调度的实现
return 0;
}
具体实现步骤:
1.将实验指导目录中linux下的os3中的src 放在桌面上。
2.打开终端1,输入以下指令:
【cd ./桌面/src】
【gcc job.c error.c –ojob】
【gcc enq.c error.c -oenq】
【gcc deq.c error.c -odeq】
【gcc stat.c error.c -ostat】
3.编写123.c和456.c两个死循环程序,编译运行无误,并改名生成程序P1,
P2。
4.执行./job &指令将p2添加到p1中。
5.打开终端2
输入【cd ./桌面/src】指令
执行【./stat】指令查看进程状态
反复调用【./stat】指令
6.交替执行指令【./enq】和【./deq】指令删除p1,p2并再次添加并调用【./stat】
指令查看进程变化。
7.实验完成后调用【kill】指令结束进程。
运行截图如下:。
操作系统实验报告心得体会范文大全(8篇)

操作系统实验报告心得体会范文大全(8篇)操作系统实验报告心得体会范文大全篇一:通过这一学期学习,才慢慢接触专业课。
刚开始觉得挺难得我都有点不想学这个专业了,慢慢的我觉得有趣多了。
虽然我学的不是很好,最起码我能给自己装系统了。
我给自己的电脑装过window7、xp系统。
从一开始连个cmos设置都不会进去,到现在能装各种机型的系统。
让我最高兴的事是我会建立网站了,以及能制作出复杂点的,漂亮的网页了。
从刚开始学装windowserver20xx时,我真的懵懵懂懂的,那开始是真的不想学这个专业了,那段时间还学java编程,我真的快崩溃了,后悔自己干嘛学这个专业,我根本就是没有天赋,感觉大学这四年完蛋了,大一大二还没有感觉,现在真实的感受到了,但后来发现,我是越来越感觉有兴趣了,只要肯付出课后肯钻研,就一定会有一点收获的。
通过这次网页课程设计激发学习兴趣,调动学习的自觉性,自己动脑、动手,动口,运用网络资源,结合教材及老师的指导,通过自身的实践,创作出积聚个人风格、个性的个人网页。
总体来说,整个学期的学习过程,我学会了很多知识,在此次网页设计中,我充分利用了这次设计的机会,全心全意投入到网页世界,去不断的学习,去不断的探索;同时去不断的充实,去不断的完善自我,在网络的天空下逐渐的美化自己的人生!做好页面,并不是一件容易的事,它包括个人主页的选题、内容采集整理、图片的处理、页面的排版设置、背景及其整套网页的色调等很多东西。
本次课程设计不是很好,页面过于简单,创新意识反面薄弱,这是我需要提高的地方。
需要学的地方还有很多,需要有耐心、坚持,不断的学习,综合运用多种知识,才能设计出好的web页面。
总体来说,通过这次的对网页和网站课程设计,有收获也有遗憾、不足的地方,但我想,我已经迈入了网页设计的大门,只要我再认真努力的去学习,去提高,凭借我对网页设计的热情和执着,我将来设计出的网页会更加专业,更完善。
操作系统实验报告心得体会范文大全篇二:转眼间,学习了一个学期的计算机操作系统课程即将结束。