网站大量收购闲置独家精品文档,联系QQ:2885784924

浙江2011年1月高等教育教育行政学自考试题.ppt

浙江2011年1月高等教育教育行政学自考试题.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档