文档库 最新最全的文档下载
当前位置:文档库 › 第五讲(进程管理)作业:进程管理编程

第五讲(进程管理)作业:进程管理编程

第五讲(进程管理)作业:进程管理编程
第五讲(进程管理)作业:进程管理编程

实验1

1[实验题目]

进程的创建控制实验

2[实验目的]

创建进程,体会进程间的并发特征

3[实验内容]

编写一段程序,使用系统调用fork()创建两个子进程p1和p2。而且父进程输出字符串“father”,第一个子进程输出字符串“borther1”,第二个子进程输出字符串“borther2”4[实验要求]

(1)掌握系统调用fork()的使用方法及其功能;

(2)利用系统调用sleep()调整父进程及各子进程的并发执行过程;

(3)认真查看和比较每次执行结果,分析原因。

5[思考问题]

(1)为什么各字符串的输出顺序会是任意的?

(2)改写程序,将字符串用循环语句一个一个字符输出,再查看执行结果如何?

实验2

1[实验题目]

基于管道的进程通信实验

2[实验目的]

创建无名管道,实现基于管道的进程间数据通信,掌握管道通信的方法及特征;并进一步理解互斥与同步的含义。

3[实验内容]

编写一段程序,使用系统调用pipe()创建一无名管道,同时父进程创建一个子进程p1;

并使子进程通过管道向父进程传递数据“p1 process is sending data to father.”,父进程通过管道接收到该字符串后输出。

4[实验要求]

(1)掌握系统调用pipe()的使用方法及其功能,理解管道通信原理;

(2)掌握利用系统调用exit()和wait()实现父进程与子进程之间的同步,理解同步的含义。

5[思考问题]

(1)为什么要在父进程与子进程之间通过管道同步传递数据?不同步而任意写入或读取数据结果如何?

(2)若两个子进程通过管道分别向父进进程传递数据,则如何实现?同时注意查看执行结果,父进程读取各子进程传来的数据顺序如何?(注意各子进程间利用lockf()

加锁互斥向管道写入数据)

实验3

1[实验题目]

进程的软中断通信

(1)理解掌握软中断的概念和技术;

(2)掌握进程之间基于软中断的通信技术。

3[实验内容]

编写一段程序,父进程创建一个子进程p1;并使子进程利用系统调用kill()向父进程发送信号,父进程得到信号后输出字符串“received p1 signal.”。

4[实验要求]

(1)正确应用系统调用signal()建立进程与信号(异步事件)之间的联系,理解信号机制;

(2)正确应用系统调用getppid()、kill(),进步理解广义同步的含义。

5[思考问题]

(1)为什么说系统调用signal()是建立进程与信号之间的联系,而不是接收信号的操作?

(2)若子进程向父进程发送信号,父进程接到信号后可以缺省操作、或忽视信号、或执行一函数,各是什么含义?

实验4

1[实验题目]

进程间基于消息队列的通信

2[实验目的]

系统了解linux系统的通信机构IPC ,掌握IPC中消息通信机制,理解消息通信的方法及特征。

3[实验内容]

编写一段程序,同时父进程创建两个子进程p1和p2;并使子进程p1与子进程p2通过消息队列相互发送消息(512字节)。

4[实验要求]

(1)掌握系统调用msgget()、msgsnd()、msgrev()、msgctl()的使用方法及其功能,理解消息通信原理;

(2)系统理解linux 的三种通信机制。

5[思考问题]

(1)消息通信与管道通信有何区别(进程家族)?

(2)为什么unix中要增设IPC核心软件包?

实验5

1[实验题目]

进程间基于共享存储区的通信

2[实验目的]

系统了解linux系统的通信机构IPC ,掌握IPC中共享存储区通信机制,理解共享存储区通信的方法及特征。

3[实验内容]

编写一段程序,同时父进程创建两个子进程p1和p2;并使子进程p1与子进程p2通过共享存储区相互发送数据(512字节)。

(1)掌握系统调用shmget()、shmat()、shmdt()、shmctl()的使用方法及其功能,理解共享存储区通信原理;

(2)系统理解linux 的三种通信机制。

5[思考问题]

(1)共享存储区与消息通信有何区别?

(2)基于共享存储区通信中的进程间的同步是如何实现的?

计算机操作系统进程调度实验研究报告

计算机操作系统进程调度实验研究报告

————————————————————————————————作者:————————————————————————————————日期:

操作系统实验题:设计一若干并发进程的进程调度程序 一、实验目的 无论是批处理系统、分时系统还是实时系统,用户进程数一般都大于处理机数,这将导致用户进程互相争夺处理机。这就要求进程调度程序按一定的策略,动态地把处理及分配给处于就绪队列中的某一进程,以使之执行。进程调度是处理机管理的核心内容。本实验要求采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概念。并体会了优先数和先来先服务调度算法的具体实施办法。 二、实验要求 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解. 三、实验内容 进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法(将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理)。 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。 每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。重复以上过程,直到所要进程都完成为止。 四、实验算法流程

