实验一:进程控制描述与控制

合集下载

范围:进程描述与控制

范围:进程描述与控制

练习题范围:进程描述与控制1-程序的顺序执行与并发执行/2-进程的定义、特征及与程序的区别/3-前趋图一、选择题:1、并发进程失去了封闭性是指()。

A多个相对独立的进程以各自的速度向前推进。

B 并发进程的执行结果与速度无关。

C 并发进程执行时,在不同时刻发生的错误。

D 并发进程共享变量,其执行结果与速度有关。

/1-D/华中科技982、下列几种关于进程的叙述,()最不符合操作系统对进程的理解。

A进程是在多程序并行环境中的完整的程序。

B 进程可以由程序、数据和进程控制块描述。

C 线程(Thread)是一种特殊的进程。

D 进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位。

/2-A/浙大983、当一个进程处于()这样的状态时,称其为等待状态。

A它正等待输入一批数据。

B 它正等着协作进程的一个消息。

C 它正等分给它一个时间片。

D 它正等进入内存。

/2-A、B/华中科技004、进程的属性包括()。

A进程就是程序,或者说,进程是程序的另一种叫法。

B 一个被创建了的进程,在它消灭之前,在任何时刻总是处于3种基本状态之一。

C 多个不同的进程可以包含相同的程序。

D 一个处于等待队列中的进程,即使进入其他状态,仍然被放在等待队列之中。

E 两个进程可以同时处于运行状态/2-C/南大005、进程具有的特性有()。

A动态性。

B 共享性。

C 并发性。

D 静态性。

E 独立性。

F 不确定性。

/2-A、C、E/北理工99二、填空1、进程是一个程序对某个数据集的()。

/2-一次执行过程/清华992、进程控制块的初始化工作包括()、()和()。

/2-初始化标识符信息初始化处理机状态信息初始化处理机控制信息/中科院计算所993、如果系统中有n个进程,则在等待队列中进程的歌数最多可为()个。

/2-n-1/北大97 -?是否正确?4、在操作系统中,不可中断执行的操作称为()。

/2-原子操作/北大975、进程创建原语的主要工作是()。

操作系统实验1

操作系统实验1

实验报告书学生姓名高雪学号班级计10A-2 2011 —2012 学年第一学期2021-8-19 第2页/共12页2021-8-19 第3页/共12页5.signal()signal()函数是允许调用进程控制软中断信号的处理。

6.pipe()函数pipe函数用于创建一个管道五、编译与执行过程截图1.进程的创建执行后出现acb和abc两种不同情况2.进程的控制〔1〕加锁情况:2021-8-19 第4页/共12页( 2 )没有加锁的情况3.进程的软中断通信2021-8-19 第5页/共12页4.进程的管道通信六、实验结果与分析1.进程的创建:实验一为进程创建,由以上截图可以看到产生了不同的结果,即acb和abc。

最初只有acb一种情况,反复执行之后,会出现abc。

原因很简单,就是因为进程的特性:并发性。

进程之间是并发执行的,并发只说一段时间内同时进行。

第一个输出一定是a,因为a在bc之外优先执行,而在执行bc的时候,2者会随机出现,多数情况会是acb,假设想更快的见到abc,可以讲c语句变长,如改为this is c child.这样进程需要的时间就稍长,后一个会先出现了。

但宏观来看,还是并行的。

2. 进程的控制实验二为进程控制,分为不加锁和加锁的情况,产生的结果不同,在不加锁的情况下,还有由于进程的执行具有并发性这个特征,因此会产生字符交叉的情况,即某一个进程在自己的时间片当中使用处理机,但是当时间片结束,还没有完成,但也必须由下一个进程接管处理机,因为它就进入了阻塞的状态。

多个进程反复出现,所以就出现了输出的字符交叉的情况。

但是,当我们对进程加锁后,就说明只能由该程序占用处理机,必须这些完这段程序才能执行下一段,因为不会出现交叉的情况,这个就是锁的作用。

2021-8-19 第6页/共12页2021-8-19 第7页/共12页2021-8-19 第8页/共12页2021-8-19 第9页/共12页2021-8-19 第10页/共12页2021-8-19 第11页/共12页2021-8-19 第12页/共12页。

