
Linux
文章平均质量分 95
Linux 使用与优化
拭心
我的新书《Android 性能优化入门与实战》上架了,快速提升技术实力,强烈推荐!!!
展开
-
Linux 编程之进程篇:调度、优先级、亲和性和资源限制
处理器在调度不同进程时,有什么策略。我们开发者可以如何影响处理器的调度。文章目录进程的调度进程资源的限制Thanks进程的调度调度策略影响调度的因素优先级CPU 亲和性延伸:实时系统内核调度的对象是线程,而不是进程?优先级setpriority(PRIO_PROCESS, tid, ANDROID_PRIORITY_DISPLAY);[-19, 20)/*** Keep in sync with android.os.Process.java **This map原创 2022-03-13 17:59:41 · 6873 阅读 · 0 评论 -
Linux 编程之进程篇:task_struct、进程创建和退出
读完本文你将了解:文章目录什么是进程获取进程相关数据的 API进程 ID什么是进程在大学上操作系统课时,对进程的概念不太清楚,只能硬记:“进程是执行的代码”。后来写的多了,认识到:“进程 = 执行的代码 + 数据 ”。再过几年,意识到可执行的代码叫 ELF,进程本身需要资源,CPU 执行进程也需要资源,又有了新的认识:“进程 = 映射的二进制文件 + 虚拟地址空间 + 内核资源 + 执行上下文”。或许现在理解的还不够深刻,但为了方便日后对比,还是先写下罢!进程的数据结构在 Linux 系统中原创 2022-03-13 17:55:38 · 7018 阅读 · 0 评论 -
Linux 编程之非局部跳转:longjmp siglongjmp
在同一个函数中,我们可以使用 goto 修改程序的执行逻辑。如果在多个函数中,想要修改函数的执行顺序(从一个函数,返回到之前函数的某个预定义逻辑),怎么办呢?答案是使用 longjmp 或 siglongjmp。本文主要内容:longjmp 的作用及使用siglongjmp 的作用及使用两者的区别longjmp 的作用及使用https://man7.org/linux/man-pages/man3/setjmp.3.htmllongjmp 需要和 setjmp 成对使用。#includ原创 2022-02-24 00:11:58 · 3275 阅读 · 2 评论 -
Linux 编程之信号篇:异常监控必知必会
为什么要了解信号信号是 UNIX 中进程管理非常重要的一个环节。主要有 4 个场景需要通过信号进行:进程接收内核的通知(比如通知进程用户输入了信息)系统终止一个进程管理父子进程(比如通知父进程子进程退出了)进程间通信在 Android 系统中也是如此。通过了解信号,我们可以实现对系统运行状态的监听,最实际的用途,就是监听应用发生崩溃。什么是信号信号是一种软中断, 是一种通知方式。当收到内核或者其他进程发送的信号后,接收信号会从当前执行的代码转移到之前注册的信号处理函数(如果注册了的话)原创 2022-02-19 22:03:26 · 3717 阅读 · 0 评论 -
Linux 编程之时间篇:wall time, cpu time 和 timer
文章目录Linux 时间的相关知识获取当前时间time_t (秒)tmtimeval (微秒)timespec (纳秒)获取进程的 CPU 时间睡眠和阻塞睡眠的几种方式阻塞定时器alarminterval timer高级定时器 timer_t总结Thanks在 Java/JS 中获取时间非常简单(System.currentTimeMillis() System.nanoTime(); new Date().getTime() 等等),在 C/C++ 中,就略微复杂一点,因为有好多种 API,今天我们就来原创 2022-02-19 22:02:43 · 4487 阅读 · 0 评论