第02章 进程与线程

合集下载

作业、进程、线程

作业、进程、线程

作业、进程、线程1. 基本概念作业:⽤户在⼀次解决或是⼀个事务处理过程中要求计算机系统所做的⼯作的集合,它包括⽤户程序、所需要的数据集控制命令等。

作业是由⼀系列有序的步骤组成的。

作业的完成要经过作业提交、作业收容、作业执⾏和作业完成4个阶段。

在执⾏⼀个作业可能会运⾏多个不同的进程。

进程:程序在⼀个数据集上的⼀次运⾏过程。

是操作系统资源分配的基本单位。

在Windows下,进程⼜被细化为线程,也就是⼀个进程下有多个能独⽴运⾏的更⼩的单位. 进程还拥有⼀个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。

线程:是进程中的⼀个实体,是被操作系统独⽴调度和执⾏的基本单位。

⼀个进程包含⼀个或多个线程。

线程只能归属于⼀个进程并且它只能访问该进程所拥有的资源。

当操作系统创建⼀个进程后,该进程会⾃动申请⼀个名为主线程或⾸要线程的线程。

主线程将执⾏运⾏时宿主, ⽽运⾏时宿主会负责载⼊CLR。

简单总结:作业是向计算机提交任务的任务实体,⽽进程是执⾏实体,是资源分配的基本单位,线程是处理机调度的基本单位。

2. 进程2.1 进程的概念主要有两点:第⼀,进程是⼀个实体。

每⼀个进程都有它⾃⼰的地址空间,⼀般情况下,包括⽂本区域(text region)、数据区域(data region)和堆栈(stack region)。

⽂本区域存储处理器执⾏的代码;数据区域存储变量和进程执⾏期间使⽤的动态分配的内存;堆栈区域存储着活动过程调⽤的指令和本地变量。

第⼆,进程是⼀个“执⾏中的程序”。

程序是⼀个没有⽣命的实体,只有处理器赋予程序⽣命时,它才能成为⼀个活动的实体,我们称其为进程。

2.2 进程特征 动态性:进程的实质是程序在多道程序系统中的⼀次执⾏过程,进程是动态产⽣,动态消亡的。

并发性:任何进程都可以同其他进程⼀起并发执⾏ 独⽴性:进程是⼀个能独⽴运⾏的基本单位,同时也是系统分配资源和调度的独⽴单位; 异步性:由于进程间的相互制约,使进程具有执⾏的间断性,即进程按各⾃独⽴的、不可预知的速度向前推进 结构特征:进程由程序、数据和进程控制块三部分组成。

【操作系统】《计算机操作系统》汤小丹第2章进程的描述和控制

【操作系统】《计算机操作系统》汤小丹第2章进程的描述和控制

【操作系统】《计算机操作系统》汤⼩丹第2章进程的描述和控制博主:海底淤泥1.什么是前趋图?为什么要引⼊前趋图? 前趋图:⼀个有向⽆循环图,它⽤于描述进程之间的先后顺序 作⽤:更好描述程序的顺序和并发执⾏情况2.试画出下⾯四条语句的前趋图S1:a=x+y S2:b=z+1 S3:c=a-b S4:w=c+1 S1->S3 S2->S3 S3->S43.为什么程序并发执⾏会产⽣间断特征? 程序在并发执⾏时,由于它们共享系统资源,以及为完成同⼀项任务相互合作,⾄使在这些并发程序之间形成了相互制约的关系4.程序并发执⾏时为什么会失去封闭性和可再现性? 失去封闭性:当系统存在着多个可以并发执⾏的程序时,系统中的各种资源将为它们所共享,⽽这些资源的状态也由这些程序来改变,导致其中任意程序运⾏时,其环境都必然会受到其他程序的影响。

失去可再现性:程序并发执⾏时,由于失去了封闭性,其计算结果必然将与并发程序的执⾏速度有关,从⽽使程序的执⾏失去了可再现性5.在操作系统中为什么要引⼊进程的概念?它会产⽣什么影响? 为了使程序并发执⾏,并且可以对并发执⾏的程序加以描述和控制,⼈们引⼊了“进程”的概念。