进程控制实验报告

进程控制实验报告

测试过程: (实验中出现的问题、错误、解决方法)创建好项目和文件, 对文件进行编译和运行, 编译没有错误, 但是运行总是提示有2个错误。

解决办法:在新建项目的时候“新建”, 然后新建文件, 程序就可以正常的运行了。

实验总结:1、课下没有对Microsoft Visual c++ 6.0进行深入的研究, 还是好多问题不知道怎么解决, 好好钻研一下这个很有必要的啊!评语与成绩:教师签名:年月日实验名称进程控制实验类型验证性实验时间实验环境Windows xp 、Microsoft Visual c++ 6.0实验目的与要求:1.通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作, 进一步熟悉操作系统的进程概念, 理解Windows 2000进程的“一生”。

2.通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法。

实验内容:本实验给出了三段程序:创建进程、正在运行的进程和终止进程, 阅读程序回答所提问题, 分析运行结果。

一、实验步骤: (算法描述、源程序、操作步骤和方法)二、创建进程回答问题:1.该程序是一个简单使用CreateProcess()API函数的例子。

首先形成简单的命令行, 提供当前EXE文件的指定文件名和代表生成克隆进程的号码。

大多数参数都可取默认值, 但是创建标志参数使用了CREATE_NEW_CONSOLE标志, 指示新进程分配自己的控制台, 这使得运行程序时, 在任务栏上产生许多活动标记。

然后该克隆进程的创建方法关闭传递过来的句柄并返回main ()函数。

在关闭程序之前, 每一进程的执行主线程暂停一下, 以便让用户看到其中的至少一个窗口。

2、CreateProcess()函数有几个核心参数?本实验程序中设置的各个参数的值是什么?答、CreateProcess()函数有10个核心参数参数的值为: CreateProcess(szFilename, //产生这个EXE的应用程序的名称szCmdLine, //告诉其行为像一个子进程的标志NULL, //缺省的进程安全性NULL, //缺省的线程安全性FALSE, //不继承句柄CREATE_NEW_CONSOLE, //使用新的控制台NULL, //新的环境NULL, //当前目录&si, //启动信息&pi);3.程序运行时屏幕显示的信息是什么?答、三、运行进程1、回答问题:2、给出运行结果(当前PID信息、操作系统版本、系统提示信息)答、运行结果为:2.如何获得当前的PID和操作系统版本可利用GetCurrentProcessId()API函数查看系统当前进程的标识符(pid), 该pid在整个系统中都可使用。

信息技术教案:进程的描述与控制

信息技术教案:进程的描述与控制

信息技术教案:进程的描述与控制进程的描述与控制一、前驱图和程序执行1.前驱图的定义。

(略)2.程序顺序执行⑴程序顺序执行概念⑵程序顺序执行的特征:顺序性、封闭性、可再现性封闭性:所谓封闭性是指程序一旦开始执行,其执行过程不受任何外界因素影响。

顺序性:当程序在处理机上执行时,处理机的操作严格按照程序所规定的顺序执行。

确定性:其程序执行结果与执行速度、时间的无关性。

可再现性:指程序对一组数据的重复执行必得到相同的结果。

3.程序并发执行⑴程序并发执行使一个程序分成若干个可同时执行的程序模块的方法成为并发程序设计,能够并发执行的程序成为并发程序。

⑵程序顺序执行的特征:间断性、失去封闭性、不可再现性(举例说明)4.并发程序与顺序程序的比较顺序程序并发程序执行过程顺序执行并发执行程序与执行对应一一对应一个程序可对应多个执行封闭性独占资源,具有封闭性共享资源,不具有封闭性确定性具有无可再现性具有无程序间关系无有间接制约或直接制约关系5.程序并发执行的条件(保持可再现性)两段程序间无共享变量或对共享变量仅有读操作。

二、进程的描述1.进程的引入和定义⑴进程引入的原因进程:操作系统中最基本、最重要的概念多道程序设计出现以后,为了刻划系统内部出现的情况,描述系统内部各作业的活动规律引入的。

多到系统的特点:并行性、程序间的制约、动态特征程序是静态的,不能并行⑵进程的定义通用定义:(举例解释)⑶进程的特征:动态性、并发性、独立性、异步性、结构特征⑷进程和程序的区别与联系区别:进程是一动态概念,而程序则是一静态概念。

程序是指令的有序集合,永远存在,进程强调的是执行,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;进程具有并发性,而程序没有;进程是竞争计算机资源的基本单位,程序不是。

联系:进程是程序在数据集上的一次执行;一个程序可对应多个进程,一个进程可包括多个程序。

2.进程的基本状态:⑴进程的三种基本状态:(引入状态的原因)等待态:就绪态:运行态:进程的状态不断发生变化,但任何时候都要处于某种状态。

chap 2进程管理

chap 2进程管理
第2章 进程的描述与控制
为了描述程序在并发执行时对系统资源 的共享,我们需要一个描述程序执行时动态 特征的概念,这就是进程或线程。在本章中, 我们将讨论进程的概念和进程间的关系。
2.1 程序的执行特点

程序的执行有两种方式:顺序执行和并发 执行。
2.1.1 程序的顺序执行

顺序执行是单道批处理系统的执行方式。

2.2.3进程控制块(PCB, process control block)
2)进程控制块中的信息
进程描述信息:
进程标识符(process ID),内部标识符。唯一,通 常是一个整数; 进程名,外部标识符。通常基于可执行文件名,不 唯一; 用户标识符(user ID);进程组关系(process group)


