操作系统第5次课_第1页
操作系统第5次课_第2页
操作系统第5次课_第3页
操作系统第5次课_第4页
操作系统第5次课_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.3.2流程创建(工程和科学研究),2流程创建(主要工作是为创建的流程创建一个印刷电路板)(1)要创建一个原语,首先从系统的印刷电路板表中请求一个空白的印刷电路板条目,并获取其内部标识。I=getid(n)-表单描述(2)为新进程分配资源:为进程的程序、数据和用户堆栈分配内存空间,内存大小由提议创建该进程的用户进程给出。(3)初始化印刷电路板标识符的对应位置印刷电路板初始化中央处理器状态信息:计算机程序入口地址;堆栈指针堆栈顶部初始化进程调度信息:进程状态为活动静态就绪,优先级设置为k初始化进程控制信息:资源列表、程序和数据地址等。(4)将印刷电路板插入就绪队列RQ,然后进入系统并发执行。#

2、 include stdafx . h # include # include int main(int argc,char * argv)char szCommandLine=cmd;STARTUPINFO si=sizeof(si);过程信息pi;si . dwflags=STARTF _ USSHOWWINDOW;显示窗口=真;boolbret=: Create process(NULL,/不要在此处指定可执行文件的文件名szcommandline,/命令行参数NULL,/默认进程安全性NULL,/默认线程安全性FALSE,/当前进程中的句柄不能从子进程继承Create _ New _

3、Console。/CREATE_NEW_CONSOLE,/新进程的窗口为空。/使用此进程的环境变量null。/如果(bret):3360 closehandle(pi . hthread),请使用该进程的驱动器和目录。关闭句柄(pi . hpprocess);Printf(新进程的进程标识号:%d n,pi . dwprocessid);Printf(新进程的主线程标识号:%d n,pi . dwthreadid);返回0;2.3.3进程的撤销原语(销毁),导致撤销正常结束和异常结束的1个事件。外部干预。操作员/系统干预(人工终止)未暂停或中止。父进程终止导致两个进程撤销进程:所采用的策略由父

4、进程发布,父进程取消其子进程之一和子进程的所有子进程,以及撤销进程的所有资源(主内存、输入/输出资源、印刷电路板条目)。如果撤销的进程正在运行,请调用进程调度器将处理器分配给其他进程。2.3.3进程的销毁),1原语,1从由标识设置的印刷电路板中检索撤回进程的印刷电路板,并读出其状态2如果进程处于执行状态,它应该立即终止执行,设置调度标志=真(这意味着在进程终止后,它可以导致系统重新调度和调度其他进程执行),并将其从队列中取出。3终止其所有子进程(递归)4被取消进程的所有资源(主存储器、输入/输出资源、印刷电路板条目)被释放并返回给系统/父进程。5在移出印刷电路板、窗口的情况下,父进程结束,但子

5、进程不结束;用户启动的应用程序都有相同的父进程ieexplore。结束ieexplore,其所有子进程不受影响;用新的标识重新启动ieexplore对于后来创建的进程,父进程是ieexplore的新标识;Cmd的父进程是CreateProcess;# include stdafx . h # include int main(int argc,char * argv)DWORD DWid;Printf(请输入要终止的进程的标识号:n);scanf(%u),BOOL terminateProcesFromId(DWORD DWid)BOOL BreT=FALSE;/打开目标进程,获取进程句柄句柄

6、进程=:3360打开进程(进程_全部_访问,假,dwid);if(HP process!=空)/终止进程bret=:终止进程(进程,0);关闭句柄(HpProcess);返回bRet2.3.4进程阻塞和唤醒,1。进程阻塞的原因1)请求系统服务(系统不能立即满足)例如:请求系统资源2)开始输入/输出操作(打印期间进程阻塞)3)数据尚未到达(两个协作进程)4)系统进程没有新的工作要做2)阻塞进程(1)首先找到相应的印刷电路板;(2)保护现场印刷电路板;(3)立即停止原程序的执行,将印刷电路板中的当前状态从运行状态改变为活动阻断状态;(4)将印刷电路板插入等待事件的阻塞队列中;(5)最后,调用进程调