影响:使程序并发执⾏,进程实体和其他进程实体并发执⾏6.试从动态性、并发性、和独⽴性上⽐较进程和线程 动态性:进程实体有⼀定⽣命期,是动态的;⽽程序是⼀组有序指令集合,并存放在某种介质上,其本⾝不具有活动意义,是静态的 并发性:进程可以并发执⾏,没有PCB的程序是不能并发执⾏的 独⽴性:进程实体是⼀个能独⽴运⾏,独⽴获得资源和独⽴接受调度的基本单位。

未建⽴PCB的程序不能作为⼀个独⽴的单位参与运⾏7.试说明PCB的作⽤具体表现在什么⽅⾯,为什么说PCB是进程存在的唯⼀标志? PCB描述进程是基本情况和活动过程,进⽽控制和管理进程。

创建进程:创建进程实体的PCB 撤销进程:撤销进程实体的PCB8.PCB提供了进程管理和进程调度所需要的哪些信息?1.进程标识符2.处理机状态3.进程调度信息4.进程控制信息9.进程控制块的组织⽅式有哪⼏种?1.线性⽅式2.连接⽅式3.索引⽅式10.何谓操作系统内核?内核的主要功能是什么? 通常将⼀些硬件紧密相关的模块、各种常⽤设备的驱动程序以及运⾏频率较⾼的模块,都安排在紧靠硬件的软件层次中,将它们常驻内存,被称为操作系统内核 功能:1.对重要软件进⾏保护,防⽌遭到其他程序的破坏 2.提⾼OS的运⾏效率11.试说明进程在三个基本状态之间转换的经典原因 就绪->执⾏:进程调度 执⾏->就绪:时间⽚完 执⾏->阻塞:I/O请求 阻塞->就绪:I/O完成12.为什么要引⼊挂起状态?该状态有哪些性质? 原因:1.终端⽤户的需要 2.⽗进程的请求 3.负荷调节的需要 4.操作系统的需要 性质:1.若程序正在执⾏,将暂停执⾏ 2.若原本处于就绪状态,则该程序不接受调度13.在进⾏进程切换时,所要保存的处理机状态信息有哪些?1.通⽤寄存器2.指令计数器3.程序状态字PSW4.⽤户栈指针14.试说明引起进程创建的主要事件。

os02_2010

os02_2010

2.2.9 进程与程序的联系与差 别
进程与程序的联系
– 进程包括一个程序 – 进程存在的目的就是执行这个程序
进程与程序的差别
– 程序静态,进程动态 程序静态, – 程序可长期保存,进程有生存期 程序可长期保存, – 一个程序可对应多个进程,一个进程只能执行一 一个程序可对应多个进程,
个程序
2.3 线程与轻进程
P1:
send
P2:
sync
receive
2. 间接相互作用:发生在任何进程之间 间接相互作用:
P1
wait
P2
R
hold
2.2.8
进程控制
进程控制:指系统使用一些具有特定功 进程控制 指系统使用一些具有特定功 能的程序段来创建 创建、 能的程序段来创建、撤消进程以及完成 进程各状态间转换的一系列有效管理。 进程各状态间转换的一系列有效管理。 原语:是原子操作。 原语:是原子操作。一个操作中的所有 动作,要么全做,要么全不做, 动作,要么全做,要么全不做,不允许 中断。不可分割的操作。 中断。不可分割的操作。用于进程控制 的程序段。 的程序段。 用于进程控制的原语有:创建原语 创建原语; 用于进程控制的原语有 创建原语;撤 消原语;阻塞原语;唤醒原语等。 消原语;阻塞原语;唤醒原语
2.2 进程的引入(Cont.)
多道系统中的程序: 推进,暂停,推进,暂停,……. 推进,暂停,推进,暂停,……. 暂停:保存现场(断点,寄存器) 推进:恢复现场 暂停原因:(1) 自身原因:等待资源,启动IO (2) 剥夺CPU—给其它程序运行机会
2.2.1 进程的概念
定义:
– 可参与并发执行的程序称为进程。 – 进程是具有一定独立功能的程序关于一个数 据集合的一次运行活动。

计算机操作系统课件02-1进程的基本概念

