Interview 作業系統 day23

2022-07-30 14:48:14 字數 1174 閱讀 6457

正常程序

孤兒程序

殭屍程序

殭屍程序的危害:

如何避免殭屍程序

內部解決

執行緒池就是首先建立一些執行緒,它們的集合稱為執行緒池。執行緒池在系統啟動時即建立大量空閒的執行緒,程式將乙個任務傳給執行緒池,執行緒池就會啟動一條執行緒來執行這個任務,執行結束以後,該執行緒並不會死亡,而是再次返回執行緒池中成為空閒狀態,等待執行下乙個任務。執行緒池可以很好的提高效能。

初始化執行緒池、任務佇列和工作執行緒

向任務佇列中新增任務

將等候在條件變數(任務佇列上有任務)上的乙個執行緒喚醒並從該任務佇列中取出第乙個任務給該執行緒執行

等待任務佇列中所有任務執行完畢

關閉執行緒池

如果執行緒的空閒時間過長,就可以考慮縮小執行緒池。

可用通過 \(union\) 來判斷系統是大端還是小端,因為 \(union\) 總是從低位址開始存放

int main()  t;

t.x = 1;

if(t.y == 1) printf("xiao duan\n");

else printf("da duan\n");

return 0;

}

\(poll\) 函式通過乙個可變長度的陣列解決了 \(select\) 函式中檔案描述符受限的問題。

\(epoll\) 函式把要監聽的描述符新增進去,這些描述符會組成一顆紅黑樹。當某個描述符上有事件發生時,會把對應的描述描述新增到鍊錶中,然後返回鍊錶。\(epoll\) 相較與 \(select\) 的優點在於:

首先可以確定的是,**是相同的,所以父子程序會共用**段

對於資料部分,一開始時,子程序的頁表項指向和父程序相同的物理記憶體頁。而當父程序或子程序想要對這些頁面做修改之前,作業系統會拷貝要修改的頁面,並對父子程序的頁表項做出相應的調整。

使用者空間 \(3g\)

區域性佇列排程。

目前多數多核 \(cpu\) 作業系統採用的是基於全域性佇列的任務排程演算法。

通過 (柱面號、盤面號、扇區號) 的三元組來定位到要讀資料的位置。

通過 柱面號 移動磁臂,讓磁頭指向指定的柱面

啟用指定盤面的磁頭

磁碟旋轉過程中,從指定扇區劃過,完成了讀/寫

作業系統 作業系統介面

介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...

作業系統(作業系統引論)

方便性 方便使用者進行操作計算機 有效性提高系統資源的利用率 提高系統的吞吐量,加速程式的執行 可擴充性 方便地增添新的模組和功能,以及對原有的功能模組進行修改 開放性能夠遵循世界標準規範 os作為使用者和計算機硬體系統之間的介面 使用者能夠通過作業系統來使用計算機系統 os作為計算機資源的管理者 ...

作業系統 作業系統 一 作業系統概述

好好學習,天天向上本文已收錄至我的github倉庫daydayup 歡迎star 之前一直沒有系統地學過作業系統,感覺自己在平時的學習過程中對於某些概念理解得一塌糊塗,比如中斷 記憶體 程序和執行緒等。所以打算系統的學習一下作業系統。一開始我是在b站看哈工大的李治軍老師講的,但是一上來就開始從彙編 ...