Time of Update: 2018-12-03
完全公平調度類是調度類的一個執行個體static const struct sched_class fair_sched_class = { .next = &idle_sched_class, .enqueue_task = enqueue_task_fair, .dequeue_task = dequeue_task_fair, .yield_task = yield_task_fair,
Time of Update: 2018-12-03
周期性調度器是在scheduler_tick中實現。如果系統正在活動中,核心會按照頻率HZ自動調用該函數。如果沒有進程在等待調度,那麼在電腦電力供應不足的情況下,也可以關閉該調度器以減少電能消耗。3469 /*3470 * This function gets called by the timer code, with HZ frequency.3471 * We call it with interrupts disabled.3472 *3473 * It also gets
Time of Update: 2018-12-03
CFS調度器類首先明確一點,CFS並不是調度器,而是一種調度器類。傳統的調度器使用時間片的概念,對系統中的進程分別計算時間片,使得進程運行至時間片結束。在所有的進程時間片都以用盡後,重新計算時間片。而CFS調度器完全摒棄了時間片,會重點考慮進程的等待時間。CFS調度器的目的是,向系統中每個啟用的進程提供最大的公正性,或者說確保沒有進程被虧待。注意CFS調度器僅對作用於調度類型為SCHED_NORMAL,
Time of Update: 2018-12-03
從使用者的角度來看,優先順序非常簡單,不過是從-20 ~ 19之間的數字。但是核心內部對這些優先順序的處理相當的複雜。優先順序核心表示在使用者空間可以通過系統調用nice更改當前進程的優先順序,對於linux系統來說優先順序的表示範圍是-20~19,值越小表示進程的優先順序越高。至於說為什麼選擇這麼一個詭異的範圍,真相已經淹沒在曆史中了。在核心中使用一個看起來正常得多的表示方法,從0到139。值越小,優先順序越低。其中0~99是給即時進程使用的,nice值的-20~19正好可以映射到100到13
Time of Update: 2018-12-03
轉載:http://linux.chinaitlab.com/administer/794678.html Linux 最顯著特徵是靈活性和擴充性,例如它的虛擬檔案系統交換器(VFS)。您可以在各種裝置上建立檔案系統,包括傳統的磁碟、USB flash 驅動、記憶體以及其他儲存裝置。您還可以在另一個檔案系統環境中嵌入檔案系統。探索導致 VFS 如此強大的因素,並瞭解 VFS 的主要介面和進程。 Linux
Time of Update: 2018-12-03
Linux 無線網路技術系列之二Bluetooth (1) 作者:Sreekrishnan Venkateswara 發文時間:2004.12.30 BlueZ 是官方 LinuxBluetooth 棧,由主機控制介面(Host Control Interface ,HCI)層、Bluetooth協議核心、邏輯連接控制與應用協定(Logical Link Control and Adaptation Protocol,L2CAP)、SCO 音頻層、其他 Bluetooth
Time of Update: 2018-12-03
本文作者的部落格地址:http://blog.sina.com.cn/samzhen1977作者:Sam
Time of Update: 2018-12-03
本文作者的部落格地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰) sam_code@hotmail.com(HCI協議簡介,HCI在BlueZ中的實現以及HCI編程介面) 1. HCI層協議概述:HCI提供一套統一的方法來訪問Bluetooth底層。: 從圖上可以看出,Host ControllerInterface(HCI) 就是用來溝通Host和Module。Host通常就是PC,Module則是以各種物理串連形式(USB,serial,
Time of Update: 2018-12-03
.tar解包: tar xvf FileName.tar打包:tar cvf FileName.tar DirName(註:tar是打包,不是壓縮!)---------------------------------------------.gz解壓1:gunzip FileName.gz解壓2:gzip -d FileName.gz壓縮:gzip FileName ---------------------------------------------.tar.gz解壓:tar zxvf
Time of Update: 2018-12-03
本文作者的部落格地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰) sam_code@hotmail.comLinux下寫Bluetooth程式,首先接觸到的就是使用HCI Command來設定Bluetooth Modules(USB Bluetooth dongle)。那這些HCI command在blueZ中是如何?的呢?舉例說明。if ((ctl = socket(AF_BLUETOOTH, SOCK_RAW,
Time of Update: 2018-12-03
本文作者的部落格地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰) sam_code@hotmail.com(L2CAP協議簡介,L2CAP在BlueZ中的實現以及L2CAP編程介面) 一:L2CAP協議簡介:Logical Link Control and AdaptationProtocol(L2CAP) 邏輯串連控制和適配協議
Time of Update: 2018-12-03
本文作者的部落格地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰)sam_code@hotmail.com 前面講了使用 ioctl發送HCI Command的方法。但HCIprotocol還有一些Command,比如Inquiry等,他們則不需要使用ioctl來發送。blueZ直接提供了支援,雖然他們的最終都是用同樣辦法實現的。在應用程式中:hci_inquiry(dev_id, length, num_rsp, NULL,
Time of Update: 2018-12-03
本文作者的部落格地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰)sam_code@hotmail.com 例一:發送Signaling Packet:Signaling Command是2個Bluetooth實體之間的L2CAP層命令傳輸。所以得SignalingCommand使用CID 0x0001.多個Command可以在一個C-frame(control
Time of Update: 2018-12-03
本文作者的部落格地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰) sam_code@hotmail.com Service
Time of Update: 2018-12-03
本文作者的部落格地址:http://blog.sina.com.cn/samzhen1977作者:Sam (甄峰)sam_code@hotmail.com 在裝置被發現階段,裝置的Class of device被提供出來。指出此裝置是何種類型,以及支援哪些服務。 回想前面HCI章節所說,Inquiry時,會返回找到的裝置資訊,其中包括BDADDR等。其中dev_class欄位就是Classof Device. typedef struct { bdaddr_t bdaddr; uint8_t
Time of Update: 2018-12-03
由於經常要下載安裝軟體,而提供下載的軟體通常是打包好的而且通常都有壓縮,所以打包壓縮tar的命令是非常重要的,從網上找了一篇關於“linux下的tar打包命令樣本及詳解”的文章,摘錄下來,以備查詢和學習鳥哥的私房菜有更詳細的打包壓縮解壓的說明,請見 http://linux.vbird.org/linux_basic/0240tarcompress.phptar命令[root@linux ~]# tar [-cxtzjvfpPN] 檔案與目錄 ....參數:-c
Time of Update: 2018-12-03
Linux下Ramdisk根檔案系統製作過程解析本文講述了Linux下Ramdisk根檔案系統製作過程。 一、在一個已建好的檔案系統上進行修改 設已建立好的檔案系統壓縮檔為ramdisk.gz 1、解壓 #cd ramdisk.gz所在目錄 #gunzip ramdisk.gz 在解壓後,得到檔案系統鏡象檔案ramdisk, 覆蓋了原來的壓縮檔 2、鏡象檔案掛載 鏡象檔案必須經過掛載後才能看到檔案系統中的各個目錄和詳細內容 #
Time of Update: 2018-12-03
Windows和Linux間有很多檔案分享權限設定的方式,這裡我總結了一下。假設你的Host電腦是Windows,Guest是Linux哈。1.利用Samba這是我用得最多的方式2.在Linux下配置Apahce在Linux下配置Apahce,然後在Windows下通過www方式把Linux下的檔案下載下來。這種方式只能把Linux的檔案傳到Windows,不能把Windows的檔案傳到Linux.3.在Linux下配置Ftp用vsftp或者wu-ftp都可以,配置成上傳許可權的,然後Win
Time of Update: 2018-12-03
Linux核心裡提供的/dev/mem驅動,為我們讀寫記憶體物理地址,提供了一個渠道。下面講述2種利用mem裝置檔案進行物理地址讀寫的方法,一種是裝置驅動的方法,另一種是系統調用的方法。首先我們看下mem這個裝置檔案,/dev/mem是linux下的一個字元裝置,源檔案是~/drivers/char/mem.c,這個裝置檔案是專門用來讀寫物理地址用的。裡面的內容是所有實體記憶體的地址以及內容資訊。通常只有root使用者對其有讀寫權限。 1.裝置驅動的方法
Time of Update: 2018-12-03
對 cpu_relex 的調用將以體系相關的方式執行,在許多系統中它根本不做任何事,這個方法應當明確地避免。對於ARM體系來說: #define cpu_relax() barrier() 也就是說在ARM上運行忙等待相當於:while (time_before(jiffies, j1)) ; 這種忙等待嚴重地降低了系統效能。如果未配置核心為搶佔式, 這個迴圈在延時期間完全鎖住了處理器,電腦直到時間 j1