计算机操作系统课件02-1进程的基本概念
(3) 静止就绪→活动就绪。处于Readys状态的进程,若用激 活原语Active激活后,该进程将转变为Readya状态。
(4) 静止阻塞→活动阻塞。处于Blockeds状态的进程,若用激 活原语Active激活后,该进程将转变为Blockeda状态。
4.创建状态和终止状态
1) 创建状态
创建一个进程一般要通过两个步骤:首先,为一个新进程创 建PCB,并填写必要的管理信息;其次,把该进程转入就绪状 态并插入就绪队列之中。
例如,在进行计算时,总须先输入用户的程序和数据,然后 进行计算,最后才能打印计算结果。
用结点(Node,用圆圈表示) 代表各程序段的操作,其中,I代 表输入操作,C代表计算操作,P为打印操作;另外,用箭头 指示操作的先后次序。
I1
C1
P1
I2
C2
P2
S1
S2
S3
(a) 程序的顺序执行
(b) 三条语句的顺序执行
→={(Pi,Pj)|Pi must complete before Pj may start} 如果(Pi,Pj)∈→,可写成Pi→Pj,称Pi是Pj的直接前趋,而称 Pj是Pi的直接后继 在前趋图中,把没有前趋的结点称为初始结点(Initial Node), 把没有后继的结点称为终止结点(Final Node)。
当用挂起原语Suspend将该进程挂起后,该进程便转变为静止 就绪状态,表示为Readys,处于Readys状态的进程不再被调度 执行。
请求
释放
活动 阻塞
I/O
调度
活动 就绪
激活
挂起
执行
激活 挂起
静止 阻塞
释放
挂起
静止 就绪
图 2-6 具有挂起状态的进程状态图

第二章 - 进程和线程

第二章 - 进程和线程

2.4 线

2.4.1 线程概念 现代操作系统中,进程只作为资源拥有者, 而调度和运行的属性赋予新的实体——线 而调度和运行的属性赋予新的实体——线 程。 线程(Thread)是进程中实施调度和分派 线程(Thread)是进程中实施调度和分派 的基本单位
2.4.1 线程概念
1.线程的组成 每个线程有一个 thread结构,即 thread结构,即 线程控制块,用 于保存自己私有 的信息,主要由 以下4 以下4个基本部 分组成:
2.4.1 线程概念
4.线程和进程的关系 ① 一个进程可以有多个线程,但至少要有一个线程; 而一个线程只能在一个进程的地址空间内活动。 ② 资源分配给进程,同一进程的所有线程共享该进 程的所有资源。 ③ 处理机分配给线程,即真正在处理机上运行的是 线程。 ④ 线程在执行过程中需要协作同步。不同进程的线 程间要利用消息通信的办法实现同步。
程同时访问和操纵相同的数据时,最后的执行结 果取决于进程运行的精确时序。
竞争条件(Race Condition),即两个或多个进 Condition),即两个或多个进
2.5.2 临界资源和临界区
1.临界资源和临界区 一次仅允许一个进程使用。我们把这类共 享资源称为临界资源( 享资源称为临界资源(Critical Resource)。 Resource)。 在每个进程中访问临界资源的那段程序叫 临界区( Section),简称CS区。 做临界区(Critical Section),简称CS区。
2.3.3 进程终止
(1)正常终止 (2)异常终止 (3)外部干扰
2.3.3 进程终止
终止进程的主要操作过程如下: 找到指定进程的PCB 找到指定进程的PCB 终止该进程的运行 回收该进程所占用的全部资源 终止其所有子孙进程,回收它们所占用的 全部资源。 将被终止进程的PCB从原来队列中摘走 将被终止进程的PCB从原来队列中摘走

进程与线程的定义、关系及区别

进程与线程的定义、关系及区别

进程与线程的定义、关系及区别进程与线程的定义、关系及区别⼀、进程的定义进程:指在系统中能独⽴运⾏并作为资源分配的基本单位,它是由⼀组机器指令、数据和堆栈等组成的,是⼀个能独⽴运⾏的活动实体。

进程⼀般有三个状态:就绪状态、执⾏状态和等待状态【或称阻塞状态】;进程只能由⽗进程建⽴,系统中所有的进程形成⼀种进程树的层次体系;挂起命令可由进程⾃⼰和其他进程发出,但是解除挂起命令只能由其他进程发出。

进程控制块(PCB):PCB不但可以记录进程的属性信息,以便对进程进⾏控制和管理,⽽且PCB标志着进程的存在,操作系统根据系统中是否有该进程的进程控制块PCB⽽知道该进程存在与否。

系统建⽴进程的同时就建⽴该进程的PCB,在撤销⼀个进程时,也就撤销其PCB,故进程的PCB对进程来说是它存在的具体的物理标志和体现。

