Linux操作系统原理与应用第四章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.5.1进程调度的基本原理 在设计进程调度程序时应该考虑以下三个方面: 调度时机:什么时候,什么情况下进行程序调度。 调度策略:使用什么样的策略来选择下一个进入运行的进程。 调度方式:是抢占式还是非抢占式,当由调度程序来决定什么时候停止一个进程的执行,以便让其它进程能够得到执行机会时,这种强制挂起进程的动作成为抢占式。 4.5.2Linux进程调度 Linux内核有如下三种调度方法: SCHED_OTHER 分时调度策略, SCHED_FIFO实时调度策略,先到先服务 SCHED_RR实时调度策略,时间片轮转 4.5.3调度策略 在每个进程的task_struct结构中有以下四项: Policy Priority Counter rt_priority 这四项就是调度程序选择进程的依据。其中,policy是进程的调度策略,用来区分实时和普通两种进程;priority是进程(实时和普通)的优先级;counter是进程剩余的时间片,它的大小完全由priority决定;rt_priority是实时优先级,这是实时进程所特有的,用于实时进程间的选择。 4.5.4调度函数 函数schedule()实现调度程序,它的任务是从运行队列的链表中找到一个进程,并随后将CPU分配给这个进程。 直接调用 延迟调用 4.6进程间通信 进程间通信就是在不同进程之间传播或交换信息,在Linux这种多用户多任务的环境中,为了完成一个任务有时候需要多个进程协同工作,这必然牵扯到进程间的相互通信。 4.6.1进程通信的方式 管道(Pipe) 命名管道(named pipe) 信号(Signal) 消息(Message)队列 共享内存 内存映射(mapped memory) 信号量(semaphore) 套接口(Socket) 第四章 进程管理 4.1进程概述 为了提高计算机系统的效率,增强计算机系统内各种硬件的并行操作能力,操作系统要求程序结构必须适应并发处理的需要,为此引入了进程的概念。进程是操作系统的核心,所有基于多道程序设计的操作系统都建立在进程的概念之上。 4.1.1进程的概念 所谓进程是由正文段(Text)、用户数据段(User Segment)以及系统数据段(System Segment)共同组成的一个执行环境。 4.1.2程序和进程 进程与程序的联系和区别如下: 动态性和静态型。动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体。 结构上每个进程实体都由程序段和相应的数据段组成,这一特征与程序含义相近。 4.1.2程序和进程 一个进程可以涉及到一个或几个程序的执行;反之一个程序可以对应多个进程,即同一程序段可在不同数据集合上运行,可构成不同的进程。 并发性。并发性是进程的重要特征,同时也是操作系统的重要特征。引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。 进程具有创建其它进程的功能。 操作系统中的每一个程序都是在一个主进程中运行的。 4.1.3进程的结构 进程是一个动态实体,它具有生命周期。因此,对操作系统中进程的描述模仿人类的活动。 4.1.4进程实例 进程是程序在计算机上的一次执行活动,当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程,凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就是所有由你启动的进程。进程是操作系统进行资源分配的单位,进程实例就是一个运行的程序。 4.1.5Linux系统中的进程 在Linux中,每个进程在创建时都会被分配一个数据结构,称为进程控制块(Process Control Block,PCB)。在进程的整个生命周期中,系统(也就是内核)总是通过PCB感知进程的存在。除了PCB以外,每个进程都有独立的内核堆栈,一个进程描述符结构,这些数据都作为进程的控制信息储存在内核空间中,而进程的用户空间主要存储代码和数据。进程的另外一个名字是任务,Linux内核通常把进程也叫任务。另外,在Linux内核中,对进程和线程也不做明显的区别, 4.2进程控制块 操作系统为了对进程进行管理,就必须对每个进程在其生命周期内涉及的所有事情进行全名的描述。这些信息在内核中可以用一个结构体来描述,Linux中把对进程的描述结构叫做task_struct,传统上这样的数据结构即为进程控制块。 4.2.1进程状态 最基本的进程状态有以下三种: 运行态:进程占有CPU,并在CPU上运行。 就绪态:进程已经

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档