色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

講講線程、進程和CPU中的超線程

冬至配餃子 ? 來源:天奇工作室 ? 作者:LRC ? 2022-08-05 16:38 ? 次閱讀

我們先來回顧一下之前的內容。CPU其實就是執行指令的器件,指令從哪讀取要看PC寄存器,取得的指令需要翻譯成電路的控制信號,最后輸出一條指令的結果,這個結果可能會對下一條指令產生影響,也可能會對內存或地址空間中的某個值產生影響。

今天我們來講講線程、進程和CPU中的超線程。

我們通過不計其數的指令的組合,可以形成一個完整的線程。線程之間通過少量的必要的溝通組合形成一個進程,也就是我們通常意義上的應用程序。比如說音樂播放器中,音樂的播放是一個線程,用戶的操作界面是另外一個線程,兩個線程合起來構成了音樂播放器。當然,一個應用程序(進程)也可以只有一個線程。

早期的計算機不像現在如此發達,一般一臺計算機一段時間內只運行一個線程,比如說計算導彈軌跡什么的,在計算完成后輸出結果,線程結束。然而時代在改變,在寫這段文字的時候,我的平板一邊打開著wps,一邊播放著音樂。這兩個進程的運行是連續的、同時的。

為什么會連續、同時呢?

首先,當今的CPU的核心數早已不是單核心,一個非超線程(一會會講)的核心可以運行一個線程,現在的八核CPU就可以同時運行八個線程。但是這樣夠嗎?我們現在的電腦同一時刻需要運行的線程可遠不止八個。那看來光有核心數還不夠,我們還需要別的辦法。

第二個辦法便是分時間片。CPU運算速度極快,我們能不能讓CPU在這一些線程上反復橫跳,快速切換并輪流執行這些個線程,營造出一種這些線程是同時進行的錯覺。具體怎么操作呢?可以設置一個“鬧鐘”,當倒計時結束的時候強行停止CPU當前的線程(中斷),PC寄存器跳轉到相應的地址,將當前未處理完的線程的PC值、寄存器組數據等信息用一種數據類型保存到內存中,CPU將根據操作系統給出的決定切換到接下來要運行的下一個線程。CPU此時要將接下來要運行的線程從內存中讀取,恢復該線程到CPU內核心中,就像它之前被切換出去時的樣子,然后開始執行這個線程。(暫不細講)

第三個方法則是今天的主角--超線程技術。這個技術我沒記錯的話是Intel率先提出來的,他們聲稱增加5%的晶體管數量可以提升20%的性能。

具體怎么操作呢?首先我們先要考慮一下為什么一個核心只能同時運行一個線程。

1.只有一個PC寄存器,只能指示一個線程目前運行到哪了。

2.無法區分對寄存器組的操作。比如線程A要把第一個寄存器的值寫成0,B要讀出第一個寄存器的值,現在也就是0。但這個0是B想要的嗎?肯定不是。

3.還有一些涉及到線程的棧指針和頁表基地址的寄存器,也只能支撐一個線程的運行。

因此,超線程簡單來講就是把這些不能公用的資源加倍。而那些流水線上的操作邏輯電路、ALU單元等則可以不用復制。以此實現多個線程同時在一個CPU的核心中進行處理。注意,不一定一個核心只能虛擬出兩個線程,IBM的某款CPU甚至一個核心虛擬出了八個線程。

那為什么性能會提升呢?共用了這么多資源,性能應該會有所下降才對。是的,有些時候性能確實會下滑,尤其是某個線程需要很大計算量的時候,因為共用,可能會導致該線程運行速度減慢。那Intel是瞎吹他們的超線程技術嗎?并不是,往往CPU限制運行速度的不是計算而是讀寫。讀寫要做的就是等待數據的傳輸,這個過程CPU沒事可做,只能空等。但有了超線程就不一樣了,CPU可以在本該空等的地方擇機執行另外一個線程的指令,實現了時間管理,縮短了兩個程序執行的總體時間。


審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5357

    瀏覽量

    120637
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10878

    瀏覽量

    212169
  • ALU
    ALU
    +關注

    關注

    0

    文章

    33

    瀏覽量

    13109
