todo【面經(jīng)】??途W(wǎng)Linux和操作系統(tǒng)相關(guān)面經(jīng)題目

1. 進(jìn)程和線程的區(qū)別

  • 概念
    • 進(jìn)程:
      對運(yùn)行時(shí)程序的封裝,是系統(tǒng)進(jìn)行資源調(diào)度和分配的的基本單位,實(shí)現(xiàn)了操作系統(tǒng)的并發(fā);
    • 線程:
      進(jìn)程的子任務(wù),是CPU調(diào)度和分派的基本單位,實(shí)現(xiàn)進(jìn)程內(nèi)部的并發(fā);
      線程是操作系統(tǒng)可識別的最小執(zhí)行和調(diào)度單位。
      每個(gè)線程都獨(dú)自占用一個(gè)虛擬處理器:獨(dú)自的寄存器組,指令計(jì)數(shù)器和處理器狀態(tài)。每個(gè)線程完成不同的任務(wù),但是共享同一地址空間(也就是同樣的動(dòng)態(tài)內(nèi)存,映射文件,目標(biāo)代碼等等),打開的文件隊(duì)列和其他內(nèi)核資源。
  • 區(qū)別
  1. 擁有資源
    進(jìn)程是資源分配的基本單位,但是線程不擁有資源,線程可以訪問隸屬進(jìn)程的資源。
  2. 調(diào)度
    線程是獨(dú)立調(diào)度的基本單位,在同一進(jìn)程中,線程的切換不會(huì)引起進(jìn)程切換,從一個(gè)進(jìn)程中的線程切換到另一個(gè)進(jìn)程中的線程時(shí),會(huì)引起進(jìn)程切換。
  3. 系統(tǒng)開銷
    由于創(chuàng)建或撤銷進(jìn)程時(shí),系統(tǒng)都要為之分配或回收資源,如內(nèi)存空間、I/O 設(shè)備等,所付出的開銷遠(yuǎn)大于創(chuàng)建或撤銷線程時(shí)的開銷。類似地,在進(jìn)行進(jìn)程切換時(shí),涉及當(dāng)前執(zhí)行進(jìn)程 CPU 環(huán)境的保存及新調(diào)度進(jìn)程 CPU 環(huán)境的設(shè)置,而線程切換時(shí)只需保存和設(shè)置少量寄存器內(nèi)容,開銷很小。
  4. 通信方面
    線程間可以通過直接讀寫同一進(jìn)程中的數(shù)據(jù)進(jìn)行通信,但是進(jìn)程通信需要借助 IPC。

2. 什么是死鎖

  • 產(chǎn)生條件
    1. 互斥:
      每個(gè)資源要么已經(jīng)分配給了一個(gè)進(jìn)程,要么就是可用的。
    2. 占有和等待:
      已經(jīng)得到了某個(gè)資源的進(jìn)程可以再請求新的資源。
    3. 不可搶占:
      已經(jīng)分配給一個(gè)進(jìn)程的資源不能強(qiáng)制性地被搶占,它只能被占有它的進(jìn)程顯式地釋放。
    4. 環(huán)路等待:
      有兩個(gè)或者兩個(gè)以上的進(jìn)程組成一條環(huán)路,該環(huán)路中的每個(gè)進(jìn)程都在等待下一個(gè)進(jìn)程所占有的資源。
  • 解決策略
    1. 鴕鳥策略
      當(dāng)發(fā)生死鎖時(shí)不會(huì)對用戶造成多大影響,或發(fā)生死鎖的概率很低,直接忽略死鎖
    2. 死鎖預(yù)防
      通過破壞死鎖產(chǎn)生的四個(gè)必要條件中的一個(gè)或多個(gè),以避免發(fā)生死鎖。
  • 破壞互斥:
    不讓資源被一個(gè)進(jìn)程獨(dú)占,可通過假脫機(jī)技術(shù)允許多個(gè)進(jìn)程同時(shí)訪問資源;
  • 破壞占有和等待:有兩種方案
    1. 已擁有資源的進(jìn)程不能再去請求其他資源。一種實(shí)現(xiàn)方法是要求進(jìn)程在開始執(zhí)行前請求需要的所有資源。
    2. 要求進(jìn)程請求資源時(shí),先暫時(shí)釋放其當(dāng)前擁有的所有資源,再嘗試一次獲取所需的全部資源。
  • 破壞不可搶占:
    有些資源可以通過虛擬化方式實(shí)現(xiàn)可搶占;
  • 破壞循環(huán)等待:有兩種方案
    1. 一種方法是保證每個(gè)進(jìn)程在任何時(shí)刻只能占用一個(gè)資源,如果要請求另一個(gè)資源,必須先釋放第一個(gè)資源;
    2. 另一種方法是將所有資源進(jìn)行統(tǒng)一編號,進(jìn)程可以在任何時(shí)刻請求資源,但要求進(jìn)程必須按照順序請求資源。
  1. 死鎖避免
    它允許三個(gè)必要條件,但通過算法判斷資源請求是否可能導(dǎo)致循環(huán)等待的形成并相應(yīng)決策,來避免死鎖點(diǎn)的產(chǎn)生。因此,其前提是知道當(dāng)前資源使用的整體情況,以及申請資源線程本身所占有的資源細(xì)節(jié)。
  • 線程啟動(dòng)拒絕:如果一個(gè)線程的請求會(huì)引發(fā)死鎖,則不允許其啟動(dòng)。
  • 資源分配拒絕:如果一個(gè)線程增加的資源請求會(huì)導(dǎo)致死鎖,則不允許此申請。