操作系统实验-进程控制

实验一、进程控制实验 1.1 实验目的 加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux 系统中进程创建与控制有关的系统调用的编程和调试技术。 1.2 实验说明 1)与进程创建、执行有关的系统调用说明进程可以通过系统调用fork()创建子进程并和其子进程并发执行.子进程初始的执行映像是父进程的一个复本.子进程可以通过exec()系统调用族装入一个新的执行程序。父进程可以使用wait()或waitpid()系统调用等待子进程的结束并负责收集和清理子进程的退出状态。 fork()系统调用语法: #include pid_t fork(void); fork 成功创建子进程后将返回子进程的进程号,不成功会返回-1. exec 系统调用有一组6 个函数,其中示例实验中引用了execve 系统调用语法: #include int execve(const char *path, const char *argv[], const char * envp[]); path 要装入 的新的执行文件的绝对路径名字符串. argv[] 要传递给新执行程序的完整的命令参数列表(可以为空). envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空).

Exec 执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。如果exec 调用失败,它会返回-1。 wait() 系统调用语法: #include #include pid_t wait(int *status); pid_t waitpid(pid_t pid,int *status,int option); status 用 于保留子进程的退出状态 pid 可以为以下可能值: -1 等待所有PGID 等于PID 的绝对值的子进程 1 等待所有子进程 0 等待所有PGID 等于调用进程的子进程 >0 等待PID 等于pid 的子进程option 规 定了调用waitpid 进程的行为: WNOHANG 没有子进程时立即返回 WUNTRACED 没有报告状态的进程时返回 wait 和waitpid 执行成功将返回终止的子进程的进程号,不成功返回-1。 getpid()系统调用语法: #include #include pid_t getpid(void); pid_t getppid(void); getpid 返回当前进程的进程号,getppid 返回当前进程父进程的进程号 2)与进程控制有关的系统调用说明可以通过信号向一个进程发送消息以控制进程的 行为。信号是由中断或异常事件引发的,如:键盘中断、定时器中断、非法内存引

《Linux操作系统》实验五-作业任务和进程管理

《Linux操作系统》 实验报告 实验五:作业任务和进程管理

一、实验目的 (1) 掌握UNIX系统作业、任务和进程管理的任务,了解Linux系统进程管理的图形界面; (2) 了解UNIX的系统进程间通信机制,掌握信号操作和终止进程的命令。 (3) 了解任务和作业管理命令at和batch; (4) 掌握UNIX系统的进程定时启动管理命令crontab; (5) 了解进程的挂起,掌握fg,bg等命令。 二、实验环境 一台装有Windows操作系统PC机,上装有虚拟机系统VMWare,实验过程通过VMWare系统启Linux系统工作。 三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果) 1)进程管理与查询 (1)进程状态查询 1.ps –ef | more #显示所有进程及启动参数 2. ps –ajx | more #以作业方式显示进行信息

3. ps –el | more #以长格式显示所有进程信息 4.pstree –p 5.pstree -a

(2)终止进程的执行 1.终止某一已知PID进程:ps –9 PID(1)#PID由用户自己选择 2.在当前终端上执行命令:man ps 3、换一终端在其运行:ps –e | grep man #确定进程PID

4.终止进程执行:kill –9 PID #PID是上命令查询的结果 4.终止所的同名进程 终止上例中的man命令:killall man或 killall –9 man 分别至少在2个不同终端上登录,然后在其中的一个终端上分别执行以下命令,并观察和分析原因。 killall bash killall –9 bash 执行killall -9 bash命令时,终端窗口关闭 (3) 进程的挂起及前后台调度 在一个终端上起动命令man man,在不退出man命令的情况下按下组合键Ctrl+Z,观察反映。 答:先退出当前页面,返回进入终端时的页面 先后执行命令jobs和fg命令,并观察反映。

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

2-1 进程管理-作业[精品文档]

