<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            性能測試基礎知識-處理器調度程序性能

            發(fā)布: 2011-1-17 09:26 | 作者: 不詳 | 來(lái)源: 領(lǐng)測測試網(wǎng)采編 | 查看: 54次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

              下圖顯示了一些可以更改優(yōu)先級值的方法。

              圖 6. 如何確定優(yōu)先級值。 插圖顯示了如何能在執行過(guò)程中或應用了 nice 命令之后更改線(xiàn)程調度優(yōu)先級值。優(yōu)先級值越小,線(xiàn)程優(yōu)先級越高。開(kāi)始時(shí),nice 值缺省為 20 而基本優(yōu)先級缺省為 40.在執行一些操作及處理器損失后,nice 的值仍為 20 且基本優(yōu)先級仍為 40.在運行 renice ——5 命令后及使用和以前相同的處理器的情況下,nice 值現在是 15 而基本優(yōu)先級仍為 40.在以 50 的值發(fā)出子例程 setpri() 之后,固定優(yōu)先級現在是 50 而 nice 值和處理器的使用無(wú)關(guān)。

              線(xiàn)程的 nice 值在創(chuàng )建線(xiàn)程時(shí)設置并且在線(xiàn)程的整個(gè)生命期中都是常量,除非用戶(hù)通過(guò) renice 命令或 setpri()、setpriority()、thread_setsched() 或 nice() 系統調用明確更改了它的值。

              處理器損失是一個(gè)整數,它通過(guò)線(xiàn)程最近的處理器使用來(lái)計算。如果每次在一個(gè) 10 ms 的時(shí)鐘滴答結束時(shí)線(xiàn)程受處理器控制,則最近的處理器使用值近似加 1,直到達到最大值 120.每個(gè)滴答的實(shí)際優(yōu)先級損失隨著(zhù) nice 的值增加。所有線(xiàn)程的最近處理器使用值每秒重算一次。

              結果如下:

              不固定優(yōu)先級的線(xiàn)程的優(yōu)先級隨著(zhù)其最近處理器使用的增加而變低,反之亦然。這暗示一般來(lái)講,某線(xiàn)程最近被分配的時(shí)間片越多,則它被分配下一個(gè)時(shí)間片的可能性越小。

              不固定優(yōu)先級的線(xiàn)程的優(yōu)先級隨著(zhù)其 nice 值的增加而變低,反之亦然。

              注:使用多處理器運行隊列及其負載平衡機制以后,nice 或 renice 的值對線(xiàn)程的優(yōu)先級可能沒(méi)有預期的影響,因為較低優(yōu)先級的運行時(shí)間可能等于或大于較高優(yōu)先級的運行時(shí)間。要求 nice 或 renice 產(chǎn)生預期效果的線(xiàn)程應該放在全局運行隊列中。

              可以使用命令 ps 顯示進(jìn)程的優(yōu)先級值、nice 值和短期的處理器使用值。

              請參閱「處理器的控制爭用」中對使用 nice 和 renice 命令的更詳細的討論。

              請參閱「調諧線(xiàn)程優(yōu)先級值的計算」,里面有處理器損失計算和最近處理器使用值衰減的詳細信息。

              優(yōu)先級機制也用于 AIX 工作負載管理器中來(lái)加強處理器資源管理。因為在工作負載管理器下分類(lèi)的線(xiàn)程具有的優(yōu)先級由工作負載管理器管理,它們可能與沒(méi)有在工作負載管理器下分類(lèi)的線(xiàn)程具有不同的優(yōu)先級行為。

              線(xiàn)程的調度策略下面是線(xiàn)程調度策略的可能值:

              SCHED_FIFO這種策略的線(xiàn)程被調度后,它會(huì )一直運行到結束,除非被阻塞或有一個(gè)較高優(yōu)先級的線(xiàn)程可分派,它將自愿服從處理器的控制。只有固定優(yōu)先級的線(xiàn)程才能有 SCHED_FIFO 調度策略。

              SCHED_RR當一個(gè) SCHED_RR 線(xiàn)程在時(shí)間片的末尾有控制權時(shí),它將移動(dòng)到和它具有相同優(yōu)先級的可分派線(xiàn)程隊列的尾部。只有固定優(yōu)先級的線(xiàn)程才能有 SCHED_RR 的調度策略。

              SCHED_OTHER這個(gè)策略在“POSIX 標準 1003.4a”中作為定義的執行程序進(jìn)行定義。在每個(gè)時(shí)鐘中斷時(shí)重算運行線(xiàn)程的優(yōu)先級值意味著(zhù)該線(xiàn)程可能失去控制權,因為它的優(yōu)先級值已經(jīng)超過(guò)了另一可分派線(xiàn)程的優(yōu)先級值。

              SCHED_FIFO2該策略和 SCHED_FIFO 相同,只是它允許一個(gè)僅睡眠了很短時(shí)間的線(xiàn)程在被喚醒時(shí)可放置在其運行隊列的頭部。這個(gè)時(shí)間周期是相似性限制(可用 schedtune -a 進(jìn)行調節)。該策略?xún)H可用于 AIX 4.3.3 及其后續版本。

              SCHED_FIFO3調度策略設置成 SCHED_FIFO3 的線(xiàn)程總是放置在運行隊列的頭部。為了防止屬于 SCHED_FIFO2 調度策略的線(xiàn)程放置在 SCHED_FIFO3 之前,當 SCHED_FIFO3 線(xiàn)程入隊列時(shí)更改運行隊列參數,這樣屬于 SCHED_FIFO2 的線(xiàn)程就不滿(mǎn)足使其能夠加入運行隊列頭部時(shí)必須滿(mǎn)足的標準。該策略?xún)H可用于 AIX 4.3.3 及其后續版本。

              SCHED_FIFO4只要優(yōu)先級值相差 1,較高優(yōu)先級的 SCHED_FIFO4 調度類(lèi)線(xiàn)程就不會(huì )搶占當前正運行的低優(yōu)先級線(xiàn)程。缺省行為是當前運行于某給定 CPU 的低優(yōu)先級線(xiàn)程被有資格在同一 CPU 上運行的高優(yōu)先級線(xiàn)程搶占。該策略?xún)H可用于 AIX 5L V5100-01 + APAR IY22854 及其后續版本。

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            22/2<12

            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>