3. 進(jìn)程調(diào)度算法

  1. 批處理系統(tǒng)
    保證吞吐量和周轉(zhuǎn)時(shí)間(從提交到終止的時(shí)間)
  1. 先來先服務(wù) first-come first-serverd(FCFS)
    非搶占式的調(diào)度算法,按照請求的順序進(jìn)行調(diào)度。
    有利于長作業(yè),但不利于短作業(yè),因?yàn)槎套鳂I(yè)必須一直等待前面的長作業(yè)執(zhí)行完畢才能執(zhí)行,而長作業(yè)又需要執(zhí)行很長時(shí)間,造成了短作業(yè)等待時(shí)間過長。
  2. 短作業(yè)優(yōu)先 shortest job first(SJF)
    非搶占式的調(diào)度算法,按估計(jì)運(yùn)行時(shí)間最短的順序進(jìn)行調(diào)度。
    長作業(yè)有可能會(huì)餓死,處于一直等待短作業(yè)執(zhí)行完畢的狀態(tài)。因?yàn)槿绻恢庇卸套鳂I(yè)到來,那么長作業(yè)永遠(yuǎn)得不到調(diào)度。
  3. 最短剩余時(shí)間優(yōu)先 shortest remaining time next(SRTN)
    最短作業(yè)優(yōu)先的搶占式版本,按剩余運(yùn)行時(shí)間的順序進(jìn)行調(diào)度。 當(dāng)一個(gè)新的作業(yè)到達(dá)時(shí),其整個(gè)運(yùn)行時(shí)間與當(dāng)前進(jìn)程的剩余時(shí)間作比較。如果新的進(jìn)程需要的時(shí)間更少,則掛起當(dāng)前進(jìn)程,運(yùn)行新的進(jìn)程。否則新的進(jìn)程等待。
  1. 交互式系統(tǒng)
    快速地進(jìn)行響應(yīng)
  1. 時(shí)間片輪轉(zhuǎn)
    將所有就緒進(jìn)程按 FCFS 的原則排成一個(gè)隊(duì)列,每次調(diào)度時(shí),把 CPU 時(shí)間分配給隊(duì)首進(jìn)程,該進(jìn)程可以執(zhí)行一個(gè)時(shí)間片。當(dāng)時(shí)間片用完時(shí),由計(jì)時(shí)器發(fā)出時(shí)鐘中斷,調(diào)度程序便停止該進(jìn)程的執(zhí)行,并將它送往就緒隊(duì)列的末尾,同時(shí)繼續(xù)把 CPU 時(shí)間分配給隊(duì)首的進(jìn)程。
  2. 優(yōu)先級調(diào)度
    為每個(gè)進(jìn)程分配一個(gè)優(yōu)先級,按優(yōu)先級進(jìn)行調(diào)度。
    為了防止低優(yōu)先級的進(jìn)程永遠(yuǎn)等不到調(diào)度,可以隨著時(shí)間的推移增加等待進(jìn)程的優(yōu)先級。
  3. 多級反饋隊(duì)列
    多級隊(duì)列是為這種需要連續(xù)執(zhí)行多個(gè)時(shí)間片的進(jìn)程考慮,它設(shè)置了多個(gè)隊(duì)列,每個(gè)隊(duì)列時(shí)間片大小都不同,例如 1,2,4,8,..。進(jìn)程在第一個(gè)隊(duì)列沒執(zhí)行完,就會(huì)被移到下一個(gè)隊(duì)列。這種方式下,之前的進(jìn)程只需要交換 7 次。
    每個(gè)隊(duì)列優(yōu)先權(quán)也不同,最上面的優(yōu)先權(quán)最高。因此只有上一個(gè)隊(duì)列沒有進(jìn)程在排隊(duì),才能調(diào)度當(dāng)前隊(duì)列上的進(jìn)程。

