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

合集下载

第二讲 进程管理(1)--进程控制

第二讲 进程管理(1)--进程控制

N=account;
N=N+200; account=N;
建立一个能够描述程序的执行过程并且能用来共享资 源的基本单位。
2.1.5 进程的定义和特征
一、进程(Process) 进程是程序在一个数据集上的运行过程,是系统 进行资源分配和调度的一个独立单位。
其它定义:

进程是程序的一次执行。 进程是一个程序及其数据在处理机上顺序执行时所 发生的活动。 进程是进程实体的运行过程,是系统进行资源分配 和调度的一个独立单位”。
2.2 进程的描述
系统中需要有描述进程存在和能够反映其变化的物理实体,即进程的静态 描述。进程的静态描述由三部分组成:进程控制块PCB,有关程序段和该 程序段对其进行操作的数据结构集。
进程控制块PCB包含了有关进程的描述信息、控制信息以及资源信息,是 进程动态特征的集中反映。 系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌 握进程所处的状态以达到控制进程活动的目的。
21
2.2.1 进程控制块
4)进程控制信息:
程序和数据的地址——指程序和数据所在的内存或外存首地址; 进程同步和通信机制——如信号量、消息队列指针等,它们可能全 部或部分地存放在PCB中; 资源清单——是一张列出了除CPU外的、进程所需的全部资源及已 经分配到该进程的资源的清单; 链接指针——它给出本进程(PCB)所在队列中下一个进程的PCB的 首址。
27
2.3.1 进程的基本状态
进程的挂起/解挂状态
一、设臵原因
1、用户需要 :中间结果与预期不符; 2、操作系统需要:系统某些功能故障; 3、系统负荷过重 4、父进程需要 5、对换的需要
二、设臵挂起状态后进程状态的转换

process

process

§3.1
3.1.2 进程的状态
进程的概念
一个进程从创建而产生至撤销而消亡的整个生命周期, 一个进程从创建而产生至撤销而消亡的整个生命周期, 可用一组状态加以刻划, 可用一组状态加以刻划,,按进程在执行过程中的状况至少 定义三种不同的进程状态: 定义三种不同的进程状态: 运行态(Running)是指当前进程已经分配到CPU, 运行态(Running)是指当前进程已经分配到CPU,它的程序 CPU 正在处理机上执行的状态. 正在处理机上执行的状态. 就绪状态(Ready)是指已具备运行条件, 就绪状态(Ready)是指已具备运行条件,但因为其他进程 正在占用CPU,使它暂时不能运行而处于等待分配CPU的状态. 正在占用CPU,使它暂时不能运行而处于等待分配CPU的状态. CPU,使它暂时不能运行而处于等待分配CPU的状态 阻塞状态(Blocked)是指进程因等待某种事件发生( 阻塞状态(Blocked)是指进程因等待某种事件发生(例如 等待I/O操作完成,等待其他进程发来的信号) 等待I/O操作完成,等待其他进程发来的信号)而暂时不能 I/O操作完成 运行的状态,也就是说, 运行的状态,也就是说,处于阻塞状态的进程尚不具备运行 条件,即使CPU空闲它也无法使用. 条件,即使CPU空闲它也无法使用. CPU空闲它也无法使用
和调度的独立单位; 和调度的独立单位;
– 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程 异步性:由于进程间的相互制约,使进程具有执行的间断性,
按各自独立的, 按各自独立的,不可预知的速度向前推进
– 结构特征:进程由程序,数据和进程控制块三部分组成. 结构特征:进程由程序,数据和进程控制块三部分组成.
§3.1
进程的概念
Context) Context)

操作系统第二章进程的描述与控制题目

操作系统第二章进程的描述与控制题目

操作系统第⼆章进程的描述与控制题⽬1-1. 下⾯对进程的描述中,错误的是。

A.进程是动态的概念B. 进程执⾏需要处理机C.进程是有⽣命周期的D. 进程是指令的集合【答案】D动态的,有⽣命周期的。

【解析】【解析】程序是指令的集合。

⽽进程是程序的⼀次执⾏,是动态的,有⽣命周期的。

1-2. 分配到必要的资源并获得处理机时的进程状态是 ()A. 就绪状态B. 执⾏状态C. 阻塞状态D. 撤消状态【答案】B【解析】分配到必要地资源获得处理机时的进程状态是执⾏状态。

1-3.程序的顺序执⾏通常在①的⼯作环境中,具有以下特征②。

程序的并发执⾏在③的⼯作环境中,具有如下特征④。

A. 单道程序B.多道程序C. 程序的可再现性D. 资源共享【答案】①A ②C ③B ④D。

