第2章 进程与线程
- 格式:ppt
- 大小:1.21 MB
- 文档页数:37
第二章练习题一、单项选择题1.某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将( C )。
A. 从就绪变为运行; B.从运行变为就绪;C.从运行变为阻塞; D.从阻塞变为就绪2.进程控制块是描述进程状态和特性的数据结构,一个进程( D )。
A.可以有多个进程控制块;B.可以和其他进程共用一个进程控制块;C.可以没有进程控制块;D.只能有惟一的进程控制块。
3.临界区是指并发进程中访问共享变量的(D)段。
A、管理信息B、信息存储C、数据D、程序4. 当__ B__时,进程从执行状态转变为就绪状态。
A. 进程被调度程序选中B. 时间片到C. 等待某一事件D. 等待的事件发生5. 信箱通信是一种( B )通信方式。
A. 直接通信B. 高级通信C. 低级通信D. 信号量6. 原语是(B)。
A、一条机器指令B、若干条机器指令组成C、一条特定指令D、中途能打断的指令7. 进程和程序的一个本质区别是(A)。
A.前者为动态的,后者为静态的;B.前者存储在内存,后者存储在外存;C.前者在一个文件中,后者在多个文件中;D.前者分时使用CPU,后者独占CPU。
8. 任何两个并发进程之间存在着(D)的关系。
A.各自完全独立B.拥有共享变量C.必须互斥D.可能相互制约9. 进程从运行态变为等待态可能由于(B )。
A.执行了V操作 B.执行了P 操作C.时间片用完 D.有高优先级进程就绪10. 用PV操作管理互斥使用的资源时,信号量的初值应定义为(B)。
A.任意整数 B.1 C.0 D.-111. 现有n个具有相关临界区的并发进程,如果某进程调用P 操作后变为等待状态,则调用P操作时信号量的值必定为(A)。
A.≤0 B.1C.n-1 D.n12. 用PV操作管理临界区时把信号量的初值定义为1,现已有一个进程在临界区,但有n个进程在等待进入临界区,这时信号量的值为(C)。
A.-1 B.1 C.-n D.n13. 用V操作唤醒一个等待进程时,被唤醒进程的状态应变成(B)状态。
第二章进程与线程·在早期计算机中,每个字节的读写直接由CPU处理(即没有DMA),对于多道程序而言这种组织方式有什么含义?在这个读取任务中包括两个时间:CPU复制数据的时间和IO设备工作的时间。
而早期IO设备的速度太慢了,IO 设备的工作时间远大于把数据存到内存中所需要的时间,CPU则会空转很长时间,此时多道程序设计就非常必要了。
进程是OS提供的最古老最需要的抽象概念,它把来回切换的多道程序描述成一种多程序的并发。
2.1进程多道程序设计站在系统的角度——提高了CPU的利用率站在用户的角度——可“同时”运行多个程序对某个具体的任务而言——执行速度不变单个CPU不能真正实现并行计算,其在任意时刻都只能执行一道指令。
(第一章到第六章都是以单个CPU来讲解的)·如何解决这个矛盾:OS采用了一系列软件技术实现程序并发执行。
·什么是程序的并发执行【“大家注意把这个刻在脑子里”】若干个程序段同时在系统中运行,这些程序段的执行在时间上是重叠的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重叠是很小的一部分,也称这几个程序段是并发执行的。
·什么是运行时间:程序在内存中的时间。
只有一个CPU,但是又希望有多个CPU——虚拟出多个CPU。
(“伪并行”,在任意时刻只有一个程序是活跃的)面向每个任务虚拟出一个CPU,这就是进程。
(CPU:从内存中取指令并执行)虚拟出的CPU本质:对每个进程虚拟了程序计数器。
2.1.1进程模型并行性:处理多个同时性活动的能力并行处理:利用多个处理部件,为完成一个整体任务而同时执行在任意时刻物理PC只对应一个程序的指令底层:CPU在各个进程间来回切换2.1.2进程的创建有4种主要事件导致进程的创建:1.系统初始化(foreground processes and daemons)2.执行了正在运行的进程所调用的进程创建系统调用★3.用户请求创建一个新进程4.一个批处理作业的初始化Fork子进程是父进程的精确副本。
第2章进程与线程-习题集一、选择题1.以下关于进程的描述中,正确的是()。
【*,联考】A. 进程获得CPU运行是通过调度得到的B. 优先级是进程调度的重要依据,一旦确定就不能改变C. 在单CPU的系统中,任意时刻都有一个进程处于运行状态D. 进程申请CPU得不到满足时,其状态变为阻塞2.一个进程是()。
【*,联考】A. 由处理机执行的一个程序B. 一个独立的程序+数据集C. PCB结构、程序和数据的组合D. 一个独立的程序3.并发进程指的是()。
【*,★,联考】A. 可并行执行的进程B. 可同一时刻执行的进程C. 可同时执行的进程D. 不可中断的进程4.当一个进程处于这样的状态时,(),称为阻塞态。
【*,★,联考】A. 它正等着输入一批数据B. 它正等着进程调度C. 它正等着分给它一个时间片D. 它正等进入内存5.某个运行中的进程要申请打印机,它将变为()。
【*,联考】A. 就绪态B. 阻塞态C. 创建态D. 撤销态6.以下进程状态转变中,()转变是不可能发生的。
【**,★,联考】A. 运行→就绪B. 运行→阻塞C. 阻塞→运行D. 阻塞→就绪7.当()时,进程从执行状态转变为就绪状态。
【*,联考】A. 进程被调度程序选中B. 时间片到C. 等待某一事件D. 等待的事件发生8.一个进程的基本状态可以从其他两种基本状态转变过来,这个基本状态一定是()。
【**,联考】A. 运行状态B. 阻塞状态C. 就绪状态D. 完成状态9.当一个进程完成一个时间片后,系统需要将该进程的状态由运行状态转变为()。
【*,联考】A. 就绪状态B. 阻塞状态C. 撤销状态D. 创建状态10.进程状态由就绪态转换为运行态是由()引起的。
【**,联考】A. 中断事件B. 进程状态转换C. 进程调度D. 为程序创建进程11.下列选项中,降低进程优先级的合理时机是()。
【***,10考研】A. 进程的时间片用完B. 进程刚完成I/O,进入就绪队列C. 进程长期处于就绪队列中D. 进程从就绪状态转为运行态12.()必会引起进程切换。
第一章操作系统概述1.操作系统主要特征是什么?操作系统是控制和管理计算机的软、硬件资源,合理地组织计算机的工作流程,以方便用户使用的程序集合。
2.“操作系统是控制硬件的软件”这一说法确切吗?为什么?不正确,因为操作系统不仅仅是控制硬件,同时它还控制计算机的软件。
第二章进程与线程1.操作系统中为什么要引入进程的概念?为了实现并发进程之间的合作和协调,以及保证系统的安全,操作系统在进程管理方面要做哪些工作?①为了从变化角度动态地分析研究可以并发执行的程序,真实的反应系统的独立性、并发性、动态性和相互制约,操作系统中不得不引入进程的概念。
②为了防止操作系统及其关键的数据结构受到用户程序破坏,将处理机分为核心态和用户态。
对进程进行创建、撤销以及在某些进程状态之间的转换控制。
2.假设系统就绪队列中有10个进程,这10个进程轮换执行,每隔300ms轮换一次,CPU在进程切换时所花费的时间是10ms,试问系统化在进程切换上的开销占系统整个时间的比例是多少?就绪队列中有10个进程,这10个进程轮换执行,每隔进程的运行时间是300ms,切换另一个进程所花费的总时间是10ms,隐刺系统化在进程切换上的时间开销占系统整个时间的比例是:10//(300+10)=3.2%.3.试述线程的特点及其与进程之间的关系。
答:线程是进程内的一个相对独立的运行单元,是操作系统调度和分派的单位。
线程只拥有一点必不可少的资源(一组寄存器和栈),但可以和铜属于一个进程的其他线程共享进程拥有的资源。
关系:1>线程是进程的一部分,是进程内的一个实体;一个进程可以有多个线程,但至少必须有一个线程。
一个线程只能在一个进程的地址空间内活动;2>进程资源的拥有者,同一个进程的多个线程共享该进程占有的所有资源;3>处理机分配给进程,线程是系统的调度单位。
1.这种策略一方面照顾了短进程,一个进程如果在100ms运行完毕它将退出系统,更主要的是照顾了I/O量大的进程,进程因I/O进入阻塞队列,当I/O完成后它就进入了高优先级就绪队列,在高优先级就绪队列等待的进程总是优于低优先级就绪队列的进程。
现代操作系统第四版第二章答案现代操作系统第二章进程与线程习题1. 图2-2中给出了三个进程状态,在理论上,三个状态可以有六种转换,每个状态两个。
但是,图中只给出了四种转换。
有没有可能发生其他两种转换中的一个或两个A:从阻塞到运行的转换是可以想象的。
假设某个进程在I/O上阻塞,而且I/O结束,如果此时CPU空闲,该进程就可以从阻塞态直接转到运行态。
而另外一种转换(从阻塞态到就绪态)是不可能的。
一个就绪进程是不可能做任何会产生阻塞的I/O或者别的什么事情。
只有运行的进程才能被阻塞。
2.假设要设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换。
CPU需要哪些信息请描述用硬件完成进程切换的工作过程。
A:应该有一个寄存器包含当前进程表项的指针。
当I/O结束时,CPU将把当前的机器状态存入到当前进程表项中。
然后,将转到中断设备的中断向量,读取另一个过程表项的指针(服务例程),然后,就可以启动这个进程了。
3.当代计算机中,为什么中断处理程序至少有一部分是用汇编语言编写的A:通常,高级语言不允许访问CPU硬件,而这种访问是必需的。
例如,中断处理程序可能需要禁用和启用某个特定设备的中断服务,或者处理进程堆栈区的数据。
另外,中断服务例程需要尽快地执行。
(补充)主要是出于效率方面的考量。
中断处理程序需要在尽量短的时间内完成所需的必要处理,尽量减少对线程/程序流造成的影响,因此大部分情况下用汇编直接编写,跳过了通用编译过程中冗余的适配部分。
4.中断或系统调用把控制转给操作系统时,为什么通常会用到与被中断进程的栈分离的内核栈A:内核使用单独的堆栈有若干的原因。
其中两个原因如下:首先,不希望操作系统崩溃,由于某些用户程序不允许足够的堆栈空间。
第二,如果内核将数据保留在用户空间,然后从系统调用返回,那么恶意的用户可能使用这些数据找出某些关于其它进程的信息。
5.一个计算机系统的内存有足够的空间容纳5个程序。
这些程序有一半的时间处于等待I/O的空闲状态。
进程与线程的定义、关系及区别进程与线程的定义、关系及区别⼀、进程的定义进程:指在系统中能独⽴运⾏并作为资源分配的基本单位,它是由⼀组机器指令、数据和堆栈等组成的,是⼀个能独⽴运⾏的活动实体。
进程⼀般有三个状态:就绪状态、执⾏状态和等待状态【或称阻塞状态】;进程只能由⽗进程建⽴,系统中所有的进程形成⼀种进程树的层次体系;挂起命令可由进程⾃⼰和其他进程发出,但是解除挂起命令只能由其他进程发出。
进程控制块(PCB):PCB不但可以记录进程的属性信息,以便对进程进⾏控制和管理,⽽且PCB标志着进程的存在,操作系统根据系统中是否有该进程的进程控制块PCB⽽知道该进程存在与否。
系统建⽴进程的同时就建⽴该进程的PCB,在撤销⼀个进程时,也就撤销其PCB,故进程的PCB对进程来说是它存在的具体的物理标志和体现。
⼀般PCB包括以下三类信息:进程标识信息;处理器状态信息;进程控制信息。
由程序段、相关的数据段和PCB三部分构成了进程实体(⼜称进程印像),⼀般,我们把进程实体就简称为进程。
进程的特征:1.动态性:进程的实质是程序的⼀次执⾏过程,进程是动态产⽣,动态消亡的。
2.并发性:任何进程都可以同其他进程⼀起并发执⾏。
3.独⽴性:进程是⼀个能独⽴运⾏的基本单位,同时也是系统分配资源和调度的独⽴单位。
4.异步性:由于进程间的相互制约,使进程具有执⾏的间断性,即进程按各⾃独⽴的、不可预知的速度向前推进。
⼆、线程的定义线程:线程是进程中的⼀个实体,作为系统调度和分派的基本单位。
线程的性质:1.线程是进程内的⼀个相对独⽴的可执⾏的单元。
若把进程称为任务的话,那么线程则是应⽤中的⼀个⼦任务的执⾏。
2.由于线程是被调度的基本单元,⽽进程不是调度单元。
所以,每个进程在创建时,⾄少需要同时为该进程创建⼀个线程。
即进程中⾄少要有⼀个或⼀个以上的线程,否则该进程⽆法被调度执⾏。
3.进程是被分给并拥有资源的基本单元。
同⼀进程内的多个线程共享该进程的资源,但线程并不拥有资源,只是使⽤他们。
操作系统概念第七版习题答案(中文版)完整版操作系统概念第七版习题答案(中文版)完整版本文为《操作系统概念第七版习题答案(中文版)》的完整版,旨在提供对该书中习题的详细解答和解析。
以下将按照章节顺序,逐一介绍各章习题的解答及相应的说明。
第一章:引言1. 操作系统的定义操作系统是计算机体系结构的重要组成部分。
它是一种软件,用于管理计算机硬件资源和提供用户与计算机系统之间的接口。
操作系统的主要目标是实现对计算机系统的控制和协调,以确保计算机系统的正确运行。
2. 操作系统的功能操作系统具有以下主要功能:- 管理系统资源:操作系统负责管理计算机系统的硬件资源,包括内存、CPU、硬盘和外部设备等。
- 提供用户接口:操作系统提供了用户与计算机系统之间的接口,使用户能够方便地使用计算机。
- 调度任务:操作系统根据一定的调度算法,决定进程的执行顺序,以实现对系统资源的合理利用。
- 存储管理:操作系统管理计算机的内存资源,为进程分配内存空间,并进行内存的读写操作。
- 文件系统:操作系统负责管理计算机系统中的文件,包括文件的创建、读写和删除等操作。
- 错误处理:操作系统能够检测和处理可能出现的错误,确保计算机系统的稳定和安全。
第二章:进程与线程1. 进程与线程的概念及区别进程是计算机系统中正在运行的程序的实例。
一个进程由程序、数据和进程控制块组成,拥有独立的内存空间和系统资源。
线程是进程中的一个实体,是进程的执行单位,共享进程的数据空间和系统资源。
进程和线程的主要区别在于资源的占用和拥有关系,进程拥有独立的资源,而线程共享进程的资源。
2. 进程调度算法常见的进程调度算法包括先来先服务(FCFS)、短作业优先(SJF)、最高优先权调度(HPF)、时间片轮转调度(RR)等。
不同的调度算法适用于不同的场景和需求,可以根据系统的实际情况选择合适的调度算法。
第三章:处理机调度与死锁1. 死锁的概念死锁是指系统中若干进程因竞争系统资源而陷入无限等待的状态,无法继续执行下去。
操作系统概念课后习题答案操作系统概念课后习题答案第一章:引论1.操作系统的定义:操作系统是计算机系统中的一个软件层,它管理和控制计算机硬件资源,为用户和应用程序提供接口和服务。
2.操作系统的功能:处理器管理、存储器管理、设备管理、文件管理和用户界面等。
第二章:进程管理1.进程的概念:进程是一个正在执行的程序的实例,它由代码、数据和执行环境组成。
2.进程状态:就绪、运行和阻塞。
3.进程调度算法:先来先服务、最短作业优先、时间片轮转和优先级调度等。
第三章:线程管理1.线程的概念:线程是进程的一个执行单元,一个进程可以包含多个线程。
2.线程与进程的区别:线程共享相同的地质空间和文件描述符,而进程拥有独立的地质空间和文件描述符。
3.线程模型:用户级线程模型和内核级线程模型。
第四章:内存管理1.内存管理的目标:实现内存的分配与回收、内存的保护和共享。
2.内存分配的概念:连续分配、非连续分配和虚拟内存分配。
3.地质转换:逻辑地质到物理地质的转换过程,包括分段、分页和段页式等。
第五章:存储器管理1.存储器的层次结构:主存储器、辅助存储器和高速缓存。
2.页面置换算法:最佳置换算法、先进先出算法、最近最久未使用算法和时钟置换算法等。
3.虚拟内存的概念:将存储器抽象成一组连续的地质空间,实现大容量存储和地质共享。
第六章:设备管理1.设备管理的功能:设备分配、设备驱动程序和设备中断处理等。
2.设备分配算法:先来先服务、最短作业优先和轮转法等。
3.磁盘调度算法:先来先服务、最短寻道时间优先和扫描算法等。
第七章:文件管理1.文件的概念:文件是命名的、有序的数据集合,它是操作系统中最基本的数据组织方式。
2.文件系统的组织结构:层次式文件系统、索引式文件系统和线性文件系统等。
3.文件共享与保护:文件锁机制、权限控制和访问控制列表等。
第八章:I/O系统1.I/O系统的组成部分:I/O设备、I/O控制器和设备驱动程序等。
2.I/O操作的方式:程序控制I/O和中断驱动I/O。
第2章进程和线程的管理习题及解答例题解析例2.2.1 试说明进程和程序之间的区别和联系。
解进程和程序是既有区别又有联系的两个概念。
(1)进程是动态的,程序是静态的。
程序是一组有序的指令集合,是一个静态的概念;进程则是程序及其数据在计算机上的一次执行,是一个动态的集合。
离开了程序,进程就失去了存在的意义,但同一程序在计算机上的每次运行将构成不同的进程。
程序可看作是电影的胶片,进程可以看作电影院放电影的过程。
(2)一个进程可以执行多个程序,如同一个电影院的一场电影可放映多部影片。
(3)一个程序可被多个进程执行,如同多个影院同时利用一个电影的胶片放映同一部电影。
(4)程序可以长期保存,进程只能存在于一段时间。
程序是永久存在的,而进程有从被创建到消亡的生命周期。
例2.2.2 举例说明多道程序系统失去了封闭性和再现性。
解例如,有两个循环程序A和B,共享一个变量N。
程序A每执行一次时,都要做N:=N+1操作;程序B则每执行一次时,都要执行print(N)操作,然后再将N的值置成“0”。
程序A和B在多道程序系统中同时运行。
假定某时刻变量N的值为n,可能出现下述三种情况:(1)N:=N+1 在print(N)和N:=0之前,此时得到N值变化过程为n+1、n+1、0;(2)N:=N+1 在print(N)和N:=0之后,此时得到N值变化过程为n 、 0 、1;(3)N:=N+1 在print(N)之后和N:=0之前,此时得到N值变化过程为n、n+1、0。
所以,在A、B程序多次执行过程中,虽然其每次执行时的环境和初始条件都相同,但每次得到的结果却不一定相同。
例 2.2.3 为什么将进程划分成执行、就绪和阻塞三个基本状态?解根据多道程序执行的特点,进程的运行是走走停停的。
因此进程的初级状态应该是执行和等待状态。
处于执行状态的进程占用处理机执行程序,处于等待状态的进程正在等待处理机或者等待其它某种事件的发生。
但是,当处理机空闲时,并不是所有处于等待状态的进程都能放到处理机上执行,有的进程即使分配给它处理机,它也不能执行,因为它的执行的条件没有得到满足。
第2章进程管理解答一、单项选择题[解答]1.d。
.2.c。
进程的实体由PCB、程序与数据3部分组成。
3.b。
4.b。
允许3个进程同时进入互斥段的互斥信号量初值设为3。
5.d。
并发进程之间可能存在同步与互斥关系,也可能不存在任何关系。
6.a。
7.c。
由于互斥信号量的初值是1,则极端情况是一个进程访问临界资源而其余N-1个进程处于等待状态,即信号量的值为-(N-1)8.d。
当资源总数为4,并发进程为2,每个进程的最大需求是3时,可能够出现每个进程都占用2个资源而又申请第3个资源的死锁状态。
9.a。
先来先服务、响应比高者优先和均衡调度算法都属于作业调度算法。
10.b。
进程从执行态变成就绪态通常有两种情况:(1)分时操作系统下时间片到;(2)剥夺式进程调度方式下有更高优先级的进程进入就绪状态。
11.b。
12.c。
13.d。
如果存在就绪进程且处理机空闲时,进程调度程序就必然选中一个就绪进程使之投入运行;所以d错误。
14.d。
a~c概念都不完全。
15.d。
a~c都会引进操作系统选择新进程运行,仅d不会。
16.a 17. a 18。
d 19。
d 20。
b 21。
a 22。
d 23。
d 24。
a 25.b 26.c 27。
b 28。
d 29。
c 30。
B二、填空题[解答]1.线性表链接表(或队列) 2.删除剥夺3.因为PCB是进程存在的唯一标志,故填PCB 4.资源竞、进程推进顺序不当5.非剥夺条件逐次请求条件环路条件 6.就绪运行7.进程中访问临界资源的那段程序代码8.当出现死琐的极端情况时,处于等待的进程数为n,故填n9.可用资源的数目,因请求该资源而被阻塞的进程数目10.剥夺式调度总是将优先级高的进程(不包括等待队列上的进程)投入运行,故填“剥夺式”11.P V12.当信号量知小于零时,其绝对值为被阻塞的进程个数,故填413.互斥、同步、条件变量14. —2~2 15.临界区(或互斥段) 16.程序数据 PCB. 17.银行家算法 18.同步 19.运行态进程调度 20.创建消亡21.资源分配独立运行调度 22.临界区 P操作 V操作23.引起进程调度的原因进程调度算法的选择就绪队列的组织.三、问答题1.操作系统中为什么要引入进程的概念?为了实现并发进程间的合作和协调工作,以及保证系统的安全,操作系统在进程管理方面应做哪些工作?[解答]在多道程序环境下,程序的并发执行代替了程序的顺序执行,并发执行破坏了程序的封闭性和可再现性,使得程序和计算不再一一对应。
进程与线程、并⾏与并发的理解进程与线程1.定义进程是具有⼀定独⽴功能的程序关于某个数据集合上的⼀次运⾏活动,进程是系统进⾏资源分配和调度的⼀个独⽴单位.线程是进程的⼀个实体,是CPU调度和分派的基本单位,它是⽐进程更⼩的能独⽴运⾏的基本单位.线程⾃⼰基本上不拥有系统资源,只拥有⼀点在运⾏中必不可少的资源(如程序计数器,⼀组寄存器和栈),但是它可与同属⼀个进程的其他的线程共享进程所拥有的全部资源.2.关系⼀个线程可以创建和撤销另⼀个线程;同⼀个进程中的多个线程之间可以并发执⾏.相对进程⽽⾔,线程是⼀个更加接近于执⾏体的概念,它可以与同进程中的其他线程共享数据,因此线程可以读写同样的数据结构和变量,便于线程之间的通信,但拥有⾃⼰的栈空间,拥有独⽴的执⾏序列。
3.区别进程和线程的主要差别在于它们是不同的操作系统资源管理⽅式。
进程有独⽴的地址空间,⼀个进程崩溃后,在保护模式下不会对其它进程产⽣影响,⽽线程只是⼀个进程中的不同执⾏路径。
线程有⾃⼰的堆栈和局部变量,但线程之间没有单独的地址空间,⼀个线程死掉就等于整个进程死掉,所以多进程的程序要⽐多线程的程序健壮,但在进程切换时,耗费资源较⼤,效率要差⼀些。
但对于⼀些要求同时进⾏并且⼜要共享某些变量的并发操作,只能⽤线程,不能⽤进程。
1) 简⽽⾔之,⼀个程序⾄少有⼀个进程,⼀个进程⾄少有⼀个线程.2) 线程的划分尺度⼩于进程,使得多线程程序的并发性⾼。
3) 另外,进程在执⾏过程中拥有独⽴的内存单元,⽽多个线程共享内存,从⽽极⼤地提⾼了程序的运⾏效率。
4) 线程在执⾏过程中与进程还是有区别的。
每个独⽴的线程有⼀个程序运⾏的⼊⼝、顺序执⾏序列和程序的出⼝。
但是线程不能够独⽴执⾏,必须依存在应⽤程序中,由应⽤程序提供多个线程执⾏控制。
5) 从逻辑⾓度来看,多线程的意义在于⼀个应⽤程序中,有多个执⾏部分可以同时执⾏。
但操作系统并没有将多个线程看做多个独⽴的应⽤,来实现进程的调度和管理以及资源分配。
第二章进程和线程作业答案1,2,4,6,7,10,11,12,14, 211.在操作系统中为什么要引入进程概念?它与程序的差别和关系是怎样的?答:由于多道程序的并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。
用程序这个静态概念已经不能如实反映程序并发执行过程中的这些特征。
为此,人们引入“进程(Process)”这一概念来描述程序动态执行过程的性质。
进程和程序是两个完全不同的概念。
进程与程序的主要区别:进程和程序之间存在密切的关系:进程的功能是通过程序的运行得以实现的,进程活动的主体是程序,进程不能脱离开具体程序而独立存在。
2.PCB的作用是什么?它是怎样描述进程的动态性质的?答:PCB是进程组成中最关键的部分。
每个进程有惟一的进程控制块;操作系统根据PCB对进程实施控制和管理,进程的动态、并发特征是利用PCB表现出来的;PCB是进程存在的唯一标志。
PCB中有表明进程状态的信息,该进程的状态包括运行态、就绪态和阻塞态,它利用状态信息来描述进程的动态性质。
4. 用如图2-26所示的进程状态转换图能够说明有关处理机的大量容。
试回答:①什么事件引起每次显著的状态变迁?②下述状态变迁因果关系能否发生?为什么?(A)2→1 (B)3→2 (C)4→1答:(1)就绪→运行:CPU空闲,就绪态进程被调度程序选中运行→阻塞:运行态进程因某种条件未满足而放弃CPU的占用。
阻塞→就绪:阻塞态进程所等待的事件发生了。
运行→就绪:正在运行的进程用完了本次分配给它的时间片(2)下述状态变迁(A)2→1,可以。
运行进程用完了本次分配给它的时间片,让出CPU,从就绪队列中选一个进程投入运行。
(B)3→2,不可以。
任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就不能再变为就绪态。
(C)4→1,可以。
某一阻塞态进程等到的事件出现了,而且此时就绪队列为空,该进程进入就绪队列后马上又被调度运行。
进程和线程的概念⼀:什么是进程 进程是资源(CPU、内存等)分配的基本单位,它是程序执⾏时的⼀个实例。
程序运⾏时系统就会创建⼀个进程,并为它分配资源,然后把该进程放⼊进程就绪队列, 进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运⾏。
⼆:什么是线程 线程是程序执⾏时的最⼩单位,它是进程的⼀个执⾏流,是CPU调度和分派的基本单位。
⼀个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有⾃⼰的堆栈和局部变量。
线程由CPU独⽴调度执⾏,在多CPU环境下就允许多个线程同时运⾏。
同样多线程也可以实现并发操作,每个请求分配⼀个线程来处理。
三:线程和进程各⾃有什么区别和优劣呢? 1):进程是资源分配的最⼩单位,线程是程序执⾏的最⼩单位。
2):进程有⾃⼰的独⽴地址空间,每启动⼀个进程,系统就会为它分配地址空间,建⽴数据表来维护代码段、堆栈段和数据段,这种操作⾮常昂贵。
线程是共享进程中的数据的,使⽤相同的地址空间,因此CPU切换⼀个线程的花费远⽐进程要⼩很多,同时创建⼀个线程的开销也⽐进程要⼩很多。
3):线程之间的通信更⽅便,同⼀进程下的线程共享全局变量、静态变量等数据。
进程之间的通信需要以通信的⽅式(IPC)进⾏。
不过如何处理好同步与互斥是编写多线程程序的难点。
4):但是多进程程序更健壮,多线程程序只要有⼀个线程死掉,整个进程也死掉了, ⽽⼀个进程死掉并不会对另外⼀个进程造成影响,因为进程有⾃⼰独⽴的地址空间。
四:多线程五个状态 新建----->就绪----->运⾏------>阻塞------->死亡五:怎么实现多线程 1):继承Thread类创建线程。
Thread类本质上是实现了Runnable接⼝的⼀个实例,代表⼀个线程的实例。
启动线程的唯⼀⽅法就是通过Thread类的start()实例⽅法。
2):实现Runnable接⼝创建线程。
3):如果⾃⼰的类已经extends另⼀个类,就⽆法直接extends Thread,此时,可以实现⼀个Runnable接⼝。