- 1、本文档共94页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unit 2 进程与线程 内容 ●进程概念 ●进程的创建 ●进程调度 ●线程概论 §1 进程概念 ◆什么是进程 ◆进程的基本状态 ◆进程的组织 1.1 什么是进程? 进程(Process)是操作系统中最重要的概念,是现代计算机中并发活动的主体,是操作系统分配资源的基本单位,也是操作系统为之提供各种服务的对象。 1. 进程定义 进程的定义很多,至今也没有一个公认的统一的定义,有代表性的如: ☆进程是程序在处理器上的并发执行。(Dijkstra) ☆进程是进程映象的执行。(UNIX) ☆进程是程序关于某个资源集合的一次执行过程。 (Windows) ☆进程是一个可并发执行的具有一定独立功能的程序在某个数据集合上的一次执行过程,也是操作系统进行资源分配和保护的基本单位。(1978年全国操作系统学术会议) ★进程是进展/运行中的程序。即一个程序加载后便成为进程。 其实,进程概念最早提出时不称作“进程”,而称之为“任务”(task),即进程是一个正在执行中的计算任务, 后来才统一采用了“进程”这个术语。 上述定义都还不能帮助我们真正理解进程的实质。那么,进程的实质到底是什么呢? 引入进程概念是多道程序设计的需要。多道程序设计的目的是提高计算机的效率(吞吐率),其目标是将原先的程序在计算机上只能串行执行变为多个程序可并发执行。但物理CPU只有一个,CPU在任一时段只能执行一个程序。于是人们设想:能否对物理CPU进行抽象,把一个物理CPU转化为多个虚拟的逻辑CPU,这些逻辑CPU可并发工作独立地执行各自的程序,从而实现多道程序设计的目标。 于是,进程概念便被提出来了,即进程是操作系统对物理CPU的抽象,一个进程就是一个虚拟的逻辑CPU,并允许系统中存在足够多这样的逻辑CPU,它们共享系统的内存资源。每个登录用户和允许运行的应用程序都可以即时获得一个逻辑CPU(即为其创建一个进程!)而无需等待。因此系统中可以有多个进程并发运行,就好象有多个物理CPU在并行工作。 这种想法不是很奇妙吗?引入进程,竟然可以使一台物理的单处理器计算机魔幻般地演变成一台多处理器计算机,而实际上只有一个物理CPU在不停歇地轮流交替地执行着各个逻辑CPU需执行的程序代码,从而使计算机的效率可得以最大程度的发挥。 2. 进程的表示 操作系统是用一种特殊的数据结构来描述一个进程的。这种数据结构被通称为进程控制块。 进程控制块(PCB,Process Control Block)是进程特性的抽象描述,集中定义了进程的各种静态和动态属性。可以说,PCB是操作系统中最复杂的数据结构,也是最重要的数据结构。各种操作系统,根据其规模的大小及复杂程度,PCB的差异相当大,但对于现代操作系统而言,PCB大体上都包含了如下8个方面的信息: (1)进程标识:包括进程名和进程标识号PID(process identifier)。但现代操作系统都只使用PID,它是进程在系统内的惟一标识,就像一个公民的身份证号。 (2)进程创建信息:如创建该进程的用户、创建时间。 (3)进程内存映象的连接信息:进程的内存映象(image)就是进程所要执行的程序(进程的执行实体)在内存中的表示。 由编译器生成的可执行程序文件是可重入的“纯代码”文件——执行代码地址空间与数据地址空间分离,即它一般由代码段和数据段两部分组成:代码段就是可执行的二进制代码,是只读代码;数据段是代码执行中所使用的各种变量的集合。也有把数据段进一步分成静态数据段和动态数据段,前者包含了全局变量和静态变量,后者包含的是自动变量。 由操作系统定义的进程内存映象一般分为三部分:代码段、数据段和栈段。代码段和数据段分别存储可执行程 序文件的代码段和数据段。但内存映象的代码段可被多个进程所共享,目的是节省内存空间;而内存映象的数据段则是每个进程私有的。栈段是操作系统为进程执行程序而设置的工作区,用于传递函数调用和系统调用的入口参数及返回参数,它也是进程私有的。 在创建一个进程时,操作系统内核要为进程内存映象分配一个内存空间(称进程地址空间)。虽然内存映象的三个部分在逻辑上是连续的,但在地址空间中不一定是连续的,即它们可以是离散分布的。因此,在PCB中需要给出内存映象的代码段、数据段及栈段的指针和大小。 现代操作系统一般都采用页式或段页式内存管理机制,进程内存映象的存储分配以页为基本单位,每个进程 都有独立的“页面映射表”(简称页表),故在这里还要包含“页表”的指针和大小。 (4) 所用资源信息:进程除了需要占据一定的内存空间外,还需要使用其他的系统共享资源,如
文档评论(0)