第二章进程管理 1.选择题 1.有关进程的下列叙述中, D 是正确的。 A.进程是静态的文本B.进程与程序是一一对应的 C.进程与作业是一一对应的D.多个进程可以在单个CPU上同时执行 2.进程之间的制约关系可以归结为 A 。 A.同步与互斥B.并发与异步C.同步与并发D.同步与异步 3.下列的进程状态变化中, C 的变化是不可能发生的。 A.运行→就绪B.运行→等待C.等待→运行D.等待→就绪 4.进程和程序的本质区别是 D 。 A.存储在内存和外存B.顺序和非顺序执行机器指令 C.分时使用和独占使用计算机资源D.动态和静态特征 5.某进程所要求的一次打印输出结束,该进程被唤醒,其进程状态将从 B 。 A.就绪状态到运行状态B.等待状态到就绪状态 C.运行状态到等待状态D.运行状态到就绪状态 11.在多道程序系统中,为了保证公共变量的完整性,各进程应互斥进入相关临界区。所谓临界区是指 D 。 A.一个缓冲区B.一段数据区C.同步机制D.一段程序 12.一个进程是 C 。 A.由协处理器执行的一个程序B.一个独立的程序+ 数据集 C.PCB结构、程序和数据的集合D.一个独立的程序 13.多道程序系统中的操作系统分配资源以 B 为基本单位。 A.程序B.进程C.作业D.用户

14.进程从等待状态转到就绪状态的原因可能是 B 。 A.请求I/O B.I/O完成 C.被进程调度程序选中D.另一个进程运行结束 15.采用多道程序设计能 B 。 A.增加平均周转时间B.发挥并提高并行工作能力 C.缩短每道程序的执行时间D.降低对处理器调度的要求 21.下列选项中,导致创建新进程的操作是 C 。(2010全国试题) I.用户登录成功II.设备分配III.启动程序执行 A.仅I和II B.仅II和III C.仅I和III D.I、II和III 22.若信号量S的初值为2,当前值为-1,则表示有 B 个等待进程。 A.0 B.1 C.2 D.3 23.设与某资源关联的信号量初值为3,当前值为1。若M表示该资源的可用个数,N表示等待该资源的进程数,则M、N分别是 B 。(2010全国试题) A.0、1 B.1、0 C.1、2 D.2、0 24.操作系统中,对信号量S的P原语操作定义中,使进程进入相应等待队列的条件是B 。 A.S≠0 B.S<0 C.S=0 D.S>0 25.为了使两个进程能同步运行,最少需要 B 个信号量。 A.1 B.2 C.3 D.4 31.有关PV操作的说法中 B 是错误的。 A.“PV操作不仅是进程互斥的有效工具,而且是简单方便的同步工具” B.“PV操作不能实现进程间通信” C.“进程调用P操作测试自己所需的消息是否到达” D.“进程调用V操作向其它进程发送消息” 32.使若干并发进程共享一临界资源而不发生与进程推进速度有关错误,涉及相关临界区的错误说法是 C 。

第二章 操作系统进程(练习题标准答案)

第二章操作系统进程(练习题答案)

————————————————————————————————作者:————————————————————————————————日期: 2

第二章进程管理 1.操作系统主要是对计算机系统全部 (1) 进行管理,以方便用户、提高计算机使 用效率的一种系统软件。它的主要功能有:处理机管理、存储管理、文件管理、 (2) 管 理和设备管理等。Windows和Unix是最常用的两类操作系统。前者是一个具有图形界面的 窗口式的 (3) 系统软件,后者是一个基本上采用 (4) 语言编制而成的 的系统软件。在 (5) 操作系统控制下,计算机能及时处理由过程控制反馈的信息 并作出响应。 供选答案: (1): A. 应用软件 B. 系统软硬件 C. 资源 D. 设备 (2): A. 数据 B. 作业 C. 中断 D. I/O (3): A. 分时 B. 多任务 C. 多用户 D. 实时 (4): A. PASCAL B. 宏 C. 汇编 D. C (5): A. 网络 B. 分时 C. 批处理 D. 实时 答案:CBBDD 2.操作系统是对计算机资源进行的 (1) 系统软件,是 (2) 的接口。 在处理机管理中,进程是一个重要的概念,它由程序块、 (3) 和数据块三部 分组成,它有3种基本状态,不可能发生的状态转换是 (4) 。 虚拟存储器的作用是允许程序直接访问比内存更大的地址空间,它通常使用 (5) 作为它的一个主要组成部分。 供选答案: (1): A. 输入和输出 B. 键盘操作 C. 管理和控制 D. 汇编和执行 (2): A. 软件和硬件 B. 主机和外设 C. 高级语言和机器语言 D. 用户和计算机 (3): A. 进程控制块 B. 作业控制块 C. 文件控制块 D. 设备控制块 (4): A. 运行态转换为就绪态 B. 就绪态转换为运行态 C. 运行态转换为等待态 D. 等待态转换为运行态 (5): A. 软盘 B. 硬盘 C. CDROM D. 寄存器 答案:CDADB 3.在计算机系统中,允许多个程序同时进入内存并运行,这种方法称为 D。 A. Spodling技术 B. 虚拟存储技术 C. 缓冲技术 D. 多道程序设计技术 4.分时系统追求的目标是 C。 A. 高吞吐率 B. 充分利用内存 C. 快速响应 D. 减少系统开销 5.引入多道程序的目的是 D。

