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

上传人:豆**** 文档编号:88690623 上传时间:2023-04-30 格式:PPT 页数:13 大小:1.15MB
返回 下载 相关 举报
浙江1月高等教育教育行政学自考试题.ppt_第1页
第1页 / 共13页
浙江1月高等教育教育行政学自考试题.ppt_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《浙江1月高等教育教育行政学自考试题.ppt》由会员分享,可在线阅读,更多相关《浙江1月高等教育教育行政学自考试题.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、浙江浙江2011年年1月高等教月高等教育教育行政学自考试育教育行政学自考试题题实 验 目 的练习使用 EOS API 函数 CreateProcess 创建一个进程,掌握创建进程的方法,理解进程和程序的区别。调试跟踪 CreateProcess 函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位。程序和进程 进程是动态的,程序是静态的。进程是暂时的,程序可长久保存。进程和程序的组成不同。进程与程序的对应关系。进程控制块(EOSEOS在在ps/psp.hps/psp.h文件中定义了文件中定义了PCBPCB结构结构)(PCB:Process Control Block)typedef s

2、truct typedef struct _PROCESS _PROCESS BOOLEAN System;BOOLEAN System;/是否系统进程是否系统进程UCHAR Priority;UCHAR Priority;/进程的优先级进程的优先级PMMPAS Pas;PMMPAS Pas;/进程地址空间进程地址空间PHANDLE_TABLE ObjectTable;PHANDLE_TABLE ObjectTable;/进程的内核对象句柄表进程的内核对象句柄表LIST_ENTRY ThreadListHead;LIST_ENTRY ThreadListHead;/线程链表头线程链表头PTHR

3、EAD PrimaryThread;PTHREAD PrimaryThread;/主线程指针主线程指针LIST_ENTRY WaitListHead;LIST_ENTRY WaitListHead;/等待队列,等待进程结束的线程在此队列等待等待队列,等待进程结束的线程在此队列等待PSTR ImageName;PSTR ImageName;/二进制映像文件名称二进制映像文件名称PSTR CmdLine;PSTR CmdLine;/命令行参数命令行参数PVOID ImageBase;PVOID ImageBase;/可执行映像的加载基址可执行映像的加载基址PPROCESS_START_ROUTIN

4、E ImageEntry;PPROCESS_START_ROUTINE ImageEntry;/可执行映像的入口地址可执行映像的入口地址HANDLE StdInput;HANDLE StdInput;/标准输入句柄标准输入句柄HANDLE StdOutput;HANDLE StdOutput;/标准输出句柄标准输出句柄HANDLE StdError;HANDLE StdError;/标准错误输出句柄标准错误输出句柄ULONG ExitCode;ULONG ExitCode;/进程退出码进程退出码 PROCESS;PROCESS;EOS的PCB结构中主要包括了进程控制信息(是否系统进程标志、优先

5、级),进程所拥有的资源(地址空间、内核对象句柄表等)。可以认为在EOS的PCB结构中除了进程控制信息,其它的都是进程所拥有的资源。一般来说,PCB中应该包括用来保存CPU现场的结构,这样才能使多个进程并发执行。但是EOS中使用了线程概念,将线程做为CPU执行和调度的单位,进程仅仅做为资源的容器,所以,用来保存CPU现场的结构就被定义在线程控制块(TCB:Thread Control Block)中了。线程控制块(EOSEOS在在psp.hpsp.h文件中定义了文件中定义了TCBTCB结构结构)(TCB:Thread Control Block)t typedef struct ypedef s

6、truct _THREAD _THREAD PPROCESS Process;PPROCESS Process;/线程所属进程指针线程所属进程指针LIST_ENTRY ThreadListEntry;LIST_ENTRY ThreadListEntry;/进程的线程链表项进程的线程链表项UCHAR Priority;UCHAR Priority;/线程优先级线程优先级UCHAR State;UCHAR State;/线程当前状态线程当前状态ULONG RemainderTicks;ULONG RemainderTicks;/剩余时间片,用于时间片轮转调度剩余时间片,用于时间片轮转调度STATU

7、S WaitStatus;STATUS WaitStatus;/阻塞等待的结果状态阻塞等待的结果状态KTIMER WaitTimer;KTIMER WaitTimer;/用于有限等待唤醒的计时器用于有限等待唤醒的计时器LIST_ENTRY StateListEntry;LIST_ENTRY StateListEntry;/所在状态队列的链表项所在状态队列的链表项LIST_ENTRY WaitListHead;LIST_ENTRY WaitListHead;/所有等待线程结束的线程都在此队列等待所有等待线程结束的线程都在此队列等待 PVOID KernelStack;PVOID KernelSt

8、ack;/线程位于内核空间的栈线程位于内核空间的栈CONTEXT KernelContext;CONTEXT KernelContext;/线程执行在内核状态的上下文环境状态线程执行在内核状态的上下文环境状态 PMMPAS AttachedPas;PMMPAS AttachedPas;/线程在执行内核代码时绑定进程地址空间线程在执行内核代码时绑定进程地址空间PTHREAD_START_ROUTINE StartAddr;PTHREAD_START_ROUTINE StartAddr;/线程的入口函数地址线程的入口函数地址PVOID Parameter;PVOID Parameter;/传递给入

