欢迎来到天天文库
浏览记录
ID:25288424
大小:328.43 KB
页数:30页
时间:2018-11-19
《操作系统课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、湖南科技大学计算机科学与工程学院操作系统课程设计报告学号:********姓名:**班级:***指导老师:***完成时间:****.**.**目录实验一Windows进程管理实验二Linux进程管理实验三互斥与同步实验四银行家算法的模拟与实现实验五内存管理实验六磁盘调度实验七进程间通信实验一Windows进程管理一、实验目的1)学会使用VC编写基本的Win32ConsolApplication(控制台应用程序)。2)通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows进
2、程的“一生”。3)通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步的基本程序设计方法。二、实验内容和步骤(1)编写基本的Win32ConsolApplication步骤1:登录进入Windows系统,启动VC++6.0。步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32ConsolApplication”,然后在“Projectname”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。步骤3:在“FILE”菜单中单击“NEW
3、”子菜单,在“Files”选项卡中选择“C++SourceFile”,然后在“File”处输入C/C++源程序的文件名。步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序,列出运行结果(如果运行不成功,则可能的原因是什么?)如果运行不成功可能是路径有问题或者没有通过编译。(2)创建进程本实验显示了创建子进程的基本框架。该程序只是再
4、一次地启动自身,显示它的系统进程ID和它在进程列表中的位置。步骤1:创建一个“Win32ConsolApplication”工程,然后拷贝清单1-2中的程序编译成可执行文件。步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件,列出运行结果。按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性。运行结果:步骤3:在“命令提示符”窗口加入参数重新运行生成的可执行文件,列出运行结果。按下ctrl+alt+del,调用windows的任务管理器,记录进程相关的行为属性。运行结果:步骤4:nclone
5、为线程开始运行的编号,当nclone的值大于或者等于c_nCloneMax时程序运行一次即跳出;变量的定义和初始化方法(位置)对程序的执行结果有影响;(3)父子进程的简单通信及终止进程步骤1:创建一个“Win32ConsolApplication”工程,然后拷贝清单1-3中的程序,编译成可执行文件。步骤2:在VC的工具栏单击“ExecuteProgram”(执行程序)按钮,或者按Ctrl+F5键,或者在“命令提示符”窗口运行步骤1中生成的可执行文件,列出运行结果。步骤3:按源程序中注释中的提示,修改源程序1-3,编译执行(执行前
6、请先保存已经完成的工作),列出运行结果。在程序中加入跟踪语句,或调试运行程序,同时参考MSDN中的帮助文件CreateProcess()的使用方法,理解父子进程如何传递参数。给出程序执行过程的大概描述。通过main(intargc,char*argv[] )传递参数,每次运行时先检测argc的值,若小于1程序运行结束,否则继续往下执行步骤4:按源程序中注释中的提示,修改源程序1-3,编译执行,列出运行结果。步骤5:参考MSDN中的帮助文件CreateMutex()、OpenMutex()、ReleaseMutex()和WaitF
7、orSingleObject()的使用方法,理解父子进程如何利用互斥体进行同步的。给出父子进程同步过程的一个大概描述。CreateMutex()创建互斥体,OpenMutex()打开互斥体,ReleaseMutex()释放互斥体,WaitForSingleObject()检测hHandle事件的信号状态,通过这些方法可实现当前只有一个进程被创建或使用,实现进程的同步。首先,进程创建一个互斥体,打开互斥体,如遇到互斥,则进行处理,处理完后,释放互斥体,下面便是进程等待一个要处理的项目三、实验心得与体会每个进程都从调用CreateP
8、rocess() API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象。每一进程都以调用ExitProcess()或TerminateProcess()API函数终止。通常应用程序的框架负责调用 ExitProcess()函数。进程都是有始有终,其中
此文档下载收益归作者所有