【解析】程序的顺序执⾏通常在单道程序的⼯作环境中,具有程序结果的可再现性特征;程序的并发执⾏在多道程序的⼯作环境中,具有共享资源的特征。

1-4. 下列进程状态变化中,变化是不可能发⽣的A. 运⾏——就绪B.运⾏—— 等待C. 等待——运⾏D. 等待——就绪【答案】C【解析】当调度程序为某就绪状态的进程分配了处理机时,该进程便由就绪状态变为执⾏状态;正在执⾏的进程因等待发⽣某事件⽽⽆法执⾏时,该进程由执⾏状态变为等待状态;当处于等待状态的进程所等待的事件发⽣时,该进程由等待状态变为就绪状态;正在执⾏的进程如因时间⽚⽤完⽽暂停执⾏,该进程由执⾏状态变为就绪状态。

等待——运⾏不可能发⽣,就绪—— 等待不可能发⽣。

运⾏不可能发⽣,就绪唯⼀的双向箭头是运⾏运⾏——就绪,就绪——运⾏唯⼀的双向箭头是1-5. 当时,进程从执⾏状态转变为就绪状态。

A. 进程被调度程序选中B. 时间⽚到C. 等待某⼀事件D.等待的事件发⽣【答案】B。

【解析】正在执⾏的进程,如因时间⽚⽤完⽽暂停执⾏,则该进程由执⾏状态转变为就绪状态。

就绪——运⾏ C. 等待某⼀事件运⾏—— 阻塞 D.等待的事件发⽣等待——就绪A. 进程被调度程序选中,进程被调度程序选中,就绪1-6. 如果系统中有n个进程,则就绪队列中进程的个数最多为。

与进程控制相关的原语

与进程控制相关的原语

与进程控制相关的原语一、进程控制原语的概念进程控制原语是指在操作系统中,用于管理和控制进程的一系列基本操作。

通过这些原语,我们可以对进程进行创建、撤销、暂停、恢复等操作,以实现进程的有效管理和控制。

二、进程创建原语1. 创建进程(Create):创建新的进程并为其分配资源,包括分配进程控制块(PCB)、分配内存空间、分配唯一的进程标识符(PID)等。

创建进程时,可以指定进程的优先级、初始状态以及父子关系等。

三、进程撤销原语1. 撤销进程(Terminate):终止一个进程的执行,并释放其占用的资源。

撤销进程时,操作系统会回收进程所使用的内存空间、文件描述符等资源,并从系统的进程表中删除该进程的 PCB。

四、进程暂停和恢复原语1. 暂停进程(Suspend):将一个正在执行的进程暂停,暂停后的进程不会继续执行,但其占用的资源仍然保留。

暂停进程的目的是为了让其他优先级更高的进程能够获得执行机会。

2. 恢复进程(Resume):将一个被暂停的进程恢复执行,使其继续执行之前的工作。

恢复进程时,操作系统会重新分配资源,并将进程的状态设置为就绪状态,以便其能够参与到进程调度中。

五、进程同步原语1. 互斥原语(Mutex):用于实现进程之间的互斥访问共享资源。

互斥原语提供了对共享资源的排他性访问,确保同一时间只有一个进程可以访问共享资源,从而避免了资源竞争的问题。

2. 信号量原语(Semaphore):用于实现进程之间的同步和互斥。

信号量原语提供了两种操作:P(proberen)操作和V(verhogen)操作。

P操作用于申请资源,V操作用于释放资源。

通过对信号量进行P和V操作,可以实现对共享资源的互斥访问和进程之间的同步。

六、进程通信原语1. 管道(Pipe):用于实现具有亲缘关系的进程之间的通信。

管道提供了一种半双工的通信方式,其中一个进程负责写入数据,另一个进程负责读取数据。

管道可以用于实现进程间的数据传输和共享。

操作系统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资源管理器”相似。

操作系统原理教程第2章

操作系统原理教程第2章

