- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
要点复习 Linux原理 一、操作系统概述 GNU、POSIX、Linux内核、Linux发行版 单内核与微内核的区别 Linux内核子系统的组成:5个 单内核 整个系统是一个大模块,分为内存管理、进程管理等若干逻辑模块,逻辑模块间的交互是通过直接调用其他模块中的函数实现的。 优点:因采用内部调用,系统执行效率高。 缺点:模块间界限不是完全清晰的,模块间的调用也比较随意,所以系统修改、维护等较困难,工作量大。 微内核 把操作系统结构中的内存管理、设备管理等高级服务功能尽可能地从内核中分离出来,变成几个独立的非内核模块,而在内核只保留少量最基本的功能,使内核变得简洁可靠,因此叫微内核。 优点: 几大功能模块在理论上是相互独立的,形成比较明显的界限。可独立更换任一模块而不会影响其他模块,方便第三方开发、设计模块。 未被使用的模块功能不必运行,能大幅度减少系统的内存需求。 可移植性强,理论上讲只需要单独对各微内核部分进行移植修改即可,而且由于微内核的体积小,移植工作量也小。 缺点:模块与微内核间通过通信机制交互,导致系统运行效率较低。 5个内核子系统 二、进程 Linux进程的5个基本状态、状态转换图 理解重要的数据结构——进程控制块task_struct Linux进程调度的时机 Linux的三个基本调度策略 SCHED_FIFO, SCHED_RR, SCHED_OTHER Linux中进程的一生及相关系统调用 解释Linux创建进程的特点,什么是写时复制 Linux中的线程 1.Linux进程状态及转换 2.重要的数据结构——进程控制块task_struct 了解相关属性: 3.Linux进程调度的时机 调度程序什么时候被调用?可结合状态转换图理解: 主动调用schedule 进程状态转换的时刻:进程终止exit、进程睡眠sleep 当前进程的时间片用完时; 设备驱动程序运行时; 驱动程序做长而重复的任务时检查调度标志,如果必要也会调用schedule放弃cpu 被动、抢占 内核态返回用户态; 从系统调用或中断处理返回用户空间时。不一定立即返回用户态进程继续执行 4. Linux的三个基本调度策略 SCHED_OTHER 面向普通分时进程的时间片轮转策略。采用该策略时,系统为处于TASK_RUNNING状态的每个进程分配一个时间片。当时间片用完时,再选择下一个优先级相对较高的进程,并授予CPU使用权。 SCHED_FIFO 适用于对响应时间需求比较高,运行所需时间比较短的实时进程。采用该策略时,各实时进程按其进入可运行队列的顺序依次获得CPU。除了因等待某个事件主动放弃CPU,或出现优先级更高的进程而剥夺其CPU之外,该进程将一直占用CPU运行。 SCHED_RR 适用于对响应时间需求比较高,运行所需时间比较长的实时进程。采用该策略时,各实时进程按时间片轮流使用CPU。当一个运行进程的时间片用完后,停止其运行并将其置于可运行队列的末尾。 5.Linux中进程的一生及相关系统调用 Fork()-父亲克隆一个儿子。执行fork()之后,两个进程并发执行。 Exec()-载入新的可执行文件的内容,新进程脱胎换骨,离家独立,开始了独立工作的职业生涯。 Wait()-等待不仅仅是阻塞自己,还准备对僵死的子进程进行善后处理。 Exit()-终止进程,把进程的状态置为“僵死”,并把其所有的子进程都托付给init进程,最后调用schedule()函数,选择一个新的进程运行。 写时复制 区别linux下的写时复制与Unix中fork分配页面的不同。可同时参考课本P83 Linux的fork()与以往不同,不是全部复制进程空间,实际开销只是复制父进程的页表以及给子进程创建唯一的PCB。(所以linux能快速创建进程)。 父进程的资源被设置为只读(父进程页面被置上写时保护位),当父进程或子进程试图修改某些内容时,内核才在修改前将该部分进行拷贝——写时复制。 6. Linux中的线程 Linux没有把线程和进程分的很清楚,而是把线程和进程一视同仁,线程仅被视为一个使用某些共享资源的进程。也都有一个task_struct。 进程和线程都有各自的控制块。 进程有独立的用户空间,而线程与其人共享地址空间;内核线程是没有用户空间的。 三、内存 概念: 虚拟地址、线性地址、物理地址 虚拟内存空间、线性地址空间、物理地址空间 虚拟内存空间结构 内核空间在高端的1G,用户空间在低端3G 进程用户空间的划分示意图 内存寻址——分段、分页的地址映射 虚拟内存重要的数据结构 以页为单位的伙伴算法内存分配 以字节为单位的slab内存分配 1.虚拟地址、线性地址、物理地址 将主板上的物理内存条所提供的内存空间定义为物理内存空间,其中每个内
文档评论(0)