(完整版)操作系统第二章作业答案

第二章作业 1.操作系统中为什么要引入进程的概念?为了实现并发进程中的合作和协调,以及保证系统的安全,操作系统在进程管理方面要做哪些工作? 答:为了从变化角度动态地分析研究可以并发执行的程序,真实的反应系统的独立性、并发性、动态性和相互制约,操作系统中不得不引入进程的概念。 为了防止操作系统及其关键的数据结构如:PCB等,受到用户程序破坏,将处理机分为核心态和用户态。对进程进行创建、撤销以及在某些进程状态之间的转换控制。 2.试描述当前正在运行的进程状态改变时,操作系统进行进程切换的步骤。答:分为两种情况: (1):运行状态就绪状态:根据进程的自身的情况插入到就绪队列的适当位置,系统收回处理及转入进程调度程序重新进行调度。 (2):运行状态→阻塞状态:系统会调用进程调度程序重新选择一个进程投入运行。 3.现代操作系统一般都提供多任务的环境,是回答以下问题。 为支持多进程的并发执行,系统必须建立哪些关于进程的数据结构? 答:系统必须建立PCB。 为支持进程的状态变迁,系统至少应该供哪些进程控制原语? 答:阻塞、唤醒、挂起和激活原语。 当进程的状态变迁时,相应的数据结构发生变化吗? 答:会根据状态的变迁发生相应的变化。例如:将进程PCB中进程的状态从阻塞状态改为就绪状态,并将进程从阻塞队列摘下,投入到就绪队列中。 4.什么是进程控制块?从进程管理、中断处理、进程通信、文件管理、设备管理及存储管理的角度设计进程控制块应该包含的内容。 答:PCB:描述进程本身的特征、状态、调度信息以及对资源占有情况等的数据结构,是进程存在的唯一标识。 进程控制块所包含的内容: ①进程信息描述;②CPU信息状态;③进程调度信息;④进程控制和资源占用信息。 5.假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统化在进程切换上的开销占系统整个时间的比例是多少? 解:P=(10*10)/[(300+10)*10]=3.2% 6.试述线程的特点及其与进程之间的关系。 答:线程的特点:是被独立分派和调度的基本单位。线程与进程的关系:线程是进程的一部分,是进程内的一个实体;一个进程可以有多个线程,但至少必须有一个线程。

第二章-操作系统进程(练习题答案)

第二章进程管理 1.操作系统主要是对计算机系统全部 (1) 进行管理,以方便用户、提高计算机使 用效率的一种系统软件。它的主要功能有:处理机管理、存储管理、文件管理、 (2) 管 理和设备管理等。Windows和Unix是最常用的两类操作系统。前者是一个具有图形界面的 窗口式的 (3) 系统软件,后者是一个基本上采用 (4) 语言编制而成的 的系统软件。在 (5) 操作系统控制下,计算机能及时处理由过程控制反馈的信息 并作出响应。 供选答案: (1): A. 应用软件 B. 系统软硬件 C. 资源 D. 设备 (2): A. 数据 B. 作业 C. 中断 D. I/O (3): A. 分时 B. 多任务 C. 多用户 D. 实时 (4): A. PASCAL B. 宏 C. 汇编 D. C (5): A. 网络 B. 分时 C. 批处理 D. 实时 答案:CBBDD 2.操作系统是对计算机资源进行的 (1) 系统软件,是 (2) 的接口。 在处理机管理中,进程是一个重要的概念,它由程序块、 (3) 和数据块三部 分组成,它有3种基本状态,不可能发生的状态转换是 (4) 。 虚拟存储器的作用是允许程序直接访问比内存更大的地址空间,它通常使用 (5) 作为它的一个主要组成部分。 供选答案: (1): A. 输入和输出 B. 键盘操作 C. 管理和控制 D. 汇编和执行 (2): A. 软件和硬件 B. 主机和外设 C. 高级语言和机器语言 D. 用户和计算机 (3): A. 进程控制块 B. 作业控制块 C. 文件控制块 D. 设备控制块 (4): A. 运行态转换为就绪态 B. 就绪态转换为运行态 C. 运行态转换为等待态 D. 等待态转换为运行态 (5): A. 软盘 B. 硬盘 C. CDROM D. 寄存器 答案:CDADB 3.在计算机系统中,允许多个程序同时进入内存并运行,这种方法称为 D。 A. Spodling技术 B. 虚拟存储技术 C. 缓冲技术 D. 多道程序设计技术 4.分时系统追求的目标是 C。 A. 高吞吐率 B. 充分利用内存 C. 快速响应 D. 减少系统开销 5.引入多道程序的目的是 D。

进程管理作业答案1

