關於Linux核心的一些演算法__Python

來源:互聯網
上載者:User
總結關於Linux核心的一些演算法

 

轉自

http://www.eechina.com/thread-159896-1-1.html

1.Linux 調度
    I/O消耗型和處理器消耗型進程(保證及時的IO響應和高效的CPU利用率)Server Load Balancer:每顆CPU上有一個進程隊列,當CPU的負載差大於25%時運行Server Load Balancer程式。(從最忙的CPU上取下一個優先順序最高且CPU親和力最小的進程到負載最輕的CPU進程隊列中)。
    為什麼要取優先順序最高的進程呢。
    因為把優先順序高的進程平均分配到各個 CPU 上去才能使系統的效能達到最高。 CPU 的親和力:主要是快取或是其它原因,如某個進程只能在某個 CPU 上運行。
    2. 中斷處理常式與線程的不同之處。
    1 、中斷中不能睡眠。
    2 、中斷上下文具有較嚴格的時間限制,因為它打斷了正在啟動並執行線程。
    3 、中斷處理常式不具有自己的棧,它共用被中斷線程的棧,因此在分配一個任務棧要注意比實際需求的要大一點,以防中斷髮生時,中斷程式使用棧時溢出。
    3. 自旋鎖:主要特點,與等待一個訊號量不同的是它在得不到想要的資源時進程不會睡眠。
    4. 引入讀寫自旋鎖。讀寫自旋鎖減少了鎖的粒度。
    5.slab 層:最佳化動態記憶體分配,(將相同大小的動態記憶體分配和釋放放到一個連續的記憶體區,這樣就不會產生記憶體片段,因為每次分配剛好是一個單位,每次釋放也剛好是一個單位,比如用在進程式控制制塊的動態分配與釋放中)。
    6. 磁碟塊 I/O 操作:使用 Linux 電梯演算法,在磁碟底層操作時將磁碟塊 IO 請求按磁軌排序,以減少磁頭尋跡時間而最佳化磁碟 IO 操作。
    7. 使用頁快取和頁回寫,最佳化檔案系統。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.