4. 時(shí)間片輪轉(zhuǎn)算法

見第3題

5. 進(jìn)程間的通信方式,進(jìn)程和線程的通信

  1. 管道
  2. 消息隊(duì)列
  3. 信號量
  4. 信號
  5. 共享內(nèi)存
  6. 套接字SOCKET
  • 線程間的同步方式(線程鎖)
  1. 信號量
    它只取自然數(shù)值,并且只支持兩種操作:
    P(SV): 如果信號量SV大于0,將它減一;如果SV值為0,則掛起該線程。
    V(SV): 如果有其他進(jìn)程因?yàn)榈却齋V而掛起,則喚醒,然后將SV+1;否則直接將SV+1。
  2. 互斥量
    互斥量又稱互斥鎖,主要用于線程互斥,不能保證按序訪問,可以和條件鎖一起實(shí)現(xiàn)同步。當(dāng)進(jìn)入臨界區(qū) 時(shí),需要獲得互斥鎖并且加鎖;當(dāng)離開臨界區(qū)時(shí),需要對互斥鎖解鎖,以喚醒其他等待該互斥鎖的線程。
  3. 條件變量
    條件變量,又稱條件鎖,用于在線程之間同步共享數(shù)據(jù)的值。條件變量提供一種線程間通信機(jī)制:當(dāng)某個(gè)共享數(shù)據(jù)達(dá)到某個(gè)值時(shí),喚醒等待這個(gè)共享數(shù)據(jù)的一個(gè)/多個(gè)線程。
  • 線程間通信
  1. 使用全局變量
    主要由于多個(gè)線程可能更改全局變量,因此全局變量最好聲明為volatile
  2. 使用消息實(shí)現(xiàn)通信
    在Windows程序設(shè)計(jì)中,每一個(gè)線程都可以擁有自己的消息隊(duì)列(UI線程默認(rèn)自帶消息隊(duì)列和消息循環(huán),工作線程需要手動(dòng)實(shí)現(xiàn)消息循環(huán)),因此可以采用消息進(jìn)行線程間通信sendMessage,postMessage。
  3. 使用事件CEvent類實(shí)現(xiàn)線程間通信
    Event對象有兩種狀態(tài):有信號和無信號,線程可以監(jiān)視處于有信號狀態(tài)的事件,以便在適當(dāng)?shù)臅r(shí)候執(zhí)行對事件的操作。

6. 弱引用和虛引用的區(qū)別

【todo】

7. 堆和方法區(qū)的區(qū)別

堆和棧的區(qū)別

  • 大小限制:
    棧底的地址和棧的最大容量是系統(tǒng)預(yù)先規(guī)定好的(2M/1M,總之是一個(gè)編譯時(shí)就確定的常數(shù)),如果申請的空間超過棧的剩余空間, stack overflow。因此,能從棧獲得的空間較小。堆是用鏈表來存儲(chǔ)的不連續(xù)內(nèi)存區(qū)域,大小受限于計(jì)算機(jī)系統(tǒng)中有效的虛擬內(nèi)存。由此可見,堆獲得的空間比較靈活,也比較大。
  • 申請效率:
    棧由系統(tǒng)自動(dòng)分配,速度較快。但程序員是無法控制的。堆是由new分配的內(nèi)存,一般速度比較慢,而且容易產(chǎn)生內(nèi)存碎片,不過用起來最方便.
  • 存儲(chǔ)內(nèi)容:
    棧存儲(chǔ)返回地址,參數(shù),局部變量。堆在這塊內(nèi)存空間中的首地址處記錄本次分配的大小,具體內(nèi)容由程序員安排。
  • 數(shù)據(jù)訪問:
    存儲(chǔ)在堆中的對象是全局可以被訪問的,然而棧內(nèi)存不能被其他線程所訪問,且遵循LIFO原則。
  • 生命周期:
    棧內(nèi)存的生命周期很短,而堆內(nèi)存的生命周期從程序的運(yùn)行開始到運(yùn)行結(jié)束。

