linux内核源代码情景分析
fight_onlyfor_you
这个作者很懒,什么都没留下…
展开
-
linux进程调度2
Fork前面创建的是一个进程,假设进程P1,调用fork之后,然后进程P2就被创建,P1是一个task_struct,p2也是一个task_struct,所以在内核里面这是两个task_struct,在内核的调度算法的层面上主要看到一个task_struct,他就会被调度,linux在P1刚刚把P2创建出来的时刻,linux会认为P1和P2之间会有某种内在的联系,前面有提到,task_struct原创 2017-10-16 22:43:18 · 375 阅读 · 0 评论 -
Linux进程调度学习1
当我们说进程的时候,就必然要说道线程,在Linux里面经典定义是 进程是一个支援分配的单位,所以,你搞清楚一个进程,就是搞清楚它的资源,当我们要说进程的时候,首先要说Linux里面是用一个什么样的数据结构去描述它 这是个process control block(进程控制块)这是OS里面通用的概念,在linux里面,进程控制块就是一个task_struct结构体 这个时候,我们应该怎么记住这原创 2017-10-14 13:06:33 · 368 阅读 · 0 评论 -
进程调度学习3
所有的操作系统在设计调度器的时候都追求两个目标中的一个,要么就是提高吞吐率,要么就是提高某些任务的相应,其实这两个目标之间有一定的矛盾,就像拔河的两个人一样,你往吞吐率这里多一点,响应就差一点,你往相应多一点,可能就牺牲吞吐率,什么是吞吐,就是我发一分钟去看这个linux,它把所有时间都用在解决负载,比如你有很多事情要做,你把时间花在有用功上,而不是无意义的上面,响应是指某些任务的响应要快,比如说原创 2017-10-18 22:10:53 · 313 阅读 · 0 评论 -
linux进程调度4
Linux可能运行在多核的环境下,Linux就会在这多个核直接负载均衡,每一个核跑的调度算法都是前面说的FIFO,RR,CFS。但是Linux会自动分布在多个核上,自动负载均衡。每个核都有可能把自己的tast_struct从自己的核推到旁边一个核,然后有一个核也可能把自己的推给旁边的,但是在Linux多核场景之下,每一个核都以劳动为乐,所以当别的核把任务推给它去跑的时候,他心里面很开心。它自己闲下原创 2017-10-21 19:45:00 · 370 阅读 · 0 评论 -
分析内核源码,设备树
U-Boot需要将设备树在内存中的存储地址传给内核。该树主要由三大部分组成:头(Header)、结构块(Structure block)、字符串块(Strings block)。 设备树在内存中的存储布局图如下 1.1 头(header) 1.2 结构块(struct block) 扁平设备树结构块是线性化的树形结构,和字符串块一起组成了设备树的主体,以节点形式保原创 2017-09-26 10:09:00 · 2395 阅读 · 0 评论