欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    实例分析:Linux操作系统.ppt

    • 资源ID:82667753       资源大小:470KB        全文页数:77页
    • 资源格式: PPT        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实例分析:Linux操作系统.ppt

    8.1 Linux的处理机管理8.2 Linux的存储管理8.3 Linux的文件管理8.4 Linux的设备管理第8章 Linux操作系统 Linux操作系统实质上是UNIX的变种,它继承了多任务、多用户等这样的一些特性。Linux 操作系统特点 本章主要内容1、Linux的三种进程调度策略及消息队列;2、Linux的多级页表地址转换机制;3、Linux的文件系统Ext2和虚拟文件系统VFS;4、Linux对字符设备和块设备的管理。8.1 Linux的处理机管理8.18.1.1 Linux1 Linux的进程的进程 1 1LinuxLinux进程的两种运行模式进程的两种运行模式 在在LinuxLinux里,一个进程既可以运行用户程序,又里,一个进程既可以运行用户程序,又可以运行操作系统程序。可以运行操作系统程序。当进程运行用户程序时,称其为处于当进程运行用户程序时,称其为处于“用户模用户模式式”;当进程运行时出现了系统调用或中断事;当进程运行时出现了系统调用或中断事件,转而去执行操作系统内核的程序时,称其件,转而去执行操作系统内核的程序时,称其为处于为处于“核心模式核心模式”。2 2、处理机状态类型、处理机状态类型 在在LinuxLinux里处理机就具有两种运行状态:核心里处理机就具有两种运行状态:核心态和用户态。态和用户态。3 3、进程概念及特征、进程概念及特征 (1 1)、在)、在LinuxLinux里,把进程定义为里,把进程定义为“程序运行程序运行的一个实例的一个实例”(2 2)、进程一方面竞争并占用系统资源(比如)、进程一方面竞争并占用系统资源(比如设备和内存),向系统提出各种请求服务;设备和内存),向系统提出各种请求服务;进程另一方面是基本的调度单位,任何时刻进程另一方面是基本的调度单位,任何时刻只有一个进程在只有一个进程在CPUCPU上运行。上运行。4、Linux进程实体的组成 LinuxLinux中,每个进程就是一个任务(中,每个进程就是一个任务(tasktask),一般具),一般具有以下四个部分:有以下四个部分:(1 1)进程控制块(在)进程控制块(在LinuxLinux里,也称为进程描述符。里,也称为进程描述符。下面统一采用下面统一采用“进程描述符进程描述符”这个称谓)。这个称谓)。(2 2)进程专用的系统堆栈空间;)进程专用的系统堆栈空间;(3 3)供进程执行的程序段(在)供进程执行的程序段(在LinuxLinux里,称为正文里,称为正文段);段);(4 4)进程专用的数据段和用户堆栈空间进程专用的数据段和用户堆栈空间图图8-2 Linux8-2 Linux对进程描述符的管理对进程描述符的管理5 5、LinuxLinux的进程控制块的进程控制块进程描述符进程描述符 在在LinuxLinux中,进程的进程描述符是一个结中,进程的进程描述符是一个结构类型的数据结构:构类型的数据结构:task_structtask_struct。(1)、进程描述符组成内容进程标识(pid);进程状态(state);进程调度信息,包括调度策略(policy)、优先级别(priority和rt_priority)、时间片(counter)等;接收的信号(*sig);进程家族关系;进程队列指针;CPU的现场保护区;与文件系统有关的信息。6、Linux的进程状态 Linux的进程可以有五种不同的状态,图8-3给出了Linux的进程状态,以及状态间的变迁原因。图图8-3 Linux8-3 Linux的进程状态及其变迁的进程状态及其变迁7、Linux的进程状态 可运行状态 可中断状态 不可中断状态 暂停状态 僵死状态 8、进程的创建与撤销nLinuxLinux中的每个进程,都有一个创建、调度运行、中的每个进程,都有一个创建、调度运行、撤销死亡的生命期。撤销死亡的生命期。LinuxLinux系统中的各个进程,系统中的各个进程,相互之间构成了一个树型的进程族系。相互之间构成了一个树型的进程族系。8.1.2 Linux的进程调度1 1LinuxLinux的进程调度类型的进程调度类型 在在LinuxLinux中,进程调度被分为实时进程调度中,进程调度被分为实时进程调度和非实时进程调度两种。和非实时进程调度两种。2Linux进程描述符中与调度有关的字段nLinuxLinux进程描述符中,有四个字段与进程调度进程描述符中,有四个字段与进程调度有关,它们是:有关,它们是:policypolicy、prioritypriority、rt_priorityrt_priority和和countercounter。3 3LinuxLinux的三种进程调度策略的三种进程调度策略 LinuxLinux进程描述符中的进程描述符中的policypolicy字段,可以取三个字段,可以取三个值:值:SCHED_FIFOSCHED_FIFO、SCHED_RRSCHED_RR以及以及SCHED_OTHERSCHED_OTHER。(1 1)SCHED_FIFOSCHED_FIFO实时进程的先进先出调度实时进程的先进先出调度策略策略(2 2)SCHED_RRSCHED_RR实时进程的轮转调度实时进程的轮转调度(3 3)SCHED_OTHERSCHED_OTHER非实时进程的轮转调度非实时进程的轮转调度3 3LinuxLinux的三种进程调度策略的三种进程调度策略4 4LinuxLinux的等待队列的等待队列图图8-5 Linux8-5 Linux中的等待队列中的等待队列8.1.3 Linux8.1.3 Linux进程间的通信进程间的通信 消息队列消息队列 消息队列是进程间的一种异步通信方法。所消息队列是进程间的一种异步通信方法。所谓谓“异步异步”,即发送消息的进程在消息发出之,即发送消息的进程在消息发出之后,不必等待接收进程做出反应,就可以去做后,不必等待接收进程做出反应,就可以去做其他的事情了。其他的事情了。1 1“消息消息”的数据结构的数据结构LinuxLinux中的每个消息,由两个部分组成:消息头中的每个消息,由两个部分组成:消息头和消息缓冲区。和消息缓冲区。图图8-6 Linux8-6 Linux的消息及消息队列结构的消息及消息队列结构2“消息队列”的数据结构nLinuxLinux消息队列是消息队列是structstruct msqid_dsmsqid_ds型的数据结型的数据结构。构。3“消息队列表”的数据结构n进程间借助消息队列来传递数据,因此系统中可以建立多个消息队列。Linux是通过“消息队列表”来管理所有消息队列的。图图8-7 8-7 消息管理诸数据结构间的逻辑关系消息管理诸数据结构间的逻辑关系4有关消息队列的系统调用 创建一个新的消息队列:newque()删除一个消息队列:freeque()向一个消息队列发送一条消息:msgsnd()从一个消息队列中接收一条消息:msgrcv()8.2 Linux的存储管理8.2.1 Linux的虚拟存储空间1Linux的虚拟存储空间 在Linux中,虚拟地址用32个二进制位表示。这意味系统向每个进程提供的虚存空间,最多可以高达232 字节=4GB。1、存储空间分类 Linux的内核把这样的4GB空间划分为两个部分:最高的1GB用于内核本身,称为“系统空间”,并为所有的进程共享;将较低的3GB供进程使用,称为“用户空间”。图图8-8 Linux8-8 Linux的虚拟地址空间结构的虚拟地址空间结构2多级页表的地址转换nLinux在对虚拟地址空间进行分页时,采用两级页表的机制:先是对虚拟地址空间进行分页,形成页表;再对页表进行分页,形成页表的页表。2多级页表的地址转换n 这样一来,不仅虚拟地址空间里的页,可以存放在内存的不连续块中;页表中的页,也能够存放在不连续的内存块里,这就是所谓的多级页表结构。这种“页表的页表”,被称为页表索引。图图8-9 Linux8-9 Linux虚拟地址的划分虚拟地址的划分图图8-10 Linux8-10 Linux的二级页表式地址转换的二级页表式地址转换3、多级索引结构n当虚拟地址用64位表示时,虚拟地址空间的页面更多,用二级索引后的页表仍然很大。因此,Linux还可以提供三级页表式的分页式结构。8.2.2 管理虚拟存储空间的数据结构 Linux进程的各个分区可以是不连续的,因此形成了若干个离散的虚拟区间。为了对它们加以管理,定义了vm_area_struct型及mm_struct型数据结构。图图8-11 Linux8-11 Linux虚存管理的数据结构虚存管理的数据结构1 1管理分区虚拟区间的数据结构管理分区虚拟区间的数据结构vm_area_structvm_area_struct(VMAVMA)一个进程虚拟存储空间中的每一个虚拟区间,一个进程虚拟存储空间中的每一个虚拟区间,都对应着一个都对应着一个vm_area_structvm_area_struct,通常被缩写为,通常被缩写为VMAVMA。n 进程的每个进程的每个VMAVMA,都代表着它的虚拟地址,都代表着它的虚拟地址空间中的一个连续区间。一个进程的两个空间中的一个连续区间。一个进程的两个VMAVMA绝对不会重叠。绝对不会重叠。2 2管理管理VMAVMA的数据结构的数据结构mm_structmm_structn一个进程所有的一个进程所有的VMAVMA,都由,都由mm_structmm_struct来管理。来管理。8.2.3 管理内存空间的数据结构 在Linux存储管理中,系统设置了一张存储分块表mem_map,它的每一个表项对应着一个内存块,记录着该块的有关信息。为了记录内存各块的使用情况,为了记录内存各块的使用情况,LinuxLinux设置设置了位示图了位示图bitmapbitmap,但是,但是,LinuxLinux并不是用并不是用bitmapbitmap来进行存储分配和释放的,而是通过所来进行存储分配和释放的,而是通过所谓的谓的“空闲区队列表空闲区队列表”:free_areafree_area。图图8-12 Linux8-12 Linux的空闲区队列表的空闲区队列表8.28.2.4 4 内存区的分配和页面淘汰策略内存区的分配和页面淘汰策略 进程提出存储请求或释放时,都要与空闲区队列表进程提出存储请求或释放时,都要与空闲区队列表free_areafree_area进行交往。进行交往。LinuxLinux是采用所谓的是采用所谓的“伙伴伙伴(BuddyBuddy)”算法,来进行内存区的分配和释放的。算法,来进行内存区的分配和释放的。当进程提出存储请求时,当进程提出存储请求时,LinuxLinux将大于、等于这个数目将大于、等于这个数目的最小的最小2 2n n个内存块分配出去。个内存块分配出去。图图8-13 8-13 “伙伴伙伴”算法的实施过程算法的实施过程8.3 Linux的文件管理 8.38.3.1 Linux1 Linux文件系统的构成文件系统的构成 所谓虚拟文件系统,就是基于多种不同的文件所谓虚拟文件系统,就是基于多种不同的文件系统,系统,LinuxLinux通过软件的方法,隐去它们各自的通过软件的方法,隐去它们各自的实现细节,抽象出一组标准的有关文件操作的实现细节,抽象出一组标准的有关文件操作的系统调用。系统调用。把这样的系统调用提供给用户后,他们就可以把这样的系统调用提供给用户后,他们就可以使用统一的界面,去完成对各种不同文件系统使用统一的界面,去完成对各种不同文件系统中文件的操作了。中文件的操作了。1、虚拟文件系统特点 有了虚拟文件系统之后,有了虚拟文件系统之后,LinuxLinux就可以支持就可以支持多种不同的文件系统了。这时的文件系统,可多种不同的文件系统了。这时的文件系统,可以看作是由两级构成:上面是用户面对的虚拟以看作是由两级构成:上面是用户面对的虚拟文件系统文件系统VFSVFS,内核里面则是各个不同的文件,内核里面则是各个不同的文件系统。系统。图图8-14 Linux8-14 Linux的的VFSVFS与各文件系统之间的关系与各文件系统之间的关系8.38.3.2 Ext22 Ext2对磁盘的组织对磁盘的组织1 1Ext2Ext2的文件类型的文件类型 按照文件所含的内容,按照文件所含的内容,Ext2Ext2把文件分成以下把文件分成以下3 3类。类。1Ext2的文件类型(1 1)普通文件)普通文件(2 2)目录文件)目录文件(3 3)特别文件)特别文件图图8-15 Ext28-15 Ext2文件目录项的格式文件目录项的格式2Ext2对磁盘的组织(1)Ext2把磁盘的分区或软盘视为一个文件卷,把其上相邻磁道的物理块称为所谓的“块组”。(2)一个文件卷上可能有多个块组。在一个块组上,可以存放普通文件的信息,存放目录文件的信息,存放文件的inode节点,当然还应该存放对块组的管理信息。图图8-16 Ext28-16 Ext2块组的组织结构块组的组织结构2Ext2对磁盘的组织(1)数据区(2)索引节点表(3)索引节点位图(4)盘块位图(5)组描述符(6)超级块图图8-17 Ext28-17 Ext2索引节点位图与索引节点表的关系索引节点位图与索引节点表的关系8.3.3 Ext2文件的物理结构 在把文件存储到磁盘上时,Ext2采用的是索引式结构,即通过该文件inode节点里的数组i_block,建立起文件的逻辑块号与相应物理块号之间的对应关系,形成文件存储的索引表。1小型文件的索引结构 当一个文件的长度在112个磁盘块之间时,在Ext2里就称为小型文件。这时,用文件inode节点里数组i_block 的前12个元素i_block0i_block11,直接给出文件数据存放的磁盘块号。2中型文件的索引结构n当一个文件的长度超过当一个文件的长度超过1212个磁盘块时,在个磁盘块时,在Ext2Ext2里就称为中型文件。里就称为中型文件。n这时,除了需要用到文件这时,除了需要用到文件inodeinode节点里数组节点里数组i_blocki_block 的前的前1212个元素,直接给出个元素,直接给出1212个磁盘块外,个磁盘块外,还需要使用它的第还需要使用它的第1313个元素个元素i_block12i_block12,形,形成一次间接索引。成一次间接索引。图图8-18 Ext28-18 Ext2小型、中型文件的索引结构小型、中型文件的索引结构3大型和巨型文件的索引结构n当一个文件所需磁盘块数超过当一个文件所需磁盘块数超过b/4+12b/4+12时,就成时,就成为一个为一个Ext2Ext2的大型文件。的大型文件。n这时除了用到这时除了用到i_block0i_block0i_block11i_block11外,外,要用到要用到i_block12 i_block12 形成一次间接索引,还要形成一次间接索引,还要用到用到i_block13i_block13形成二次间接索引。形成二次间接索引。图图8-19 Ext28-19 Ext2的大型文件索引结构的大型文件索引结构3大型和巨型文件的索引结构n 当一个文件所需的磁盘块数大于(b/4)*(b/4)+(b/4)+12个时,就成为Ext2的巨型文件了。n这时除了用到i_block0i_block11外,要用到i_block12,要用到i_block13,还要用到i_block14,以形成三次间接索引。8.3.4 虚拟文件系统VFS的数据结构n Linux的VFS既然是虚拟的,因此它不是一个实际的文件系统,磁盘上并没有一个VFS存在。Linux的VFS随系统的初启而建立,随系统的关闭而消逝。n为了管理所有安装的文件系统,VFS通过使用描述整个VFS的一组数据结构,以及描述实际安装的文件系统的数据结构,来处理实际文件系统之间的各种差别,达到管理的目的。8.3.4 虚拟文件系统VFS的数据结构1超级块(super_block)2索引节点(inode)3file结构 4flies_struct结构 5vfsmount结构图图8-20 8-20 task_structtask_struct、files_structfiles_struct、filefile、file_operationsfile_operations之间的关系之间的关系图图8-21 8-21 vfsmountvfsmount单链表的结构单链表的结构8.4 Linux的设备管理n在Linux里,把I/O设备都当作文件来处理,称它们为特别文件或设备文件。8.4.1 Linux设备管理概述图图8-22 Linux8-22 Linux设备驱动的分层结构示意设备驱动的分层结构示意外部设备分类外部设备分类1字符设备(character device)2块设备(block device)3网络设备(net device)8 8.4 4.2 Linux2 Linux对字符设备的管理对字符设备的管理nLinux为了对字符设备进行管理,设置了如下的一些数据结构。1device_struct结构 2chrdevs结构数组图图8-23 8-23 字符设备数据结构间的关系示意字符设备数据结构间的关系示意8 8.4 4.3 Linux3 Linux对块设备的管理对块设备的管理1 1块设备管理的数据结构块设备管理的数据结构(1 1)device_structdevice_struct结构结构(2 2)blkdevsblkdevs结构数组结构数组2 2对块设备输入对块设备输入/输出请求管理的输出请求管理的 数据结构数据结构(1)缓冲区与buffer_head结构(2)request结构(3)blk_dev_struct结构和blk_dev数组图图8-24 request8-24 request结构与结构与buffer_headbuffer_head结构的关系示意结构的关系示意图图8-25 8-25 块设备块设备I/OI/O诸数据结构间的关系示意诸数据结构间的关系示意

    注意事项

    本文(实例分析:Linux操作系统.ppt)为本站会员(赵**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开