1. 参考答案: 程序在顺序执行时具有如下特征:能够严格地按程序所确定的逻辑次序顺序执行;程序运行时独占全部系统资源,程序的执行结果和它的执行速度无关;只要初始环境相同,程序多次执行的结果不变。总之,程序在顺序执行时具有顺序性、封闭性和可再现性。 程序在并发执行时具有如下特征:由于并发执行的程序与其他程序共享系统资源,其执行时不可避免地受到其他程序执行的影响,执行是间断性的,并且什么时候能执行,什么时候暂停,不能完全由程序自身决定;被共享资源的使用状态由多个程序改变,程序运行失去了封闭性;从而导致了程序执行结果的不可再现性。总而言之,程序并发执行时具有间断性、失去封闭性和执行结果的不可再现性。 2. 参考答案: 因为语句S1,S2均不依赖于其他语句执行的结果,它们没有直接前驱;语句S3不仅依赖于语句S1执行的结果a,而且依赖于S2执行的结果b,所以S1、S2是S3的直接前驱,S4是S3的直接后继。因此可得S1、S2、S3和S4的前趋图是: 3. 参考答案: 第1问答案:Bernstein条件是用于判断两个并发执行的程序并发执行能否得到正确结果,若满足条件则能,否则不能。 第2问解答如下。它们的读集和写集为: R(S1)={w,x},R(S2)={y,z},R(S3)={a,b},R(S4)={c,e} W(S1)={a},W{S2}={b},W{S3}={c},W{S4}={d} 其中,S1和S2由于满足Bernstein条件,可以并行执行,而S1和S3,S2和S3、S3和S4不满足Bernstein条件,它们只能顺序执行。 4. 参考答案: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程具有如下五大特征,是程序所不具备的。动态性:进程的实质是程序的一次执行过程,是动态的概念,而且它由"创建"而产生,由"撤消"而消亡,由"调度"而执行,由于得不到资源而阻塞;并发性:进程可与同存于内存中的其他进程并发执行,即能在同一段时间内同时执行;独立性:进程是能独立运行的基本单位,又是系统资源调度的独立单位;异步性:进程能各自以独立的、不可预知的速度向前推进;结构性:从结构上看,每个进程都由进程控制块、程序段和数据段三部分组成。 5. 参考答案:

进程管理习题及答案

一、判断题 1.( )操作系统的所有程序都必须常驻内存。 2.( )多道程序设计可以缩短系统中作业的执行时间。 3.( )实时系统中的作业周转时间有严格的限制。 4.( )进程获得处理机而运行是通过申请而得到的。 5.( )同一个程序不能被创建成多个进程。 6.( )子进程可以继承它的父进程所拥有的所有资源。 7.( )对于临界区,最重要的是断定哪个进程先执行临界区里的那段程序。 8.( )若进程A和进程B在临界区上互斥,那么当A位于临界区内时不能打断它的 运行。 9.( )进程间的互斥是一种特殊的同步关系。 10.( )临界区是指进程中用于实现进程互斥的那段代码。 11.( )资源的同时共享是指多个用户作业可以在同一时刻使用同一资源。 12.( )并发性是指若干事件在同一时间间隔内发生。 13.( )进程在运行中,可以自行修改自己的进程控制块PCB。 14.( )进程申请CPU得不到满足时,其状态变为等待态。 15.( )当一个进程从等待态变成就绪态,则一定有一个进程从就绪态变成运行态。 16.( )进程状态的转换是由操作系统完成的,对用户是透明的。 17.( )优先数是进程调度的重要依据,优先数大的进程首先被调度运行。 18.( )不可抢占式动态优先数法一定会引起进程长时间得不到运行。 19.( )进程调度的主要功能是从所有处于等待状态的进程中挑选一个"最合适"的进 程,创建好进程运行所需要的环境,然后把处理机分配给它。 20.( )无限循环和无限延迟是一个概念。 21.( )导致系统出现死锁的一种原因是某个用户作业发生了死循环。 22.( )一旦出现死锁,所有进程都不能运行。 23.( )所有进程都挂起时系统陷入死锁。 24.( )参与死锁的进程至少有两个已经占有资源。 25. ( )有M个进程的操作系统出现死锁时,死锁进程的个数为1

操作系统-进程管理实验报告

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码如下: #include #include #include #include #include int main(int argc,char* argv[]) { pid_t pid1,pid2; pid1 = fork(); if(pid1<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid1 == 0){ printf("b\n"); } 1/11

