1. 程式人生 > >《現代作業系統》精讀與思考筆記 第八章 多處理機系統 第九章 安全

《現代作業系統》精讀與思考筆記 第八章 多處理機系統 第九章 安全

  兩章雖然篇幅不小,不過都是以介紹為主,這部分不是我讀這本書的重點,看得比較粗略,筆記內容也不多,乾脆合二為一。

第八章 多處理機系統

  正如章節名,這章主要是關於多處理機、多計算機、虛擬化、分散式系統。由於非單機的多處理器系統和網路通訊關係密切,還講了一些計算機網路的內容。

1.非阻塞send系統呼叫的缺點(P556)

  雖然非阻塞send()可以立即返回,而不是像阻塞版本那樣可能會導致CPU空轉,但是它有一個嚴重缺點:send所使用的緩衝區,直到傳送工作完成後才能修改。如果系統不知道什麼時候傳送完成,那麼這個緩衝區就不能確定它重新變為可用的時機。

  這個原理可以類似地適用於其他的一些非阻塞版本系統呼叫(不過recieve的情況簡單些)。非阻塞系統呼叫並非完美,這是我從前的誤區。

  當然,作業系統設計時可以迴避這個問題,原書提到了三種:複製到核心由核心傳送、傳送後通知程序、緩衝區做只讀標記並在寫時複製。三者也有各自的缺陷,簡單可以對應的概括為:複製到核心開銷、處理同步帶來的程式設計困難、緩衝區管理複雜,具體的解釋可以參考P557。

習題

11.Suppose that the TSL instruction was not available for synchronizing a multiprocessor. Instead, another instmction, SWP, was provided that atomically swapped the contents of a register with a word in memory. Could that be used to provide multiprocessor synchronization? If so, how could it be used? If not, why does it not work?

譯:

  假設不能在多處理器同步問題中使用TSL指令(Test and Set Lock),而是提供了一個可以交換暫存器和儲存器中一個字的SWP指令,可以用來處理多處理器同步問題嗎?

Answer:

  It is just as good as TSL . It is used by preloading a 1 into the register to be used. Then that register and the memory word are atomically swapped. After the instruction, the memory word is locked (i.e., has a value of 1). Its previous value is now contained in the register. If it was previously locked, the 

word has not been changed and the caller must loop. If it was previously unlocked, it is now locked.

分析:

  需要使用暫存器的某一個處理器將自己的一個暫存器預裝載一個1,然後使用SWP交換儲存器和暫存器中的內容,這個儲存器字就相當於被鎖上了,原先的值被送入了暫存器。如果之前已鎖,那麼就忙等;反之則此時上鎖。

  不過有個問題:如果這個儲存器字初始值就是1,怎麼辦?按我的理解,這個儲存器字是用來專門提供SWP模擬TSL功能的,“鎖”的範圍不限於這個單一的字。

24. Consider the processor allocation of Fig. 8-24. Suppose that process H is moved from node 2 to node 3. What is the total weight of the external traffic now?

譯:

  將圖8-24中的H程序從節點2移至節點3,此時外部資訊流量是多少?

分析:

  這裡的“移動”其實是指下面的情況,將節點2、3之間的分界線變為紅線:

  需要注意的是,節點1和節點3有直接相連的部分。在這個圖的基礎上進行分析,不難得出答案是27。

31. Why is there a limit to cable length on an Ethernet network?

譯:

  為什麼乙太網傳輸電纜有距離限制?

Answer:

  Ethernet nodes must be able to detect collisions between packets, so the propagation delay between the two most widely separated nodes must be less

than the duration of the shortest packet to be sent. Otherwise the sender may fully transmit a packet and not detect a collision even though the packet suffers a collision close to the other end of the cable.

分析:

  乙太網需要衝突檢測,因而兩個最近節點的距離造成的最小包的傳輸延時必須小於包的生存時間。否則,即使兩個臨近節點也無法發現同一根電纜上衝突的存在。

  在我的印象中,最大長度的原因是訊號在電纜上傳輸的衰減,與這個答案不是很相符,兩者看上去都是有道理的。

勘誤

1.習題18,第二問要求計算上額外的兩次複製所佔用的時間,而這個時間的計算方法並沒有在題目中給出,疑似遺漏。答案中這兩次複製總時間是660ns。

第九章 安全

  原書為了說明隱寫術的頁面http://www.cs.vu.nl/~art/已經404了,習題16中的網頁http://www.cs.vu.nl/ast我同樣打不開。

習題 

27. Name a C compiler feature that could eliminate a large number of security holes. Why is it not more widely implemented?

譯:

  說出C編譯器中一種通過改進可以大量減少安全漏洞的特徵,為什麼不這樣實現編譯器呢?

