底线是,当Linux内核吃掉我们拥有的所有可用内存时(我知道它完全可以使用,内存仍然可用并可以回收:https://www.linuxatemyram.com/),但甚至在此之前,Linux内核就触发vmpressure事件,由Android用来检测OOM情况并开始杀死用户进程。
我特别在Android 9和linux内核中遇到了这个问题:
Linux version 4.14.65-tcc (dimorinny@dimorinny-pc) (gcc version 4.9.x 20150123 (prerelease) (GCC)) #6 SMP PREEMPT Fri Nov 13 16:
每个人我都有一些关于Linux的任务的问题,我知道所有当前处于TASK_RUNNING状态的任务都是在一个叫做runqueue的数据结构中,但是那些正在等待某个事件的任务呢(不是TASK_RUNNING的状态,例如正在等待键盘输入的状态)。对于这样的任务,我有没有其他的数据结构,或者只有通用的list of tasks?提前感谢您的解释
我必须做的任务是在linux中使用进程的请求者。这个任务听起来像这样:通过使用divide and conquer方法计算数组元素的总和,方法如下-父进程将数组拆分为两个不同的子进程,并将其传递给两个子进程。每个子进程必须从它们自己的子数组中计算元素的和,然后将结果(s1和s2)相加;子进程应该重复相同的“技术”,直到返回最终的和。
我必须承认我真的不太了解unix进程,因为我刚刚开始学习这一章,但我知道如何使用fork()从父进程创建两个子进程,以及谁来编写一个使用分而治之方法的C程序。我的问题是,我正在努力将这两个方面结合在一起,这意味着将分而治之的算法--用于计算数组元素的和--集成到一