终止所有子进程?未必

方法:exit;或主程序返回:C中的 main()。调用exit()可终止进程。
2.3.3 进程的阻塞与唤醒
引起阻塞的事件:


所需资源的不到满足。如:请求服务、请 求I/O 无事可做
2.3.3 进程的阻塞与唤醒
进程阻塞过程:


进程自身调用有关阻塞原语,进入等待 队列。进程的主动性行为。 引起处理机调度。 例如UNIX:暂停一段时间sleep;暂停并 等待信号pause;等待子进程暂停或终 止wait。
就绪状态:进程已获得除处理机 外的所需资源,等待分配处理机 资源;只要分配到CPU就可执行 。在某一时刻,可能有若干个进 程处于该状态。
运行态 等待某个 事件发生
就绪态
某个事件已经发生
阻塞态
2.2.2进程的基本状态
1)三个基本状态——运行
运行状态:占用处理机资源运 行;处于此状态的进程的数目 小于等于CPU的数目。

操作系统windows 2000实验报告

操作系统windows 2000实验报告

《操作系统》实验报告专业:年级:学号:提交日期:_______________________实验一:操作系统环境1.1 Windows 2000 系统管理(实验估计时间:60分钟)实验内容与步骤1、计算机管理2、事件查看器3、性能监视4、服务5、数据库(ODBC)为了帮助用户管理和监视系统,Windows 2000提供了多种系统管理工具,其中最主要的有计算机管理、事件查看器和性能监视等。

步骤1:登录进入Windows 2000 Professional。

步骤2:在“开始”菜单中单击“设置”-“控制面板”命令,双击“管理工具”图标。

在本地计算机“管理工具”组中,有哪些系统管理工具,基本功能是什么:1.本地安全策略:查看和修改本地安全策略,诸如用户权限和审计策略。

2.服务:启动和停止由Windows系统提供的各项服务。

3.计算机管理:管理磁盘以及使用其他系统工具来管理本地或远程计算机。

4.事件查看器:显示来自于Window和其他程序的监视与排错信息。

例如,在“系统日志”中包含各种系统组件记录的事件,如使用驱动器失败或加载其他系统组件;“安全日志”中包含有效与无效的登录尝试及与资源使用有关的事件,如删除文件或修改设置等,本地计算机上的安全日志只有本机用户才能查看;“应用程序日志”中包括由应用程序记录的事件等等。

5.数据源(ODBC):即开放数据库连接。

添加、删除以及配置ODBC数据源和驱动程序,通过ODBC可以访问来自多种数据库管理系统的数据。