超线程的工作
– 超线程处理器被视为两个分离的逻辑处理器,应用程序
不须修正就可使用这两个逻辑处理器. – 每个逻辑处理器都可独立响应中断.第一个逻辑处理器 可追踪一个软件线程,而第二个逻辑处理器则可同时追 踪另一个软件线程. – 由于两个线程共同使用同样的执行资源,因此不会产生 一个线程执行的同时,另一个线程闲置的状况.
要进行合理的控制和协调才能正确执行
资源共享关系 相互合作关系
进程的同步与互斥
进程同步与互斥的概念 进程同步机制应遵循的原则 利用锁机制实现同步
进程同步与互斥的概念
临界资源
– 在系统中有许多硬件或软件资源,在一段时间内只允许一个进程访
问或使用,这种资源称为临界资源.
临界区
– 每个进程中访问临界资源的那段代码称为临界区
信号量的操作
(1)P操作:记为P(S),描述为:
– – – – – – – –
P(S) { S=S-1; if (S<0) W(S); } V(S) { S=S+1; if (S<=0) R(S); }
(2)V操作:记为V(S),描述为:
利用PV操作实现互斥 利用PV操作实现互斥
概念:
– 互斥信号量是根据临界资源的类型设置的.有几种
进程的定义
– 一个程序在一个数据集合上的一次运行过程.所以
一个程序在不同数据集合上运行,乃至一个程序在 同样数据集合上的多次运行都是不同的进程.
进程的特征
– – – – –
动态性 并发性 独立性 异步性 结构性
进程的状态
进程的三种基本状态 进程的其它两种状态 进程状态间的转换
进程的三种基本状态
就绪状态
– 【例2-5】有4位哲学家围着一个圆桌在思考和进餐,

实验一进程创建 Linux实验报告

实验一进程创建  Linux实验报告

实验一进程创建【实验目的和要求】1、1.了解进程的概念及意义;2.了解子进程和父进程;3.掌握创建进程的方法。

【实验内容】1、1.子进程和父进程的创建;2.编写附件中的程序实例;3.撰写实验报告。

【实验原理】1、原型:#include <unistd.h>pid_t fork(void);在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。

新进程为子进程,而原进程为父进程。

fork函数创建子进程的过程为:使用fork函数得到的子进程是父进程的一个复制品,它从父进程继承了进程的地址空间,包括进程上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设定、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端,而子进程所独有的只有它的进程号、资源使用和计时器等。

通过这种复制方式创建出子进程后,原有进程和子进程都从函数fork返回,各自继续往下运行,但是原进程的fork返回值与子进程的fork返回值不同,在原进程中,fork返回子进程的pid,而在子进程中,fork返回0,如果fork返回负值,表示创建子进程失败。

子进程和父进程继续执行fork调用之后的指令。

子进程是父进程的副本。

例如,子进程获得父进程数据空间、堆和栈的副本。

注意,这是子进程所有用的副本。

父进程和子进程并不共享这些存储空间部分。

父进程和子进程共享正文段。

2、原型:#include <unistd.h>pid_t vfork(void);vfork函数的调用序列和返回值与fork相同,但两者的语义不同。

vfork函数用于创建一个新进程,而该进程的目的是exec一个新程序。

vfork不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exec,它在父进程的空间中运行。

vfork保证子进程先运行,在它调用exit之后父进程才可能被调度运行,当子进程调用这两个函数中的任意一个时,父进程会恢复运行。

操作系统实验指导1

操作系统实验指导1

操作系统实验指导书楚雄师范学院计算机科学系操作系统课程组2011-9-20第一部分操作系统上机指导Linux操作系统环境:RedHat Enterprise Linux ES release 3 (Taroon Update 1) (2.4.21-9.EL)Red Flag Linux release 4.0 (HOT) (2.4)登录到系统常用命令练习:用root账号(超级用户)注册,口令为jkxroot(注意大小写)。

注册成功出现#号(超级用户系统提示符,普通用户的系统提示符为$)。

注销(退出)系统:logout 或exit3.练习使用命令ls(注意Linux命令区分大小写。

)使用ls 查看当前目录内容;使用ls 查看指定目录内容,如/目录,/etc目录使用ls –all 查看当前目录内容;使用dir 查看当前目录内容4.使用cd改变当前目录cd .. 回到上层目录;cd / 回到根目录5.pwd 显示当前路径6.建立目录mkdirmkdir 目录名;mkdir /home/s2001/newdir7.删除目录:rmdir;8.复制文件cp:如cp 文件名1 文件名29.移动文件或目录: mv10.删除文件rm11. 显示文件内容:more (分页显示);12. 显示文件:cat 文件名建立文件:cat >文件名,ctrl+d结束输入使用编辑器vi 编辑文件进入linux的文本模式之后,在命令行键入vi filename.c 然后回车。

下面作一些简单的解释:首先vi命令是打开vi编辑器。

后面的filename.c是用户即将编辑的c文件名字,注意扩展名字是.c;当然,vi编辑器功能很强,可以用它来编辑其它格式的文件,比如汇编文件,其扩展名字是.s;也可以直接用vi打开一个新的未命名的文件,当保存的时候再给它命名,只是这样做不很方便。

最基本的命令I :当进入刚打开的文件时,不能写入信息,这时按一下键盘上的I键(insert),插入的意思,就可以进入编辑模式了。

  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 to create 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函数的例子。

相关文档
最新文档