7、度器重新分配处理器。2.3.4进程阻塞和唤醒。阻塞原语块()进程阻塞是进程本身的活动行为。4.唤醒过程的原因:等待资源出现。当阻塞进程预期的事件发生时(例如,当输入输出完成时),相关的进程和过程(例如,输入输出设备处理程序或资源释放进程等)。)调用唤醒原语来唤醒被阻止的进程。唤醒过程:唤醒()(1)找到印刷电路板;(2)将等待事件的进程电路板移出阻塞队列;(3)如果活动阻塞状态变为活动就绪状态,如果静态阻塞状态变为静态就绪状态,则修改工艺印刷电路板中的当前状态。(4)插入就绪队列RQ。2.3.5流程暂停和激活,1暂停暂停()原因:用户流程或父流程通过调用暂停原语来暂停流程。调用挂起原语的进程只

8、能挂起自己或其后代,但不能挂起其他系列的进程。暂停原语的执行过程是: (1)查找印刷电路板;(2)从存储器中存储过程;(3)检查印刷电路板的当前状态以暂停该过程,如果印刷电路板处于活动就绪状态,则将其改变为静态就绪状态;如果它是活动阻塞状态,它将被更改为静态阻塞状态。如果它正在运行,将其更改为静态就绪状态,并调用进程调度程序来重新分配处理器。(4)为了方便用户或父进程检查进程的运行状态,有必要将进程的印刷电路板复制到内存的指定区域。2.3.5暂停和激活进程,2激活激活()原因:用户进程或父进程通过调用激活原语来激活暂停的进程。激活原语的执行过程是:(1)寻找印刷电路板;(2)从外部存储器存储过

9、程;(3)检查暂停的工艺印刷电路板的当前状态,如果处于静态就绪状态,则将其更改为活动就绪状态,如果处于静态阻塞状态,则将其更改为活动阻塞状态。(4)如果它被改变到活动就绪状态,它可能触发新一轮的调度。讨论,1。执行原语的过程和原语操作的过程之间的关系。执行原语的过程会创建一个父代并取消其他父代。它阻挡自己,唤醒他人。它暂停父母或孩子,孙子激活父母和孙子。工程与科研,科研微软亚洲研究院微软亚洲研究院支持售前和售后销售,2.4线程的概念,以及(1)线程的引入目的:有效实现并行!在创建、撤销和切换时,由于进程是资源占用单位,系统开销很大,所以系统中的进程数量不能太多,切换频率也不能太高,限制了并发性

10、。例如,以UNIX为例,当一个进程创建一个子进程时,系统必须将父进程地址空间的所有内容复制到子进程的地址空间。对于较大的地址空间,这样的操作很耗时,更不用说在两个进程之间建立共享数据了。使用多线程要好得多,因为这些线程共享相同的地址空间、对象句柄和进程的其他资源。、单线程和多线程进程模型、线程控制块、用户堆栈、用户堆栈、内核堆栈、内核堆栈、用户地址空间、用户地址空间、进程控制块、进程控制块、线程、单线程进程模型、多线程进程模型、线程控制块、用户堆栈、内核堆栈、线程、线程控制块、用户堆栈、内核堆栈、线程、(3)线程和进程之间的关系、线程的创建、多线程的并发执行、操作系统依次为它们分配cpu时间片

11、的一般情况以及主线程接受的情况新创建的线程可以处理长时间的操作,如读写文件、访问网络等。这样即使程序忙于繁重的工作,一个特殊的线程也可以响应用户命令。每个线程必须有一个入口点函数,并且主线程是主线程。工作线程的入口点函数称为线程函数,定义如下:dword winapi thread proc(LP void LP param);函数名ThreadProc可以是任意的,包括#include /线程函数dword winapi ThreadProc(LP void LP param)int I=0;当(i 20)打印时(我来自一个线程,计数=%d n,I);返回0;int main(int argc,char * argv)HANDLE HThread;DWORD dwThreadId/创建线程hth rea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论