else{ pid2 = fork(); if(pid2<0){ fprintf(stderr,"childprocess1 failed"); exit(-1); } else if(pid2 == 0){ printf("c\n"); } else{ printf("a\n"); sleep(2); exit(0); } } return 0; } 结果如下: 分析原因: pid=fork(); 操作系统创建一个新的进程(子进程),并且在进程表中相应为它建立一个新的表项。新进程和原有进程的可执行程序是同一个程序;上下文和数据,绝大部分就是原进程(父进程)的拷贝,但它们是两个相互独立的进程!因此,这三个进程哪个先执行,哪个后执行,完全取决于操作系统的调度,没有固定的顺序。 (2)进程的控制 修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。 将父进程的输出改为father process completed 2/11

进程管理及答案

一、单项选择题: 1、在多进程的系统中,为了保证公共变量的完整性,各进程应互斥进入临界区。所谓临界区是指()。 a. 一个缓冲区 b. 一段数据区 c. 同步机制 d. 一段程序 2、一个进程是()。 a. 由协处理机执行的一个程序 b. 一个独立的程序+数据集 c. PCB结构与程序和数据的组合 d. 一个独立的程序 3、在操作系统中,信号量表示资源实体,是一个与队列有关的()变量,其值仅能用P、V 操作来改变。 a. 实型 b. 整型 c. 布尔型 d. 记录型 4、设有5个进程共享一个互斥段,如果最多允许有3个进程同时进入互斥段,则所采用的 互斥信号量的初值应是()。 a. 5 b. 3 c. 1 d. 0 5、并发进程之间()。 a. 彼此无关 b. 必须同步 c. 必须互斥 d. 可能需要同步或互斥 6、实现进程之间同步与互斥的通信工具为()。 a. P、V操作 b. 信箱通信 c. 消息缓冲 d. 高级通信 7、n个进程共享某一临界资源,则互斥信号量的取值范围为()。 a. 0~1 b. –1~0 c. 1~-(n-1) d. 0~-(n-1) 二、多项选择题: 1、进程的属性包括( )。 A.进程就是程序,或者说进程是程序的另一种说法。 B.一个被创建的进程,在它消灭之前,在任何时刻总是处于三种状态之一。 C.多个不同的进程可以包含相同的程序。 D.一个处于等待队列中的进程,既使进入其他状态,仍然放在等待队列之中。 E.两个进程可以同时处于运行状态。 2、进程具有的特性有()。 A.动态性B.共享性C.并发性D.静态性E.独立性F.不确定性 3、若系统有同类资源5个,被3个进程所共享,每个进程最多可申请()个该类资源时,可使系统不会产生死锁。 A.1 B.2 C.4 D.3 E.5 4、一个进程从阻塞状态变为就绪状态的原因可能是()。 A.进程调度程序的调度B.现运行进程的时间片的用完C.被阻塞进程的I/O操作完成D.现运行进程执行了P操作E.现运行进程执行了V操作 5、单道程序执行的特征有()。 A.顺序性B.确定性C.可再现性D.独占性E.封闭性 6、解决死锁的对策有() A.预防死锁B.避免死锁C.条件对策D.检测对策E.解除死锁 7、进程的三种基本状态是()。 A.就绪B.运行C.阻塞D.提交E.撤销 8、死锁的预防措施有()。 A.静态资源分配法B.动态资源分配法C.资源顺序分配法D.非剥夺控制法E.剥夺控制法 9、进程从运行态进入就绪态的原因可能是()。 A.出现了I/O请求B.某I/O请求已完成C.时间片到D.现运行进程执行了P操

操作系统实验二

操作系统实验实验二进程管理 学号 1215108019 姓名克帆 学院信息学院 班级 12电子2

实验目的 1、理解进程的概念,明确进程和程序的区别。 2、理解并发执行的实质。 3、掌握进程的创建、睡眠、撤销等进程控制方法。 实验容与要求 基本要求:用C语言编写程序,模拟实现创建新的进程;查看运行进程;换出某个进程;杀死进程等功能。 实验报告容 1、进程、进程控制块等的基本原理。 进程是现代操作系统中的一个最基本也是最重要的概念,掌握这个概念对于理解操作系统实质,分析、设计操作系统都有其非常重要的意义。为了强调进程的并发性和动态性,可以给进程作如下定义:进程是可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。 进程又就绪、执行、阻塞三种基本状态,三者的变迁图如下: 由于多个程序并发执行,各程序需要轮流使用CPU,当某程序不在CPU上运行时,必须保留其被中断的程序的现场,包括:断点地址、程序状态字、通用寄存器的容、堆栈容、程序当前状态、程序的大小、运行时间等信息,以便程序再次获得CPU时,能够正确执行。为了保存这些容,需要建立—个专用数据结构,我们称这个数据结构为进程控制块PCB (Process Control Block)。 进程控制块是进程存在的惟一标志,它跟踪程序执行的情况,表明了进程在当前时刻的状态以及与其它进程和资源的关系。当创建一个进程时,实际上就是为其建立一个进程控制块。 在通常的操作系统中,PCB应包含如下一些信息: ①进程标识信息。为了标识系统中的各个进程,每个进程必须有惟一的标识名或标 识数。 ②位置信息。指出进程的程序和数据部分在存或外存中的物理位置。 ③状态信息。指出进程当前所处的状态,作为进程调度、分配CPU的依据。 ④进程的优先级。一般根据进程的轻重缓急其它信息。 这里给出的只是一般操作系统中PCB所应具有的容,不同操作系统的PCB结构是不同的,我们将在2.8节介绍Linux系统的PCB结构。

