linux内核ppt刘小明,【陈老师华为北研所讲座PPT】从机制与策略探究Linux内核设计之道(4)...

原标题:【陈老师华为北研所讲座PPT】从机制与策略探究Linux内核设计之道(4)

c9c5d11f43c23d8fac4ad3be19a0dacb.png

解放编译程序,以统一的方式分配逻辑地址。

47a5d8090a94340709989496c80d2f4a.png

首先内核通过映射机制把进程的虚拟地址映射到物理地址,在进程运行时,如果内核发现进程要访问的页没有在物理内存时,就发出了请页要求①;如果有空闲的内存可供分配,就请求分配内存②(于是用到了内存的分配和回收),并把正在使用的物理页记录在页缓存中③(使用了缓存机制)。如果没有足够的内存可供分配,那么就调用交换机制,腾出一部分内存④⑤。另外在地址映射中要通过TLB(翻译后援存储器)来寻找物理页⑧;交换机制中也要用到交换缓存⑥,并且把物理页内容交换到交换文件中后也要修改页表来映射文件地址⑦。

1052289f5b20cf87d7865be1e8363d81.png

在一个布满城市的地图上,要想找到参与的感觉,就是自己也建一点。比如,你自己写的一个驱动程序,不仅仅是以模块的形式加载到内核,还给用户以选择,可以编译到内核中,这时你就可以建立自己的Makefile和Kconfig。

a4a706b904296e23b8377349a54013f2.png

e1a8637836b41ea8cc8913a0bf61b84e.png

执行是操作系统要解决的核心问题之一,其他问题都是由此引发而出。执行机制在设计上的类似和巧妙,可以使你有豁然开阔之感。

49559ba115128c1700da2a7e361f32ae.png

通过fork()创建的进程处于就绪状态,其PCB进入就绪队列。如果调度程序schedule()运行,则从就绪队列中选择一进程投入运行而占有CPU。在进程执行的过程中,因为输入输出等原因调用interruptible_sleep_on()或者sleep_on(),则进程进入浅度睡眠或者深度睡眠。因为进程进入睡眠状态放弃CPU,因此也调用了调度程序schedule()重新从就绪队列中调用一个进程运行。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值