在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

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

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

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

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

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

為什么會連續(xù)、同時呢?

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

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

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

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

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

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

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

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

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


審核編輯:劉清

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

    關注

    31

    文章

    5343

    瀏覽量

    120401
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10868

    瀏覽量

    211844
  • ALU
    ALU
    +關注

    關注

    0

    文章

    33

    瀏覽量

    13101
收藏 人收藏

    評論

    相關推薦

    socket 多線程編程實現(xiàn)方法

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

    Python線程和多進程的區(qū)別

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

    CPU線程和程序線程的區(qū)別

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

    探索虛擬線程:原理與實現(xiàn)

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

    一句話讓你理解線程進程

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

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

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

    java實現(xiàn)多線程的幾種方式

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

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

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

    python5種線程鎖盤點

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

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

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

    嵌入式系統(tǒng)線程進程與任務概念與區(qū)別

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

    什么是動態(tài)線程池?動態(tài)線程池的簡單實現(xiàn)思路

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

    線程是什么的基本單位 進程線程的本質區(qū)別

    線程是操作系統(tǒng)處理器調度的基本單位,它代表著獨立的執(zhí)行流。在一個進程,可以包含多個線程,這些線程
    的頭像 發(fā)表于 02-02 16:30 ?937次閱讀

    什么是守護線程?守護線程的底層原理和使用示例

    大家好,今天這篇文章來梳理一下有關守護線程的相關問題,這也是之前曾經(jīng)有被問到過的面試題,在此之前我們先看一看守護線程的使用示例。
    的頭像 發(fā)表于 01-05 11:01 ?1427次閱讀
    什么是守護<b class='flag-5'>線程</b>?守護<b class='flag-5'>線程</b>的底層原理和使用示例

    mcu線程進程的區(qū)別是什么

    是程序執(zhí)行的基本單位,它是進程的一個實體,是進程內的一條執(zhí)行路徑。線程CPU調度的最小單位,它可以看作是輕量級的
    的頭像 發(fā)表于 01-04 10:45 ?758次閱讀
    主站蜘蛛池模板: 97夜夜操| 另类专区欧美| 天天操天天弄| 欧美tube44videos| ts人妖系列在线专区| 欧美行爱| 特黄毛片| 色老头一区二区三区在线观看| 亚洲天堂视频在线播放| 全免费一级午夜毛片| 福利视频一区二区微拍堂| 免费香蕉视频国产在线看| 玖玖在线| 女人大毛片一级毛片一| 五月激情六月婷婷| 日本三级日产三级国产三级| 你懂的网站在线观看网址| 国产在线精品美女观看| 91老色批网站免费看| 日本高清视频网站www| 99草在线观看| 欧美特级午夜一区二区三区| h网站在线免费观看| 亚洲另类电击调教在线观看 | japanese69xxx日本| 亚洲一区二区三区免费视频| 一级毛片免费全部播放| 四虎久久精品国产| 校园激情综合网| 欧美三级小视频| 大尺度视频在线| 欧美黄色影院| 中文字幕 视频一区| 国产黄网站| 在线免费看黄视频| 中文字幕色综合久久| 曰本性l交片视频视频| 日本三级香港三级人妇99视| 国产精品一区二区三区免费视频 | 欧美区在线播放| 欧美一欧美一区二三区性|