操作系统实验二(进程管理)

操作系统进程管理实验 实验题目: (1)进程的创建编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。试观察记录屏幕上的显示结果,并分析原因。 (2)进程的控制修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕上出现的现象,并分析原因。 (3)编制一段程序,使其实现进程的软中断通信。要求:使用系统调用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按Del键);当捕捉到中断信号后,父进程调用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:Child process 1 is killed by parent! Child process 2 is killed by parent! 父进程等待两个子进程终止后,输出如下的信息后终止:Parent process is killed! 在上面的程序中增加语句signal(SIGINT, SIG_IGN)和signal(SIGQUIT, SIG_IGN),观察执行结果,并分析原因。 (4)进程的管道通信编制一段程序,实现进程的管道通信。使用系统调用pipe( )建立一条管道线;两个进程P1和P2分别向管道各写一句话:Child 1 is sending a message! Child 2 is sending a message! 而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。要求父进程先接收子进程P1发来的消息,然后再接收子进程P2发来的消息。 实验源程序及报告: (1)、进程的创建 #include int main(int argc, char *argv[]) { int pid1,pid2; /*fork first child process*/ if ( ( pid1=fork() ) < 0 ) { printf( "ProcessCreate Failed!"); exit(-1); }

进程管理练习及参考答案

OS概述、进程管理练习答案 一、单项选择题(OS概述部分) 1、UNIX O.S. 属于一种( A )操作系统。 A.分时 B.批处理 C.实时 D.分布式 2、计算机软件中,最靠近硬件层次的一类软件是(C )。 A.应用软件 B.支撑软件 C.系统软件 D.编译软件 3、下列四个操作系统中,是分时系统的为(C )。 A.CP/M B.MS-DOS C.UNIX D.WINDOWS NT 4、在操作系统中,设计者往往编制了许多完成不同功能的子程序供用户程序中使用,这些子程序被称为(B )。 A.作业控制语言 B.系统调用 C.操作控制命令 D.访管命令 5、个人计算机操作系统也被称为( B )。 A.多用户操作系统 B.单用户操作系统 C.实时操作系统 D.批处理操作系统 6、批处理系统的主要缺点是( B )。 A.CPU的利用率不高 B.失去了交互性 C.不具备并行性 D.以上都不是 7、DOS操作系统主要的功能是(A )。 A.文件管理功能 B.中断处理功能 C.作业管理功能 D.打印管理功能 8、第一个在计算机上实现的操作系统是(C )。 A.分时操作系统 B.实时操作系统 C.单道批处理系统 D.单用户操作系统 9、操作系统的功能是进行处理器管理、作业管理、( B )管理、设备管理和文件管理。 A.进程 B.存储器 C.硬件 D.软件 10、设计实时操作系统时,首先应该考虑系统的(B )。 A.可靠性和灵活性 B.实时性和可靠性 C.灵活性和可靠性 D.优良性和分配性 11、操作系统是计算机系统的(B )。 A.应用软件 B.系统软件 C.硬件 D.固件 12、从工作的角度看操作系统,可以分为:单用户操作系统、批处理系统、(B )和实时系统。 A.单机操作系统 B.分时操作系统 C.面向过程的操作系统 D.网络操作系统 13、下列系统中,( B )是实时系统。 A.计算机激光照排系统 B.航空定票系统 C.办公自动化系统 D.计算机辅助设计系统 14、工业过程控制系统中运行的操作系统最好是( B )。 A.分时系统 B. 实时系统 C.分布式操作系统 D.网络操作系统 15、计算机发展到第三代,操作系统已成为软件的一个重要分支,最早的操作系统是(D )。 A.分布式系统 B. 实时系统 C.分时系统 D.批处理系统 16、设计实时操作系统时,( B )不是主要的追求目标。 A.安全可靠 B. 资源利用率 C.及时响应 D.快速处理 二、单项选择题(进程控制与同步部分) 1、进程从运行状态变为等待状态的原因可能是(A )。 A.输入/输出事件发生 B.时间片到 C.输入/输出事件完成 D.某个进程被唤醒

操作系统习题集------进程管理