⼀般PCB包括以下三类信息:进程标识信息;处理器状态信息;进程控制信息。

由程序段、相关的数据段和PCB三部分构成了进程实体(⼜称进程印像),⼀般,我们把进程实体就简称为进程。

进程的特征:1.动态性:进程的实质是程序的⼀次执⾏过程,进程是动态产⽣,动态消亡的。

2.并发性:任何进程都可以同其他进程⼀起并发执⾏。

3.独⽴性:进程是⼀个能独⽴运⾏的基本单位,同时也是系统分配资源和调度的独⽴单位。

4.异步性:由于进程间的相互制约,使进程具有执⾏的间断性,即进程按各⾃独⽴的、不可预知的速度向前推进。

⼆、线程的定义线程:线程是进程中的⼀个实体,作为系统调度和分派的基本单位。

线程的性质:1.线程是进程内的⼀个相对独⽴的可执⾏的单元。

若把进程称为任务的话,那么线程则是应⽤中的⼀个⼦任务的执⾏。

2.由于线程是被调度的基本单元,⽽进程不是调度单元。

所以,每个进程在创建时,⾄少需要同时为该进程创建⼀个线程。

即进程中⾄少要有⼀个或⼀个以上的线程,否则该进程⽆法被调度执⾏。

3.进程是被分给并拥有资源的基本单元。

同⼀进程内的多个线程共享该进程的资源,但线程并不拥有资源,只是使⽤他们。

操作系统第2章作业进程与线程

操作系统第2章作业进程与线程
cycle input,send end •计算(处理)模块C:
cycle receive,process,send end •输出模块P:
cycle receive,output end •然后使这三个程序模块并发执行。下图示: 程序并发执行时的前趋图:
•在该例中,存在以下前趋关系: •Ii→Ci, Ii→Ii+1, Ci→Pi, Ci→Ci+1 ,Pi→Pi+1 •而Ii+1,Ci及Pi-1是重叠的。亦即Ii+1,Ci以及Pi-1可 以并发执行。
④完成状态。 作业完成计算任务,结果由打印机
输出,最后由系统回收分配给它的全 部资源,准备退出系统时的作业状况。
2.2.2 作业描述 1.作业控制块JCB 为了管理和调度作业,系统为每个作 业设置了一个作业控制块JCB,它记录 该作业的有关信息。不同系统的JCB的 组成内容有所区别,下图给出了作业控 制块JCB的主要内容。
(1)作业调度 在多道程序设计系统中,系统可以同时
处理多个作业,系统要在许多作业中按一 定策略选取若干个作业,为它们分配必要 的资源,让它们能够同时执行,这就是作 业调度。被作业调度选中的作业在执行时 可共享系统资源。
2.1 作业管理 三、作业管理的基本功能
(2)作业控制 作业控制负责控制作业的输入、执行、
问题1:一个进程只有这两种状态吗?
一个进程的等待状态可以分为两种, 一种是等待CPU,叫就绪态,另一种 是等待I/O,叫阻塞态。
进程基本状态模型(三态模型)
(1)运行态(Running)
运行状态是指当前进程已分配到
CPU,它的程序正在处理机上执行时
的状态。处于这种状态的进程个数不
能大于CPU的数目。 运行 状态

指令,程序,进程,线程的概念及其之间的关系

指令,程序,进程,线程的概念及其之间的关系

指令,程序,进程,线程的概念及其之间的关系指令(Instruction)是计算机执行特定操作的命令。

它是由一系列位(Value)组成的,在计算机处理器中表示为二进制代码。

计算机通过执行一条指令,完成特定的操作,如算数运算、内存读取、数据传输等。

指令是计算机硬件和软件之间的桥梁,它告诉计算机硬件如何执行某项功能。

程序(Program)是一组有序的指令集合,通过执行这组指令,可以实现预定的计算机功能。

程序一般由程序员使用编程语言编写,并保存在磁盘或存储器中。

程序包含了实现特定功能的算法和逻辑结构。

当用户需要计算机执行某项任务时,可以通过调用相应的程序来完成。

程序可以是操作系统、应用程序、驱动程序等。

进程(Process)是指正在运行的一个程序的实例。

当一个程序被调用执行时,计算机系统会为该程序分配一些资源,如CPU时间、内存空间、文件句柄等,形成一个独立的执行环境,即进程。

进程是操作系统进行资源分配和调度的基本单位。

