资源描述
1第第2 2章章 进程描述与控制进程描述与控制v进程的特征和定义进程的特征和定义v进程的三种基本状态进程的三种基本状态v进程控制块进程控制块v进程控制进程控制 v线程和线程和SMP SMP v线程及其管理线程及其管理2进程的引入进程的引入v进程进程是现代操作系统中最重要的构件。操作是现代操作系统中最重要的构件。操作系统的重要功能就是创建、管理和终止进程。系统的重要功能就是创建、管理和终止进程。v为什么要在操作系统中引入进程这样一个概为什么要在操作系统中引入进程这样一个概念?念?3进程的引入(续)进程的引入(续)v在多道程序环境下,在多道程序环境下,程序程序的执行属于并发执行,这的执行属于并发执行,这时,程序将失去其时,程序将失去其封闭性封闭性,并具有并具有间断性间断性及及不可再不可再现性现性的特征。这决定了通常的程序是不能参与并发的特征。这决定了通常的程序是不能参与并发执行的,因为程序执行的结果是执行的,因为程序执行的结果是不可再现的不可再现的。这样。这样程序的执行也就失去了意义程序的执行也就失去了意义4进程的引入(续)进程的引入(续)v为了使程序能并发执行,且为了使对并发执行的为了使程序能并发执行,且为了使对并发执行的程序加以描述和控制,人们引入了程序加以描述和控制,人们引入了“进程进程”的概的概念。为了能比较深刻地了解什么是进程,先对进念。为了能比较深刻地了解什么是进程,先对进程的特征加以描述程的特征加以描述。5l进程的特征和定义进程的特征和定义v1 1)结构特征)结构特征v2)2)动态性动态性 v3)3)并发性并发性 v4)4)独立性独立性 v5)5)异步性异步性 61 1)结构特征)结构特征v程序不能并发执行,为了使程序(含数据)能独立程序不能并发执行,为了使程序(含数据)能独立运行,应为之配置一个进程控制块,即运行,应为之配置一个进程控制块,即PCBPCB;而由;而由程程序段、相关的数据段和序段、相关的数据段和PCBPCB三部分三部分便构成了进程实体,便构成了进程实体,在早期的在早期的UNIXUNIX版本中把这三部分称为版本中把这三部分称为“进程映像进程映像”。72)2)动态性动态性v动态性是进程最基本的特征。它由创建而产生,动态性是进程最基本的特征。它由创建而产生,由调度而执行,由撤销而消亡,因而具有一定的由调度而执行,由撤销而消亡,因而具有一定的生命期。生命期。v而程序是而程序是静态静态的,它是一组有序指令的集合,并的,它是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义。存放于某种介质上,其本身并不具有运动的含义。83)3)并发性并发性v指多个进程共存于内存中,且能在一段时间内同时指多个进程共存于内存中,且能在一段时间内同时运行。并发性是进程的重要特征,也成为运行。并发性是进程的重要特征,也成为OSOS的重要的重要特征。引入进程的目的也就是为了使多个进程能够特征。引入进程的目的也就是为了使多个进程能够并发执行;而程序(没有建立并发执行;而程序(没有建立PCBPCB)是不能并发执行)是不能并发执行的。的。94)4)独立性独立性v指进程实体是一个能独立运行,指进程实体是一个能独立运行,独立分配资源和独立分配资源和独立接受调度的基本单位。独立接受调度的基本单位。凡未建立凡未建立PCBPCB的程序的程序都不能作为一个独立的单位参与运行。都不能作为一个独立的单位参与运行。105)5)异步性异步性v指进程按各自独立的、不可预知的速度向前推进,指进程按各自独立的、不可预知的速度向前推进,或者说进程实体按异步方式运行。或者说进程实体按异步方式运行。11进程的定义进程的定义v进程的定义有多种,比较典型的有:进程的定义有多种,比较典型的有:1 1)进程是程序在处理器上的一次执行过程。)进程是程序在处理器上的一次执行过程。2 2)进程是一个程序及其数据在处理机上顺序执行时)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。所发生的活动。3 3)进程是程序在一个数据集合上的运行的过程,是)进程是程序在一个数据集合上的运行的过程,是系统进行资源分配和调度的一个独立单位。系统进行资源分配和调度的一个独立单位。通常人们定义进程为:进程是进程实体的运行过程,通常人们定义进程为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。是系统进行资源分配和调度的一个独立单位。12l 进程的三种基本状态进程的三种基本状态v1 1)就绪)就绪(Ready)(Ready)状态状态 v2)2)执行状态执行状态 v3)3)阻塞状态阻塞状态 131 1)就绪)就绪(Ready)(Ready)状态状态v当进程已分配到当进程已分配到除除CPUCPU以外以外的的所有的的所有必要必要资源后,只资源后,只要再获得要再获得CPUCPU就可以立即执行,这时的进程状态称为就可以立即执行,这时的进程状态称为就绪状态就绪状态。在一个系统中处于就绪状态的进程可能。在一个系统中处于就绪状态的进程可能有多个,通常将他们排成一个队列,称为有多个,通常将他们排成一个队列,称为就绪队列就绪队列142 2)执行状态)执行状态v进程已获得进程已获得CPUCPU,其程序正在执行。在单处理机系统,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态;在多处理器系统中,只有一个进程处于执行状态;在多处理器系统中,则有多个进程处于执行状态。中,则有多个进程处于执行状态。153 3)阻塞状态)阻塞状态v正在执行的进程由于发生某事件而暂时无法继续执正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,即进程的执行时,便放弃处理机而处于暂停状态,即进程的执行受到阻塞,这种暂停的状态成为行受到阻塞,这种暂停的状态成为阻塞状态阻塞状态。v致使进程阻塞的典型事件有:请求致使进程阻塞的典型事件有:请求I/OI/O,申请缓冲空,申请缓冲空间等。通常将阻塞进程也排成队列,有的系统根据间等。通常将阻塞进程也排成队列,有的系统根据阻塞的原因不同,而把处于阻塞状态的进程拍成多阻塞的原因不同,而把处于阻塞状态的进程拍成多个队列。个队列。16进程的三种状态及其转换进程的三种状态及其转换17进程的另一个状态进程的另一个状态 挂起状态挂起状态v尽管引入了多道程序设计,在内存中有多道程序在尽管引入了多道程序设计,在内存中有多道程序在共享处理机和外围设备,使得处理机利用率提高,共享处理机和外围设备,使得处理机利用率提高,但由于其运行速度的悬殊,还可能出现在内存中的但由于其运行速度的悬殊,还可能出现在内存中的所有进程都在等待所有进程都在等待CPUCPU的情形。为了充分利用的情形。为了充分利用CPUCPU的的宝贵资源,又引入了宝贵资源,又引入了“挂起挂起”状态。状态。181.1.进程挂起的状态进程挂起的状态 由于由于I/OI/O操作比操作比CPUCPU计算慢得多,故常会出计算慢得多,故常会出现内存中所有进程都等待现内存中所有进程都等待I/OI/O的现象。即使运的现象。即使运行多个程序,处理器在大多数时间仍处于空行多个程序,处理器在大多数时间仍处于空闲状态。为此可采用闲状态。为此可采用交换方法交换方法,将内存中的,将内存中的一部分进程转移到磁盘中。一部分进程转移到磁盘中。19 那么需要在进程行为模式中需增加一个新那么需要在进程行为模式中需增加一个新的挂起状态,当内存所有进程阻塞时,操作的挂起状态,当内存所有进程阻塞时,操作系统可将一进程置为系统可将一进程置为挂起状态挂起状态并交换到磁盘,并交换到磁盘,再调入另一进程执行。挂起状态与原有的阻再调入另一进程执行。挂起状态与原有的阻塞和就绪状态结合为塞和就绪状态结合为阻塞挂起状态阻塞挂起状态和和就绪挂就绪挂起状态。起状态。20引入挂起状态的其它原因引入挂起状态的其它原因v(1 1)终)终端用户的请求。端用户的请求。v (2)(2)父进程请求。父进程请求。v (3)(3)负荷调节的需要。负荷调节的需要。v (4)(4)操作系统的需要操作系统的需要21引入挂起状态后进程状态的转换引入挂起状态后进程状态的转换v引入挂起状态后,又会增加从挂起状态(静止状态)引入挂起状态后,又会增加从挂起状态(静止状态)到非挂起状态(活动状态)的转换;或者相反。可到非挂起状态(活动状态)的转换;或者相反。可以有以下几种情况:以有以下几种情况:(1)(1)活活动就绪动就绪静止就绪。静止就绪。(通过挂起原语将其挂起(通过挂起原语将其挂起 )(2)(2)活动阻塞活动阻塞静止阻塞。静止阻塞。(3)(3)静止就绪静止就绪活动就绪。活动就绪。(用激活原语将静止状态(用激活原语将静止状态变为活动状态)变为活动状态)(4)(4)静止阻塞静止阻塞活动阻塞。活动阻塞。22l进程控制块进程控制块v 进程控制块的作用是使一个在多道程序环境下不能进程控制块的作用是使一个在多道程序环境下不能独立运行的独立运行的程序程序(含数据含数据),成为一个能独立运行的,成为一个能独立运行的基本单位,一个能与其它进程并发执行的基本单位,一个能与其它进程并发执行的进程。进程。或或者说,者说,OSOS是根据是根据PCBPCB来对并发执行的进程进行控制和来对并发执行的进程进行控制和管理的。管理的。23进程控制块中的信息进程控制块中的信息 1)1)进程标识符进程标识符 进程标识符用于惟一地标识一个进程。一个进程进程标识符用于惟一地标识一个进程。一个进程通常有两种标识符:通常有两种标识符:(1)(1)内部标识符。内部标识符。在所有的操作系统中,都为每一在所有的操作系统中,都为每一个进程赋予一个惟一的个进程赋予一个惟一的数字标识符数字标识符,它通常是一个,它通常是一个进程的序号。进程的序号。设置内部标识符主要是为了方便系统设置内部标识符主要是为了方便系统使用使用。24v(2)(2)外部标识符。外部标识符。它由创建者提供,通常是由字母、它由创建者提供,通常是由字母、数字组成,往往是由用户数字组成,往往是由用户(进程进程)在访问该进程时使在访问该进程时使用。为了描述进程的家族关系,用。为了描述进程的家族关系,还应设置父进程标还应设置父进程标识及子进程标识。此外,还可设置用户标识,以指识及子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户示拥有该进程的用户251.1.进程控制块中的信息(续)进程控制块中的信息(续)v 2)2)处理机状态处理机状态 处理机状态信息主要是由处理机的各种寄存器中的处理机状态信息主要是由处理机的各种寄存器中的内容组成的。内容组成的。通用寄存器,通用寄存器,又称为用户可视寄存器,它们是用户又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,程序可以访问的,用于暂存信息,在大多数处理机在大多数处理机中,有中,有 832 832 个通用寄存器,在个通用寄存器,在RISCRISC结构的计算机结构的计算机中可超过中可超过 100 100 个;个;26 指令计数器,指令计数器,其中存放了要访问的下一条指令的地址;其中存放了要访问的下一条指令的地址;程程序序状状态态字字PSWPSW,其其中中含含有有状状态态信信息息,如如条条件件码码、执执行行方方式式、中断屏蔽标志等;中断屏蔽标志等;用用户户栈栈指指针针,指指每每个个用用户户进进程程都都有有一一个个或或若若干干个个与与之之相相关关的的系系统统栈栈,用用于于存存放放过过程程和和系系统统调调用用参参数数及及调调用用地地址址。栈栈指指针指向该栈的栈顶。针指向该栈的栈顶。27 v进程控制块进程控制块(PCB)PCB)是进程映象中最关键的部分,是进程映象中最关键的部分,它含有进程的描述信息和控制信息,是进程动它含有进程的描述信息和控制信息,是进程动态特性的集中反映,是系统对进程施行识别和态特性的集中反映,是系统对进程施行识别和控制的依据。操作系统管理进程所需的信息类控制的依据。操作系统管理进程所需的信息类型都收集在进程控制块中型都收集在进程控制块中28进程产生和终止进程产生和终止1.1.进程产生进程产生 通常有通常有4 4种事件会导致新进程产生:种事件会导致新进程产生:v 在一个交互式环境中,当一个新用户在终端键入登录在一个交互式环境中,当一个新用户在终端键入登录命令后,若是合法用户,系统将为该用户建立一个进程。命令后,若是合法用户,系统将为该用户建立一个进程。v 在一个批处理环境中,为了响应一个任务的要求而产在一个批处理环境中,为了响应一个任务的要求而产生进程。生进程。v当运行中获取用户程序提出的某种请求后,当运行中获取用户程序提出的某种请求后,OSOS可以代可以代用户程序产生进程以实现某种功能,使用户不必等待。用户程序产生进程以实现某种功能,使用户不必等待。v基于应用进程的需要,由已存在的进程产生另一个进基于应用进程的需要,由已存在的进程产生另一个进程,以便使新程序以并发运行方式完成特定任务。程,以便使新程序以并发运行方式完成特定任务。29进程产生和终止进程产生和终止2.2.进程终止进程终止 导致进程终止的事件大致有导致进程终止的事件大致有1414种种 :正常结束正常结束 、超时限制超时限制 、内存不足、内存不足 、超界、超界 、保护错误、保护错误 、算、算术错误术错误 、超越时限、超越时限 、I/OI/O失败失败 、非法指令、非法指令 、特权指令特权指令 、错误使用数据、错误使用数据 、操作员或、操作员或OSOS干预干预 、父进程终止、父进程终止 、父进程需要、父进程需要 。30进程产生和终止进程产生和终止进程的动态性质是由其状态变化决定的。通常进程的动态性质是由其状态变化决定的。通常操作系统中进程都具有操作系统中进程都具有三种状态:运行态、就三种状态:运行态、就绪态和阻塞态绪态和阻塞态。进程的生命周期中通常还有创进程的生命周期中通常还有创建和消失两种状态。建和消失两种状态。创建和终止状态对进程管创建和终止状态对进程管理非常有用。理非常有用。31进程状态模型进程状态模型 运行运行:进程当前处于运行状态。进程当前处于运行状态。就绪就绪;进程已准备好运行。进程已准备好运行。阻塞阻塞;进程等待某些事件发生(如进程等待某些事件发生(如I/OI/O操作)后才能运行。操作)后才能运行。创建:进程刚产生,但还未被操作系统提交到可运行进程池中。创建:进程刚产生,但还未被操作系统提交到可运行进程池中。消失:进程被操作系统从可运行进程池中释放。消失:进程被操作系统从可运行进程池中释放。32l进程控制进程控制 在计算机系统中,操作系统负责在计算机系统中,操作系统负责调度进程、调度进程、分配资源、响应用户程序服务的请求分配资源、响应用户程序服务的请求,可以,可以认为操作系统管理整个系统资源的使用和控认为操作系统管理整个系统资源的使用和控制整个系统的事件。制整个系统的事件。33进程控制(续)进程控制(续)操作系统操作系统内核内核负责控制和管理负责控制和管理进程的产生、执进程的产生、执行和消亡的整个过程,行和消亡的整个过程,这主要通过对它们的控这主要通过对它们的控制操作实现。操作系统的进程控制操作主要有:制操作实现。操作系统的进程控制操作主要有:创建进程、撤消进程、挂起进程、恢复进程、创建进程、撤消进程、挂起进程、恢复进程、改变进程优先级、封锁进程、唤醒进程、调度改变进程优先级、封锁进程、唤醒进程、调度进程等。进程等。34执行模式执行模式 大多数处理器都至少支持两种大多数处理器都至少支持两种执行模式执行模式,一,一种是同操作系统有关的模式,另一种则是同种是同操作系统有关的模式,另一种则是同用户程序有关的模式。较低特权模式称为用户程序有关的模式。较低特权模式称为用用户模式户模式。较高特权模式指。较高特权模式指系统模式系统模式、控制模控制模式或内核模式式或内核模式。内核是操作系统中最核心功内核是操作系统中最核心功能的集合。能的集合。35l进程创建进程创建 一旦一旦OSOS决定创建一个进程时,便调用进决定创建一个进程时,便调用进程程创建原语创建原语Creat(),Creat(),进行如下操作:进行如下操作:给新进程一个编号并申请空白给新进程一个编号并申请空白PCBPCB。为进程分配空间。为进程分配空间。初始化初始化PCBPCB。设置合适的链接。设置合适的链接。生成其他一些数据结构。生成其他一些数据结构。36v 原语(原语(primitiveprimitive):):v内核的执行是通过各种内核的执行是通过各种原语操作原语操作实现的。它是机器实现的。它是机器指令的延伸,由若干条机器指令构成用以完成特定指令的延伸,由若干条机器指令构成用以完成特定功能的一段程序。它执行时不可中断,作为一个基功能的一段程序。它执行时不可中断,作为一个基本的执行单位出现(原子操作本的执行单位出现(原子操作 Atomie operationAtomie operation)。)。37进程切换进程切换 在某时刻,一个正在运行的进程被中断,操作系在某时刻,一个正在运行的进程被中断,操作系统就将另一个进程置为运行状态,并对其进行控制。统就将另一个进程置为运行状态,并对其进行控制。当操作系统掌握控制权时,切换随时会发生。可能当操作系统掌握控制权时,切换随时会发生。可能将控制权交给操作系统的事件将控制权交给操作系统的事件有:有:中断中断 、陷阱、陷阱38v中断:中断:计算机系统内发生了某一急需处理计算机系统内发生了某一急需处理的事件,使得的事件,使得CPUCPU暂停正在执行的程序而转去暂停正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又执行相应的事件处理程序,待处理完毕后又返回到原来被中断处继续执行返回到原来被中断处继续执行v自陷(陷阱自陷(陷阱)39上下文切换上下文切换 上上下下文文切切换换发发生生时时,可可能能并并不不改改变变当当前前处处于于运运行行态态的的进进程程状状态态。当当前前运运行行进进程程的的状状态态要要改改变变时时,操作系统将进行以下步骤操作系统将进行以下步骤完成进程切换:完成进程切换:保存处理器内容。保存处理器内容。对当前运行进程的对当前运行进程的PCBPCB进行更新。进行更新。将这个进程的将这个进程的PCBPCB移入适当的队列。移入适当的队列。挑选其他进程执行。挑选其他进程执行。对挑选进程的对挑选进程的PCBPCB进行更新。进行更新。对存储器管理数据结构进行更新。对存储器管理数据结构进行更新。将将被被选选中中进进程程上上次次移移出出时时的的处处理理器器状状态态进进行行恢恢复。复。40微核微核 微核是一个操作系统的核心,它为组件扩展微核是一个操作系统的核心,它为组件扩展提供了基础。提供了基础。微核所应遵循的原理是:只有微核所应遵循的原理是:只有那些绝对必要的操作系统核心功能才能放在那些绝对必要的操作系统核心功能才能放在内核中。次重要的服务和应用功能则建立在内核中。次重要的服务和应用功能则建立在微核之外微核之外。41l线程和线程和SMPSMP 线程线程(Thread)Thread)是近年来操作系统中出现的一个非常是近年来操作系统中出现的一个非常重要的技术。重要的技术。线程的引入,进一步提高了程序并发线程的引入,进一步提高了程序并发执行的程度,从而进一步提高了系统的吞吐量。执行的程度,从而进一步提高了系统的吞吐量。422.4.1 2.4.1 线程及其管理线程及其管理 1.1.线程的引入线程的引入 为为了了既既能能提提高高程程序序的的并并发发程程度度,又又能能减减少少OSOS的的开开销销,操操作作系系统统设设计计者者引引入入了了线线程程,把把进进程程的的两两个个基基本本属属性性分分离离开开来来。引引入入线线程程还还有有一一个个好好处处,就就是是能能较较好好地地支支持持对对称称多多处处理理器器系系统统(Symmetric Symmetric MultiprocessorMultiprocessor,简称简称SMP)SMP)。43线程及其管理线程及其管理2.2.线程的定义及特征线程的定义及特征 线程是进程内的一个相对独立的、可独立调度和指派的执行单元。线程具有以下性质:v线程是进程内的一个相对独立的可执行单元。v线程是操作系统中的基本调度单元。v 一个进程中至少应有一个线程。v线程并不拥有资源,而是共享和使用包含它的进程所拥有的所有资源。v线程在需要时也可创建其他线程。44线程及其管理线程及其管理进程和线程的区别与联系:进程和线程的区别与联系:v调度调度v拥有资源拥有资源 v并发性并发性 v系统开销系统开销 45线程及其管理线程及其管理3.3.线程的状态和管理线程的状态和管理 线程也有一个从创建到消亡的生命过程,线程也有一个从创建到消亡的生命过程,虽然在不虽然在不同的操作系统,线程的状态设计不完全相同,同的操作系统,线程的状态设计不完全相同,但就但就绪绪、运行、阻塞、运行、阻塞3 3个关键的状态是共有的。线程中不个关键的状态是共有的。线程中不具有进程中的挂起状态。具有进程中的挂起状态。对具有多线程的进程状态,对具有多线程的进程状态,若一个线程被阻塞,整个进程不被阻塞。线程使用若一个线程被阻塞,整个进程不被阻塞。线程使用线程控制块线程控制块(TCB)TCB)来描述其数据结构。线程的状态转来描述其数据结构。线程的状态转换是通过相关的控制原语来实现的。换是通过相关的控制原语来实现的。46多线程的实现多线程的实现 多线程机制是指多线程机制是指OSOS支持支持在一个进程内执行在一个进程内执行多个线程的能力。多个线程的能力。线程虽在许多系统中实线程虽在许多系统中实现,但实现的方式并不完全相同。现,但实现的方式并不完全相同。47多线程的实现多线程的实现1.1.用户级线程用户级线程 用户级线程用户级线程ULTULT由用户应用程序建立,由由用户应用程序建立,由用户应用程序负责对这些线程进行调度用户应用程序负责对这些线程进行调度和管理,操作系统内核并不知道有用户和管理,操作系统内核并不知道有用户级线程的存在。因而这种线程与内核无级线程的存在。因而这种线程与内核无关。关。48多线程的实现多线程的实现2.2.内核级线程内核级线程 内核级线程内核级线程KLTKLT中的所有线程的创建、调度和管理全中的所有线程的创建、调度和管理全部由操作系统内核负责。一个应用进程可按多线程部由操作系统内核负责。一个应用进程可按多线程方式编制程序,当它被提交给多线程操作系统运行方式编制程序,当它被提交给多线程操作系统运行时,内核为它创建一个进程和一个线程,线程在运时,内核为它创建一个进程和一个线程,线程在运行中还会创建新的线程。这就是通常所说的行中还会创建新的线程。这就是通常所说的“纯纯KLTKLT方法方法”。49多线程的实现多线程的实现3.KLT和ULT结合 由于纯由于纯KLTKLT和纯和纯ULTULT各有自己的优点和缺点,因此,各有自己的优点和缺点,因此,如果将两种方法结合起来,则可得到两者的全部如果将两种方法结合起来,则可得到两者的全部优点,将两种方法结合起来的系统称之为多线程优点,将两种方法结合起来的系统称之为多线程的操作系统。的操作系统。50进程与线程的关系进程与线程的关系线程线程进程进程描描 述述1111每个线程的执行就是一个进程每个线程的执行就是一个进程n1n1每每个个进进程程定定义义一一个个地地址址空空间间并并动动态态拥有资源;拥有资源;同一进程可产生多个线程并运行同一进程可产生多个线程并运行11n n一个线程可以在多个进程间转移一个线程可以在多个进程间转移nnnn包含包含n1n1和和11n n的性质的性质51SMP 按按照照多多处处理理器器之之间间的的通通信信方方式式可可将将多多处处理理器系统划分为两种类型:器系统划分为两种类型:第第一一种种为为共共享享存存储储器器多多处处理理系系统统(Shared Shared Memory Memory Multiprocessor)Multiprocessor)。第第二二种种为为分分布布式存储器系统式存储器系统(Distributed Memory)Distributed Memory)。52SMP1.1.SMPSMP的特点的特点 系系统统中中有有多多个个处处理理器器,且且每每个个处处理理器器的的地位是相同的。地位是相同的。所有处理器共享主存储器。所有处理器共享主存储器。53SMPSMP2.2.SMPSMP系统设计问题系统设计问题 SMP操作系统设计的关键是:同时并发执行多进程和多线程。调度。同步。存储器管理。可靠性和容错能力。54The endThanks!
展开阅读全文