Answer:

  The compiler could insert code on all array references to do bounds checking.This feature would prevent buffer overflow attacks. It is not done because it would slow down all programs significantly. In addition, in C it is not illegal to declare an array of size 1 as a procedure parameter and then reference element 20, but clearly the actual array whose address has been passed had better have at least 20 elements.

答案:

  可以改進編譯器使其對所有陣列引用做邊界檢查,這樣緩衝區溢位攻擊將被消除。不這樣做的原因是這將明顯拖慢所有程式。並且,在C中生命一個大小為1的陣列並引用它的20號元素是合法的,雖然這麼做(引用第20個元素)最好還是用一個至少有20個元素的陣列。

29. When a ftle is removed, its blocks are generally put back on the free list, but they are not erased. Do you think it would be a good idea to have the operating system erase each block before releasing it? Consider both security and performance factors in your answer, and explain the effect of each. 

譯:

  刪除檔案時,檔案塊被放回空閒塊列表,但並沒有被清除。你認為讓作業系統在釋放之前先清除每個檔案塊是好方法嗎?從安全性和效能分別考慮,並解釋效果。

Answer:

  From a security point of view, it would be ideal. Used blocks sometimes are exposed, leaking valuable information. From a performance point of view,zeroing blocks wastes CPU time, thus degrading performance.

分析:

  不清除有可能洩露重要資訊,但是效能比較好;反之則降低了效能。注意答案中,結合上下文來理解,"ideal"應為"unideal"。

中文版勘誤 

1.P353圖9-17,F1對於使用者B應標為"R"而非"A";

2.P357圖9-11,為了與上下文一致,“可信計算基準”應為“可信計算基”;

3.P382“記憶體駐留病毒”第一段第三行,“中斷變數”應為“中斷向量”。

相關推薦

現代作業系統精讀思考筆記 處理機系統 安全

  兩章雖然篇幅不小,不過都是以介紹為主,這部分不是我讀這本書的重點,看得比較粗略,筆記內容也不多,乾脆合二為一。 第八章 多處理機系統   正如章節名,這章主要是關於多處理機、多計算機、虛擬化、分散式系統。由於非單機的多處理器系統和網路通訊關係密切,還講了一些計算機網路的內容。 1.非阻塞send

現代作業系統精讀思考筆記 檔案系統

  本系列博文是《現代作業系統(英文第三版)》(Modern Operating Systems,簡稱MOS)的閱讀筆記,定位是正文精要部分的摘錄理解和課後習題精解,因此不會事無鉅細的全面摘抄,僅僅根據個人情況進行記錄和推薦。由於是英文版,部分內容會使用英文原文。   課後習題的選擇標準:儘量避免單純的概念

現代作業系統精讀思考筆記 輸入/輸出

Read performance: RAID levels 0, 2, 3, 4, and 5 allow for parallel reads to service one read request. However, RAID level 1 further allows two read re-ques

現代作業系統精讀思考筆記 死鎖

  本系列博文是《現代作業系統(英文第三版)》(Modern Operating Systems,簡稱MOS)的閱讀筆記,定位是正文精要部分的摘錄理解和課後習題精解,因此不會事無鉅細的全面摘抄,僅僅根據個人情況進行記錄和推薦。由於是英文版,部分內容會使用英文原文。   課後習題的選擇標準:儘量避免單純的概念

現代作業系統精讀思考筆記 多媒體

  第七章部分內容與前幾章內容關聯很大,比如程序排程、磁碟排程、檔案系統,而且多為實現細節,這裡不詳述。 1.幀數與閃爍(P476)   畫面動作的平滑性不是完全由每秒的幀數決定的,而是由每秒不同畫面的數目決定的。即使把20幀的視訊提高到80幀,而提高方式僅僅是把同樣一幀重複播放4次,那麼它仍然會不連

現代作業系統精讀思考筆記 十至十三

  本系列博文是《現代作業系統(英文第三版)》(Modern Operating Systems,簡稱MOS)的閱讀筆記,定位是正文精要部分的摘錄和課後習題精解,因此不會事無鉅細的全面摘抄,僅僅根據個人情況進行記錄和推薦。由於是英文版,部分內容會使用英文原文。   第十章是關於Linux的簡略介紹。一百頁的

現代作業系統精讀思考筆記 記憶體管理

  本系列博文是《現代作業系統(英文第三版)》(Modern Operating Systems,簡稱MOS)的閱讀筆記,定位是正文精要部分的摘錄理解和課後習題精解,因此不會事無鉅細的全面摘抄,僅僅根據個人情況進行記錄和推薦。由於是英文版,部分內容會使用英文原文。   課後習題的選擇標準:儘量避免單純的概念

