第8章 实例分析-Linux
更新时间:2023-07-23 00:48:01 阅读量: 实用文档 文档下载
- 第8章面试失败推荐度:
- 相关推荐
主讲教师:林
沛
主讲教师:
林
沛
教授
创始人: Linus Torvalds 里讷斯.托瓦兹出生于芬兰赫尔辛 基市。父亲尼尔斯· 托瓦兹(Nils Torvalds)是一名活跃的共产主义者 及电台记者。托瓦兹家族属于在芬兰 占6%的少数民族芬兰瑞典人。他毕业 于赫尔辛基大学计算机科学系,1997 年至2003年在美国加州硅谷任职于全 美达公司(Transmeta Corporation)参与该公司芯 片的code morph技术研发。后受聘于开源码发展实 验室(OSDL : Open Source Development Labs, Inc),全力开发Linux内核。现任职于Linux基金会。
Linux 名称的来由 Linux 操作系统刚开始时并没有被称作Linux, Linus 给他的操作系统取名为FREAX,这是一个free(自 由)和freak(奇异)的结合词,其含义是怪诞的、怪物、 异想天开等意思。在他将新的操作系统上载到本校的 FTP 服务器上时,管理员Ari Lemke很不喜欢这个名称。 他认为既然是Linus 的操作系统就取其谐音Linux 作为 该操作系统的目录吧,于是Linux 这个名称就开始流传 下来。 在Linus 的自传《Just for Fun》一书中,Linus 解 释说:“坦白地说,我从来没有想到过要用Linux 这个 名称发布这个操作系统,因为这个名字有些太自负了。 而我为最终发布版准备的是什么名字呢? Freax。实际
上,内核代码中某些早期的Makefile - 用于描述如何编 译源代码的文件 - 文件中就已经包含有"Freax"这个名字 了,大约存在了半年左右。但其实这也没什么关系,在 当时还不需要一个名字,因为我还没有向任何人发布过 内核代码。而Ari Lemke,他坚持要用自己的方式将内 核代码放到ftp 站点上,并且非常不喜欢Freax 这个名 字。他坚持要用现在这个名字(Linux),我承认当时我并 没有跟他多争论。但这都是他取的名字。所以我可以光 明正大地说我并不自负,或者部分坦白地说我并没有本 位主义思想。但我想好吧,这也是个好名字,而且以后 为这事我总能说服别人,就想我现在做的这样。"-Linus Torvalds《Just for fun》第84-88 页。
Linux的读法 linux发音五花八门版本颇多,见到和听到的不下10种。 根据linux的创始人Linus Torvalds的说法,Linux的发音和 “Minix”是押韵的。“Li”中“i”的发音类似于“Minix”中“i” 的发音,而“nux”中“u”的发音类似于英文单词“profess” 中“o”的发音。依照国际音标应该是/'linэks/——类似于 “里讷克斯”。但是,由于Linus Torvalds本人是芬兰人, 所以他的Linux读音不是/'linэks/,而是/'liniks/.。 有人综合网上和linux自己的读音,概括出几个自认为 最合适也最通用的读法:/li'n^ks/(“里那克斯”)或 /'li:nэks/(“里讷克斯”)或/li'nju:ks/(“里纽克斯”)。这几个应 该是谁都听得
懂的。至于哪个比较正宗,当然是linux的原 音。但事实上使用linux哪种读法的人似乎都不在少数。
第8章 实例分析: Linux操作系统本章讲述内容: 1. Linux的三种进程调度策略及消息队列; 2. Linux的多级页表地址转换机制 ; 3. Linux的文件系统Ext2和虚拟文件系统 VFS ; 4. Linux对字符设备和块设备的管理
8.1 Linux的处理机管理8.1.1 Linux的进程 1. Linux进程的两种运行模式 . Linux里,当进程运行用户程序时,称为“用 户模式”;当进程运行中出现系统调用或中断 事件,转去执行操作系统内核程序时,称为 “核心模式”。进程在核心模式时,从事资源 管理及各种控制活动;在用户模式时,在操作 系统管理和控制下做自己的工作。 .在Linux里处理机有两种运行状态:在核心态,
CPU执行操作系统的程序;在用户态,CPU执 行用户程序。这两种运行状态,会在一定时机 按需要进行转换。. Linux把进程定义为是“程序运行的一个实 例”。进程竞争并占用系统资源,向系统提出 各种请求服务;进程也是调度单位,任何时刻 只有一个进程在CPU上运行。
2. Linux进程实体的组成. Linux进程的四个部分
在Linux中,每个进程是一个任务(task),有四
个部分: ①进程描述符,即进程控制块; ②进程专用的系统堆栈空间; ③正文段,即供进程执行的程序段; ④进程专用的数据段和用户堆栈空间。.进程描述符和核心栈
每当产生一个新的进程,系统就为其分配 总量为8KB的空间 (即两个连续的内存块),用 于存放进程描述符和组成系统堆栈。如下页图 8-2所示。在进程由于系统调用而进入Linux内
核时(这时CPU被切换成核心态),就会使用为 其开辟的系统堆栈空间。堆栈
两个连续的 物理块(8KB)进程描述符 (1KB)
图8-1 进程描述符和 核心栈的存放空间
. Linux对进程描述符的管理 Linux在内核存储区里开辟一个指针数组task,
长度为NR_TASKS, 指针数组task 每个数组元素里存放 一个进程描述符 一个已创建进程的进 一个进程描述符 程描述符地址。即每 NR_TASKS 一个进程描述符 个元素 个数组元素都指向一 个已创建进程的进程 描述符,通过它,就 图8-2 Linux对进程描述符的管理 可以找到当前系统中 所有进程的进程描述符。通常, NR_TASKS 被定义为512,即限定Linux中可以同时并行工 作的进程数量为512。这样的管理结构如右上 图所示。
3. Linux进程描述符的内容 在Linux中,进程描述符是一个结构类型的 数据结构:task_struct,主要有以下信息: .进程标识 .进程状态 .进程调度信息 .接收的信号 .进程家族关系 .进程队列指针 .CPU的现场保护区 .与文件系统有关的信息
4. Linux的进程状态信
号 信号 如右图示,Linux的 可运行状态 进程有5种状态: 调度 僵死状态 创建 执行 就绪 终止 .可运行状态:进 被抢先 程已做好了运行的 事件 信号或事件 可中断状态 准备。该状态实际 不可中断状态 上包含两个状态, 图8-3 Linux的进程状态及变迁 要么在CPU上运行 (为执行状态),要么已经做好准备,随时 可以投入运行(为就绪状态)。 暂停状态
.可中断状态:进程由于等待某些条件,而处 于这种阻塞状态,直到那些条件出现将其唤醒。
.不可中断状态:这是另外一种阻塞状态。处 于这种状态的进程,表示进程不能被信号中断, 而是在等待硬件条件的到来。.暂停状态:运行进程由于接收到一个信号, 执行被暂时停止。处于该状态的进程,只能由 来自另一个进程发来的信号改变成就绪状态。 .僵死状态:进程已经被终止,正在结束中。
5. Linux的进程族系 Linux系统初启时,自动建立系统的第一个 进程:初始化进程。之后,所有的进程都由它 以及它的子孙创建。因此,Linux系统中的各个 进程,相互之间构成了一个树型的进程族系。8.1.2 Linux的进程调度 1. Linux的三种调度策略 . SCHED_FIFO—实时进程的先进先出调度策略 SCHED_FIFO是一种抢占式的调度策略。原则
上,把CPU分给进程后,该进程就占用CPU直 到释放为止。但若在此期间另有更高优先级的 FIFO进程就绪,那就会把CPU抢夺过来。若有 多个进程都有最高优先级,那就选择等待时间 最长的投入运行。该调度策略适合实时进程, 它们对时间性要求较强,每次运行所需的时间 较短。 . SCHED_RR—实时进程的轮转调度 SCHED_RR是一种抢占式的调度策略。分配给 进程一个时间片后,若在此期间有另一个更高 优先级的RR进程就绪,那么就允许它抢夺过
CPU投入运行。若有多个进程都具有最高优先 级,那就选择其中等待时间最长的投入运行。 可见,SCHED_RR调度策略适合于每次运行需 要时间较长的实时进程。 . SCHED_OTHER—非实时进程的轮转调度 SCHED_OTHER是基于动态优先级的轮转调度 策略,它适合于交互式的分时应用。在这种调 度策略里,进程的动态优先级用所谓的优先数 来表示:优先数越小,相应的优先级越高。操 作系统对核心态进程和对用户态进程,采取不 同的方法来改变其优先数,从而改变优先级 。
2. Linux的等待队列 Linux在处理各种等待时,是把等待队列 和等待的事件联系在一起的。也就是说,需要 等待事件的进程,将根据等待的事件进入不同 的等待队列。如下图所示因某事件等待 的队列头指针 next task next task NULL task
进程描述符 进程描述符
进程描述符
图8-5 Linux中的等待队列
8.1.3 L
inux进程间的通信—消息队列 . Linux为进程间的通信提供多种机制,如有消 息队列、信号、信号量、管道以及共享内存储 区等。信号用于一个进程向另一个进程发通知, 有某个事件发生;信号量用于进程间取得同步; 消息队列、管道、共享存储区,都用于在进程 之间传递数据。.消息队列是进程间的一种异步通信方法。所谓 “异步”,即发送消息的进程在消息发出之后, 不必等待接收进程做出反应,就可以去做其他 的事情了。
.在进程间通信前,先要建立消息队列。有了消 息队列,进程就可以向(或从)消息队列发送 (或接收)消息了。消息在消息队列里,按照 到达的先后顺序排成队。类型相同的消息,先 进入队列的先被接收。Linux对消息的长度没有 限制。消息队列使用完毕后,应该予以释放 (即删除)。
正在阅读:
第8章 实例分析-Linux07-23
东北师范发展心理学16秋在线作业106-21
浅谈怎样做一个成功的初中班主任06-02
烹饪原料知识题(250分)04-10
焊接LED灯箱 - 图文06-11
七年级数学上册 第一章 1.1生活中的立体图形(二)案例点评 北师大版08-26
社会保障学第一次作业 405-02
党的民族政策及法律法规03-07
下城区两项公寓交通标..项目招标文件05-17
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 实例分析
- Linux
- 2015年房产经纪人最常犯的理论考试试题及答案
- 初二人教版物理欧姆定律单元测试
- UV to Mid-IR Observations of Star-forming Galaxies at z~2 Stellar Masses and Stellar Popula
- 2014年考研数学一真题与解析
- 千字文全文带拼音(上下结构)(1)
- 系统互动视角下提高研究生教育质量的思考
- 实验中学2016春季学期开学典礼上德育副校长入学教育讲话稿
- 广西铜坑矿绿色矿山地质工作方法与实践
- 鲁教版第一单元《化学改变了世界》单元测评
- 学术英语人文Unit 2
- 我永远都不会忘记他离开我的那天
- 准提法门简要介绍
- 2011内蒙古自治区医学预防最新考试试题库(完整版)
- 北师大版小学数学二年级上册期末试卷
- 极片外观检验标准
- 实训四 温湿度传感器实验
- 住院患者抗菌药物应用调查分析
- 三国志13 全700武将数据
- 闽建建37号 关于印发《福建省建筑施工企业主要负责人、项目负责人和专职安全生产管理人员安全生产考
- (WORD精排版)文言文《300个常见文言实词》(高中1—160)