
linux 系统
文章平均质量分 76
MJ牧笛
热爱生活,技术改变生活
展开
-
Linux 调度算法简述
今天在网上看到一些讲linux调度算法和策略的文章,好多都是错误,想当年我也被这种文章误导过很多次。特意针对linux 调度简单梳理一下,确保大家能够分辨是非。linux 的进程调度按照大的区分,有两类,1.RT的线程 2.普通线程, 一个线程是RT线程还是普通线程,内核都有接口设置的,RT线程采取的策略是SCHED_FIFO 和SCHED_RR两种调度算法,这两种调度算法只有一个区别,就是SCHED_RR对同优先级的线程会时间轮转,而SHCED_FIFO则不会,直到优先级高的主动休眠或者放弃.原创 2020-07-05 15:40:39 · 961 阅读 · 0 评论 -
Linux 内存管理四
Page cache 理解,Page cache 实际是一块内存,linux 读取一个文件,会先看看page cache 是否命中,如果没有命中,先把文件读到page cache ,再从page cache 读文件。如果是写的,也是先写入page cache区域,linux应用程序的write 已经返回,什么时候真正写入磁盘,这是linux内存磁盘替换算法的事情。 Linux 读写文件有两种...原创 2020-02-02 18:55:23 · 249 阅读 · 0 评论 -
Linux 内存管理三
本节主要涉及下面这些概念,搞清楚我们在linux下面写一个应用程序究竟耗费了多少内存,也是我们查内核泄漏的指标。VSS- Virtual Set SizeRSS- Resident Set SizePSS- Proportional Set SizeUSS- Unique Set Size在linux 里面大量的存在内存共享的概念,比如我们的libc 库,加入我们有100个程序...原创 2020-02-01 18:18:52 · 354 阅读 · 0 评论 -
linux 内存管理 二
疫情憋在家,继续写下笔记,Buddy 算法把空闲页面管理起来,一个已经被占用的页面,其他人肯定不能申请到的,这些页面都是4k 8k 16k .... ,无论是在内核还是在应用,有时候都要申请很小的内存。比如说我们在内核中需要申请16Bytes,Buddy 还是申请4K的内存,这样就很乱费,所以在内核里面会进行内存的二次管理,在Buddy中申请的内存进行切割,内核中这种机制叫做slab。Slab...原创 2020-01-31 18:09:25 · 260 阅读 · 0 评论 -
Linux 内存管理一
疫情在家,整理下以前的学习笔记, 作为linux 三个最重要的部分之一(进程,io,内存),内存管理是非常重要的,是深入理解linux各个部分的基础,linux的内存管理与其他rtos的内存管理不一样,他是一个“富” os,也就是支持很多的应用同时跑,还需要支持应用之间的内存隔离。Linux 内存不仅仅用于内存,比如作为硬盘的补充,硬盘本身也可以作为内存来使用。硬件原理和分页管理...原创 2020-01-31 10:12:36 · 536 阅读 · 0 评论 -
Linux 内核调试
肺炎疫情憋在家里,总结一下很久之前的学习笔记,先说说系统开发工程都需要的内核调试方面。主要是结合以前的项目调试经验和笔记,欢迎大家补充,还记得以前从0 开始写一个bootloader,把一个linux 系统在三星s3c2410上跑起来,基本就是使用printk 来调试的。上面这一段就是一个典型的IC 原厂的工程师在最开始把linux移植到芯片上的bootargs,是bootloade...原创 2020-01-31 10:05:32 · 1306 阅读 · 0 评论