8. 什么時(shí)候會(huì)發(fā)生內(nèi)存溢出

【todo】

9. linux如何查看cpu占用率

【todo】top

10. io多路復(fù)用了解嗎

【todo放link】見其他文章

11. 深拷貝、淺拷貝

【todo放link】見其他文章

12. 鎖的粒度,什么時(shí)候使用

【todo】

13. 共享鎖、排它所

【todo】

14. Linux命令,查看打印日志;查看某端口被占用的進(jìn)程;查看某文件夾下包含某個(gè)字符的文件有哪些;查看磁盤;查看CPU使用情況

【todo】

15. linux軟連接

【todo】

16. linux修改個(gè)人權(quán)限

【todo】

17. 管道

【todo】

18. 協(xié)程

【todo】

19. linux修改文件名命令,殺死一個(gè)名為a的進(jìn)程

【todo】

20. 內(nèi)存泄露和內(nèi)存溢出的區(qū)別

  • 內(nèi)存溢出和內(nèi)存泄漏
  1. 內(nèi)存溢出
    指程序申請內(nèi)存時(shí),沒有足夠的內(nèi)存供申請者使用。內(nèi)存溢出就是你要的內(nèi)存空間超過了系統(tǒng)實(shí)際分配給你的空間,此時(shí)系統(tǒng)相當(dāng)于沒法滿足你的需求,就會(huì)報(bào)內(nèi)存溢出的錯(cuò)誤
  • 原因:
    內(nèi)存中加載的數(shù)據(jù)量過于龐大,如一次從數(shù)據(jù)庫取出過多數(shù)據(jù) 集合類中有對對象的引用,使用完后未清空,使得不能回收 代碼中存在死循環(huán)或循環(huán)產(chǎn)生過多重復(fù)的對象實(shí)體 使用的第三方軟件中的BUG 啟動(dòng)參數(shù)內(nèi)存值設(shè)定的過小
  1. 內(nèi)存泄漏
    內(nèi)存泄漏是指由于疏忽或錯(cuò)誤造成了程序未能釋放掉不再使用的內(nèi)存的情況。內(nèi)存泄漏并非指內(nèi)存在物理上的消失,而是應(yīng)用程序分配某段內(nèi)存后,由于設(shè)計(jì)錯(cuò)誤,失去了對該段內(nèi)存的控制,因而造成了內(nèi)存的浪費(fèi)。
    Java 內(nèi)存泄漏的根本原因是長生命周期的對象持有短生命周期對象的引用就很可能發(fā)生內(nèi)存泄漏,盡管短生命周期對象已經(jīng)不再需要,但是因?yàn)殚L生命周期持有它的引用而導(dǎo)致不能被回收,這就是 Java 中內(nèi)存泄漏的發(fā)生場景。
  • 場景:
  1. 靜態(tài)集合類引起內(nèi)存泄漏:靜態(tài)成員的生命周期是整個(gè)程序運(yùn)行期間。比如:Map 是在堆上動(dòng)態(tài)分配的對象,正常情況下使用完畢后,會(huì)被 gc 回收。而如果 Map 被 static 修飾,且沒有刪除機(jī)制,靜態(tài)成員是不會(huì)被回收的,所以會(huì)導(dǎo)致這個(gè)很大的 Map 一直停留在堆內(nèi)存中。懶初始化 static 變量,且盡量避免使用。
  2. 當(dāng)集合里面的對象屬性被修改后,再調(diào)用 remove()方法時(shí)不起作用:修改 hashset 中對象的參數(shù)值,且參數(shù)是計(jì)算哈希值的字段。當(dāng)一個(gè)對象被存儲(chǔ)進(jìn) HashSet 集合中以后, 就不能修改這個(gè)對象中的那些參與計(jì)算哈希值的字段,否則對象修改后的哈希值與最初 存儲(chǔ)進(jìn) HashSet 集合中時(shí)的哈希值就不同了。
  3. 各種連接對象( IO 流對象、數(shù)據(jù)庫連接對象、網(wǎng)絡(luò)連接對象)使用后未關(guān)閉:因?yàn)槊總€(gè)流 在操作系統(tǒng)層面都對應(yīng)了打開的文件句柄,流沒有關(guān)閉,會(huì)導(dǎo)致操作系統(tǒng)的文件句柄一 直處于打開狀態(tài),而jvm會(huì)消耗內(nèi)存來跟蹤操作系統(tǒng)打開的文件句柄。
  4. 監(jiān)聽器的使用:在釋放對象的同時(shí)沒有相應(yīng)刪除監(jiān)聽器的時(shí)候也可能導(dǎo)致內(nèi)存泄露。
    不正確使用單例模式是引起內(nèi)存泄漏:單例對象在初始化后將在 JVM 的整個(gè)生命周期中存在(以靜態(tài)變量的方式),如果單例對象持有外部的引用,那么這個(gè)對象將不能被JVM正常回收,導(dǎo)致內(nèi)存泄漏。
  • 解決措施
  1. 盡量減少使用靜態(tài)變量,類的靜態(tài)變量的生命周期和類同步的。
  2. 聲明對象引用之前,明確內(nèi)存對象的有效作用域,盡量減小對象的作用域,將類的成員 變量改寫為方法內(nèi)的局部變量;
  3. 減少長生命周期的對象持有短生命周期的引用;
  4. 使用 StringBuilder 和 StringBuffer 進(jìn)行字符串連接,Sting 和 StringBuilder 以及 StringBuffer 等都可以代表字符串,其中 String 字符串代表的是不可變的字符串,后兩者表示 可變的字符串。如果使用多個(gè) String 對象進(jìn)行字符串連接運(yùn)算,在運(yùn)行時(shí)可能產(chǎn)生大量臨時(shí)字符串,這些字符串會(huì)保存在內(nèi)存中從而導(dǎo)致程序性能下降。
  5. 對于不需要使用的對象手動(dòng)設(shè)置 null 值,不管 GC 何時(shí)會(huì)開始清理,我們都應(yīng)及時(shí)的將無用的對象標(biāo)記為可被清理的對象;
  6. 各種連接(數(shù)據(jù)庫連接,網(wǎng)絡(luò)連接,IO 連接)操作,務(wù)必顯示調(diào)用 close 關(guān)閉。