6.性能:显示系统性能图表以及配置数据日志和警报。

7.组建服务:配置并管理COM+ 应用程序。

1. 计算机管理使用“计算机管理”可通过一个合并的桌面工具来管理本地或远程计算机,它将几个Windows 2000管理实用程序合并到一个控制台目录树中,使管理员可以轻松地访问特定计算机的管理属性和工具。

步骤3:在“管理工具”窗口中,双击“计算机管理”图标。

“计算机管理”使用的窗口与“Windows资源管理器”相似。

实验一进程控制与描述

实验一进程控制与描述

死锁检测
死锁检测是通过检测系统状态是否满足死锁条件来确定系 统是否处于死锁状态。
死锁解除
死锁解除是当系统检测到死锁状态时采取措施来解除死锁 的过程。
资源有序分配法
资源有序分配法是一种预防死锁的方法,通过为每个资源 分配一个唯一的序号,并要求进程按照序号递增的顺序请 求资源来避免产生循环等待条件。
03 进程描述
实验一:进程控制与描述
目录
• 进程控制概述 • 进程控制机制 • 进程描述 • 实验步骤与操作 • 实验结果与分析
01 进程控制概述
进程的定义与特性
总结词
进程是程序的一次执行,具有动态性、 并发性、制约性、独立性和制约性等特 性。
VS
详细描述
进程是程序在计算机上的一次执行过程, 它具有动态性,即进程的状态可以在运行 过程中改变;并发性,即进程可以同时存 在于多个状态;制约性,即进程间的相互 制约关系;独立性,即进程是独立的,不 受其他进程的影响;制约性,即进程间的 相互制约关系。
04 实验步骤与操作
实验环境搭建
准备实验所需的操作 系统环境,如Linux 或Windows。
配置网络连接,确保 实验过程中能够访问 外部资源。
安装必要的软件工具, 如任务管理器、终端 等。
进程创建与终止实验
01 打开任务管理器或终端,
查看当前运行的进程。
观察并记录进程的创建 过程和结果,包括进程
PCB中包含了进程标识符、进 程状态、内存指针、文件描述 符表等信息。
通过PCB,操作系统可以对进 程进行创建、切换、终止等操 作,实现对进程的统一管理。
进程状态信息
1
进程状态信息是指描述进程当前状态的变量和数 据结构。

实验1 进程控制与描述

实验1 进程控制与描述

实验一:进程控制与描述一、实验目的:利用Windows提供的API函数,编写程序,实现进程的创建和终止(如创建写字板进程及终止该进程),加深对操作系统进程概念的理解,观察操作系统进程运行的动态性能,获得包含多进程的应用程序编程经验。

二、实验原理:1.进程的创建进程的创建通过CreateProcess()函数来实现,CreateProcess()通过创建一个新的进程及在其地址空间内运行的主线程来启动并运行一个新的程序。

具体地,在执行CreateProcess()函数时,首先由操作系统负责创建一个进程内核对象,初始化计数为1,并立即为新进程创建一块虚拟地址空间。

随后将可执行文件或其他任何必要的动态链接库文件的代码和数据装载到该地址空间中。

在创建主线程时,也是首先由系统负责创建一个线程内核对象,并初始化为1。

最后启动主线程并执行进程的入口函数WinMain(),完成对进程和执行线程的创建。

