- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验(二) 进程的创建 实 验 目 的 练习使用 EOS API 函数 CreateProcess 创建一个进程,掌握创建进程的方法,理解进程和程序的区别。 调试跟踪 CreateProcess 函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位。 程序和进程 进程是动态的,程序是静态的。 进程是暂时的,程序可长久保存。 进程和程序的组成不同。 进程与程序的对应关系。 进程控制块(EOS在ps/psp.h文件中定义了PCB结构)(PCB: Process Control Block) typedef struct _PROCESS { BOOLEAN System; // 是否系统进程 UCHAR Priority; // 进程的优先级 PMMPAS Pas; // 进程地址空间 PHANDLE_TABLE ObjectTable; // 进程的内核对象句柄表 LIST_ENTRY ThreadListHead; // 线程链表头 PTHREAD PrimaryThread; // 主线程指针 LIST_ENTRY WaitListHead; // 等待队列,等待进程结束的线程在此队列等待 PSTR ImageName; // 二进制映像文件名称 PSTR CmdLine; // 命令行参数 PVOID ImageBase; // 可执行映像的加载基址 PPROCESS_START_ROUTINE ImageEntry; // 可执行映像的入口地址 HANDLE StdInput; // 标准输入句柄 HANDLE StdOutput; // 标准输出句柄 HANDLE StdError; // 标准错误输出句柄 ULONG ExitCode; // 进程退出码 } PROCESS; EOS的PCB结构中主要包括了进程控制信息(是否系统进程标志、优先级),进程所拥有的资源(地址空间、内核对象句柄表等)。可以认为在EOS的PCB结构中除了进程控制信息,其它的都是进程所拥有的资源。 一般来说,PCB中应该包括用来保存CPU现场的结构,这样才能使多个进程并发执行。但是EOS中使用了线程概念,将线程做为CPU执行和调度的单位,进程仅仅做为资源的容器,所以,用来保存CPU现场的结构就被定义在线程控制块(TCB: Thread Control Block)中了。 线程控制块(EOS在psp.h文件中定义了TCB结构) (TCB: Thread Control Block) typedef struct _THREAD { PPROCESS Process; // 线程所属进程指针 LIST_ENTRY ThreadListEntry; // 进程的线程链表项 UCHAR Priority; // 线程优先级 UCHAR State; // 线程当前状态 ULONG RemainderTicks; // 剩余时间片,用于时间片轮转调度 STATUS WaitStatus; // 阻塞等待的结果状态 KTIMER WaitTimer; // 用于有限等待唤醒的计时器 LIST_ENTRY StateListEntry; // 所在状态队列的链表项 LIST_ENTRY WaitListHead; // 所有等待线程结束的线程都在此队列等待 PVOID KernelStack; // 线程位于内核空间的栈 CONTEXT KernelContext; // 线程执行在内核状态的上下文环境状态 PMMPAS AttachedPas; // 线程在执行内核代码时绑定进程地址空间 PTHREAD_START_ROUTINE StartAddr; // 线程的入口函数地址 PVOID Parameter; // 传递给入口函数的参数 ULONG LastError; // 线程最近一次的错误码 ULONG ExitCode; // 线程的退出码 } THREAD; CONTEXT 结构体定义 typedef struct _CONTEXT { ULONG Eax; ULONG Ecx; ULONG Edx; ULONG Ebx; ULONG Esp; ULONG Ebp; ULONG Esi; ULONG Edi; ULONG Eip; ULONG EFlag; ULONG SegCs; ULONG SegSs; ULONG SegDs; ULONG SegEs; ULONG SegFs; ULONG SegGs; }CONTEXT, *PC
您可能关注的文档
最近下载
- 2023-2024学年上海市黄浦区部分学校八年级下学期期中考数学试卷含详解含答案.docx
- 人教版高中历史高考总复习全册知识点考点梳理、重点题型分类巩固练习.doc
- 部编版语文小学二年级下册第六单元大单元教学教材分析集体备课.pptx
- 龙野一雄论经方证治:感冒与治疗详解(重发).pdf VIP
- 三氧化铬(铬酸酐)理化性质及危险特性表MSDS.doc VIP
- 试论数字检察院建设的整体构想.pdf VIP
- ABB智能定位器TZIDC说明书中文正式版.doc
- 人教版劳动教育三年级下册全册教学设计.pdf VIP
- 大学生职业规划大赛《播音与主持艺术专业》生涯发展展示PPT.pptx
- 幼儿园厨房设备配置清单.doc
文档评论(0)