操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    公學(xué)習(xí)的時(shí)候如果只有一臺(tái)電腦,應(yīng)該算不上完整裝備,電腦上想要輸出的文字、圖片都是靠我們的打印機(jī)來實(shí)現(xiàn),打印機(jī)是電腦畫面的輸出設(shè)備之一,將電腦處理的結(jié)果打印在相關(guān)介質(zhì)上。

    一般來看這個(gè)打印機(jī)功能強(qiáng)不強(qiáng)大的指標(biāo)有三項(xiàng),看打印的分辨率,打印速度和噪聲。而打印機(jī)的種類就分為三種,激光打印機(jī)、噴墨打印機(jī)以及針式打印機(jī),今天我們就一起來看看針式打印機(jī)。

    職場(chǎng)辦公離不開打印機(jī)

    各類針式打印機(jī)從表面上看沒有什么區(qū)別,但隨著專用化和專業(yè)化的需要,出現(xiàn)了不同類型的針式打印機(jī),其中主要有“通用針式打印機(jī)”、“存折針式打印機(jī)”、“行式針式打印機(jī)”和“高速針式打印機(jī)”等幾種,都是不同業(yè)務(wù)線領(lǐng)域需要輸出的產(chǎn)品。

    銀行使用較多

    隨著各行各業(yè)電子化的普及,專門用于銀行、郵局、社保等服務(wù)部門的柜臺(tái)業(yè)務(wù)使用的針式打印機(jī)得到了迅速推廣與應(yīng)用,有些業(yè)務(wù)需要留存單據(jù),用戶與業(yè)務(wù)部門都要保留,因此只有通過針式打印機(jī)才能快速的完成各項(xiàng)單據(jù)的復(fù)寫,為用戶提供高效的服務(wù)。

    針式打印機(jī)是通過打印頭中的24根針擊打復(fù)寫紙,從而形成字體,在使用中,用戶可以根據(jù)需求來選擇多聯(lián)紙張,一般常用的多聯(lián)紙有2聯(lián)、3聯(lián)、4聯(lián)紙,其中也有使用6聯(lián)的打印機(jī)紙。

    多聯(lián)紙打印是利用無碳復(fù)寫技術(shù)實(shí)現(xiàn)的,其實(shí)就和普通手寫復(fù)寫紙一樣,多張復(fù)寫紙疊在一起時(shí),在最上面的一層用筆寫字,下層紙張也會(huì)自動(dòng)出現(xiàn)同樣的字跡。在打印復(fù)寫過程中,筆尖需要對(duì)復(fù)寫紙張施加一定壓力,才能使下面的紙張也出現(xiàn)同樣的字跡。

    針式打印的工作原理(圖源:p.baidu.com)

    針式打印機(jī)有著特殊的工作原理,打印時(shí)打印針頭彈出,將色帶顏色打印到紙張上,打印過程中針頭會(huì)一直對(duì)對(duì)紙張施加壓力,可以使多層的復(fù)寫紙打印出同樣的效果,所以除了第一張紙上的字跡來自于色帶的油墨外,下層紙張也會(huì)同時(shí)顯示出字跡,從而實(shí)現(xiàn)了多聯(lián)打印。

    而為什么噴墨打印技術(shù)和激光打印技術(shù)就不能出現(xiàn)這個(gè)效果呢?噴墨打印機(jī)是將墨水通過噴頭噴灑在紙張表面,這個(gè)過程中不會(huì)對(duì)紙張施加任何力,因此即使打印多聯(lián)的復(fù)寫紙,也只有第一張紙會(huì)被打印出圖案,下面的紙張不會(huì)顯現(xiàn)出字跡。而激光打印機(jī)是通過硒鼓將墨粉轉(zhuǎn)印到紙張表面,再進(jìn)行定影,轉(zhuǎn)印過程中硒鼓對(duì)紙張各處施加的力量是相同的,與打印內(nèi)容無關(guān),因此也不能被正常復(fù)寫,打印多聯(lián)的復(fù)寫紙只有第一張紙會(huì)被打印出圖案,下面的紙張不會(huì)顯現(xiàn)出字跡。

    打印針頭數(shù)量不同(圖源:image.baidu.com)

    因?yàn)槎嗦?lián)紙的特性,噴墨打印機(jī)和激光打印機(jī)無法在多聯(lián)紙上進(jìn)行打印。只有針式打印機(jī)是壓感式打針,打印針用一定的力度打在紙上,可以在幾層紙上留下印痕,一次性打印只有針式打印機(jī)能夠快速完成,通用針式打印機(jī)使用方便,如果安裝色帶不合適和紙張質(zhì)量較差的情況下打印,極易斷針。針式打印技術(shù)有一點(diǎn)不好就是速度慢,針式打印技術(shù)因采用獨(dú)有針頭往返式運(yùn)動(dòng),所以其打印速度較慢。

    針打穿透力強(qiáng)

    在財(cái)務(wù)系統(tǒng)中針式打印機(jī)應(yīng)用普遍,財(cái)務(wù)應(yīng)用中特有的票據(jù)、單據(jù)、憑證、報(bào)表以及報(bào)稅打印,這些都需要多層穿透復(fù)寫打印的支持,這也是針式打印機(jī)相比其它打印技術(shù)的優(yōu)勢(shì)之一。而且還免去了裝訂的麻煩,并且能夠讓正本和副本一目了然,這可是噴墨打印和激光打印辦不到的事情。

    針式打印機(jī)最關(guān)鍵是看打印頭的壽命,好的針打一般采用全新高密度、高耐磨打印頭,這種打印頭結(jié)構(gòu)設(shè)計(jì)緊湊,并加強(qiáng)了散熱功能,能造就高拷貝能力和長(zhǎng)壽命,針頭使用壽命可高達(dá)4億次/針,而整機(jī)平均無故障時(shí)間高,也代表著打印機(jī)的可靠性高,好的針打整機(jī)平均無故障時(shí)間一般可達(dá)10000小時(shí)。

    其實(shí)針打就在我們身邊

    1964年奧林匹克世界運(yùn)動(dòng)大會(huì)在東京舉行。當(dāng)時(shí)專門負(fù)責(zé)提供計(jì)時(shí)產(chǎn)品的愛普生公司特別研發(fā)出了水晶精密計(jì)時(shí)表951和打印型計(jì)時(shí)碼表。打印機(jī)的始祖就是打印型計(jì)時(shí)秒表,所謂打印型計(jì)時(shí)秒表,物如其名即是意指打印時(shí)間機(jī)器與測(cè)量時(shí)間器材合而為一的電子記錄設(shè)備。

    它與手槍、光電管、照片判讀器一起搭配,主要是運(yùn)用于人類在測(cè)量上有困難的速度競(jìng)賽項(xiàng)目,并且可以自動(dòng)的將比賽所花費(fèi)的時(shí)間作成記錄。這兩項(xiàng)產(chǎn)品不但在當(dāng)時(shí)大放光彩,也為日后公司進(jìn)行轉(zhuǎn)型和多元化經(jīng)營帶來了深厚的研發(fā)基礎(chǔ)和契機(jī)。

    1978年愛普生公司發(fā)布了針式打印機(jī)(7針)TP-80,產(chǎn)品大獲好評(píng)。 1980年,MP-80(9針)面世,同樣在全球引起了轟動(dòng),第二年,MP-80在日本的市場(chǎng)占有率高達(dá)60%以上,在美國市場(chǎng)也獲得了高度的評(píng)價(jià),逐漸發(fā)展成為全球第一臺(tái)適用于PC產(chǎn)品的主流針式打印機(jī)。近五年來從世界范圍來看,中國針式打印機(jī)出貨量占全球市場(chǎng)份額超過70%,中國針式打印機(jī)市場(chǎng)依舊存在強(qiáng)勁的動(dòng)力。

    針打運(yùn)用廣泛

    1988年愛普生率先在中國推出業(yè)界第一款帶中文字庫的針式打印機(jī)1600K,該產(chǎn)品及其后繼機(jī)累積銷量達(dá)300萬臺(tái)。這一款打印機(jī)的出現(xiàn)帶動(dòng)了整個(gè)中國打印機(jī)的發(fā)展。目前噴墨打印和激光打印都代替不了針式打印技術(shù),看完了這篇文章,廣大網(wǎng)友也對(duì)針打有了一定的理解,針打穩(wěn)定性超強(qiáng),故障率極低,尤其復(fù)寫效果非常好,即使最后一聯(lián),打印字跡也同樣均勻清晰,加上高品質(zhì)的正品色帶,油墨質(zhì)量很好,單據(jù)長(zhǎng)期保存也不會(huì)影響信息識(shí)別,長(zhǎng)期留存核對(duì)都沒有問題。

    現(xiàn)在我們生活中還在大量的使用這種多聯(lián)單據(jù),隨著票據(jù)電子化的推進(jìn),未來針打或許會(huì)慢慢的退出歷史舞臺(tái)。

    何技術(shù),只要足夠高深,都無法與魔法區(qū)分開來。 ——亞瑟 ? 克拉克

    為解決各種問題,人們發(fā)明了不計(jì)其數(shù)的機(jī)器。計(jì)算機(jī)種類繁多,從嵌入火星漫游機(jī)器人的計(jì)算機(jī)到為操縱核潛艇導(dǎo)航系統(tǒng)的計(jì)算機(jī),不一而足。馮? 諾伊曼在1945 年提出第一種計(jì)算模型,無論筆記本電腦還是電話,幾乎所有計(jì)算機(jī)都遵循與這種模型相同的工作原理。那么你們了解計(jì)算機(jī)是如何工作的嗎?本文將討論這些內(nèi)容:

    ◎ 理解計(jì)算機(jī)體系結(jié)構(gòu)的基礎(chǔ)知識(shí)

    ◎ 選擇編譯器將代碼轉(zhuǎn)換為計(jì)算機(jī)可以執(zhí)行的指令

    ◎ 根據(jù)存儲(chǔ)器層次結(jié)構(gòu)提高數(shù)據(jù)的存儲(chǔ)速度

    畢竟,在非程序員看來,編程要像魔法一樣神奇,我們程序員不會(huì)這么看。

    體系結(jié)構(gòu)

    計(jì)算機(jī)是一種根據(jù)指令操作數(shù)據(jù)的機(jī)器,主要由處理器與存儲(chǔ)器兩部分組成。存儲(chǔ)器又稱RAM(隨機(jī)存取存儲(chǔ)器),用于存儲(chǔ)指令以及需要操作的數(shù)據(jù)。處理器又稱CPU(中央處理器),它從存儲(chǔ)器獲取指令與數(shù)據(jù),并執(zhí)行相應(yīng)的計(jì)算。接下來,我們將討論這兩部分的工作原理。

    存儲(chǔ)器

    存儲(chǔ)器被劃分為許多單元,每個(gè)單元存儲(chǔ)少量數(shù)據(jù),通過一個(gè)數(shù)字地址加以標(biāo)識(shí)。在存儲(chǔ)器中讀取或?qū)懭霐?shù)據(jù)時(shí),每次對(duì)一個(gè)單元進(jìn)行操作。

    為讀寫特定的存儲(chǔ)單元,必須找到該單元的數(shù)字地址。

    由于存儲(chǔ)器是一種電氣元件,單元地址作為二進(jìn)制數(shù)通過信號(hào)線傳輸。

    二進(jìn)制數(shù)以 2 為基數(shù)表示,其工作原理如下:

    每條信號(hào)線傳輸一個(gè)比特,以高電壓表示信號(hào)“1”,低電壓表示信號(hào)“0”,如圖7-1 所示。

    對(duì)于某個(gè)給定的單元地址,存儲(chǔ)器可以進(jìn)行兩種操作:獲取其值或存儲(chǔ)新值,如圖7-2 所示。存儲(chǔ)器包括一條用于設(shè)置操作模式的特殊信號(hào)線。

    每個(gè)存儲(chǔ)單元通常存儲(chǔ)一個(gè) 8 位二進(jìn)制數(shù),它稱為字節(jié)。設(shè)置為“讀”模式時(shí),存儲(chǔ)器檢索保存在單元中的字節(jié),并通過8 條數(shù)據(jù)傳輸線輸出,如圖7-3 所示。

    設(shè)置為“寫”模式時(shí),存儲(chǔ)器從數(shù)據(jù)傳輸線獲取一個(gè)字節(jié),并將其寫入相應(yīng)的單元,如圖7-4 所示。

    傳輸相同數(shù)據(jù)的一組信號(hào)線稱為總線。用于傳輸?shù)刂返? 條信號(hào)線構(gòu)成地址總線,用于在存儲(chǔ)單元之間傳輸數(shù)據(jù)的另外8 條信號(hào)線構(gòu)成數(shù)據(jù)總線。地址總線是單向的(僅用于接收數(shù)據(jù)),而數(shù)據(jù)總線是雙向的(用于發(fā)送和接收數(shù)據(jù))。

    在所有計(jì)算機(jī)中,CPU 與RAM 無時(shí)無刻不在交換數(shù)據(jù):CPU 不斷從RAM 獲取指令與數(shù)據(jù),偶爾也會(huì)將輸出與部分計(jì)算存儲(chǔ)在RAM 中,如圖7-5 所示。

    CPU

    CPU 包括若干稱為寄存器的內(nèi)部存儲(chǔ)單元,它能對(duì)存儲(chǔ)在這些寄存器中的數(shù)字執(zhí)行簡(jiǎn)單的數(shù)學(xué)運(yùn)算,也能在RAM 與寄存器之間傳輸數(shù)據(jù)??梢灾甘綜PU 執(zhí)行以下典型的操作:

    ◎ 將數(shù)據(jù)從存儲(chǔ)位置 220 復(fù)制到寄存器 3;

    ◎ 將寄存器 3 與寄存器 1 中的數(shù)字相加。

    CPU 可以執(zhí)行的所有操作的集合稱為指令集,指令集中的每項(xiàng)操作被分配一個(gè)數(shù)字。計(jì)算機(jī)代碼本質(zhì)上是表示CPU 操作的數(shù)字序列,這些操作以數(shù)字的形式存儲(chǔ)在RAM 中。輸入/ 輸出數(shù)據(jù)、部分計(jì)算以及計(jì)算機(jī)代碼都存儲(chǔ)在RAM 中。

    通過在RAM 中包含重寫部分代碼的指令,代碼甚至可以對(duì)自身修改,這是計(jì)算機(jī)病毒逃避反病毒軟件檢測(cè)的慣用手法。與之類似,生物病毒通過改變自身的DNA以躲避宿主免疫系統(tǒng)的打擊。

    圖7-6 取自Intel 4004 操作手冊(cè),顯示了部分CPU 指令映射為數(shù)字的方法。隨著制造工藝的發(fā)展,CPU 支持的操作越來越多?,F(xiàn)代CPU 的指令集極為龐大,但最重要的指令在幾十年前就已存在。

    CPU 的運(yùn)行永無休止,它不斷從存儲(chǔ)器獲取并執(zhí)行指令。這個(gè)周期的核心是PC 寄存器,PC (program counter)是“程序計(jì)數(shù)器”的簡(jiǎn)稱。PC 是一種特殊的寄存器,用于保存下一條待執(zhí)行指令的存儲(chǔ)地址。CPU 的工作流程如下:

    (1) 從PC 指定的存儲(chǔ)地址獲取指令;

    (2) PC 自增;

    (3) 執(zhí)行指令;

    (4) 返回步驟1。

    PC 在CPU 上電時(shí)復(fù)位為默認(rèn)值,它是計(jì)算機(jī)中第一條待執(zhí)行指令的地址。這條指令通常是一種不可變的內(nèi)置程序,用于加載計(jì)算機(jī)的基本功能。

    在許多個(gè)人計(jì)算機(jī)中,這種程序稱為BIOS(基本輸入輸出系統(tǒng))。

    CPU 上電后將繼續(xù)執(zhí)行這種“獲取- 執(zhí)行”周期直至關(guān)機(jī)。然而,如果CPU 只能遵循有序、順序的操作列表,那么它與一個(gè)花哨的計(jì)算器并無二致。CPU 的神奇之處在于可以指示它向PC 中寫入新值,從而實(shí)現(xiàn)執(zhí)行過程的分支,或“跳轉(zhuǎn)”到存儲(chǔ)器的其他位置。這種分支可以是有條件的。以下面這條CPU 指令為例:“如果寄存器1 等于0,將PC設(shè)置為地址200”。該指令相當(dāng)于:

    if x=0

    compute_this()

    else

    compute_that()

    僅此而已。無論是打開網(wǎng)站、玩計(jì)算機(jī)游戲抑或編輯電子表格,所涉及的計(jì)算并無區(qū)別,都是一系列只能對(duì)存儲(chǔ)器中的數(shù)據(jù)求和、比較或移動(dòng)的簡(jiǎn)單操作。

    大量簡(jiǎn)單的操作組合在一起,就能表達(dá)復(fù)雜的過程。以經(jīng)典的《太空侵略者》游戲?yàn)槔浯a包括大約3000 條機(jī)器指令。

    CPU 時(shí)鐘 早在20 世紀(jì)80 年代,《太空侵略者》就已風(fēng)靡一時(shí)。這個(gè)游戲在配備2 MHz CPU 的街機(jī)上運(yùn)行?!? MHz”表示CPU 的時(shí)鐘,即CPU 每秒可以執(zhí)行的基本操作數(shù)。時(shí)鐘頻率為200 萬赫茲(2 MHz)的CPU 每秒大約可以執(zhí)行200 萬次基本操作。完成一條機(jī)器指令需要5到10 次基本操作,因此老式街機(jī)每秒能運(yùn)行數(shù)十萬條機(jī)器指令。

    隨著現(xiàn)代科技的進(jìn)步,普通的臺(tái)式計(jì)算機(jī)與智能手機(jī)通常配備2 GHzCPU,每秒可以執(zhí)行數(shù)億條機(jī)器指令。時(shí)至今日,多核CPU 已投入大規(guī)模應(yīng)用,如四核2 GHz CPU 每秒能執(zhí)行近10 億條機(jī)器指令。展望未來,CPU 配備的核心數(shù)量或許會(huì)越來越多。

    CPU 體系結(jié)構(gòu) 讀者是否思考過,PlayStation 的游戲CD 為何無法在臺(tái)式計(jì)算機(jī)中運(yùn)行? iPhone 應(yīng)用為何無法在Mac 中運(yùn)行?原因很簡(jiǎn)單,因?yàn)樗鼈兊腃PU 體系結(jié)構(gòu)不同。

    x86 體系結(jié)構(gòu)如今已成為行業(yè)標(biāo)準(zhǔn),因此相同的代碼可以在大部分個(gè)人計(jì)算機(jī)中執(zhí)行。但考慮到節(jié)電的要求,手機(jī)采用的CPU 體系結(jié)構(gòu)有所不同。不同的CPU 體系結(jié)構(gòu)意味著不同的CPU 指令集,也意味著將指令編碼為數(shù)字的方式各不相同。臺(tái)式計(jì)算機(jī)CPU 的指令并非手機(jī)CPU的有效指令,反之亦然。

    32 位與64 位體系結(jié)構(gòu) 第一種CPU 是Intel 4004,它采用4 位體系架構(gòu)。換言之,這種CPU 在一條機(jī)器指令中可以對(duì)最多4 位二進(jìn)制數(shù)執(zhí)行求和、比較與移動(dòng)操作。Intel 4004 的數(shù)據(jù)總線與地址總線均只有4 條。

    不久之后,8 位CPU 開始廣為流行,這種CPU 用于運(yùn)行DOS 的早期個(gè)人計(jì)算機(jī)。20 世紀(jì)八九十年代,著名的便攜式游戲機(jī)Game Boy 就采用8 位處理器。這種CPU 可以在一條指令中對(duì)8 位二進(jìn)制數(shù)進(jìn)行操作。

    技術(shù)的快速發(fā)展使16 位以及之后的32 位體系結(jié)構(gòu)成為主導(dǎo)。CPU 寄存器隨之增大,以容納32 位數(shù)字。更大的寄存器自然催生出更大的數(shù)據(jù)總線與地址總線:具有32 條信號(hào)線的地址總線可以對(duì)232 字節(jié)(4 GB)的內(nèi)存進(jìn)行尋址。

    人們對(duì)計(jì)算能力的渴求從未停止。計(jì)算機(jī)程序越來越復(fù)雜,消耗的內(nèi)存越來越多,4 GB 內(nèi)存已無法滿足需要。使用適合32 位寄存器的數(shù)字地址對(duì)超過4 GB 內(nèi)存進(jìn)行尋址頗為棘手,這成為64 位體系結(jié)構(gòu)興起的動(dòng)因,這種體系結(jié)構(gòu)如今占據(jù)主導(dǎo)地位。64 位CPU 可以在一條指令中對(duì)極大的數(shù)字進(jìn)行操作,而64 位寄存器將地址存儲(chǔ)在海量的存儲(chǔ)空間中:264 字節(jié)相當(dāng)于超過170 億吉字節(jié)(GB)。

    大端序與小端序 一些計(jì)算機(jī)設(shè)計(jì)師認(rèn)為,應(yīng)按從左至右的順序在RAM 與CPU 中存儲(chǔ)數(shù)字,這種模式稱為小端序。另一些計(jì)算機(jī)設(shè)計(jì)師則傾向于按從右至左的順序在存儲(chǔ)器中寫入數(shù)據(jù),這種模式稱為大端序。因此,根據(jù)“字節(jié)序”的不同,二進(jìn)制序列1-0-0-0-0-0-1-1 表示的數(shù)字也有所不同。

    ◎ 大端序:27 + 21 + 20=131

    ◎ 小端序:20 + 26 + 27=193

    目前的大部分CPU 采用小端序模式,但同樣存在許多采用大端序模式的計(jì)算機(jī)。如果大端序CPU 需要解釋由小端序CPU 產(chǎn)生的數(shù)據(jù),則必須采取措施以免出現(xiàn)字節(jié)序不匹配。程序員直接對(duì)二進(jìn)制數(shù)進(jìn)行操作,在解析來自網(wǎng)絡(luò)交換機(jī)的數(shù)據(jù)時(shí)尤其需要注意這個(gè)問題。雖然目前多數(shù)計(jì)算機(jī)采用小端序模式,但由于大部分早期的網(wǎng)絡(luò)路由器使用大端序CPU,所以因特網(wǎng)流量仍然以大端序?yàn)榛A(chǔ)進(jìn)行標(biāo)準(zhǔn)化。以小端序模式讀取大端序數(shù)據(jù)時(shí)將出現(xiàn)亂碼,反之亦然。

    模擬器 某些情況下,需要在計(jì)算機(jī)上運(yùn)行某些為不同CPU 設(shè)計(jì)的代碼,以便在沒有iPhone 的情況下測(cè)試iPhone 應(yīng)用,或玩膾炙人口的老式超級(jí)任天堂游戲。這是通過稱為模擬器的軟件來實(shí)現(xiàn)的。

    模擬器用于模仿目標(biāo)機(jī)器,它假定與其擁有相同的CPU、RAM 以及其他硬件。模擬器程序?qū)χ噶钸M(jìn)行解碼,并在模擬機(jī)器中執(zhí)行。可以想見,如果兩臺(tái)機(jī)器的體系結(jié)構(gòu)不同,那么在一臺(tái)機(jī)器內(nèi)部模擬另一臺(tái)機(jī)器絕非易事。好在現(xiàn)代計(jì)算機(jī)的速度遠(yuǎn)遠(yuǎn)超過之前的機(jī)器,因此模擬并非無法實(shí)現(xiàn)。我們可以利用Game Boy 模擬器在計(jì)算機(jī)中創(chuàng)建一個(gè)虛擬的Game Boy,然后就能像使用實(shí)際的Game Boy 那樣玩游戲。

    編譯器

    通過對(duì)計(jì)算機(jī)進(jìn)行編程,可以完成核磁共振成像、聲音識(shí)別、行星探索以及其他許多復(fù)雜的任務(wù)。值得注意的是,計(jì)算機(jī)執(zhí)行的所有操作最終都要通過簡(jiǎn)單的CPU 指令完成,即歸結(jié)為對(duì)數(shù)字的求和與比較。而Web 瀏覽器等復(fù)雜的計(jì)算機(jī)程序需要數(shù)百萬乃至數(shù)十億條這樣的機(jī)器指令。

    但我們很少會(huì)直接使用CPU 指令來編寫程序,也無法采用這種方式開發(fā)一個(gè)逼真的三維計(jì)算機(jī)游戲。為了以一種更“自然”且更緊湊的方式表達(dá)命令,人們創(chuàng)造了編程語言。我們使用這些語言編寫代碼,然后通過一種稱為編譯器的程序?qū)⒚钷D(zhuǎn)換為CPU 可以執(zhí)行的機(jī)器指令。

    我們用一個(gè)簡(jiǎn)單的數(shù)學(xué)類比來解釋編譯器的用途。假設(shè)我們向某人提問,要求他計(jì)算5 的階乘。

    5!=?

    但如果回答者不了解什么是階乘,則這樣提問并無意義。我們必須采用更簡(jiǎn)單的操作來重新表述問題。

    5×4×3×2×1=?

    不過,如果回答者只會(huì)做加法怎么辦?我們必須進(jìn)一步簡(jiǎn)化問題的表述。

    5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 +5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5 + 5=?

    可以看到,表達(dá)計(jì)算的形式越簡(jiǎn)單,所需的操作數(shù)量越多。計(jì)算機(jī)代碼同樣如此。編譯器將編程語言中的復(fù)雜指令轉(zhuǎn)換為等效的CPU 指令。結(jié)合功能強(qiáng)大的外部庫,就能通過相對(duì)較少的幾行代碼表示包含數(shù)十億條CPU 指令的復(fù)雜程序,而這些代碼易于理解和修改。

    計(jì)算機(jī)之父艾倫? 圖靈發(fā)現(xiàn),簡(jiǎn)單的機(jī)器有能力計(jì)算任何可計(jì)算的事物。如果機(jī)器具有通用的計(jì)算能力,那么它必須能遵循包含指令的程序,以便:

    ◎ 對(duì)存儲(chǔ)器中的數(shù)據(jù)進(jìn)行讀寫;

    ◎ 執(zhí)行條件分支:如果存儲(chǔ)地址具有給定的值,則跳轉(zhuǎn)到程序的另一個(gè)點(diǎn)。

    我們稱具有這種通用計(jì)算能力的機(jī)器是圖靈完備的。無論計(jì)算的復(fù)雜性或難度如何,都可以采用簡(jiǎn)單的讀取/ 寫入/ 分支指令來表達(dá)。只要分配足夠的時(shí)間與存儲(chǔ)空間,這些指令就能計(jì)算任何事物。

    人們最近發(fā)現(xiàn),一種稱為MOV(數(shù)據(jù)傳送)的CPU 指令是圖靈完備的。這意味著僅能執(zhí)行MOV 指令的CPU 與完整的CPU 在功能上并無不同:換言之,通過MOV 指令可以嚴(yán)格地表達(dá)任何類型的代碼。

    這個(gè)重要概念在于,無論簡(jiǎn)單與否,如果程序能采用編程語言進(jìn)行編碼,就可以重寫后在任何圖靈完備的機(jī)器中運(yùn)行。編譯器是一種神奇的程序,能自動(dòng)將代碼從復(fù)雜的語言轉(zhuǎn)換為簡(jiǎn)單的語言。

    操作系統(tǒng)

    從本質(zhì)上講,編譯后的計(jì)算機(jī)程序是CPU 指令的序列。如前所述,為臺(tái)式計(jì)算機(jī)編譯的代碼無法在智能手機(jī)中運(yùn)行,因?yàn)槎卟捎貌煌腃PU體系結(jié)構(gòu)。不過,由于程序必須與計(jì)算機(jī)的操作系統(tǒng)通信才能運(yùn)行,編譯后的程序也可能無法在共享相同CPU 架構(gòu)的兩臺(tái)計(jì)算機(jī)中使用。

    為實(shí)現(xiàn)與外界的通信,程序必須進(jìn)行輸入與輸出操作,如打開文件、在屏幕上顯示消息、打開網(wǎng)絡(luò)連接等。但不同的計(jì)算機(jī)采用不同的硬件,因此程序不可能直接支持所有不同類型的屏幕、聲卡或網(wǎng)卡。

    這就是程序依賴于操作系統(tǒng)執(zhí)行的原因所在。借助操作系統(tǒng)的幫助,程序可以毫不費(fèi)力地使用不同的硬件。程序創(chuàng)建特殊的系統(tǒng)調(diào)用,請(qǐng)求操作系統(tǒng)執(zhí)行所需的輸入/ 輸出操作。編譯器負(fù)責(zé)將輸入/ 輸出命令轉(zhuǎn)換為合適的系統(tǒng)調(diào)用。

    然而,不同的操作系統(tǒng)往往使用互不兼容的系統(tǒng)調(diào)用。例如,與macOS或Linux 相比,Windows 在屏幕上打印信息所用的系統(tǒng)調(diào)用有所不同。

    因此,在使用x86 處理器的Windows 中編譯的程序,無法在使用x86處理器的Mac 中運(yùn)行。除針對(duì)特定的CPU 體系結(jié)構(gòu)外,編譯后的代碼還會(huì)針對(duì)特定的操作系統(tǒng)。

    編譯優(yōu)化

    優(yōu)秀的編譯器致力于優(yōu)化它們生成的機(jī)器碼。如果編譯器認(rèn)為可以通過修改部分代碼來提高執(zhí)行效率,則會(huì)處理。在生成二進(jìn)制輸出之前,編譯器可能嘗試應(yīng)用數(shù)百條優(yōu)化規(guī)則。

    因此,應(yīng)使代碼易于閱讀以利于進(jìn)行微優(yōu)化。編譯器最終將完成所有細(xì)微的優(yōu)化。例如,一些人對(duì)以下代碼頗有微詞。

    function factorial(n)

    if n > 1

    return factorial(n - 1) * n

    else

    return 1

    他們認(rèn)為應(yīng)該進(jìn)行以下修改:

    function factorial(n)

    result ← 1

    while n > 1

    result ← result * n

    n ← n - 1

    return result

    誠然,在不使用遞歸的情況下執(zhí)行factorial 函數(shù)將消耗較少的計(jì)算資源,但仍然沒有理由因此而改變代碼?,F(xiàn)代編譯器將自動(dòng)重寫簡(jiǎn)單的遞歸函數(shù),舉例如下。

    i ← x + y + 1

    j ← x + y

    為避免進(jìn)行兩次x+y 計(jì)算,編譯器將上述代碼重寫為:

    t1 ← x + y

    i ← t1 + 1

    j ← t1

    應(yīng)專注于編寫清晰且自解釋的代碼。如果性能出現(xiàn)問題,可以利用分析工具尋找代碼中的瓶頸,并嘗試改用更好的方法計(jì)算存在問題的代碼。此外,避免在不必要的微操作上浪費(fèi)太多時(shí)間。

    但在某些情況下,我們希望跳過編譯,接下來將對(duì)此進(jìn)行討論。

    腳本語言

    某些語言在執(zhí)行時(shí)并未被直接編譯為機(jī)器碼,這些語言稱為腳本語言,包括JavaScript、Python 以及Ruby。在腳本語言中,代碼由解釋器而非CPU 執(zhí)行,解釋器必須安裝在運(yùn)行代碼的機(jī)器中。

    解釋器實(shí)時(shí)轉(zhuǎn)譯并執(zhí)行代碼,因此其運(yùn)行速度通常比編譯后的代碼慢得多。但另一方面,程序員隨時(shí)都能立即運(yùn)行代碼而無須等待編譯過程。

    對(duì)于規(guī)模極大的項(xiàng)目,編譯可能耗時(shí)數(shù)小時(shí)之久。

    Google 工程師必須不斷編譯大量代碼,導(dǎo)致程序員“損失”了很多時(shí)間(圖7-9)。由于需要保證編譯后的二進(jìn)制文件有更好的性能,Google 無法切換到腳本語言。公司為此開發(fā)了Go 語言,它的編譯速度極快,同時(shí)仍然保持很高的性能。

    反匯編與逆向工程

    給定一個(gè)已編譯的計(jì)算機(jī)程序,無法在編譯之前恢復(fù)其源代碼。但我們可以對(duì)二進(jìn)制程序解碼,將用于編碼CPU 指令的數(shù)字轉(zhuǎn)換為人類可讀的指令序列。這個(gè)過程稱為反匯編。

    接下來,可以查看這些CPU 指令,并嘗試分析它們的用途,這就是所謂的逆向工程。某些反匯編程序?qū)@一過程大有裨益,它們能自動(dòng)檢測(cè)并注釋系統(tǒng)調(diào)用與常用函數(shù)。借由反匯編工具,黑客對(duì)二進(jìn)制代碼的各個(gè)環(huán)節(jié)了如指掌。我相信,許多頂尖的IT 公司都設(shè)有秘密的逆向工程實(shí)驗(yàn)室,以便研究競(jìng)爭(zhēng)對(duì)手的軟件。

    地下黑客經(jīng)常分析Windows、Photoshop、《俠盜獵車手》等授權(quán)程序中的二進(jìn)制代碼,以確定哪部分代碼負(fù)責(zé)驗(yàn)證軟件許可證。黑客將二進(jìn)制代碼修改,在其中加入一條指令,直接跳轉(zhuǎn)到驗(yàn)證許可證后執(zhí)行的代碼部分。運(yùn)行修改后的二進(jìn)制代碼時(shí),它在檢查許可證前獲取注入的JUMP 命令,從而可以在沒有付費(fèi)的情況下運(yùn)行非法的盜版副本。

    在秘密的政府情報(bào)機(jī)構(gòu)中,同樣設(shè)有供安全研究人員與工程師研究iOS、Windows、IE 瀏覽器等流行消費(fèi)者軟件的實(shí)驗(yàn)室。他們尋找這些程序中可能存在的安全漏洞,以防御網(wǎng)絡(luò)攻擊或?qū)Ω邇r(jià)值目標(biāo)的入侵。在這類攻擊中,最知名的當(dāng)屬“震網(wǎng)”病毒,它是美國與以色列情報(bào)機(jī)構(gòu)研制的一種網(wǎng)絡(luò)武器。通過感染控制地下聚變反應(yīng)堆的計(jì)算機(jī),“震網(wǎng)”延緩了伊朗核計(jì)劃。

    開源軟件

    如前所述,我們可以根據(jù)二進(jìn)制可執(zhí)行文件分析有關(guān)程序的原始指令,但無法恢復(fù)用于生成二進(jìn)制文件的原始源代碼。

    在沒有原始源代碼的情況下,即使可以稍許修改二進(jìn)制文件以便以較小的方式破解,實(shí)際上也無法對(duì)程序進(jìn)行任何重大更改(如添加新功能)。一些人推崇協(xié)作構(gòu)建代碼的方式,因此將自己的源代碼開放供他人修改?!伴_源”的主要概念就在于此:所有人都能自由使用與修改的軟件。基于Linux 的操作系統(tǒng)(如Ubuntu、Fedora 與Debian)是開源的,而Windows 與macOS 是閉源的。

    開源操作系統(tǒng)的一個(gè)有趣之處在于,任何人都可以檢查源代碼以尋找安全漏洞?,F(xiàn)已證實(shí),政府機(jī)構(gòu)通過日常消費(fèi)者軟件中未修補(bǔ)的安全漏洞,對(duì)數(shù)百萬平民進(jìn)行利用和監(jiān)視。

    但對(duì)開源軟件而言,代碼受到的關(guān)注度更高,因此惡意的第三方與政府機(jī)構(gòu)很難植入監(jiān)控后門程序。使用macOS 或Windows 時(shí),用戶必須相信Apple 或Microsoft 對(duì)自己的安全不會(huì)構(gòu)成危害,并盡最大努力防止任何嚴(yán)重的安全漏洞。而開源系統(tǒng)置于公眾的監(jiān)督之下,因此安全漏洞被忽視的可能性大為降低。

    存儲(chǔ)器層次結(jié)構(gòu)

    我們知道,計(jì)算機(jī)的操作可以歸結(jié)為使CPU 執(zhí)行簡(jiǎn)單的指令,這些指令只能對(duì)存儲(chǔ)在CPU 寄存器中的數(shù)據(jù)操作。但寄存器的存儲(chǔ)空間通常被限制在1000 字節(jié)以內(nèi),這意味著CPU 寄存器與RAM 之間必須不斷進(jìn)行數(shù)據(jù)傳輸。

    如果存儲(chǔ)器訪問速度過慢,CPU 將被迫處于空閑狀態(tài),以等待RAM 完成數(shù)據(jù)傳輸。CPU 讀寫存儲(chǔ)器中數(shù)據(jù)所需的時(shí)間與計(jì)算機(jī)性能直接相關(guān)。提高存儲(chǔ)器速度有助于加快計(jì)算機(jī)運(yùn)行,也可以提高CPU 訪問數(shù)據(jù)的速度。CPU 能以近乎實(shí)時(shí)的速度(一個(gè)周期以內(nèi))訪問存儲(chǔ)在寄存器中的數(shù)據(jù),但訪問RAM 則慢得多。

    對(duì)于時(shí)鐘頻率為1 GHz 的CPU,一個(gè)周期的持續(xù)時(shí)間約為十億分之一秒,這是光線從本書進(jìn)入讀者眼中所需的時(shí)間。

    處理器與存儲(chǔ)器之間的鴻溝

    近年來的技術(shù)發(fā)展使得CPU 速度成倍增長(zhǎng)。雖然存儲(chǔ)器速度同樣有所提高,但卻慢得多。CPU 與RAM 之間的這種性能差距稱為“處理器與存儲(chǔ)器之間的鴻溝”。我們可以執(zhí)行大量CPU 指令,因此它們很“廉價(jià)”;而從RAM 獲取數(shù)據(jù)所需的時(shí)間較長(zhǎng),因此它們很“昂貴”。隨著兩者之間的差距逐漸增大,提高存儲(chǔ)器訪問效率的重要性越發(fā)明顯。

    現(xiàn)代計(jì)算機(jī)需要大約1000 個(gè)CPU 周期(1 微秒左右) 從RAM 獲取數(shù)據(jù)。這種速度已很驚人,但與訪問CPU 寄存器的時(shí)間相比仍然較慢。減少計(jì)算所需的RAM 操作次數(shù),是計(jì)算機(jī)科學(xué)家追求的目標(biāo)。

    在兩個(gè)面對(duì)面的人之間,聲波傳播需要大約10 微秒。

    時(shí)間局部性與空間局部性

    在嘗試盡量減少對(duì)RAM 的訪問時(shí),計(jì)算機(jī)科學(xué)家開始注意到兩個(gè)事實(shí)。

    ◎ 時(shí)間局部性:訪問某個(gè)存儲(chǔ)地址時(shí),可能很快會(huì)再次訪問該地址。

    ◎ 空間局部性:訪問某個(gè)存儲(chǔ)地址時(shí),可能很快會(huì)訪問與之相鄰的地址。

    因此,將這些存儲(chǔ)地址保存在CPU 寄存器中,有助于避免大部分對(duì)RAM的“昂貴”操作。不過在設(shè)計(jì)CPU 芯片時(shí),工業(yè)工程師并未找到可行的方法來容納足夠多的內(nèi)部寄存器,但他們?nèi)匀话l(fā)現(xiàn)了如何有效地利用時(shí)間局部性與空間局部性。接下來將對(duì)此進(jìn)行討論。

    一級(jí)緩存

    可以構(gòu)建一種集成在CPU 內(nèi)部且速度極快的輔助存儲(chǔ)器,這就是一級(jí)緩存。將數(shù)據(jù)從一級(jí)緩存讀入寄存器,僅比直接從寄存器獲取數(shù)據(jù)稍慢。

    利用一級(jí)緩存,我們將可能訪問的存儲(chǔ)地址中的內(nèi)容復(fù)制到CPU 寄存器附近,借此以極快的速度將數(shù)據(jù)載入CPU 寄存器。將數(shù)據(jù)從一級(jí)緩存讀入寄存器僅需大約10 個(gè)CPU 周期,速度是從RAM 獲取數(shù)據(jù)的近百倍。

    借由10 KB 左右的一級(jí)緩存,并合理利用時(shí)間局部性與空間局部性,超過一半的RAM 訪問調(diào)用僅通過緩存就能實(shí)現(xiàn)。這一創(chuàng)新使計(jì)算技術(shù)發(fā)生了翻天覆地的變化。一級(jí)緩存可以極大縮短CPU 的等待時(shí)間,使CPU 將更多時(shí)間用于實(shí)際計(jì)算而非處于空閑狀態(tài)。

    二級(jí)緩存

    提高一級(jí)緩存的容量有助于減少從RAM 獲取數(shù)據(jù)的操作,進(jìn)而縮短CPU 的等待時(shí)間。但是,增大一級(jí)緩存的同時(shí)也會(huì)降低它的速度。在一級(jí)緩存達(dá)到50 KB 左右時(shí),繼續(xù)增加其容量就要付出極高的成本。更好的方案是構(gòu)建一種稱為二級(jí)緩存的緩存。二級(jí)緩存的速度稍慢,但容量比一級(jí)緩存大得多?,F(xiàn)代CPU 配備的二級(jí)緩存約為200 KB,將數(shù)據(jù)從二級(jí)緩存讀入CPU 寄存器需要大約100 個(gè)CPU 周期。

    我們將最有可能訪問的地址復(fù)制到一級(jí)緩存,較有可能訪問的地址復(fù)制到二級(jí)緩存。如果CPU 沒有在一級(jí)緩存中找到某個(gè)存儲(chǔ)地址,仍然可以嘗試在二級(jí)緩存中搜索。僅當(dāng)該地址既不在一級(jí)緩存、也不在二級(jí)緩存中時(shí),CPU 才需要訪問RAM。

    目前,不少制造商推出了配備三級(jí)緩存的處理器。三級(jí)緩存的容量比二級(jí)緩存大,雖然速度不及二級(jí)緩存,但仍然比RAM 快得多。一級(jí)/ 二級(jí)/ 三級(jí)緩存非常重要,它們占據(jù)了CPU 芯片內(nèi)部的大部分硅片空間。見圖7-11。

    使用一級(jí)/ 二級(jí)/ 三級(jí)緩存能顯著提高計(jì)算機(jī)的性能。在配備200 KB的二級(jí)緩存后,CPU 發(fā)出的存儲(chǔ)請(qǐng)求中僅有不到10% 必須直接從RAM獲取。

    讀者今后購買計(jì)算機(jī)時(shí),對(duì)于所挑選的CPU,請(qǐng)記住比較一級(jí)/ 二級(jí)/三級(jí)緩存的容量。CPU 越好,緩存越大。一般來說,建議選擇一款時(shí)鐘頻率稍低但緩存容量較大的CPU。

    第一級(jí)存儲(chǔ)器與第二級(jí)存儲(chǔ)器

    如前所述,計(jì)算機(jī)配有不同類型的存儲(chǔ)器,它們按層次結(jié)構(gòu)排列。性能最好的存儲(chǔ)器容量有限且成本極高。沿層次結(jié)構(gòu)向下,可用的存儲(chǔ)空間越來越多,但訪問速度越來越慢。

    在存儲(chǔ)器層次結(jié)構(gòu)中,位于CPU 寄存器與緩存之下的是RAM,它負(fù)責(zé)存儲(chǔ)當(dāng)前運(yùn)行的所有進(jìn)程的數(shù)據(jù)與代碼。截至2017 年,計(jì)算機(jī)配備的RAM 容量通常為1 GB 到10 GB。但在許多情況下,RAM 可能無法滿足操作系統(tǒng)以及所有運(yùn)行程序的需要。

    因此,我們必須深入探究存儲(chǔ)器層次結(jié)構(gòu),使用位于RAM 之下的硬盤。截至2017 年,計(jì)算機(jī)配備的硬盤容量通常為數(shù)百吉字節(jié),足以容納當(dāng)前運(yùn)行的所有程序數(shù)據(jù)。如果RAM 已滿,當(dāng)前的空閑數(shù)據(jù)將被移至硬盤以釋放部分內(nèi)存空間。

    問題在于,硬盤的速度非常慢,它一般需要100 萬個(gè)CPU 周期(1 毫秒)a 在磁盤與RAM 之間傳輸數(shù)據(jù)。從磁盤訪問數(shù)據(jù)看似很快,但不要忘記,訪問RAM 僅需1000 個(gè)周期,而訪問磁盤需要100 萬個(gè)周期。RAM 通常稱為第一級(jí)存儲(chǔ)器,而存儲(chǔ)程序與數(shù)據(jù)的磁盤稱為第二級(jí)存儲(chǔ)器。

    標(biāo)準(zhǔn)照片在大約4 毫秒內(nèi)捕捉光線。

    CPU 無法直接訪問第二級(jí)存儲(chǔ)器。執(zhí)行保存在第二級(jí)存儲(chǔ)器中的程序之前,必須將其復(fù)制到第一級(jí)存儲(chǔ)器。實(shí)際上,每次啟動(dòng)計(jì)算機(jī)時(shí),即便是操作系統(tǒng)也要從磁盤復(fù)制到RAM,否則CPU 無法運(yùn)行。

    確保RAM 永不枯竭 在典型活動(dòng)期間,確保計(jì)算機(jī)處理的所有數(shù)據(jù)與程序都能載入RAM 至關(guān)重要,否則計(jì)算機(jī)將不斷在磁盤與RAM 之間交換數(shù)據(jù)。由于這項(xiàng)操作的速度極慢,計(jì)算機(jī)性能將嚴(yán)重下降,甚至無法使用。這種情況下,計(jì)算機(jī)不得不花費(fèi)更多時(shí)間等待數(shù)據(jù)傳輸,而無法進(jìn)行實(shí)際的計(jì)算。

    當(dāng)計(jì)算機(jī)不斷將數(shù)據(jù)從磁盤讀入RAM 時(shí),則稱計(jì)算機(jī)處于抖動(dòng)模式。必須對(duì)服務(wù)器進(jìn)行持續(xù)監(jiān)控,如果服務(wù)器開始處理無法載入RAM 的數(shù)據(jù),那么抖動(dòng)可能會(huì)導(dǎo)致整個(gè)服務(wù)器崩潰。銀行或收銀機(jī)前將因此排起長(zhǎng)隊(duì),而服務(wù)員除了責(zé)怪發(fā)生抖動(dòng)的計(jì)算機(jī)系統(tǒng)之外別無他法。內(nèi)存不足或許是導(dǎo)致服務(wù)器故障的主要原因之一。

    外部存儲(chǔ)器與第三級(jí)存儲(chǔ)器

    我們繼續(xù)沿存儲(chǔ)器層次結(jié)構(gòu)向下分析。在連接到網(wǎng)絡(luò)之后,計(jì)算機(jī)就能訪問由其他計(jì)算機(jī)管理的存儲(chǔ)器。它們要么位于本地網(wǎng)絡(luò),要么位于因特網(wǎng)(即云端)。但訪問這些數(shù)據(jù)所需的時(shí)間更長(zhǎng):讀取本地磁盤需要1 毫秒,而獲取網(wǎng)絡(luò)中的數(shù)據(jù)可能耗時(shí)數(shù)百毫秒。網(wǎng)絡(luò)包從一臺(tái)計(jì)算機(jī)傳輸?shù)搅硪慌_(tái)計(jì)算機(jī)大約需要10 毫秒,如果經(jīng)由因特網(wǎng)傳輸則需要200 毫秒到300 毫秒,與眨眼的時(shí)間相仿。

    位于存儲(chǔ)器層次結(jié)構(gòu)底部的是第三級(jí)存儲(chǔ)器,這種存儲(chǔ)設(shè)備并非總是在線與可用的。在盒式磁帶或CD 中存儲(chǔ)數(shù)百萬吉字節(jié)的數(shù)據(jù)成本較低,但訪問這類介質(zhì)中的數(shù)據(jù)時(shí),需要將介質(zhì)插入某種讀取設(shè)備,這可能需要數(shù)分鐘甚至數(shù)天之久(不妨嘗試讓IT 部門在周五晚上備份磁帶中的數(shù)據(jù)……)。有鑒于此,第三級(jí)存儲(chǔ)器僅適合歸檔很少訪問的數(shù)據(jù)。

    存儲(chǔ)技術(shù)的發(fā)展趨勢(shì)

    一方面,很難顯著改進(jìn)“快速”存儲(chǔ)器(位于存儲(chǔ)器層次結(jié)構(gòu)頂端)所用的技術(shù);另一方面,“慢速”存儲(chǔ)器的速度越來越快,價(jià)格也越來越低。幾十年來,硬盤存儲(chǔ)的成本一直在下降,這種趨勢(shì)似乎還將持續(xù)下去。

    新技術(shù)也使磁盤的速度得以提高。人們正從旋轉(zhuǎn)磁盤轉(zhuǎn)向固態(tài)硬盤(SSD),它沒有動(dòng)件,因而更快、更可靠且更省電。

    采用SSD 技術(shù)的磁盤正變得越來越便宜且越來越快,但其價(jià)格仍然不菲。有鑒于此,一些制造商推出了同時(shí)采用SSD 與磁技術(shù)的混合磁盤。后者將訪問頻率較高的數(shù)據(jù)存儲(chǔ)在SSD 中,訪問頻率較低的數(shù)據(jù)存儲(chǔ)在速度較慢的磁盤中。當(dāng)需要頻繁訪問原先不經(jīng)常訪問的數(shù)據(jù)時(shí),則將其復(fù)制到混合驅(qū)動(dòng)器中速度較快的SSD。這與CPU 利用內(nèi)部緩存提高RAM 訪問速度的技巧頗為類似。

    小結(jié)

    本文介紹了一些基本的計(jì)算機(jī)工作原理。任何可計(jì)算的事物都能采用簡(jiǎn)單的指令來表示。為將復(fù)雜的計(jì)算命令轉(zhuǎn)換為CPU 可以執(zhí)行的簡(jiǎn)單指令,需要使用一種稱為編譯器的程序。計(jì)算機(jī)之所以能進(jìn)行復(fù)雜計(jì)算,僅僅是因?yàn)镃PU 可以執(zhí)行大量基本操作。

    計(jì)算機(jī)的處理器速度很快,但存儲(chǔ)器相對(duì)較慢。CPU 并非以隨機(jī)方式訪問存儲(chǔ)器,而是遵循空間局部性與時(shí)間局部性原理。因此,可以將訪問頻率較高的數(shù)據(jù)緩存在速度更快的存儲(chǔ)器中。這一原則在多個(gè)級(jí)別的緩存中得到了應(yīng)用:從一級(jí)緩存直到第三級(jí)存儲(chǔ)器,不一而足。

    本文討論的緩存原則可以應(yīng)用于多種場(chǎng)景。確定應(yīng)用程序頻繁使用的數(shù)據(jù),并設(shè)法提高這部分?jǐn)?shù)據(jù)的訪問速度,是縮短計(jì)算機(jī)程序運(yùn)行時(shí)間的最常用策略之一。

    ——本文選自《計(jì)算機(jī)科學(xué)精粹》

    這是一本計(jì)算機(jī)重要知識(shí)點(diǎn)參考手冊(cè)。

    在北美的院校中,某些考試允許攜帶 cheat sheet(中文可稱為“備忘單”或“速查表”),學(xué)生可以將自己認(rèn)為重要的公式或知識(shí)點(diǎn)寫在上面。從某種意義上說,《計(jì)算機(jī)科學(xué)精粹》就是這樣一本具有 cheat sheet 性質(zhì)的書。

    與圖靈推出的《算法圖解》類似,本書梳理了計(jì)算機(jī)科學(xué)領(lǐng)域的重要知識(shí)點(diǎn),著力將抽象的理論具體化、復(fù)雜的問題簡(jiǎn)單化。當(dāng)然,亦想拋磚引玉,希望在喚起讀者對(duì)計(jì)算機(jī)科學(xué)的興趣后,能深入閱讀其他資料。

    目錄

    查爾斯 ? 巴貝奇的分析機(jī)原理圖

    第 1 章 預(yù)備知識(shí)

    第 2 章 復(fù)雜度

    第 3 章 策略

    第 4 章 數(shù)據(jù)

    第 5 章 算法

    第 6 章 數(shù)據(jù)庫

    第 7 章 計(jì)算機(jī)

    第 8 章 程序設(shè)計(jì)

    文末暢聊

    提到好懂的計(jì)算機(jī)基礎(chǔ)圖書,你最先想到哪本?

    是《計(jì)算機(jī)是怎樣跑起來的》還是《網(wǎng)絡(luò)是怎樣鏈接的》?

    你印象中最深刻計(jì)算機(jī)科學(xué)圖書是哪本?

    你有沒有更有趣的學(xué)習(xí)方式?

    到打印機(jī),相信大家并不陌生。無論是學(xué)生時(shí)代還是現(xiàn)如今的工作中,我們都或多或少的接觸并使用過打印機(jī)產(chǎn)品。2020年,由于疫情特殊的原因使得家用打印機(jī)市場(chǎng)迎來了井噴式的增長(zhǎng),這就意味著越來越多的家庭用戶開始選購打印機(jī)產(chǎn)品。那么問題也隨之而來,家用打印機(jī)究竟該怎么選?

    面對(duì)這樣的問題,有些朋友可能會(huì)說選擇一款噴墨打印機(jī),而又有些朋友則會(huì)說選擇激光打印機(jī)會(huì)更加合適。當(dāng)然只有了解激光打印機(jī)和噴墨打印機(jī)的區(qū)別后才能做出判斷,要知道大多數(shù)消費(fèi)者對(duì)于打印機(jī)產(chǎn)品的認(rèn)知程度并不高,相比于手機(jī)、電腦等電子設(shè)備對(duì)于打印機(jī)的了解非常有限。所以我們首先就要了解下激光打印機(jī)和噴墨打印機(jī)的區(qū)別,這樣才能有助于家庭用戶的選擇。

    激光打印機(jī)和噴墨打印機(jī)區(qū)別在哪?

    首先我們來說說什么是激光打印機(jī),一般來說激光打印類產(chǎn)品可大致分為黑白激光打印機(jī)和彩色激光打印機(jī),兩者之間最大的區(qū)別就在于前者只能輸出黑白文檔,而后者則可以輸出彩色的文檔。但是在價(jià)格上彩色激光打印機(jī)售價(jià)動(dòng)輒千元以上,打印成本相比于黑白激光打印機(jī)也較為昂貴。

    其最大的特點(diǎn)就是經(jīng)久耐用,并且維護(hù)的成本較低,所以一直都備受家庭用戶的青睞,而入門級(jí)激光打印機(jī)產(chǎn)品對(duì)于家庭來說也是個(gè)不錯(cuò)的選擇。從打印原理上來看,激光打印機(jī)主要是通過墨粉在紙張上通過加熱定影來來實(shí)現(xiàn)打印的。而打印機(jī)的分辨率和打印的速度也是挑選激光類打印產(chǎn)品的重要依據(jù)。

    下面我們?cè)賮砜纯磭娔蛴C(jī)產(chǎn)品,和激光類打印產(chǎn)品不同的是噴墨打印機(jī)是以精準(zhǔn)噴射 墨滴來實(shí)現(xiàn)打印的。而墨滴的大小、打印速度以及著墨點(diǎn)的大小就是挑選噴墨打印機(jī)重要的依據(jù)。

    一般提到噴墨類打印產(chǎn)品,最先想到的就是可以打印彩色文檔。的確如果說有彩色打印的需求,那么不妨選擇一款噴墨類打印產(chǎn)品,可以為用戶帶來不錯(cuò)的色彩體驗(yàn)。

    綜合來看,激光類打印產(chǎn)品優(yōu)點(diǎn)就是輸出速度快,穩(wěn)定性高。而噴墨打印類產(chǎn)品更適合打印彩色文檔,并且打印成本相比于激光打印類產(chǎn)品也更低一些。

    什么樣的家庭適合激光打印機(jī)?

    那么究竟什么樣的家庭用戶適合購買激光打印機(jī)呢?前面我們提到過從打印成本方面來考慮彩色激光的打印成本要比彩色噴墨的打印成本高一些,所以說如果沒有彩色打印的需求,那么更建議選擇一款黑白激光打印機(jī)產(chǎn)品。

    同時(shí)在穩(wěn)定性方面激光類打印產(chǎn)品也更有優(yōu)勢(shì),即使長(zhǎng)時(shí)間不使用也不用擔(dān)心打印頭出現(xiàn)堵頭的問題,這一點(diǎn)對(duì)于家庭用戶來說十分友好,畢竟有些家庭用戶的打印頻率并不高。

    如果預(yù)算充足的話建議大家選擇多功能一體機(jī)產(chǎn)品,相比于單功能的打印產(chǎn)品來說不僅能進(jìn)行打印,還能夠進(jìn)行復(fù)印和掃描操作,為不同需求的家庭用戶提供了便捷。

    這里我們以惠普1005w黑白多功能一體機(jī)為例,不僅功能全面還能為用戶帶來超低的打印成本。在性能方面打印速度為20頁/分鐘,作為一臺(tái)激光打印機(jī)這樣的輸出速度中規(guī)中矩,但對(duì)于用戶來說打印日常的文檔完全夠用,即使偶爾有大批量的打印任務(wù),惠普1005w也可以輕松應(yīng)對(duì),不必把時(shí)間浪費(fèi)在等待打印中。

    同時(shí)印量足夠大,5000頁的印量相信可以滿足有大印量打印需求的用戶。即使需要加粉也可以利用惠普的智能閃充技術(shù)完成充粉,只需15秒即可完成,這一設(shè)計(jì)真正顛覆了傳統(tǒng)。

    在打印成本方面,惠普原裝耗材僅需99元,這樣計(jì)算下來單頁打印成本僅為0.05元。加上20頁/分鐘的打印速度,讓惠普1005w省錢又省時(shí)。

    什么樣的家庭適合噴墨打印機(jī)?

    那么什么樣的家庭用戶又適合購買噴墨類打印產(chǎn)品呢?如果平時(shí)有彩色打印的需求,那么建議大家選擇一款噴墨類打印產(chǎn)品,相比于彩色激光打印產(chǎn)品而言噴墨類打印產(chǎn)品打印成本更加便宜。

    在近年來很多廠商都推出了自家的原廠連供類打印產(chǎn)品,最大的特點(diǎn)就是印量足夠大,為用戶徹底解決了打印機(jī)產(chǎn)品購買后使用成本居高不下的問題。

    從目前的家用打印機(jī)市場(chǎng)來看,佳能、兄弟、惠普以及愛普生等廠商均推出了自家的原廠連供類打印產(chǎn)品,雖然從命名方式上有所不同,但實(shí)際上同屬于一類產(chǎn)品。

    這里我們以愛普生L3153墨倉式一體機(jī)為例,愛普生L3153就是一款成本與功能兼?zhèn)涞臋C(jī)型,首先超大的印量和超低的成本就是愛普生L3153最大的特點(diǎn)。其黑色墨水可打印4500頁,而彩色墨水可打印7500頁。核算下來黑色打印單張成本僅為1分錢,對(duì)于經(jīng)常要打印大批量文件的用戶來說非常友好。

    同時(shí)在一些細(xì)節(jié)方面,我們也看到了愛普生L3153的用心。為了讓家庭用戶灌墨更加輕松,愛普生L3153采用了智能灌墨系統(tǒng)。與其他原廠連供類打印產(chǎn)品不同的是,愛普生墨倉類打印產(chǎn)品采用了差異化的卡口設(shè)計(jì),可以徹底告別錯(cuò)誤灌墨。在灌墨過程中無需擠壓,可自動(dòng)識(shí)別灌墨的狀態(tài)。

    所以綜合來看,對(duì)于有經(jīng)常打印照片需求的家庭用戶來說,選擇原廠連供類的噴墨打印機(jī)產(chǎn)品確實(shí)是個(gè)不錯(cuò)的選擇,其最大的特點(diǎn)就是印量足夠大同時(shí)成本足夠低。值得注意的是噴墨打印產(chǎn)品在長(zhǎng)期不使用會(huì)提升堵頭的概率,建議保持打印機(jī)通電且使用頻率保持在每周一次。

    寫在最后

    其實(shí)對(duì)于家庭用戶來說,到底是選激光還是選噴墨,這個(gè)答案也許并不是唯一的。如果說平時(shí)有打印彩色文檔的需求,那么可以選擇原廠連供類的噴墨打印產(chǎn)品,畢竟印量夠大成本夠低。如果說沒有彩色打印的需求,并且希望打印機(jī)產(chǎn)品能夠經(jīng)久耐用,那么不妨看看黑白激光類打印產(chǎn)品,會(huì)是個(gè)不錯(cuò)的選擇。所以說,到底是選激光還是選噴墨要從自身的實(shí)際需求出發(fā)來考慮。

    (7771877)

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有