9、口函数的参数传递给入口函数的参数ULONG LastError;ULONG LastError;/线程最近一次的错误码线程最近一次的错误码ULONG ExitCode;ULONG ExitCode;/线程的退出码线程的退出码 THREAD;THREAD;CONTEXT结构体定义的成员变量用来保存线程的CPU现场。在inc/ke.h中找到CONTEXT结构体的定义 CONTEXT 结构体定义 typedef struct typedef struct _CONTEXT_CONTEXT ULONG Eax;ULONG Eax;ULONG Ecx;ULONG Ecx;ULONG Edx;ULONG

10、Edx;ULONG Ebx;ULONG Ebx;ULONG Esp;ULONG Esp;ULONG Ebp;ULONG Ebp;ULONG Esi;ULONG Esi;ULONG Edi;ULONG Edi;ULONG Eip;ULONG Eip;ULONG EFlag;ULONG EFlag;ULONG SegCs;ULONG SegCs;ULONG SegSs;ULONG SegSs;ULONG SegDs;ULONG SegDs;ULONG SegEs;ULONG SegEs;ULONG SegFs;ULONG SegFs;ULONG SegGs;ULONG SegGs;CONTEXT,

11、*PCONTEXT;CONTEXT,*PCONTEXT;可以看到CPU现场主要包含了CPU中各个寄存器的值。当一个线程被中断执行时,CPU现场被保存在该线程的TCB中,当该线程可以继续执行时,TCB中保存的现场被恢复到CPU中,该线程就可以从中断处继续执行了。EOS创建进程的过程创建一个进程对象(PCB)为进程分配一个进程地址空间和一个句柄表 系统将进程的可执行文件装入进程的用户地址空间中,并和内核进行装入的动态链接。系统为进程创建一个主线程,主线程的可执行文件被加载到内存中的入口地址开始执行 CreateProcess 函数 EOSEOS提供的用于创建进程的提供的用于创建进程的APIAPI函

12、数定义如下,函数定义如下,EOSEOS应用应用程序通过调用此函数为程序(可执行文件)创建进程。程序通过调用此函数为程序(可执行文件)创建进程。BOOL CreateProcess(BOOL CreateProcess(IN PCSTR ImageName,IN PCSTR ImageName,IN PCSTR CmdLine,IN PCSTR CmdLine,IN ULONG CreateFlags,IN ULONG CreateFlags,IN PSTARTUPINFO StartupInfo,IN PSTARTUPINFO StartupInfo,OUT PPROCESS_INFORMAT

13、ION ProcInfoOUT PPROCESS_INFORMATION ProcInfo););typedef struct typedef struct _STARTUPINFO _STARTUPINFO HANDLE StdInput;HANDLE StdInput;HANDLE StdOutput;HANDLE StdOutput;HANDLE StdError;HANDLE StdError;STARTUPINFO,*PSTARTUPINFO;STARTUPINFO,*PSTARTUPINFO;typedef struct typedef struct _PROCESS_INFORM

14、ATION _PROCESS_INFORMATION HANDLE ProcessHandle;HANDLE ProcessHandle;HANDLE ThreadHandle;HANDLE ThreadHandle;ULONG ProcessId;ULONG ProcessId;ULONG ThreadId;ULONG ThreadId;PROCESS_INFORMATION,*PPROCESS_INFORMATION;PROCESS_INFORMATION,*PPROCESS_INFORMATION;其它 API 函数 HANDLE GetStdHandle(HANDLE GetStdHa

15、ndle(ULONG StdHandle /ULONG StdHandle /进进程程标标准句柄的索引准句柄的索引)ULONG WaitForSingleObject(ULONG WaitForSingleObject(IN HANDLE Handle,/IN HANDLE Handle,/指定要等待的句柄指定要等待的句柄IN ULONG Milliseconds /IN ULONG Milliseconds /指定超指定超时时间时时间)BOOL GetExitCodeProcess(BOOL GetExitCodeProcess(IN HANDLE ProcessHandle,/IN HAN

16、DLE ProcessHandle,/指定要得到退出指定要得到退出码码的的进进程的句柄程的句柄OUT PULONG ExitCode /OUT PULONG ExitCode /输输出出进进程退出程退出码码)BOOL CloseHandle(BOOL CloseHandle(HANDLE Handle /HANDLE Handle /指定要关指定要关闭闭的句柄的句柄)ULONG GetLastError(ULONG GetLastError(VOIDVOID)#define#define STD_INPUT_HANDLESTD_INPUT_HANDLE1 1#define#define STD_OUTPUT_HANDLESTD_OUTPUT_HANDLE2 2#define#define STD_ERROR_HANDLESTD_ERROR_HANDLE3 3得到调用此函数的进程所使用的标准句柄 等待直到指定的句柄进入有信号状态或者超时后才返回 在进程执行完毕后,得到进程的退出码 关闭指定的句柄 得到调用此函数的线程保存的最后的错误码 main 函数流程图EOS应用程序应用程序eosapp.exe创建的进程创建的进程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 企业培训

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