每个进程都有自己的地址空间和执行状态,并与其他进程相互独立、互不干扰。

进程可以同时执行多个任务,通过操作系统的调度机制,使得多个进程能够并发执行。

线程(Thread)是指进程中的一个执行单元。

一个进程可以包含多个线程,这些线程共享进程的资源,如内存、打开的文件等。

线程拥有自己的栈空间,以及指令执行顺序、程序计数器等。

多线程的机制使得多个线程能够在同一个进程中并发执行,提高系统的并发处理能力。

线程的调度由操作系统负责,通过时间分片等算法,实现不同线程之间的切换和并发执行。

指令、程序、进程和线程之间存在着以下关系:1.指令是程序的基本组成单位,程序是由一系列指令构成的。

程序是静态的,存储在磁盘或存储器中,通过调用执行。

2.程序是进程的载体,进程是程序的一次执行过程。

进程是动态的,是程序在计算机中运行的状态。

进程可以同时运行多个线程,完成多个任务。

3.线程是进程中的一个执行单元,多个线程共享进程的资源。

进程和线程是什么关系与区别

进程和线程是什么关系与区别

进程和线程是什么关系与区别
进程
进程是程序的⼀次执⾏过程,是⼀个动态概念,是程序在执⾏过程中分配和管理资源的基本单位,每⼀个进程都有⼀个⾃⼰的地址空间,⾄少有5 种基本状态,它们是:初始态,执⾏态,等待状态,就绪状态,终⽌状态。

线程
线程是CPU调度和分派的基本单位,它可与同属⼀个进程的其他的线程共享进程所拥有的全部资源。

【进程是资源分配的最⼩单位,线程是CPU调度的最⼩单位】
进程和线程的关系
线程是进程的⼀部分
⼀个线程只能属于⼀个进程,⽽⼀个进程可以有多个线程,但⾄少有⼀个线程
进程和线程的区别
理解它们的差别,我从资源使⽤的⾓度出发。

(所谓的资源就是计算机⾥的中央处理器,内存,⽂件,⽹络等等)
根本区别:进程是操作系统资源分配的基本单位,⽽线程是任务调度和执⾏的基本单位
开销⽅⾯:每个进程都有独⽴的代码和数据空间(程序上下⽂),进程之间切换开销⼤;线程可以看做轻量级的进程,同⼀类线程共享代码和数据空间,每个线程都有⾃⼰独⽴的运⾏栈和程序计数器(PC),线程之间切换的开销⼩
所处环境:在操作系统中能同时运⾏多个进程(程序);⽽在同⼀个进程(程序)中有多个线程同时执⾏(通过CPU调度,在每个时间⽚中只有⼀个线程执⾏)
内存分配:系统为每个进程分配不同的内存空间;⽽对线程⽽⾔,除了CPU外,系统不会为线程分配内存(线程所使⽤的资源来⾃其所属进程的资源),线程组之间只能共享资源
包含关系:线程是进程的⼀部分,所以线程也被称为轻权进程或者轻量级进程。

操作系统第2章(进程和线程的管理习题及解答)

操作系统第2章(进程和线程的管理习题及解答)

第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. 试画出下面4条语句的前趋图:S2: b:=z+1;S3: c:=a-b;S4: w:=c+1;3.程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性。

4. 程序并发执行时为什么会失去封闭性和可再现性?因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。

而程序一旦失去了封闭性也会导致其再失去可再现性。

5. 在操作系统中为什么要引入进程概念?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进程概念。

影响: 使程序的并发执行得以实行。

6. 试从动态性,并发性和独立性上比较进程和程序?a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。

b. 并发性是进程的重要特征,同时也是OS的重要特征。

引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。

c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。

而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。

7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标志?a. PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。

PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。

因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。

b. 在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。

计算机操作系统(第三版)汤小丹第2章

计算机操作系统(第三版)汤小丹第2章

注意:1)“本章要点”部分,用红字标注的不是期末考试出题范围。

2)“习题部分”用蓝字标注的是重点习题,期末考试50%的题目是这些习题的原题。

红字标注的习题期末考试不考,仅供考研的同学参考。

3)大部分习题答案只给出要点,同学们可以自行适当补充,但一定要简明扼要。

4)如“本章要点”部分用红字标注的非考试内容,在“习题”部分有相关的重点习题,则对该部分内容只需做该习题即可。