現代作業系統精讀思考筆記 第一 引論

  本系列博文是《現代作業系統(英文第三版)》(Modern Operating Systems,簡稱MOS)的閱讀筆記,定位是正文精要部分的摘錄和課後習題精解,因此不會事無鉅細的全面摘抄,僅僅根據個人情況進行記錄和推薦。由於是英文版,部分內容會使用英文原文。   課後習題的選擇標準:儘量避免單純的概念考察

現代作業系統 處理機系統

多處理機系統模型主要有三類:分別是共享儲存器多處理機、訊息傳遞多計算機、廣域分散式系統 共享儲存器多處理機:獲得高速的一種處理方式就是使用並行處理機。這些機器使用許多CPU, 每一個都以“通常”的速度執行,但是總體上會比單個CPU強大得多的計算能力。 訊息傳遞多處理機系統:

redis原始碼分析思考(十)——RDB持久化

    redis是一個鍵值對的資料庫伺服器,伺服器中包含著若干個非空的資料庫,每個非空資料庫裡又包含著若干個鍵值對。因為redis是一個基於記憶體存貯的資料庫,他將自己所存的資料存於記憶體中,如果不將這些資料及時的儲存在硬碟中,當電腦關機或者進行

易學筆記-系統分析師考試-6 系統配置效能評價/6.6 處理機系統/6.6.4 網際網路絡

網際網路絡 概念 使計算機系統中各部件(處理機等)、儲存模組、外設模組相互通訊和資訊交換的硬體網路結構 是並行處理系統的核心組成部分 互連函式 概念:表示連線特徵,即是輸入端和輸出端的對應關係 分類 恆等置換 交換置換 方體置換 均

易學筆記-系統分析師考試-6 系統配置效能評價/6.6 處理機系統/6.6.3 對稱處理結構

SMP(共享儲存多處理機) 特點:有一個統一共享的SM 共享儲存模型 均勻儲存器存取模型(UMA: Uniform Memory Access) 特點 所有儲存器被所有處理機均勻共享 所有處理機對所有儲存字具有相同的存取時間 每臺處理機可以有私用快取記憶體

易學筆記-系統分析師考試-6 系統配置效能評價/6.6 處理機系統/6.6.2 海量並行處理結構

虛擬共享儲存器(SVM:Shared Virtual Memory):也稱為共享分佈儲存器(DSM:) 關聯章節: 第3章 作業系統基本原理/3.3 記憶體管理/3.3.4 虛擬儲存管理 出現原因:MPP(大規模並行處理機系統)中的各個處理機不能訪問遠端儲存器,造成資料共享困難

易學筆記-系統分析師考試-6 系統配置效能評價/6.6 處理機系統/6.6.1 處理機系統概述

多處理機系統 概述:指的是兩個或者兩個以上的處理機,在作業系統的統一控制下,共享I/O子系統、共享主存、共享網路,協調求解一個複雜問題,從而提高系統的可靠性、適應性和可用性 多處理機和並行處理機的比較 並行處理機:屬於SIMD,一個控制器,多個處理單元,處理單元做相同

現代作業系統筆記——處理機系統

多處理機三種模型 共享儲存器多處理機 訊息傳遞多計算機 廣域分散式系統 多處理機的構造 快取記憶體一致性協議 為了緩解多個DUP對匯流排的爭奪,為每個CPU添加了快取記憶體

操作系統(筆試系列)-講文件系統

images com logs .com 分享 image ima .cn log 操作系統(筆試系列)-第八講文件系統

次團隊作業——系統設計和任務分配

規範 模塊 討論 說明 編碼 sig pow 團隊項目 項目 團隊作業—系統設計和任務分配(換算成總分10) 一、團隊作業說明(一個團隊一份,發布在易知中團隊項目中) 一、建立團隊項目 的碼雲git代碼庫,並列出地址(5分) 二、討論制定團隊的編碼規範,討論之前和討論

201711671210《Java程式設計》週學習總結(

教材學習內容總結  JFarame(String s)或JFrame() public void setBounds(int a,int b,int width,int height)      pubic void setSize(int width

現代作業系統處理機系統(下)

虛擬化 虛擬化技術唯一一個執行在核心態上的軟體上管理程式,它的程式碼比一個完整的作業系統程式碼量少兩個數量級,也就意味著軟體的漏洞數少兩個數量級, 虛擬機器的另一個好粗好在於檢查點和虛擬機器的前一(例如多伺服器間遷移以達到負載平衡)比在一個普通的作業系統中國年進行程序遷移

現代作業系統處理機系統(上)

多處理機 共享儲存器多處理機是有兩個或更多的CPU全部共享訪問的一個公用的RAM,執行在任何一個COu上的程式都看到一個普通的(通常是分頁)的虛擬地址空間。這個系統唯一特別的性質是,CPU可對儲存器字寫入某個值,然後讀會這個字,得到一個不同的值(因為另一個CPU改寫了它)。