2.实现技巧CreateProcess()函数的原型声明如下:BOOL CreateProcess(LPCTSTR lpApplicationName, // 可执行模块名LPTSTR lpCommandLine, // 命令行字符串LPSECURITY_ATTRIBUTES lpProcessAttributes, // 进程的安全属性LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程的安全属性BOOL bInheritHandles, // 句柄继承标志DWORD dwCreationFlags, // 创建标志LPVOID lpEnvironment, // 指向新的环境块的指针LPCTSTR lpCurrentDirectory, // 指向当前目录名的指针LPSTARTUPINFO lpStartupInfo, // 指向启动信息结构的指针LPPROCESS_INFORMATION lpProcessInformation //指向进程信息结构的指针)可以指定第一个参数,即应用程序的名称,其中包括相对于当前进程的当前目录的全路径或者利用搜索方法找到的路径;lpCommandLine参数允许调用者向新应用程序发送数据;接下来的三个参数与进程和它的主线程以及返回的指向该对象的句柄的安全性有关。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:进程控制描述与控制[1] Windows“任务管理器”的进程管理一、实验名称Windows“任务管理器”的进程管理二、实验目的通过在Windows 任务管理器中对程序进程进行响应的管理操作,熟悉操作系统进程管理的概念,学习观察操作系统运行的动态性能。

三、实验内容与步骤1. 使用任务管理器终止进程2. 显示其他进程计数器3. 更改正在运行的程序的优先级启动并进入Windows环境,单击Ctrl + Alt + Del键,或者右键单击任务栏,在快捷菜单中单击“任务管理器”命令,打开“任务管理器”窗口。

在本次实验中,你使用的操作系统版本是:_______Windows_XP______________________当前机器中由你打开,正在运行的应用程序有:1) _______ ________2) ___________实验一___3) _________操作系统_____________4) ___________百度首页________5) ____________ftp://172.16.20.168_______Windows“任务管理器”的窗口由____4__个选项卡组成,分别是:1) _______应用程序______________2) _进程__________________3) ______ 性能___________________4) ________联网__________________当前“进程”选项卡显示的栏目分别是(可移动窗口下方的游标/箭头,或使窗口最大化进行观察) :1. 使用任务管理器终止进程步骤1:单击“进程”选项卡,一共显示了__40___个进程。

请试着区分一下,其中:系统(SYSTEM) 进程有____25__个,填入表3-1中。

表3-1 实验记录服务(SERVICE) 进程有_____5_个,填入表3-2中。

表3-2 实验记录用户进程有___10___个,填入表3-3中。

表3-3 实验记录步骤2终止进程,将结束它直接或间接创建的所有子进程。

例如,如果终止了电子邮件程序(如Outlook 98) 的进程树,那么同时也终止了相关的进程,如MAPI后台处理程序mapisp32.exe。

请将终止某进程后的操作结果与原记录数据对比,发生了什么:________________终止QQ.exe后QQExternal.exe也会结束,______________________ ________________________________________________________________________________________________________________________________________________________________________________________________________________________2. 显示其他进程记数器在“进程”选项卡上单击“查看”菜单,然后单击“选择列”命令。

单击要增加显示为列标题的项目,然后单击“确定”。

为对进程列表进行排序,可在“进程”选项卡上单击要根据其进行排序的列标题。

而为了要反转排序顺序,可再次单击列标题。

经过调整,“进程”选项卡现在显示的项目分别是:___映像名称、PID、用户名、回话ID、CPU、CPU时间、工作设置(内存)、峰值工作设置(内存)、工作设置增量(内存)、内存(专用工作集)、I/O读取、I/O写入、命令行、描述通过对“查看”菜单的选择操作,可以在“任务管理器”中更改显示选项:·在“应用程序”选项卡上,可以按详细信息、大图标或小图标查看。

·在“性能”选项卡上,可以更改CPU记录图,并显示内核时间。

“显示内核时间”选项在“CPU使用”和“CPU使用记录”图表上添加红线。

红线指示内核操作占用的CPU 资源数量。

3. 更改正在运行的程序的优先级要查看正在运行的程序的优先级,可单击“进程”选项卡,单击“查看”菜单,单击“选择列”-“基本优先级”命令,然后单击“确定”按钮。

为更改正在运行的程序的优先级,可在“进程”选项卡上右键单击您要更改的程序,指向“设置优先级”,然后单击所需的选项。

更改进程的优先级可以使其运行更快或更慢(取决于是提升还是降低了优先级) ,但也可能对其他进程的性能有相反的影响。

记录操作后所体会的结果:改变优先级可能造成系统不稳定。

在多处理器计算机上,用户还可以给处理器指派进程,将程序或进程的执行限制在选定的处理器上,但这有可能导致总体性能的下降。