------------------------------------------------------------第二章要点这一章和第3章是本课程最重要的两章。

2.1 进程的基本概念本小节重点内容是进程的概念、进程的三种状态及转换(围绕P38图2-5理解)、进程控制块FCB的概念及作用、进程就绪队列和阻塞(等待)队列的概念。

其它内容作一般性的了解即可。

2.2 进程控制掌握原语的概念。

其它内容作一般性的了解即可。

2.3 进程同步这一小节是至关重要的,也是相当难的。

(1)P47-50,临界资源问题、临界区的概念、同步机制应遵循的规则。

(2)P50,整型信号量原语的含义,及其缺点。

(3)P51,记录型信号量原语的含义,特点,及其优点(与整形信号量对比)。

(4)P52-53 AND型信号量和信号量集,一般性了解。

(5)P53 2.3.3 信号量的应用,一般性了解。

(6)P55 管程,一般性了解。

只有凭借毅力,坚持到底,才有可能成为最后的赢家。

这些磨练与考验使成长中的青少年受益匪浅。

在种2.4 经典进程的同步问题熟练掌握用记录型信号量解生产者—消费者、哲学家进餐、读者--写者问题。

其它解法(AND信号量、信号量集、管程等)可以不看。

2.5 进程通信:一般性了解。

2.6 线程概念性的掌握什么是线程、线程与进程主要的异同、线程的状态、内核线程、用户线程。

对于软件班和数学班的同学,上述概念将结合实验考核,二学历班的同学无此要求。

教材习题1 什么是前驱图?为什么要引入前驱图?答:P35。

进程与线程、并行与并发的理解

进程与线程、并行与并发的理解

进程与线程、并⾏与并发的理解进程与线程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接⼝。

进程和线程——精选推荐

进程和线程——精选推荐

进程和线程1.进程和线程程序是什么?QQ.exe,PowerPoint.exe进程:是⼀个正在执⾏中的程序(程序启动,进⼊内存,即资源分配的基本单位)。

每⼀个进程执⾏都有⼀个执⾏顺序。

该顺序是⼀个执⾏路径,或者叫⼀个控制单元。

线程:就是进程中的⼀个独⽴的控制单元,是⽐进程更⼩的执⾏单位。

线程只是⼀种为单⼀处理器分配执⾏时间的⼿段(程序执⾏的基本单位,⽐如程序中有main线程,执⾏a=2+3,还有其他分叉的线程)程序是如何运⾏的?CPU读指令 PC(program counter存储指令地址),读数据Register,计算ALU,回写 --> 下⼀条指令线程如何进⾏调度?linux线程调度器(OS)操作系统 在APP中启动的线程是需要经过操作系统帮你在CPU上调度的,操作系统管理哪个线程扔到哪个CPU⾥⾯去,⽐如说,操作系统说下个线程该你了,操作系统就负责扔指令到PC⾥⾯去,扔数据到register⾥⾯去 在Java中,new Thread.start()这样就起了JVM线程线程切换的概念是什么?ContextSwitch CPU保存现场,执⾏新线程,恢复现场,继续执⾏原线程这样的⼀个过程 当我们执⾏T1的时候,T1的内容会装到CPU中,当我们执⾏T2的时候,T1的内容会从CPU中⼀到cache中 因此线程数量不是越多越好,如果线程特别多的时候,会把时间浪费在切换上⾯线程在控制着进程的执⾏。

⼀个进程中⾄少有⼀个线程。

线程的四个状态:运⾏,就绪,挂起,结束。

线程的作⽤:就是⽤来执⾏代码的。

2.什么是多线程? 多线程是指⼀个进程在执⾏过程中可以产⽣多个线程,这些线程可以同时存在,同时运⾏,⼀个进程可能包含了多个同时执⾏的线程。

如,迅雷下载,可以下载多个任务,就是多线程。

3.创建多线程的第⼀种⽅式:继承Thread类。

(1)定义类继承Thread类 (2)覆写Thread 类中的run()⽅法 ⽬的:将⾃定义代码存储在run⽅法,让线程运⾏。

进程与线程

进程与线程

一:线程与进程1.概念线程:是程序执行流的最小单元,是系统独立调度和分配CPU (独立运行)的基本单位。

【操作系统技术中的术语,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是行程中的实际运作单位。

一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并行多个线程,每条线程并行执行不同的任务。

