Linux 編程思想:序號不立即複用

Linux 編程思想:序號不立即複用

表現和發現

博主一直在學習 Linux 編程,今天發現一個 Linux 世界中一個很有用的思想——關於序號。
具體現象爲,一個用過的序號(如 pid 和 GDB 中的監視點/斷點編號等等)不會立刻被重複使用,而是在當序號用盡時(如 pid 上限爲 0x7fff),纔會從前面沒有正在被使用的序號開始重複使用空閒的序號。

原因分析

這樣做有利於用戶或開發人員分辨出每個序號所代表的項目,試想下列情況:

目前一個正在運行的程序 A,其進程 pid 爲 10000,該進程因故突然退出;
退出後又再次運行了 A 程序。

這種情況下,如果立刻複用退出的 A 程序的進程號 10000,那麼新打開的進程 pid 仍爲 10000,用戶/開發人員就無法確定該進程是之前的進程,還是原進程退出後,重新打開的進程,給用戶/開發人員將帶來困擾。

擴展

該思想在很多地方均適用,如在計算機網絡中,發送幀的編號也是始終遞增的,當幀編號用盡時,纔會從頭開始使用編號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章