收藏 人收藏

    評論

    相關推薦

    socket 多線程編程實現方法

    是指在同一個進程運行多個線程,每個線程可以獨立執行任務。線程共享進程的資源,如內存空間和文件句
    的頭像 發表于 11-12 14:16 ?397次閱讀

    一文搞懂Linux進程的睡眠和喚醒

    。通過PPID,可以追蹤進程的來源,并了解進程之間的關系。 在PCB記錄的進程狀態,不過是一些整數,這個整數是多少就代表進程此時處于什么
    發表于 11-04 15:15

    Python線程和多進程的區別

    Python作為一種高級編程語言,提供了多種并發編程的方式,其中多線程與多進程是最常見的兩種方式之一。在本文中,我們將探討Python線程與多
    的頭像 發表于 10-23 11:48 ?416次閱讀
    Python<b class='flag-5'>中</b>多<b class='flag-5'>線程</b>和多<b class='flag-5'>進程</b>的區別

    CPU線程和程序線程的區別

    CPU線程與程序的線程在概念、作用、實現方式以及性能影響等方面存在顯著差異。以下是對兩者區別的詳細闡述,旨在深入探討這一技術話題。
    的頭像 發表于 09-02 11:18 ?1078次閱讀

    探索虛擬線程:原理與實現

    虛擬線程的引入與優勢 在Loom項目之前,Java虛擬機(JVM)線程是通過java.lang.Thread類型來實現的,這些線程被稱為平臺線程
    的頭像 發表于 06-24 11:35 ?320次閱讀
    探索虛擬<b class='flag-5'>線程</b>:原理與實現

    鴻蒙開發:【線程模型】

    管理其他線程的ArkTS引擎實例,例如使用TaskPool(任務池)創建任務或取消任務、啟動和終止Worker線程
    的頭像 發表于 06-13 16:38 ?426次閱讀
    鴻蒙開發:【<b class='flag-5'>線程</b>模型】

    一句話讓你理解線程進程

    今天給大家分享一下線程進程,主要包含以下幾部分內容:一句話說明線程進程操作系統為什么需要進程為什么要引入
    的頭像 發表于 06-04 08:04 ?1240次閱讀
    一句話讓你理解<b class='flag-5'>線程</b>和<b class='flag-5'>進程</b>

    鴻蒙OS開發實例:【ArkTS類庫多線程CPU密集型任務TaskPool】

    CPU密集型任務是指需要占用系統資源處理大量計算能力的任務,需要長時間運行,這段時間會阻塞線程其它事件的處理,不適宜放在主線程進行。例如圖像處理、視頻編碼、數據分析等。 基于多線程
    的頭像 發表于 04-01 22:25 ?858次閱讀
    鴻蒙OS開發實例:【ArkTS類庫多<b class='flag-5'>線程</b><b class='flag-5'>CPU</b>密集型任務TaskPool】

    java實現多線程的幾種方式

    Java實現多線程的幾種方式 多線程是指程序包含了兩個或以上的線程,每個線程都可以并行執行不同的任務或操作。Java
    的頭像 發表于 03-14 16:55 ?738次閱讀

    Intel超低功耗新U失去超線程!但多核性能可提升幾乎1.5倍!

    Intel將在今年晚些時候推出Arrow Lake、Lunar Lake兩套平臺,工藝、架構基本相同,分別面向高性能和低功耗,一個意外變化就是不支持超線程
    的頭像 發表于 03-12 15:03 ?1209次閱讀
    Intel超低功耗新U失去<b class='flag-5'>超線程</b>!但多核性能可提升幾乎1.5倍!

    python5種線程鎖盤點

    線程安全是多線程或多進程編程的一個概念,在擁有共享數據的多條線程并行執行的程序
    發表于 03-07 11:08 ?1619次閱讀
    python<b class='flag-5'>中</b>5種<b class='flag-5'>線程</b>鎖盤點

    基于RTOS的應用進程的典型線程

    RTOS的關鍵因素是最小的中斷延遲和最小的線程切換延遲。RTOS的價值在于它的響應速度或可預測性,而不是它在給定時間段內可以執行的工作量。
    發表于 03-05 09:32 ?654次閱讀
    基于RTOS的應用<b class='flag-5'>進程</b><b class='flag-5'>中</b>的典型<b class='flag-5'>線程</b>

    嵌入式系統線程進程與任務概念與區別

    每個線程與主程序共用地址空間,受限于2GB地址空間; 2)線程之間的同步和加鎖控制比較麻煩;一個線程的崩潰可能影響到整個程序的穩定性
    發表于 03-04 15:03 ?1402次閱讀
    嵌入式系統<b class='flag-5'>中</b>的<b class='flag-5'>線程</b>、<b class='flag-5'>進程</b>與任務概念與區別

    什么是動態線程池?動態線程池的簡單實現思路

    因此,動態可監控線程池一種針對以上痛點開發的線程池管理工具。主要可實現功能有:提供對 Spring 應用內線程池實例的全局管控、應用運行時動態變更線程池參數以及
    的頭像 發表于 02-28 10:42 ?656次閱讀

    線程是什么的基本單位 進程線程的本質區別

    線程是操作系統處理器調度的基本單位,它代表著獨立的執行流。在一個進程,可以包含多個線程,這些線程
    的頭像 發表于 02-02 16:30 ?962次閱讀
    主站蜘蛛池模板: 18岁男人女人插孔| 亚欧免费观看在线观看更新| 国产精品女上位在线观看| 99精产国品一二产区在线| 中国xxxxxz| 在线观看亚洲免费视频| 约艺术院校96年清纯白嫩| 在线观看免费视频a| 正能量不良WWW免费窗口| 尤物国产在线精品三区| 一本之道高清在线观看一区| 亚洲一区电影在线观看| 亚洲色图激情文学| 亚洲综合国产在不卡在线| 亚洲色图19p| 国产精品人妻99一区二| 出轨的妻子在线观看| 办公室沙发口爆12P| WWWXXXX兽交| 成人免费视频在线看| 成年人免费观看的视频| 大胸美女裸身色诱网站| 妇少水多18P蜜泬17P亚洲乱| 国产盗摄一区二区三区| 国产免费人成在线视频视频| 国产人成高清在线视频99| 国产伦子沙发午休系列资源曝光| 国产精品欧美一区二区在线看| 国产色精品久久人妻99蜜桃麻豆| 国产亚洲精品久久7777777| 黄色三级在线观看| 久久亚洲AV无码精品午色夜麻豆| 蜜桃婷婷狠狠久久综合9色| 欧美XXXX69学生HD| 入禽太深免费观看| 迅雷哥在线观看高清| 伊人久久大线蕉香港三级| 91偷偷久久做嫩草电影院| 成人毛片免费播放| 国产午夜在线观看视频| 久久er99热精品一区二区|