一 。使用者態與核心態如何切換
分為三種:
1.系統呼叫
這是一種使用者主動切換到核心態的方式,
使用者態程序通過系統呼叫申請使用作業系統提供的服務程式完成工作
2.異常
cpu在執行執行在使用者態下的程式時,發生了某些事先不可知的異常,這時會觸發由當前執行程序切換到處理此異常的核心相關程式中
3.外圍裝置的中斷
當外圍裝置完成使用者請求的操作後,會向
cpu發出相應的中斷訊號,這時
cpu會暫停執行下一條即將要執行的指令轉而去執行與中斷訊號對應的處理程式
三種使用者態到核心態的切換從觸發方式來說有三種,但是實質上都是實現了一次中斷響應的過程
二。兩個程序之間如何切換
假設當前系統中只有兩個程序執行
1. 程序a時間片用盡返回就緒,程序b執行
2. 程序a等待某事件(i/o、同步)陷入阻塞,程序b執行
三。寫時拷貝 會不會影響全域性資料區 區域性資料區 堆
當父(子)程序中某個變數的值被改變時,該變數所在頁會拷貝乙份在子(父)程序中,而不是完全將資料域拷貝
面試問題c
1 如何避免記憶體洩漏 2 namespace 3 如何防止記憶體洩漏 4 堆和棧的區別 5 記憶體的幾種形式 6 linux指令 1 如何避免記憶體洩漏 答 記憶體洩漏 記憶體洩漏是指由於未能釋放掉不再使用的記憶體情況,並不是指內存在物理上的消失,而是應用程式分配某段記憶體後,由於設計錯誤失去了對...
C 面試問題
一面 1 多型性都有哪些?靜態和動態,然後分別敘述了一下虛函式和函式過載 2 動態繫結怎麼實現?就是問了一下基類與派生類指標和引用的轉換問題 3 型別轉換有哪些?四種型別轉換,分別舉例說明 4 操作符過載 操作符 具體如何去定義,讓把操作符過載函式原型說一遍 5 記憶體對齊的原則?原則敘述了一下並舉...
C 面試問題
1 概念 陣列 儲存連續多個相同型別的資料 2 賦值 同型別的指標變數可以相互賦值,陣列不行,只能乙個乙個元素的賦值或拷貝 3 儲存方式 陣列 連續記憶體空間。4 sizeof 陣列的sizeof求的是占用的空間 位元組 在32位平台下,無論指標的型別是什麼,sizeof 指標名 都是4,在64位平...