怎么控制線程執(zhí)行順序 計(jì)算機(jī)的第一條指令如何執(zhí)行?
計(jì)算機(jī)的第一條指令如何執(zhí)行?這涉及到一些構(gòu)圖原理和操作系統(tǒng)的根本問題。一一回答。1.說明書存放在哪里?指令以二進(jìn)制代碼的形式存儲在外部存儲器(硬盤)中,在程序執(zhí)行時會加載到主存儲器(內(nèi)存)中供CPU直
計(jì)算機(jī)的第一條指令如何執(zhí)行?
這涉及到一些構(gòu)圖原理和操作系統(tǒng)的根本問題。
一一回答。
1.說明書存放在哪里?
指令以二進(jìn)制代碼的形式存儲在外部存儲器(硬盤)中,在程序執(zhí)行時會加載到主存儲器(內(nèi)存)中供CPU直接使用。
2.兩點(diǎn)是什么時候?CPU工作?
因?yàn)楝F(xiàn)代計(jì)算機(jī)都是基于馮.諾依曼體系結(jié)構(gòu)開發(fā)的,所以指令在計(jì)算機(jī)中的執(zhí)行也是順序的,即 "獲取執(zhí)行 "。但是
只有一個CPU(單處理器),同時只能有一個程序使用CPU執(zhí)行操作。但是執(zhí)行一條操作指令(比如1 ^ 2)的速度和執(zhí)行一條IO指令(比如從磁盤讀取文件)的時間相差很大(10 ^ 5)。執(zhí)行一條IO指令可以執(zhí)行無數(shù)條操作指令,一個程序可以 不都是操作指令,會導(dǎo)致CPU在執(zhí)行IO操作時不工作。
因此,前人提出了 "過程與結(jié)果
概念,多個程序交替并發(fā)執(zhí)行,發(fā)生IO操作或資源搶占時阻塞自身,然后調(diào)度其他進(jìn)程進(jìn)行CPU操作。進(jìn)程的調(diào)度是由操作系統(tǒng)來完成的,一個操作系統(tǒng)可能有幾十個或者上百個進(jìn)程,所以現(xiàn)代操作系統(tǒng)中CPU幾乎沒有休息時間。
3.一段代碼是如何運(yùn)行的?
首先,應(yīng)該明確計(jì)算機(jī)可以 t直接識別C代碼,C代碼在編譯鏈接的過程中會被翻譯成計(jì)算機(jī)可以識別的二進(jìn)制機(jī)器碼。
先看一個簡單的C函數(shù)。
編譯它
Rbp和eax都是CPU中的寄存器。
Mov和add都是匯編指令,其中mov將前一個操作數(shù)移動到后一個操作數(shù)。
c代碼被編譯器翻譯成匯編代碼,很像要執(zhí)行的指令。我們不。;這里不討論匯編語言生成的機(jī)器碼。
根據(jù)上面討論的馮諾依曼系統(tǒng)的順序執(zhí)行,我們可以簡單的畫出一個模型順序指令執(zhí)行模型——CPU從主機(jī)訪問第一條指令,執(zhí)行將3移入(%rbp-4),然后從第二條指令的地址取出,然后執(zhí)行將5移入(%rbp-8),之后取出,然后將兩個數(shù)相加,保存在寄存器eax中。
雖然現(xiàn)代CPU為了提高運(yùn)行效率,在這種順序模型的基礎(chǔ)上進(jìn)行了很大的優(yōu)化和改進(jìn),如流水線、亂序執(zhí)行、超線程等技術(shù),但都是基于上述取指令執(zhí)行模型。
12核24線程什么意思?
12核24線程:CPU核數(shù)為12。12核24線程:CPU線程是24線程,最多可以模擬24核。
線程(英語:Thread)是操作系統(tǒng)可以調(diào)度操作的最小單位。它包含在流程中,是流程中的實(shí)際操作單元。線程是指進(jìn)程中控制流的單個序列多個線程可以在一個進(jìn)程中并發(fā),每個線程并行執(zhí)行不同的任務(wù)。
在Unix System V和SunOS中,也稱為輕量級進(jìn)程,但輕量級進(jìn)程將內(nèi)核線程和用戶線程稱為線程。
發(fā)展簡史
在20世紀(jì)60年代,OS中能夠擁有資源并獨(dú)立運(yùn)行的基本單位是進(jìn)程。然而,隨著計(jì)算機(jī)技術(shù)的發(fā)展,過程有許多缺點(diǎn)。
第一,因?yàn)檫M(jìn)程是資源的擁有者,在創(chuàng)建、撤銷和切換時有很大的時間和空間開銷,所以需要引入輕進(jìn)程。第二,由于對稱多處理器(SMP)的出現(xiàn),可以滿足多個運(yùn)行單元,但是多個進(jìn)程的并行開銷太高。
所以在80年代,線程這種可以獨(dú)立運(yùn)行的基本單元出現(xiàn)了。