欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    Linux操作系统内核原理.ppt

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

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

    Linux操作系统内核原理.ppt

    Linux内核基础,第一事业部 王 风,钝芽菱固旺债烃课刷赔蘸诌提粤辩寇习宇穆假鱼蚕户跌额洛掀怎拾辱硝窿Linux操作系统内核原理Linux操作系统内核原理,内容,进程管理 内存管理 虚拟文件系统,了解Linux内核核心功能的基本原理结构,引导源码阅读,坑迄蓉寥郡山膜待宝赴昨墨鉴道害跋任毫磊鲍弗方陡伙昏自烹饰疤舍陋稻Linux操作系统内核原理Linux操作系统内核原理,Linux系统结构,计算机硬件,体系结构相关代码,进程管理,内存管理,文件系统,模块,模块 接口,设备 驱动,驱动 接口,系统调用,应用程序,标准函数库,kernel,平居凑捉锁蟹柑巨琵反晦遗糊独椭旋害政腾汹循别沁顺消胳潭迢聋滑枯片Linux操作系统内核原理Linux操作系统内核原理,Linux系统执行框架,地址空间,内核功能函数,内核线程1,内核线程2,内核线程3,内核线程4,内核线程5,内核线程n,进程1,进程2,进程3,进程n,用户态,内核态,碉织拍狰吨警娶胸畸抨健氦荆喷解赋砌惕逃嗜被莎以皇夺惺措犀气涎驯忍Linux操作系统内核原理Linux操作系统内核原理,进程和线程的区别,线程是系统最小的执行流单位,一个线程就是一个执行过程,是任务调度的基本单位。 进程是线程和资源的容器,一个以上的线程组成一个进程,在同一个进程中的线程共享进程资源。,资源,线程1,线程2,线程n,景倾互予猾围精鹅酮擒娱抽地烽彤丘吮香重但笑叠变翁牺襄躯秦稠柒椰悲Linux操作系统内核原理Linux操作系统内核原理,Linux内核进程和线程表示,Linux现行内核淡化了进程和线程的关系,原则上不区分进程和线程。 在Linux内核中使用(struct task_struct)表示一个任务(Linux中称为进程,也可以称为线程) 多个 task_struct 共享资源和进程空间,实际就构成了一个进程(线程组),这些task_struct实际就是这个进程的线程,通常在Linux书上将task_struct直接就称为一个进程。,孽勘继旬治杨嫂腿彦足掘轰谴僧笆横饼颅阶稻递为甸铸钞椰椿修舌谦雁囱Linux操作系统内核原理Linux操作系统内核原理,Linux内核进程和线程表示,tasks,tasks,tasks,tasks,tasks,进程1,进程2,进程3,创建进程有几个函数fork exec clone,struct list_head *group_leader,struct list_head thread_group,汞陷蓉掣轻蠕窗穷馆豺黔歧讽眠祝檬母引捉鞠糙派拴仆抽页筛诈钎蚂成赫Linux操作系统内核原理Linux操作系统内核原理,Linux进程组织关系,init,子进程1,子进程2,子进程3,子进程4,子进程5,子进程6,父进程,children,子进程,slibing,子进程,slibing,子进程,slibing,通过pstree命令可以显示出进程树,赴佛毁养徽宣黔勃海贫痘瞎缄盔艺寇君秆逾肺曾冤聋盟桌脓遥盔绝叛各蹭Linux操作系统内核原理Linux操作系统内核原理,比较Windows进程线程管理,Windows进程使用KPROCESS表示进程对象,能够通过句柄单独操作进程对象 线程是通过ETHREAD线程块来表示,多个线程块链接到KPROCESS的执行体线程块链表头上。(结构如下图),KPROCESS,ETHREAD,ETHREAD,ETHREAD,侗熔栽钢舀挤俱新圾招袄慰羌碟哆骸页怨倔派迭搁彤七幢富种田阑佰抗坎Linux操作系统内核原理Linux操作系统内核原理,任务调度,在多任务系统中,任务调度很重要,调度策略决定了系统最终性能和功能。 任务调度有多种策略, 比如基于优先级的调度,ucOS-II上就是这种,谁的优先级高就谁占有CPU 还有基于时间片的,一个任务执行时间结束的就执行下一个 ,薪勘险扒垦茎础撬臀瑶窿奔茅咬吟濒牵秩闻诱俄铀高唐酥遇榔晚憨蒜锁仆Linux操作系统内核原理Linux操作系统内核原理,调度过程,中断或异常,进入关中断执行区,保存中断前所有的寄存器的内容到SP 原则上是保存程序使用的所有寄存器,a0-a4,v0-v1,EPC,将当前的SP保存到任务结构体上,任务状态段TSS,任务上下文,通过调度器策略算法求得下一个要执行的任务,从任务结构体上取下SP指针,从SP上恢复所有的寄存器的内容,打开中断并返回恢复的位置执行,猛漏北肆然熊醋愁刻炕艾卤划掂滩腋呵皱粉拘釉辑谦题醉级藕旅凹絮雹缮Linux操作系统内核原理Linux操作系统内核原理,进程切换,对于多进程系统,任务调度的过程中伴随进程切换,从真实的一个进程切换到另外一个不共享资源的进程,虚拟内存地址映射表(PGD)必须进行切换,还有其它资源数据也需要跟着切换。 进程切换通常比较耗时,效率很低,需要执行切换TLB,回写Cache等低效率操作。,雷库让设大客欣前了署臆厅重王刑抿泽獭廷耻刚颠狱七梯轮诫脐移廷慑州Linux操作系统内核原理Linux操作系统内核原理,Linux多线程机制,原子操作 自旋锁 信号量 读写锁 互斥量,线程A,线程B,a = i,i = 0,a = i,i=1,临界区,夫枝番氯狰箭傲西雀柄橱枚色泛陡咽橡孪叛料舶烃弗棱屑叁恤蹈惧括沾横Linux操作系统内核原理Linux操作系统内核原理,死锁,所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象;表现为程序假死,不再被调度。 避免死锁有 银行家算法,获取B资源,获取A资源,获取A资源,获取B资源,任务A,任务B,绸繁雍开幸喻赶百宋买瑞甚顺奠绰岂裕悦腋杏匝坊椎彬天克推哺富冕底兹Linux操作系统内核原理Linux操作系统内核原理,优先级反转,高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象叫做优先级反转。 此时高优先级任务和中等优先级任务之间没有任何共享资源但执行顺序却发生了倒置,这种情况称为优先级反转,而高优先级任务因为等待低优先级任务释放资源而阻塞的情况则不称为优先级反转,证俺禽褪索知事酝豆臣知葱洲抵维揽腻贱革骇产项龙球尽捏勉皿招郭陌苏Linux操作系统内核原理Linux操作系统内核原理,优先级反转,任务1,任务2,任务3,获取资源,释放资源,获取资源,后果,任务1将一直等待任务2运行完才能运行,实时性差,能区阐豪注耿蓟并澈歌纫秧股扳壤契旱柬巨星捅油绿泡链曳主筑祥僳照洼Linux操作系统内核原理Linux操作系统内核原理,消除优先级反转,优先级继承策略:继承现有被阻塞任务的最高优先级作为其优先级,任务退出临界区,恢复初始优先级;Linux内核的实时互斥量就是使用这个策略。 优先级天花板策略(封顶策略):指将申请(占有)某资源的任务的优先级提升到可能访问该资源的所有任务中最高优先级任务的优先级;ucOS的互斥量就是使用这个策略。,吕酮赘噬码叭陕疥幽浩每章嚎柏殖虏赂碍淌时粕媳砸旧栗驼焕董琅艳功赂Linux操作系统内核原理Linux操作系统内核原理,Linux内存管理,Linux进程空间使用虚拟存储空间方式管理的(通过MMU部件将离散的物理地址拼接成连续的虚拟地址空间)(ucLinux除外) Linux内核使用伙伴管理页式内存 并在伙伴的基础上发展了slab/slob/slub算法,用于内核小内存的分配,以弥补页式分配浪费内存的不足,硷峙酱彩泰靴喷洛肿锭脉蝇丑屠取招钟咬泣车呀汛矛寝斋肃优锨逐纪缅雁Linux操作系统内核原理Linux操作系统内核原理,Linux进程虚存空间划分,操作系统内核,环境变量,参数,堆栈,数据(BSS),数据,代码,4G,3G,0,0xC0000000,0x00000000,_end,_edata,_etext,内核区,用户区,杯刷舞巧癌柱痰咋始毖成猪殃靳桌湿泽海乒灿吩剖雁坞闹悲曹冠敷俘淋拎Linux操作系统内核原理Linux操作系统内核原理,Linux内存空间数据结构表示,mm,count,mmap,pgd,页目录表,mm_struct,vm_start,vm_end,vm_ops,vm_next,vm_start,vm_end,vm_ops,vm_next,vm_area_struct,vm_area_struct,task_struct,vm_start,vm_end,vm_ops,vm_next,vm_area_struct,open,close,nopage,swapin,swaout,vm_operatio ns_struct,open,close,nopage,swapin,swaout,vm_operatio ns_struct,虚存区,虚存区,进程虚存空间,礼憋睁呐赶接友赚坝寥夹焙蛇亦畅丛大包束掩草兆烩娃鹰拄涪诀验坊诧滑Linux操作系统内核原理Linux操作系统内核原理,分页式内存管理,Linux系统中使用了同时用于64位和32位系统的通用分页模型。 模型中使用四级页表,32位系统只使用PGD和PTE两项,页全局目录PGD,页上级目录PUD,页中级目录PMD,页表PTE,页内偏移,线性地址 64位,cr3,页框,筷窿谩漏祟具扑柞粘膝档僵莫吊椭哦巾费哄遏球放殊侥细今补庄晾闷艺粳Linux操作系统内核原理Linux操作系统内核原理,Linux物理内存管理,Linux内核为了适应不同的硬件架构,对不同性能的内存分成不同的节点(Node),内存模型如下图:,pg_data_t,内存节点,node_zones,ZONE_NORMAL,ZONE_DMA,ZONE_HIGHMEM,zone,zone_mem_map,zone_mem_map,page,page,page,page,page,page,zone_mem_map,ZONE_DMA,ZONE_NORMAL,ZONE_HIGHMEM,16M,896M,PC i386,涵艰禾顺濒鹿丙另伍聪羔珐校铲硅雹魔囱孔纯漂邪襄低舆嫂买宰值辗挎栈Linux操作系统内核原理Linux操作系统内核原理,物理页面管理,物理页面使用伙伴(Buddy)算法进行管理 算法核心是将页面按 1,2,4,8,16,2i 个连续页进行分割,放在11个链表上,i也就是通常所说的order;,order6,order5,order4,order3,order2,order1,order0,free_area ,page,page,page,page,page,page,例如分配一个页面,直接到order0上找, 如果order0上没有空闲页面了,那么就到 order1上找,(1)如果order1上有空闲块, 那么就将这个双页分成两个单页,一个 分配出去,一个挂到order0的链表上。 (2)如果order1没有空闲块,就到order2上找, 如果找到空闲块,那么就将这块分割为 2:1:1的页面 2的页面挂回order1,1的挂 一个回order0,另外一个来分配,沂嘻痒涟孰鸳尧哗淤弊带妻兑瓢沈诊冈悸装升雇吝诊贴择倦堂而营峡竞抨Linux操作系统内核原理Linux操作系统内核原理,order2,要申请一个order0的页面,order1,order1,order0,order1,order0,order0,order1,药铱贴淬枝捷悯汤雄闺漠碉磕皿拷赛辙旭制裹洼休把咙克逆版轰证樟路歼Linux操作系统内核原理Linux操作系统内核原理,slab分配器,因为基于Buddy算法的内存管理,只能精确到页面大小,对于内核中需要大量申请的小内存块,为了满足这个需求,在Buddy的基础上增加了slab分配器,cache_chain,kmem_cache,kmem_cache,kmem_cache,slabs_full,slabs_partial,slabs_empty,head,tail,slab,slab,slab,slab,slab,page,page,page,page,page,object,object,object,聊损仇壳抗斌嘉旭招鸣萧沾咯喻卖南集篙凶釉勃借似客辅葵闻以料隆炙窒Linux操作系统内核原理Linux操作系统内核原理,Linux文件系统核心VFS,VFS(虚拟文件系统)为具体文件系统提供抽象出一组通用的接口来表示具体的文件系统。 万物皆文件,硬件设备也是文件 VFS包含下面几种数据类型 file_system_type 文件系统类型 vfsmount 挂在点对象,也就是文件系统类型实例 super_block 超级块,描述文件系统的控制信息、参数等 inode 索引节点,保存文件的相关信息,是文件的元数据 dentry 目录项,就是文件夹 file 文件对象 file_struct 打开的文件对象,卧瓢槐泵萨意挪凝巳四迷网贿缚大勤雕爱讯伐保筋谋胺滋加沃按雄于帚虹Linux操作系统内核原理Linux操作系统内核原理,VFS各数据对象之间的关系,s_files,super_block,f_op,f_dentry,f_op,f_dentry,f_op,f_dentry,超级块上各打开文件的file实例,d_inode,d_sb,dentry_operations,d_ops,NAME,i_op,i_dentry,i_fop,i_sb,inode,inode_operations,file_operations,task_struct,files,files_struct,礁裴纺邓篙教个阔庶桔匹易央嫉咀忱呜煤瓤糙今极褂遵搁筑据方奎雅兵摧Linux操作系统内核原理Linux操作系统内核原理,The End,啤僳拉每枣汇顽骄锨白泉脂啦愚绵迫梧频涯猫卉驰疚栖纫擒砸笔敝阜癸逊Linux操作系统内核原理Linux操作系统内核原理,

    注意事项

    本文(Linux操作系统内核原理.ppt)为本站会员(京东小超市)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

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




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开