21. 進(jìn)程的死鎖

【todo】

22. 生產(chǎn)者消費(fèi)者模型怎么解決生產(chǎn)速度過快的問題

【todo】

23. 為什么線程比進(jìn)程要快

【todo】

24. 操作系統(tǒng)的多進(jìn)程和多線程

【todo】

25. 進(jìn)程、線程相關(guān)(切換,內(nèi)存空間、調(diào)度,創(chuàng)建銷毀)

進(jìn)程狀態(tài)轉(zhuǎn)換

  1. 5個(gè)基本狀態(tài)
    創(chuàng)建狀態(tài):進(jìn)程正在被創(chuàng)建。
    就緒狀態(tài):進(jìn)程被加入到就緒隊(duì)列中等待CPU調(diào)度運(yùn)行。
    執(zhí)行狀態(tài):進(jìn)程正在被運(yùn)行。
    等待阻塞狀態(tài):進(jìn)程因?yàn)槟撤N原因,比如等待I/O,等待設(shè)備,而暫時(shí)不能運(yùn)行。
    終止?fàn)顟B(tài):進(jìn)程運(yùn)行完畢。
  2. 交換技術(shù)
    當(dāng)多個(gè)進(jìn)程競爭內(nèi)存資源時(shí),會(huì)造成內(nèi)存資源緊張,并且,如果此時(shí)沒有就緒進(jìn)程,處理機(jī)會(huì)空閑,I/0速度比處理機(jī)速度慢得多,可能出現(xiàn)全部進(jìn)程阻塞等待I/O。
    • 交換技術(shù):換出一部分進(jìn)程到外存,騰出內(nèi)存空間。

