- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
os实验一1
实验一:进程创建与撤消
一、实验目的
1、 加深对进程概念的理解和进程创建与撤消算法;
2、 进一步认识并发执行的实质。
二、实验内容
本实验完成如下三个层次的任务:
(1)系统级—以普通用户身份认识windows的进程管理。通过windows的“任务管理器”观察进程的状态,进行进程的创建、切换和撤销。
(2)语言级—以普通程序员身份认识高级语言VC++/Java/C#的进程创建与撤销工具。
(3)模拟级—以OS设计师身份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。
三、实验步骤
1、windows的进程管理
通过windows的任务管理器管理进程。
2、VC++/Java/C#的进程创建与撤销工具
通过创建,撤销记事本和计算器程序来体现用vc++来进行进程的创建和撤销。
当输入1或者2时计算机就会打开记事本功能,当输入4或者5时就会关闭程序;当输入7或者8时就会打开计算器程序,当输入10或11时就会关闭程序。
实现代码:
#includeiostream
#includewindows.h
using namespace std;
BOOL KillProcess(DWORD ProcessId)//撤销进程;
{
HANDLE hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,ProcessId);
if(hProcess==NULL)
return FALSE;
if(!TerminateProcess(hProcess,0))
return FALSE;
return TRUE}
int main()
{ int i;
STARTUPINFO si;
memset(si,0,sizeof(STARTUPINFO));
si.cb=sizeof(STARTUPINFO);
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_SHOW;
PROCESS_INFORMATION pi;
cout请输入构造条件endl;//当输入值小于时开启一个记事本进程,当输入值大于且小于时关闭记事本,
cini; //当输入值大于且小于时开启一个计算器进程,当输入值大于且小于时关闭计算器;
if(i3)
{int a=CreateProcessA(c:\\windows\\system32\\notepad.exe,NULL,NULL,NULL,FALSE,0,NULL,NULL,(LPSTARTUPINFOA)si,pi); //创建记事本进程
if(a)
cout进程创建成功endl;
else
{ cout进程创建失败,原因是:endl;
coutGetLastError()endl;}
cini;
if(i3i6)
{bool ret=KillProcess(pi.dwProcessId); //撤销记事本进程
if(ret)
cout进程成功关闭endl;
else
cout未成功关闭进程endl;}}
else if(i6i9){int a=CreateProcessA(c:\\windows\\system32\\calc.exe,NULL,NULL,NULL,FALSE,0,NULL,NULL,(LPSTARTUPINFOA)si,pi); //创建计算器进程
if(a)
cout进程创建成功endl;
else
{cout进程创建失败,原因是:endl;
coutGetLastError()endl;}
cini;
if(i9i12)
{bool ret=KillProcess(pi.dwProcessId); //撤销计算器进程
if(ret)
cout进程成功关闭endl;
else
cout未成功关闭进程endl; }
else
{ cout输入有误!请重新输入:endl;
cini; }}
return 0;}
3、进程创建与撤销的模拟实现
(1)总体设计:
①数据结构定义:
#define OK 1 成功返回OK定义为1
#define EVERFLOW -1 越界用-1
#define PCBSIZE 10 //空闲队列初始数组空间
#define NULL 0 //空定义为0
typedef struct PCB //定义进程结构体
{
int id; //进程的序号
int priority;
您可能关注的文档
- 2014年临床执业医师考试考点精编试卷及答案汇总(三).doc
- 2014年临床执业医师考试考点精编试卷及答案汇总(一).doc
- 1-09年十一活动1.doc
- 策略提案.ppt
- 第章种群生态学讲稿.ppt
- 2014年造价工程师考试真题参考 答案.doc
- 2014宁夏教师资格考试备考指导:幼儿学前卫生学学习指导之循环系统.doc
- 2014宁夏教师资格考试备考指导:幼儿学前卫生学学习指导之运动系统.doc
- 2014山东农信社招聘考试:高频法律考点二.doc
- 2014山东政法干警考试面试热点解读:农村大学生减少.doc
- 职业学院金山湾产教融合示范项目可行性研究报告申请报告.doc
- 职业教育智能实训设施提升可行性研究报告申请建议书YYY.doc
- 富士施乐Apeos C7071_C6571_C5571_C4571_C3571_C3071参考指南操作篇.pdf
- 富士施乐Apeos4620SDF使用说明书用户指南.pdf
- 富士施乐AC7071_C6571_C5571_C4571_C3571_C3071参考指南附录篇.pdf
- 富士施乐AC7071_C6571_C5571_C4571_C3571_C3071参考指南选装装置篇.pdf
- 人工智能科技主题高端简约模板88.pptx
- 人工智能科技主题高端简约模板14.pptx
- 人工智能科技主题高端简约模板55.pptx
- 人工智能科技主题高端简约模板119.pptx
最近下载
- 上海夜间经济的发展特征、存在的主要问题及相关政策建议.docx VIP
- 2万吨年饲料级磷酸脲技改配套生产1万吨年聚磷酸铵环境影响报告书.pdf VIP
- 矿山绩效考核方案.doc VIP
- 2023全国职业教育教师现状调研报告 .pdf VIP
- 昆明市市政排水管道和附属构筑物设计安装图集2013版.docx VIP
- GB 12158-2024防止静电事故通用要求深度解读.pptx VIP
- 点燃艺术的创造火花-引导孩子释放无限艺术潜力.pptx VIP
- YAMAHA MG16_6fx中文说明书.pdf VIP
- 2024国家能源集团新疆哈密能源化工有限公司社会招聘110人笔试参考题库附带答案详解.doc
- 药学专业知识课件.pptx VIP
文档评论(0)