在Unix System及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程称为线程。

计算机科学术语,指运行中的程序的调度单位。

】主要特点【在多线程OS中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。

线程具有以下属性。

1)轻型实体线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证独立运行的资源,比如,在每个线程中都应具有一个用于控制线程运行的线程控制块TCB,用于指示被执行指令序列的程序计数器、保留局部变量、少数状态参数和返回地址等的一组寄存器和堆栈。

2)独立调度和分派的基本单位。

在多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位。

由于线程很“轻”,故线程的切换非常迅速且开销小。

3)可并发执行。

在一个进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行。

4)共享进程资源。

在同一进程中的各个线程,都可以共享该进程所拥有的资源,这首先表现在:所有线程都具有相同的地址空间(进程的地址空间),这意味着,线程可以访问该地址空间的每一个虚地址;此外,还可以访问进程所拥有的已打开文件、定时器、信号量机构等。

】线程的五大状态【线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。

1.新建状态(New):当用new操作符创建一个线程时,例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。

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

SqlProcess.Start();
SqlProcess.WaitForExit(); SqlProcess.Close(); }
略读补充示例:ProcessOsql
参考资料:osql说明文档
23
项目应用3:远程主机进程管理
开发时间对比 JAVA VS C#
C#开发速度 >> JAVA
为什么不用C#? 跨平台性对比
17
2.2.2 进程管理(Process类)
文件名:KwMusic.EXE
路径:C:\Program Files\KWMUSIC\KwMusic.EXE
改程序 :启动音乐盒
让你的程序启动音乐盒!
注意:路径!
18
2.2.2 进程管理(Process类)
一些细节
仅文件名提示找不到?
4
2.1 进程与线程的基本概念
并发执行:
宏观上并行
微观上串行 异步执行 例如: 查毒软件进程在下载更新病毒库(A)的同时要进行杀毒(B) A----B-----A----B A B交替占用CPU, 由于时间非常短,所以对用户来说宏观 上感觉在下载和查毒同时进行。而实际执行为串行执行
"远程进程名称",remoteMachineName);
程序举例【例2-1】
10
【例2-1】观察本机运行的所有进程,并显示进程相关的信息。 要求:
(1)用DataGridView显示所有进程信息
(2)鼠标单击DataGridView某处时,判断单击的是否为行 开头或者某个单元格,如果是,显示该行进程的详细信息
需求:

将数据库表、存储过程、从开发环境 生产环境? 如何初始化数据?
13
2.2.2 启动和停止进程
任务2方案:
方法1:实验室建立好,拷贝数据库文件?

SqlServer 2008 可以 通用么?NO! 让用户命令行执行?你会,别人可以么?软件需求!
一般方法:执行sql脚本
7
2.2.1 获取进程信息
写程序 – 检查qq进程是否启动 – 给出提示信息
检查一下计算机中QQ是否 正在运行?
2.2.1 获取进程信息
1、如何获取进程信息 (1)获取本地计算机的所有进程: Process[] myProcesses = Process.GetProcesses(); (2)获取本地计算机上指定名称的进程: Process[] myProcesses = Process.GetProcessesByName("进程名称"); 注意:(a)进程名称不带扩展名。 (b)可以是任何一个可执行文件 例如: Process[] myProcesses = Process.GetProcessesByName (“WindowApplication1");
如何选择?CloseMainWindow VS Kill
有图像界面?先礼后兵

先尝试 CloseMainWindow 后尝试 Kill Kill方法
没有图形用户界面

注意:异常处理!
21
2.2.2 进程管理(Process类)
【例2-2】启动、停止和观察Notepad进程。
(StartStopProcess)要求:

默认寻找路径:当前目录+环境变量PATH 加路径信息。自己的,建议用相对路径!
指定图形用户界面的打开方式。例如: myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
细节记不住?
看提示! 定位问题 断点调试!必杀技!
5
2.2 进程管理(Process类)
任务1:获取进程信息
2.2 进程管理(Process类)
1、Process类位于System.D算机)
(1)可以启动、终止某个进程 (2)可以查看进程相关信息,如CPU利用率等 (3)可以查看进程工作状态 3、对远程计算机 (1)可以查看远程计算机相关信息 (2)无法直接启动、终止远程计算机 4、在一个程序中处理其他的程序(例如调用其他.exe文件、. dll文件、快捷方式等),实际上就是对进程进行管理。
19
2.2.2 进程管理(Process类)
改程序 -- 添加关闭部分处理
关闭本机所有记事本程序 是否提示保存信息? 还是强制关闭?
20
2.2.2 进程管理(Process类)
停止进程 --- 两种方法
CloseMainWindow + Close(释放资源): 有图形界面
Kill + WaitForExit(等待退出): 所有程序
(运行效果见下页图)
2.2.1 获取进程信息(续)
运行效果:
11
12
2.2.2 启动和停止进程
任务2描述:
项目类型:常用的数据库应用程序(上学期)
环境:

