最新进程的创建与并发执行-带答案版
- 格式:docx
- 大小:38.55 KB
- 文档页数:13
习题集第二章参考答案一、单项选择题1、 D2、 D3、 B4、 D5、 C6、 B7、 A 8、 B9、 C10、 B11、 C12、 B13、 D14、 C15、 D16、 A17、 B18、 A19、 B20、 D21、 C22、 D23、 B24、 D25、 D26、 B27、 C28、 B29、 A30、 B31、 A32、 B33、 A34、 C二、填空题1 进程2 就绪执行阻塞3 等待的事件发生的4 进程控制块5 进程控制块(或PCB)6 99 1 1007 就绪8 静止阻塞9 阻塞就绪10 共享存储器,管道通信,消息传递11 信号量12 [1-n,1]13 进程控制块(PCB)14 同步互斥信号量15 wait(mutex)signal(mutex)16 顺序性,封闭性,可再现性17 并发18 临界区19 wait, signal20 1,(1-n)或-(n-1)21 722 wait signal23 阻塞就绪三、判断题×√1×2√3×4×5×6×7√8×9×10√11√12×13√四、简答题1、解释进程的顺序性和并发性。
答:进程的顺序性是指进程在顺序的处理器上的执行是严格按序的,只有在前一个操作结束后才能开始后继操作。
进程并发性是指一组进程可以轮流占用处理器,一个进程的工作没有全部完成之前,另一个进程就可开始工作。
把这样的一组进程看做是同时执行的,把可同时执行的进程称为并发进程。
所以,进程的顺序性是对每个进程而言的,进程的并发性是对一组具有顺序性的进程而言的。
一组进程并发执行时各进程轮流占用处理器交替执行,占用处理器的进程按各自确定的顺序依次执行指令。
2、简述进程与程序的区别和联系。
答:区别:(1)进程能真实地描述并发,而程序不能。
(2)动态性是进程的基本特征,进程实体具有创建、执行和撤销的生命周期,而程序只是一组有序指令的集合,存放在某种介质上,是静态的。
第2章进程管理练习题(答案)第二章进程管理一、单项选择题1、在单一处理机上执行程序,多道程序的执行是在(B)进行的。
A.同一时刻B. 同一时间间隔内C.某一固定时刻D. 某一固定时间间隔内2、引入多道程序技术后,处理机的利用率( C)。
A.降低了B. 有所改善C.大大提高D. 没有变化,只是程序的执行方便了3、顺序程序和并发程序的执行相比,( C)。
A.基本相同 C.并发程序执行总体上执行时间快B. 有点不同 D.顺序程序执行总体上执行时间快4、单一处理机上,将执行时间有重叠的几个程序称为(C )。
A.顺序程序B. 多道程序C.并发程序D. 并行程序5、进程和程序的本质区别是(D )。
A.存储在内存和外存B.顺序和非顺序执行机器指令C.分时使用和独占使用计算机资源D.动态和静态特征6、进程就是程序在并发环境中的执行过程,它是系统进行资源分配和调度的一个基本单位。
进程具有[1A]、[2D]、调度性、异步性和结构性等基本特征。
进程是一次执行过程,具有生命期体现了进程的[1]特征。
进程由程序段、[3B]、[4C]组成,其中[4]是进程在系统中存在的唯一标识。
供选择的答案:[1][2] :A、动态性 B、静态性 C、共行性 D、并发性 E、可执行性 F、易用性[3] :A、过程 B、数据 C、进程标识符 D、函数[4] :A、FCB B、FIFO C、PCB D、JCB7、进程执行时的间断性,决定了进程可能具有多种状态。
进程的基本状态有三种,在分时系统中,当一个进程拥有的时间片到时,则该进程即由[1D]进入[2A]。
如果出现因某种原因使得处理机空闲时,则需要从就绪队列中选择一进程,并将处理机分配给它,此时该进程进入[3D],这个过程是由[4C]来完成。
供选择的答案:[1][2][3] :A、就绪状态 B、静止状态 C、阻塞状态 D、运行状态[4] :A、进程控制程序B、资源分配程序C、进程调度程序D、处理机分配程序8、为了描述进程的动态变化过程,采用了一个与进程相联系的(C ),根据它而感知进程的存在。
电大操作系统实验报告3_ 进程管理实验电大操作系统实验报告 3 进程管理实验一、实验目的进程管理是操作系统的核心功能之一,本次实验的目的是通过实际操作和观察,深入理解进程的概念、状态转换、进程调度以及进程间的通信机制,掌握操作系统中进程管理的基本原理和方法,提高对操作系统的整体认识和实践能力。
二、实验环境本次实验使用的操作系统为 Windows 10,编程语言为 C 语言,开发工具为 Visual Studio 2019。
三、实验内容及步骤(一)进程的创建与终止1、编写一个 C 程序,使用系统调用创建一个子进程。
2、在父进程和子进程中分别输出各自的进程 ID 和父进程 ID。
3、子进程执行一段简单的计算任务,父进程等待子进程结束后输出结束信息。
以下是实现上述功能的 C 程序代码:```cinclude <stdioh>include <stdlibh>include <unistdh>int main(){pid_t pid;pid = fork();if (pid < 0) {printf("创建子进程失败\n");return 1;} else if (pid == 0) {printf("子进程:我的进程 ID 是%d,父进程 ID 是%d\n",getpid(), getppid());int result = 2 + 3;printf("子进程计算结果:2 + 3 =%d\n", result);exit(0);} else {printf("父进程:我的进程 ID 是%d,子进程 ID 是%d\n",getpid(), pid);wait(NULL);printf("子进程已结束\n");}return 0;}```编译并运行上述程序,可以观察到父进程和子进程的输出信息,验证了进程的创建和终止过程。
(二)进程的状态转换1、编写一个 C 程序,创建一个子进程,子进程进入睡眠状态一段时间,然后被唤醒并输出状态转换信息。
国开电大操作系统形考作业1-3答案文章中未出现段落格式错误或明显有问题的部分。
1.操作系统属于系统软件,其基本职能是控制和管理系统内各种资源,有效地组织多道程序的运行。
操作系统对缓冲区的管理属于设备管理的功能。
操作系统内核与用户程序、应用程序之间的接口是系统调用。
2.UNIX操作系统核心层的实现结构设计采用的是层次结构。
UNIX命令的一般格式是命令名[选项][参数]。
工业过程控制系统中运行的操作系统最好是实时系统。
3.进程控制块是描述进程状态和特性的数据结构,一个进程只能有唯一的进程控制块。
程序是静态概念,进程是动态概念。
两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的同步关系。
两个进程争夺同一个资源不一定死锁。
若干进程因竞争资源而无休止地循环等待着,而且都不释放已占有的资源,是系统出现死锁的原因。
4.进程从运行状态变为阻塞状态的原因是输入或输出事件发生。
如果信号量S的值是0,此时进程A执行P(S)操作,那么,进程A会进入阻塞态,让出CPU。
若P、V操作的信号量S初值为2,当前值为-1,则表示有1个等待进程。
5.批处理系统的主要缺点是失去了交互性。
为了描述进程的动态变化过程,采用了一个与进程相联系的进程控制块,根据它而感知进程的存在。
为用户分配主存空间,保护主存中的程序和数据不被破坏,提高主存空间的利用率,是存储管理的功能。
实时操作系统追求的目标是快速响应。
6.该操作系统应该是分时系统,以使系统中所有的用户都能得到及时的响应。
系统调用是由操作系统提供的内部调用,它只能通过用户程序间接使用。
一个进程可以包含多个线程,这样可以更好地利用系统资源,提高系统的并发性和响应速度。
因此,引入线程的好处包括:提高系统的并发性、提高系统的响应速度、更好地利用系统资源、提高程序的可靠性和可维护性等。
进程状态的转换包括:从创建到就绪、从就绪到运行、从运行到阻塞、从阻塞到就绪、从运行到结束。
第三版操作系统课后习题答案西安电子科技大学第一章操作系统引论1. 设计现代OS的主要目标是什么?方便性,有效性,可扩充性和开放性.2. OS的作用可表现为哪几个方面?a. OS作为用户与计算机硬件系统之间的接口;b. OS作为计算机系统资源的管理者;c. OS实现了对计算机资源的抽象.7. 实现分时系统的关键问题是什么?应如何解决?a. 关键问题:使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。
b. 解决方法:------对于及时接收,只需在系统中设置一多路卡,使主机能同时接收用户从各个终端上输入的数据;此外,还须为每个终端配置一个缓冲区,用来暂存用户键入的命令(或数据)。
------对于及时处理,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行,这样在不长的时间内,能使每个作业都运行一次。
12. 试在交互性,及时性和可靠性方面,将分时系统与实时系统进行比较.a. 分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强的交互能力;而实时系统虽然也有交互能力,但其交互能力不及前。
b. 实时信息系统对实用性的要求与分时系统类似,都是以人所能接收的等待时间来确定;而实时控制系统的及时性则是以控制对象所要求的开始截止时间和完成截止时间来确定的,因此实时系统的及时性要高于分时系统的及时性。
c. 实时系统对系统的可靠性要求要比分时系统对系统的可靠性要求高。
13. OS具有哪几大特征?它的最基本特征是什么?a. 并发性、共享性、虚拟性、异步性。
b. 其中最基本特征是并发和共享。
(最重要的特征是并发性)18. 是什么原因使操作系统具有异步性特征?在多道程序环境下允许多个进程并发执行,但由于资源等因素的限制,进程的执行通常并非一气呵成,而是以走走停停的方式运行。
内存中的每个进程在何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需要多少时间才能完成,都是不可预知的,因此导致作业完成的先后次序与进入内存的次序并不完全一致。
操作系统实验--进程的创建h e u(总13页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--操作系统实验报告哈尔滨工程大学计算机科学与技术学院第三讲进程的创建一、实验概述1. 实验名称进程的创建2. 实验目的1.练习使用EOS API函数CreateProcess创建一个进程,掌握创建进程的方法,理解进程和程序的区别。
2.调试跟踪CreateProcess函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位3. 实验类型验证型实验4. 实验内容(1)准备实验(2)练习使用控制台命令创建EOS应用程序的进程(3)练习通过编程的方式让应用程序创建另一应用程序的进程。
(4)调试Create Process函数(5)调试Ps Create Process函数(6)练习通过编程的方式创建应用程序的多个进程二、实验环境EOS实验系统,WINDOWS XP 操作系统三、实验过程1. 设计思路和流程图2. 算法实现3. 需要解决的问题及解答1).在源代码文件提供的源代码基础上进行修改,要求使用同时创建10个进程。
答:参照实验报告第5,6部分。
2).学习本书第 5 章中的节,了解关于线程的相关知识,然后尝试调试 PspCreateThread 函数,观察线程控制块(TCB)初始化的过程。
3).在 PsCreateProcess 函数中调用了 PspCreateProcessEnvironment 函数后又先后调用了PspLoadProcessImage 和 PspCreateThread 函数,学习这些函数的主要功能。
能够交换这些函数被调用的顺序吗思考其中的原因。
答:PspCreateProcessEnvironment 的主要功能是创建进程控制块并且为进程创建了地址空间和分配了句柄表。
PspLoadProcessImage是将进程的可执行映像加载到了进程的地址空间中。
实验一、进程控制实验1.1 实验目的加深对于进程并发执行概念的理解。
实践并发进程的创建和控制方法。
观察和体验进程的动态特性。
进一步理解进程生命期期间创建、变换、撤销状态变换的过程。
掌握进程控制的方法,了解父子进程间的控制和协作关系。
练习 Linux 系统中进程创建与控制有关的系统调用的编程和调试技术。
1.2 实验说明1)与进程创建、执行有关的系统调用说明 进程可以通过系统调用fork()创建子进程并和其子进程并发执行.子进程初始的执行映像是父进程的一个复本.子进程可以通过 exec()系统调用族装入一个新的执行程序。
父进程可以使用 wait()或 waitpid()系统调用等待子进程的结束并负责收集和清理子进程的退出状态。
fork()系统调用语法:pid_t#include <unistd.h>fork(void);fork 成功创建子进程后将返回子进程的进程号,不成功会返回-1.exec 系统调用有一组 6 个函数,其中示例实验中引用了 execve 系统调用语法:#include <unistd.h>const char * envp[]);path 要装const char *argv[],int execve(const char *path,入的新的执行文件的绝对路径名字符串.argv[] 要传递给新执行程序的完整的命令参数列表(可以为空).envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空).Exec 执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。
如果 exec 调用失败,它会返回-1。
wait() 系统调用语法:#include <sys/types.h>pid_t#include <sys/wait.h>wait(int *status);status 用pid_t waitpid(pid_t pid,int *status,int option);于保留子进程的退出状态pid 可以为以下可能值:-1 等待所有 PGID 等于 PID 的绝对值的子进程1 等待所有子进程0 等待所有 PGID 等于调用进程的子进程>0 等待 PID 等于 pid 的子进程 option 规定了调用 waitpid 进程的行为:WNOHANG 没有子进程时立即返回WUNTRACED 没有报告状态的进程时返回wait 和 waitpid 执行成功将返回终止的子进程的进程号,不成功返回-1。
实验二进程管理2.1 进程的创建与并发执行1.实验目的(1) 加深对进程概念的理解,理解进程和程序的区别。
(2) 认识并发进程的实质。
分析进程争用资源的现象,学习解决进程互斥的方法。
(3) 理解系统调用和用户命令的区别。
2.实验类型:验证型3.实验学时:24.实验原理和知识点(1) 实验原理:程序的并发执行具有随机性和不可再现性。
程序并发执行会导致资源共享和资源竞争,各程序向前执行的速度会受资源共享的制约。
程序的动态执行过程用进程这个概念来描述。
由于向前推进的速度不可预知,所以多个进程并发地重复执行,整体上得到的结果可能不同。
但要注意,就其中某单个进程而言,其多次运行结果是确定的。
(2) 知识点:进程、子进程、并发执行的特性;5.实验环境(硬件环境、软件环境):(1)硬件环境:Intel Pentium III 以上CPU,128MB以上内存,2GB以上硬盘(2)软件环境:linux操作系统。
6. 预备知识(1) fork()系统调用头文件:#include <unistd.h> unix standard header/*是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,例如read函数、write函数和getpid函数*/函数原型: pid_t fork(void);/*是Linux下的进程号类型,也就是Process ID _ Type 的缩写。
其实是宏定义的unsigned int类型*/函数功能:fork的功能是创建子进程。
调用fork的进程称为父进程。
如图2.1所示。
子进程是父进程的一个拷贝,它继承了父进程的用户代码、组代码、环境变量、已打开的文件代码、工作目录及资源限制。
fork语句执行后,内核向父进程返回子进程的进程号,向子进程返回0。
父子进程都从fork()的下一句开始并发执行。
返回值:返回值==-1:创建失败。
返回值==0:程序在子进程中。
Linux思考题51.fork()与clone()二者之间得区别就是什么?答:fork创建一个进程时,子进程只就是完全复制父进程得资源,复制出来得子进程有自己得task_struct结构与pid,但却复制父进程其它所有得资源。
通过fork创建子进程,需要将上面描述得每种资源都复制一个副本。
fork()调用执行一次返回两个值,对于父进程,fork函数返回子程序得进程号,而对于子程序,fork函数则返回零,这就就是一个函数返回两次得本质。
在fork之后,子进程与父进程都会继续执行fork调用之后得指令。
系统调用fork()与vfork()就是无参数得,而clone()则带有参数。
fork()就是全部复制,vfork()就是共享内存,而clone()就是则可以将父进程资源有选择地复制给子进程,而没有复制得数据结构则通过指针得复制让子进程共享,具体要复制哪些资源给子进程,由参数列表中得clone_flags来决定。
另外,clone()返回得就是子进程得pid。
2.什么就是进程?什么就是线程?Linux系统中得进程有那些状态?如何获取系统中各进程得状态?答:进程就是指在系统中正在运行得一个应用程序;线程就是系统分配处理器时间资源得基本单元,或者说进程之内独立执行得一个单元。
对于操作系统而言,其调度单元就是线程。
一个进程至少包括一个线程,通常将该线程称为主线程。
一个进程从主线程得执行开始进而创建一个或多个附加线程,就就是所谓基于多线程得多任务。
Linux系统中得进程状态有:TASK_RUNNING(运行状态),TASK_INTERRUPTIBLE(可中断睡眠状态),TASK_UNINTERRUPTIBLE(不可中断得睡眠状态),TASK_STOPPED(暂停状态),TASK_NONINTERACTIVE(不可交互睡眠状态),TASK_DEAD(死亡状态),EXIT_ZOMBIE(僵死进程),EXIT_DEAD(僵死撤销状态)ps 查瞧静态得进程信息可以使用man 来查瞧ps 得使用参数以下就是几个常使用到得,a 显示当前终端得所有进程信息u 使用以用户为主得格式输出进程信息x 显示当前用户在所有终端下得进程信息-e 显示系统内得所有进程# ps 只显示当前用户打开得进程]# ps aux 显示系统中所有进程信息3.Linux系统中进程有哪两种模式?各有何特点?答:用户进程与系统进程,用户进程就就是用户自己打开得应用程序,可有可无。
操作系统_苏州大学中国大学mooc课后章节答案期末考试题库2023年1.以下有关内核线程的论述,正确的是()。
参考答案:内核线程由内核进行创建和撤销_内核线程由内核完成线程调度_内核线程由内核管理2.引入线程后,处理机只在线程间切换。
参考答案:错误3.Java中的线程有四种状态,分别是:可运行(Runable)、就绪(Ready)、阻塞(Blocked)、死亡(Dead)。
参考答案:错误4.程序开发者必须创建一个线程去管理内存的分配。
参考答案:错误5.Unix的exec创建的进程可以和创建它的父进程共享各类资源,从而使得它的创建、切换成本较低。
参考答案:错误6.为了照顾紧迫型进程,应采用()调度策略。
参考答案:PR7.可能存在饥饿问题的调度算法有()。
参考答案:PR_SJF8.在页式存储管理中,引入快表可以减少每一次的内存访问时间。
参考答案:错误9.用户程序中使用的从零地址开始的地址编号是逻辑地址。
参考答案:正确10.内存管理的目的是()。
参考答案:进行存储保护_提高内存数据访问的速度_提高内存利用率11.离散内存分配技术包括()。
参考答案:段页式_分段_分页12.存在外碎片的存储管理方式有()。
参考答案:可变分区分配_段式存储管理13.把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上的备份区,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需的程序或数据,调入内存。
这种技术是()。
参考答案:交换14.一个32位地址的计算机使用两级页表。
虚拟地址被分成9位的顶级页表域、11位的二级页表域和一个偏移量,页面大小是()。
参考答案:4KB15.分页存储管理中的页表由()建立参考答案:操作系统16.TLB在计算机系统中是用于()。
参考答案:地址变换17.在页式存储管理中,为了实现主存的空间分配,应设置()。
参考答案:页表18.在RR算法中,时间片越小越好。
参考答案:错误19.SJF算法可以获得最小的响应时间。