- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
03第三章进程及线程
基于Linux操作系统教程 Operating System Course based on Linux 第三章 进程及线程 本章学习目标 在多道程序环境下,程序不能独立运行。作为资源分配和独立运行的基本单位是进程。操作系统所有的特征都是基于进程而体现的。所以,本章的主要问题是: 进程的概念 进程的实体、状态及状态的演变 进程的控制与调度 进程之间的关系协调 线程 Linux中的线程 第三章 进程及线程 3.1 进程的描述 2 )进程的概念 进程是指运行在一个数据集上的程序的执行状态,它包括程序、数据集和进程控制块组成。 3) 进程和程序的关系 (1)进程是程序处理数据的过程,而程序是一组指令的有序集合。 (2)进程具有动态性和并发的特征,而程序不具备。 (3)进程可以涉及到一个或几个程序的执行;反之一程序可以对应多个进程,即同一程序段可在不同数据集合上运行,可构成不同的进程 。 (4)进程具有创建其他进程的功能。 3.1.3 进程的状态及其转换 (1)运行状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。 (2)阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。 (3)就绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。 状态变化 : (1)就绪状态变化到运行状态 。 (2)运行状态变化到就绪状态。 (3)运行状态变化到阻塞状态。 (4)阻塞状态变化到就绪状态。 进程控制块 为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块组成: 程序部分描述进程本身所要完成的功能. “私有数据块”是接受程序规定操作的一组存储单元的内容,是操作的对象。 进程控制块是在进程创建时产生的,当进程存在于系统时(运行),进程控制块就标识了这个进程。 进程示意图和PCB的基本内容 进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个进程控制块。 进程控制块既能标识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程控制块将构成并发执行控制和维护系统工作的依据。 3.2 进程控制 3.2.1 操作系统内核 3.2.2 进程的创建 3.2.3 进程的终止 3.2.4进程的阻塞和唤醒 3.2.5 原语 3.2.6 进程控制原语 操作系统内核(续1) (2)时钟管理 :时钟应该说是硬件系统中最基本的部分,计算机的许多操作都是有时序的。因此对时钟的管理也是OS内核的基本功能。 (3)原语操作 :也就是原子性操作,该操作中的所有命令,要么不执行,要么全部完成。 Linux中的进程创建(续1) 除了init进程外,Linux中的所有进程都是由其他进程创建的。Linux中提供了系统调用fork和clone,可被进程用来创建子进程。 但是系统调用fork和clone其实都调用内核函数do_fork(),通过克隆当前进程来创建子进程的。 3.2.5 原语 在操作系统中,某些被进程调用的操作,例如队列操作、对信号灯的操作、检查启动外设操作等,一旦开始执行就不能被中断,否则就会出现操作错误,造成系统混乱。原语就是为实现这些操作而设置的。 3.2.6 进程控制原语 定义:原语是由若干条机器指令构成,用于完成特定功能的程序段,原语最重要的特点是,在执行过程中是不可中断的。即是要么全部执行,要么不执行。 分类: 1.创建原语:创建和设置PCB,并装入数据和程序 2.撤消原语: 使用进程撤销原语终止一个指定的进程。 3.阻塞原语:出现阻塞事件时,阻塞原语检查并阻塞进程。 4.唤醒原语:当发生激活进程的事件时,激活原语检查并唤醒进程。 3.3 线程 3.3.1 线程的引入 3.3.2 线程与进程的比较 3.3.3 用户级线程和内核支持线程 3.3.1 线程引入的原因 (1)创建进程。系统在创建进程时,必须为之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建立相应的PCB结构。 (2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。 (3)进程切换。在对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。 线程引入的原因(续1) 总之: A 只有进程的系统,多任务并发工作开销大、并发粒度过大,所以能并发的进程个数少
文档评论(0)