数据库:SQLServer2008 \Oracle 10g\ DB2 V9.5 开发语言: C# 部署实际项目时:
(1)用ListView显示“记事本”进程信息。 (2)用Process类方法启动进程。 (3)终止进程时,把所有“记事本”进程全部终止。
22
项目应用2:调用sql脚本
public void ExecuteSqlFile(string strFileName)
{
Process SqlProcess = new Process(); SqlProcess.StartInfo.FileName = "osql.exe"; SqlProcess.StartInfo.Arguments ="-U sa -P sa123 -d mydb -i"+ strFileName; SqlProcess.StartInfo.WindowStyle= ProcessWindowStyle.Hidden; …..
26
2.2 进程管理 -- 小结
--------------------进程启动--------------------- Start方法:启动进程资源并将其与Process组件关联 StartInfo属性:获取或设置要传递给启动进程的文件名 以及启动参数 ---------------------进程终止--------------------- Kill方法:强制终止进程
第2章 进程与线程
2.1 进程与线程的基本概念 2.2 进程管理(Process类)
1
2.3 线程管理(Thread类)
2.4 线程同步与线程池
2.5 BackgroundWorker组件
2.1 进程与线程的基本概念
进程 正在执行的程序称为进程 进程是资源调度和分配的基本单位 内存 与进程相关的信息包括: 进程标志 与进程关联的文件名 执行的程序和数据,运行时间、在存储器中的位置 占用的内存容量等。
JAVA >> C#
考虑查看远程主机信息 启动关闭远程主机进程?
考虑,Process类提供么? NO! 变通: 客户端 服务端 进程之间的通信
23
24
2.2 进程管理 -- 小结
-----------------------获取进程实例-------------------
GetProcessById方法:通过进程Id创建新的Process组件, 并将其与本地计算机上的进程资源关联。

学习目标:通过Process类在程序中调用sql脚本
14
2.2.2 启动和停止进程
任务3:停止、启动进程、远程主机进程管理
15
2.2.2 进程管理(Process类)
写程序 — 启动记事本 – 空白记事本 – 指定文件名
让你的程序打开一个 记事本文档吧!
试一下:Process类
16
2.2 进程管理 -- 小结
-----------------------获取及设置优先级---------------
25
BasePriority属性: 获取进程优先级(只读)
PriorityClass 属性:设置或更改进程优先级 -------------------进程其他信息-------------------
2.2.2 进程管理(Process类)-- 重点
启动进程
(1)创建一个Process组件的实例,例如:
Process myProcess = new Process(); (2)设置其对应的StartInfo属性,指定要运行的应用程序 名以及传递的参数: myProcess.StartInfo.FileName = "文件名"; myProcess.StartInfo.Arguments = "参数"; (3)调用该实例的Start方法启动该进程。 myProcess.Start();
29
2.3 线程管理(Thread类)(续)
Thread类提供的常用方法
1. Start方法:启动线程 2. Join方法:将指定的线程合并到当前线程中,并阻止当
2.3.1 前台线程与后台线程
2.3.2 线程基本操作 2.3.3 Volatile关键字
2.3.4 在一个线程中操作另一个线程的控件
28
2.3 线程管理(Thread类)
Thread类位于System.Threading命名空间下。 Thread类是用于创建和控制线程的,对线程的常用操作 有:启动、终止、合并xiancheng 和休眠等。 Thread类提供的常用属性 1. IsAlive属性:获取一个值,该值指示当前线程的执行 状态。如果此线程已启动并且尚未正常终止,则为true; 否则为false 2. IsBackground属性:获取或设置一个值,该值指示某 个线程是否为后台线程。是后台线程或即将成为后台线 程,则为true;否则为false 3. Priority属性:获取或设置一个值,该值指示线程的调 度优先级
相关文档
最新文档