在交換技術(shù)上,將內(nèi)存暫時(shí)不能運(yùn)行的進(jìn)程,或者暫時(shí)不用的數(shù)據(jù)和程序,換出到外存,來騰出足夠的內(nèi)存空間,把已經(jīng)具備運(yùn)行條件的進(jìn)程,或進(jìn)程所需的數(shù)據(jù)和程序換入到內(nèi)存。從而出現(xiàn)了進(jìn)程的掛起狀態(tài):進(jìn)程被交換到外存,進(jìn)程狀態(tài)就成為了掛起狀態(tài)。

  • 虛擬存儲(chǔ)技術(shù):每個(gè)進(jìn)程只能裝入一部分程序和數(shù)據(jù)。
  • 進(jìn)程的內(nèi)存空間
  1. 進(jìn)程的內(nèi)存模型


    進(jìn)程的內(nèi)存模型

26. 在一個(gè)文件中查找某個(gè)字符在哪一行

【todo】

27. 僵尸進(jìn)程是什么

  • 進(jìn)程關(guān)系
    進(jìn)程通常不是憑空獨(dú)立的出現(xiàn)的,在類Unix系統(tǒng)中,所有的其他進(jìn)程都是從 進(jìn)程0 fork 出來的,每個(gè)進(jìn)程都會(huì)擁有多個(gè)子進(jìn)程。
  • fork()
  1. fork給父進(jìn)程返回子進(jìn)程pid,給其拷貝出來的子進(jìn)程返回0,
  2. 這也是他的特點(diǎn)之一,一次調(diào)用,兩次返回。
  3. 實(shí)質(zhì)是在子進(jìn)程的棧中構(gòu)造好數(shù)據(jù)后,子進(jìn)程從棧中獲取到的返回值。

由于現(xiàn)代操作系統(tǒng)的寫時(shí)復(fù)制機(jī)制,即使我們知道每個(gè)進(jìn)程都擁有自己獨(dú)立的地址空間,其實(shí)子進(jìn)程指向的物理內(nèi)存是和父進(jìn)程相同的(代碼段,數(shù)據(jù)段,堆棧都指向父親的物理空間),只有子進(jìn)程修改了其中的某個(gè)值時(shí)(通常會(huì)先調(diào)度運(yùn)行子進(jìn)程),才會(huì)給子進(jìn)程分配新的物理內(nèi)存,并根據(jù)情況把新的值或原來的值復(fù)制給子進(jìn)程的內(nèi)存。

  • 孤兒進(jìn)程
  1. 一個(gè)父進(jìn)程退出,而它的一個(gè)或多個(gè)子進(jìn)程還在運(yùn)行,那么這些子進(jìn)程將成為孤兒進(jìn)程。
  2. 孤兒進(jìn)程將被 init 進(jìn)程(進(jìn)程號為 1)所收養(yǎng),并由 init 進(jìn)程對它們完成狀態(tài)收集工作。
  3. 由于孤兒進(jìn)程會(huì)被 init 進(jìn)程收養(yǎng),所以孤兒進(jìn)程不會(huì)對系統(tǒng)造成危害。
  • 僵尸進(jìn)程
  1. 一個(gè)子進(jìn)程的進(jìn)程描述符在子進(jìn)程退出時(shí)不會(huì)釋放,只有當(dāng)父進(jìn)程通過 wait() 或 waitpid() 獲取了子進(jìn)程信息后才會(huì)釋放。如果子進(jìn)程退出,而父進(jìn)程并沒有調(diào)用 wait() 或 waitpid(),那么子進(jìn)程的進(jìn)程描述符仍然保存在系統(tǒng)中,這種進(jìn)程稱之為僵尸進(jìn)程。
  2. 僵尸進(jìn)程通過 ps 命令顯示出來的狀態(tài)為 Z(zombie)。
  3. 系統(tǒng)所能使用的進(jìn)程號是有限的,如果產(chǎn)生大量僵尸進(jìn)程,將因?yàn)闆]有可用的進(jìn)程號而導(dǎo)致系統(tǒng)不能產(chǎn)生新的進(jìn)程。
  4. 要消滅系統(tǒng)中大量的僵尸進(jìn)程,只需要將其父進(jìn)程殺死,此時(shí)僵尸進(jìn)程就會(huì)變成孤兒進(jìn)程,從而被 init 進(jìn)程所收養(yǎng),這樣 init 進(jìn)程就會(huì)釋放所有的僵尸進(jìn)程所占有的資源,從而結(jié)束僵尸進(jìn)程。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容