习题集 - 2 - 进程管理 1. 在优先级调度中,__________类进程可能被“饿死”,即长时间得不到调度。 A.短进程 B.长进程 C.低优先级进程 D.大内存进程 解: C。优先级调度算法(PRI)的基本思想是:内核为每个进程赋予一个优先级,进程按照优先级的大小顺序在就绪队列中排队,内核将CPU分配给就绪队列头部的第一个进程——优先级最大的进程。因此,进程的优先级越低,在就绪队列中的排队位置就越靠近队列尾,获得运行之前的等待时间就越长。低优先级的进程必须等待所有高优先级进程运行结束后才会被调度运行。如果不断有高优先级的进程加入就绪队列,那么低优先级进程就会一直等待下去。这就是所谓的“饿死”现象。 2. 在下面的系统调用中,__________不会导致进程阻塞。 A.读/写文件 B.获得进程PID C.申请内存 D.发送消息 解: B。当正在执行的进程需要使用某种资源或等待某个事件时,如果资源已被其他进程占用或事件尚未出现,该进程不能获得所需的资源而无法继续运行,于是,进程将被阻塞。进程在阻塞状态中等待资源被释放,或等待事件的发生。所以,进程在执行系统调用时,如果需要使用某种资源,就可能导致进程阻塞。“读/写文件”需要使用设备和文件缓冲区;“申请内存”需要分配内存资源;“发送消息”需要使用消息缓冲区。 3. 下面关于临界区的叙述中,正确的是__________ A.临界区可以允许规定数目的多个进程同时执行 B.临界区只包含一个程序段 C.临界区是必须互斥地执行的程序段 D.临界区的执行不能被中断 解: C。临界段(临界区)的概念包括两个部分:①临界资源:必须互斥访问的资源。例如,需要独占使用的硬件资源,多个进程共享的变量、结构、队列、栈、文件等软件资源。②临界区:访问临界资源的、必须互斥地执行的程序段。即,当一个进程在某个临界段中执行时,其他进程不能进入相同临界资源的任何临界段。

进程管理习题及答案

第二章进程管理习题及答案 一、填空题 1.进程的静态描述由三部分组成:① 、② 和③ 。 【答案】①PCB、②程序部分、③相关的数据结构集 【解析】PCB是系统感知进程的唯一实体。进程的程序部分描述了进程所要 完成的功能,而数据结构集是程序在执行时必不可少的工作区和操作对象。后两 部分是进程完成所需功能的物质基础。 2.进程存在的标志是。 【答案】进程控制块PCB 【解析】系统根据PCB感知进程的存在和通过PCB中所包含的各项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。 3.① 是现代操作系统的基本特征之一,为了更好地描述这一特征而 引入了 ② 这一概念。 【答案】①程序的并发执行,②进程 【解析】程序的并发执行和资源共享是现代操行系统的基本特征。程序的并 发执行使程序失去了程序顺序执行时所具有的封闭性和可再现性。在程序并发执 行时,程序这个概念不能反映程序并发执行所具有的特性,所以引入进程概念来 描述程序并发执行所具有的特点。 4.给出用于进程控制的四种常见的原语① 、② 、③ 和④ 。【答案】①创建原语、②撤消原语、③阻塞原语、④唤醒原语 【解析】进程控制是系统使用一些具有特定功能的程序段来创建、撤消进程 以及完成进程各状态间的转换,从而达到多个过程高效率地并行执行和协调,实 现资源共享的目的。把那些在管态下执行的具有特定功能的程序段称为原语。 5.进程被创建后,最初处于① 状态,然后经② 选中后进入③ 状态。 【答案】①就绪,②进程调度程序,③运行 【解析】进程的从无到有,从存在到消亡是由进程创建原语和撤消原语完成的。被创建的进程最初处于就绪状态,即该进程获得了除处理机以外的所有资源,处于准备执行的状态;从就绪状态到运行状态的转换是由进程调度程序来完成的。 6.进程调度的方式通常有① 和② 方式两种。 【答案】①可剥夺、②非剥夺 【解析】所谓可剥夺方式,是指就绪队列中一旦有优先级高于当前运行进程 的优先级的进程存在时,便立即发生进程调度,转让处理机。而非剥夺方式则是指:即使在就绪队列中存在有优先级高于当前运行进程的进程,当前进程仍将继 续占有处理机,直到该进程完成或某种事件发生(如I/O事件)让出处理机。 7.轮转法主要是用于① 的调度算法,它具有较好的② 时间, 且对每个进程来说都具有较好的③ 性。 【答案】①分时系统②响应③公平 【解析】所谓轮转调度算法,就是将CPU的处理时间分成固定的时间片,处 于就绪状态的进程按一定的方式(如先到先服务FCFS)排成一个队列,该队列

相关文档