第02章 进程与线程
- 格式:ppt
- 大小:909.50 KB
- 文档页数:52
作业、进程、线程1. 基本概念作业:⽤户在⼀次解决或是⼀个事务处理过程中要求计算机系统所做的⼯作的集合,它包括⽤户程序、所需要的数据集控制命令等。
作业是由⼀系列有序的步骤组成的。
作业的完成要经过作业提交、作业收容、作业执⾏和作业完成4个阶段。
在执⾏⼀个作业可能会运⾏多个不同的进程。
进程:程序在⼀个数据集上的⼀次运⾏过程。
是操作系统资源分配的基本单位。
在Windows下,进程⼜被细化为线程,也就是⼀个进程下有多个能独⽴运⾏的更⼩的单位. 进程还拥有⼀个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。
线程:是进程中的⼀个实体,是被操作系统独⽴调度和执⾏的基本单位。
⼀个进程包含⼀个或多个线程。
线程只能归属于⼀个进程并且它只能访问该进程所拥有的资源。
当操作系统创建⼀个进程后,该进程会⾃动申请⼀个名为主线程或⾸要线程的线程。
主线程将执⾏运⾏时宿主, ⽽运⾏时宿主会负责载⼊CLR。
简单总结:作业是向计算机提交任务的任务实体,⽽进程是执⾏实体,是资源分配的基本单位,线程是处理机调度的基本单位。
2. 进程2.1 进程的概念主要有两点:第⼀,进程是⼀个实体。
每⼀个进程都有它⾃⼰的地址空间,⼀般情况下,包括⽂本区域(text region)、数据区域(data region)和堆栈(stack region)。
⽂本区域存储处理器执⾏的代码;数据区域存储变量和进程执⾏期间使⽤的动态分配的内存;堆栈区域存储着活动过程调⽤的指令和本地变量。
第⼆,进程是⼀个“执⾏中的程序”。
程序是⼀个没有⽣命的实体,只有处理器赋予程序⽣命时,它才能成为⼀个活动的实体,我们称其为进程。
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.试说明引起进程创建的主要事件。
进程与线程的定义、关系及区别进程与线程的定义、关系及区别⼀、进程的定义进程:指在系统中能独⽴运⾏并作为资源分配的基本单位,它是由⼀组机器指令、数据和堆栈等组成的,是⼀个能独⽴运⾏的活动实体。
进程⼀般有三个状态:就绪状态、执⾏状态和等待状态【或称阻塞状态】;进程只能由⽗进程建⽴,系统中所有的进程形成⼀种进程树的层次体系;挂起命令可由进程⾃⼰和其他进程发出,但是解除挂起命令只能由其他进程发出。
进程控制块(PCB):PCB不但可以记录进程的属性信息,以便对进程进⾏控制和管理,⽽且PCB标志着进程的存在,操作系统根据系统中是否有该进程的进程控制块PCB⽽知道该进程存在与否。
系统建⽴进程的同时就建⽴该进程的PCB,在撤销⼀个进程时,也就撤销其PCB,故进程的PCB对进程来说是它存在的具体的物理标志和体现。
⼀般PCB包括以下三类信息:进程标识信息;处理器状态信息;进程控制信息。
由程序段、相关的数据段和PCB三部分构成了进程实体(⼜称进程印像),⼀般,我们把进程实体就简称为进程。
进程的特征:1.动态性:进程的实质是程序的⼀次执⾏过程,进程是动态产⽣,动态消亡的。
2.并发性:任何进程都可以同其他进程⼀起并发执⾏。
3.独⽴性:进程是⼀个能独⽴运⾏的基本单位,同时也是系统分配资源和调度的独⽴单位。
4.异步性:由于进程间的相互制约,使进程具有执⾏的间断性,即进程按各⾃独⽴的、不可预知的速度向前推进。
⼆、线程的定义线程:线程是进程中的⼀个实体,作为系统调度和分派的基本单位。
线程的性质:1.线程是进程内的⼀个相对独⽴的可执⾏的单元。
若把进程称为任务的话,那么线程则是应⽤中的⼀个⼦任务的执⾏。
2.由于线程是被调度的基本单元,⽽进程不是调度单元。
所以,每个进程在创建时,⾄少需要同时为该进程创建⼀个线程。
即进程中⾄少要有⼀个或⼀个以上的线程,否则该进程⽆法被调度执⾏。
3.进程是被分给并拥有资源的基本单元。
同⼀进程内的多个线程共享该进程的资源,但线程并不拥有资源,只是使⽤他们。
指令,程序,进程,线程的概念及其之间的关系指令(Instruction)是计算机执行特定操作的命令。
它是由一系列位(Value)组成的,在计算机处理器中表示为二进制代码。
计算机通过执行一条指令,完成特定的操作,如算数运算、内存读取、数据传输等。
指令是计算机硬件和软件之间的桥梁,它告诉计算机硬件如何执行某项功能。
程序(Program)是一组有序的指令集合,通过执行这组指令,可以实现预定的计算机功能。
程序一般由程序员使用编程语言编写,并保存在磁盘或存储器中。
程序包含了实现特定功能的算法和逻辑结构。
当用户需要计算机执行某项任务时,可以通过调用相应的程序来完成。
程序可以是操作系统、应用程序、驱动程序等。
进程(Process)是指正在运行的一个程序的实例。
当一个程序被调用执行时,计算机系统会为该程序分配一些资源,如CPU时间、内存空间、文件句柄等,形成一个独立的执行环境,即进程。
进程是操作系统进行资源分配和调度的基本单位。
每个进程都有自己的地址空间和执行状态,并与其他进程相互独立、互不干扰。
进程可以同时执行多个任务,通过操作系统的调度机制,使得多个进程能够并发执行。
线程(Thread)是指进程中的一个执行单元。
一个进程可以包含多个线程,这些线程共享进程的资源,如内存、打开的文件等。
线程拥有自己的栈空间,以及指令执行顺序、程序计数器等。
多线程的机制使得多个线程能够在同一个进程中并发执行,提高系统的并发处理能力。
线程的调度由操作系统负责,通过时间分片等算法,实现不同线程之间的切换和并发执行。
指令、程序、进程和线程之间存在着以下关系:1.指令是程序的基本组成单位,程序是由一系列指令构成的。
程序是静态的,存储在磁盘或存储器中,通过调用执行。
2.程序是进程的载体,进程是程序的一次执行过程。
进程是动态的,是程序在计算机中运行的状态。
进程可以同时运行多个线程,完成多个任务。
3.线程是进程中的一个执行单元,多个线程共享进程的资源。
进程和线程是什么关系与区别
进程
进程是程序的⼀次执⾏过程,是⼀个动态概念,是程序在执⾏过程中分配和管理资源的基本单位,每⼀个进程都有⼀个⾃⼰的地址空间,⾄少有5 种基本状态,它们是:初始态,执⾏态,等待状态,就绪状态,终⽌状态。
线程
线程是CPU调度和分派的基本单位,它可与同属⼀个进程的其他的线程共享进程所拥有的全部资源。
【进程是资源分配的最⼩单位,线程是CPU调度的最⼩单位】
进程和线程的关系
线程是进程的⼀部分
⼀个线程只能属于⼀个进程,⽽⼀个进程可以有多个线程,但⾄少有⼀个线程
进程和线程的区别
理解它们的差别,我从资源使⽤的⾓度出发。
(所谓的资源就是计算机⾥的中央处理器,内存,⽂件,⽹络等等)
根本区别:进程是操作系统资源分配的基本单位,⽽线程是任务调度和执⾏的基本单位
开销⽅⾯:每个进程都有独⽴的代码和数据空间(程序上下⽂),进程之间切换开销⼤;线程可以看做轻量级的进程,同⼀类线程共享代码和数据空间,每个线程都有⾃⼰独⽴的运⾏栈和程序计数器(PC),线程之间切换的开销⼩
所处环境:在操作系统中能同时运⾏多个进程(程序);⽽在同⼀个进程(程序)中有多个线程同时执⾏(通过CPU调度,在每个时间⽚中只有⼀个线程执⾏)
内存分配:系统为每个进程分配不同的内存空间;⽽对线程⽽⾔,除了CPU外,系统不会为线程分配内存(线程所使⽤的资源来⾃其所属进程的资源),线程组之间只能共享资源
包含关系:线程是进程的⼀部分,所以线程也被称为轻权进程或者轻量级进程。
第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 为什么将进程划分成执行、就绪和阻塞三个基本状态?解根据多道程序执行的特点,进程的运行是走走停停的。
因此进程的初级状态应该是执行和等待状态。
处于执行状态的进程占用处理机执行程序,处于等待状态的进程正在等待处理机或者等待其它某种事件的发生。
但是,当处理机空闲时,并不是所有处于等待状态的进程都能放到处理机上执行,有的进程即使分配给它处理机,它也不能执行,因为它的执行的条件没有得到满足。