原创 Android 中的線程調度

ZZ:http://stackvoid.com/Thread-Scheduling-in-Android/ 本文概述了 Android 中的線程是如何調度的,並通過設置線程優先級來優化 APP-UI,使其流暢運行。 線程調度聽起來很學術,

原创 2個C編程技巧

1   “取模”操作的高效替代操作——“取&” e.g.    9%(2^3) = 1         9&(2^3 - 1) = 1         2   宏與其對應字符的轉換——“#”的用法 #define CASE_LOCAL(

原创 Linux inotify功能及實現原理

1. inotify主要功能 它是一個內核用於通知用戶空間程序文件系統變化的機制。 衆所周知,Linux 桌面系統與 MAC 或 Windows 相比有許多不如人意的地方,爲了改善這種狀況,開源社區提出用戶態需要內核提供一些機制,以

原创 Android進程管理

從調度角度看 Android進程/線程的調度基於Linux OS的調度,並使用了Linux提供的cgroup對進程進行分組管理。4.4.2版本系統提供了3個cpu cgroup分組: SYSTEM、FOREGROUND和BACKGROUN

原创 setuid()與setgid() -- 設置 UID 和 GID

用 setuid() 設置實際用戶 UID 和有效用戶 UID。 用 setgid() 設置實際組 ID 和有效組 ID。 兩個函數聲明如下: 在使用該函數時會遇到以下情況: 1. 若進程有 root 權限,則函數將實際用戶 ID、有效

原创 linux多線程的cpu綁定及繼承

最近遇到一個問題,在子線程中修改main的cpu綁定成功,然後,fork子進程,觀察新fork出來的子進程cpu綁定與父進程的修改後的cpu綁定不一致。 經過一番分析,找到了原因: 1)我們使用的線程庫是nptl庫; 2)在子線程中修改m

原创 CVE-2015-7547python腳本運行問題修改

爲了驗證自己使用的C庫是否存在dns緩衝區益處漏洞,從https://github.com/fjserna/CVE-2015-7547 下載了測試代碼進行驗證。但將python腳本不是到windows上運行時,總是出現10054異常。 後

原创 信號實現父子進程之間的同步--sigsuspend的作用

函數原型:   #include <signal.h>   int sigsuspend(const sigset_t *mask); 作用:   用於在接收到某個信號之前,臨時用mask替換進程的信號掩碼,並暫停進程執行,直

原创 sigsuspend 函數使用 及與 pause 區別

sigsuspend函數 :sigsuspend函數接受一個信號集指針,將信號屏蔽字設置爲信號集中的值,在進程接受到一個信號之前,進程會掛起,當捕捉一個信 號,首先執行信號處理程序,然後從sigsuspend返回,最後將信號屏蔽字恢復

原创 linux Oops和Panic關係 .

常在河邊走,哪能不溼鞋。用Linux,總有死機的時候,如果運氣好,會看到一些所謂”Oops”信息(在屏幕上或系統日誌中),比如: Unable to handle kernel paging request at virtual addr

原创 Android APP線程是由誰創建的

通過老羅的《Dalvik虛擬機進程和線程的創建過程分析》知道Android APP線程是通過pthread_create創建的。這就意味着新創建線程的父親是pthread_create的調用者,而非zygote。 我以前一直以爲所有A

原创 linux kernel的中斷子系統之(八):softirq

講的蠻好的,對於鎖的使用結合起來易於理解。 一、前言 對於中斷處理而言,linux將其分成了兩個部分,一個叫做中斷handler(top half),是全程關閉中斷的,另外一部分是deferable task(bottom half

原创 Linux tmpfs的使用問題解析

Linux tmpfs的使用問題解析 在不同的版本系統查看tmpfs分區的情況,有的可以查詢到,有的則不行且不報錯。如df命令,對於正常的結果如下: tmpfs 15360 96 15264 1% /var 異常情況,則不會有該條目。

原创 煮餃子與mesos之間妙不可言的關係

這篇原文文章轉載自:http://www.aiweibang.com/yuedu/69570354.html.原文作者:小黑羊JoinWings 一直想寫一篇介紹mesos的文章,文章可以不講技術細節,但一定可以讓一個外行一下子就明白什麼

原创 內存映射操作

http://blog.csdn.net/zhanglei4214/article/details/6653568 如果想在用戶態處理kernel分配的地址可以這麼做。 首先用virt_addr = get_free_pages(GFP_