[2]Windows Server 2003进程的“一生”一、实验名称Windows Server 2003进程的“一生”二、实验目的1) 通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Windows Server 2003进程的“一生”。

2) 通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法。

三、实验内容与步骤1. 创建进程2. 正在运行的进程3. 终止进程Windows所创建的每个进程都是以调用________CreateProcess()____________API函数开始和以调用_____________ExitProcess()_________或___________TerminateProcess()_______API函数终止。

1. 创建进程本实验显示了创建子进程的基本框架。

该程序只是再一次地启动自身,显示它的系统进程ID和它在进程列表中的位置。

步骤1:登录进入Windows Server 2003。

步骤2:在“开始”菜单中单击“程序”-“Microsoft Visual Studio 6.0”–“Microsoft Visual C++ 6.0”命令,进入Visual C++窗口。

步骤3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序3-5.cpp。

清单3-5 创建子进程// proccreate项目# include <windows.h># include <iostream># include <stdio.h>// 创建传递过来的进程的克隆过程并赋于其ID值void StartClone(int nCloneID){// 提取用于当前可执行文件的文件名TCHAR szFilename[MAX_PATH] ;:: GetModuleFileName(NULL, szFilename, MAX_PATH) ;// 格式化用于子进程的命令行并通知其EXE文件名和克隆IDTCHAR szCmdLine[MAX_PATH] ;:: sprintf(szCmdLine, “\”%s\” %d”, szFilename, nCloneID) ;// 用于子进程的STARTUPINFO结构STARTUPINFO si;:: ZeroMemory(reinterpret_cast <void*> (&si) , sizeof(si) ) ;si.cb = sizeof(si) ; // 必须是本结构的大小// 返回的用于子进程的进程信息PROCESS_INFORMATION pi;// 利用同样的可执行文件和命令行创建进程,并赋于其子进程的性质BOOL bCreateOK = :: CreateProcess(szFilename, // 产生这个EXE的应用程序的名称szCmdLine, // 告诉其行为像一个子进程的标志NULL, // 缺省的进程安全性NULL, // 缺省的线程安全性FALSE, // 不继承句柄CREATE_NEW_CONSOLE, // 使用新的控制台NULL, // 新的环境NULL, // 当前目录&si, // 启动信息&pi) ; // 返回的进程信息// 对子进程释放引用if (bCreateOK){:: CloseHandle(pi.hProcess) ;:: CloseHandle(pi.hThread) ;}}int main(int argc, char* argv[] ){// 确定进程在列表中的位置int nClone(0) ;if (argc > 1){// 从第二个参数中提取克隆ID:: sscanf(argv[1] , “%d” , &nClone) ;}// 显示进程位置std :: cout << “Process ID: “ << :: GetCurrentProcessId()<< “, Clone ID: “ << nClone<< std :: endl;// 检查是否有创建子进程的需要const int c_nCloneMax = 25;if (nClone < C_nCloneMax){// 发送新进程的命令行和克隆号StartClone(++nClone) ;}// 在终止之前暂停一下(l/2秒):: Sleep(500) ;return 0;}步骤4:单击“Build”菜单中的“Compile 3-5.cpp”命令,系统显示:This build command requires an active project workspace. Would you like tocreate a default project workspace ?(build命令需要一个活动的项目工作空间。

你是否希望建立一个缺省的项目工作空间?)单击“是”按钮确认。

系统对3-5.cpp进行编译。

步骤5:编译完成后,单击“Build”菜单中的“Build 3-5.exe”命令,建立3-5.exe 可执行文件。

操作能否正常进行?如果不行,则可能的原因是什么?____不能正确运行,因为程序中出现了很多的语法和拼写方面的错误__________________________________________________________步骤6:在工具栏单击“Execute Program”(执行程序) 按钮,或者按Ctrl + F5键,或者单击“Build”菜单中的“Execute 3-5.exe”命令,执行3-5.exe程序。

步骤7:按Ctrl + S键可暂停程序的执行,按Ctrl + Pause (Break) 键可终止程序的执行。

清单3-5展示的是一个简单的使用CreateProcess() API函数的例子。

相关文档
最新文档