[3]-操作系統


簡短

  • 直接內存訪問DMA:獨立於CPU,設備-內存
  • 通道:獨立於CPU,有自己的指令系統,管理IO操作
  • Spooling:用軟件技術模擬獨享設備的工作
  • 頁表:每一個作業都有關於自己的頁表
  • 請頁靜態替換:OPT理想、LRU、LFU、FIFO

進程:資源分配的基本單位 程序+數據+PCB

  • 進程間通信
    • 信號量、信號
    • 管道、消息隊列
    • 共享內存、套接字

線程:獨立調度的基本單位

  • 線程同步通信
    • 信號量、信號
    • 互斥量、臨界區

死鎖

  • 定義:多個進程因爲競爭資源,造成的互相等待的現象
  • 原因:系統資源不足、推進順序不合理
  • 必要條件:互斥、 請求保持、非剝奪、循環等待
  • 處理策略
    • 預防:破壞必要條件
    • 避免:銀行家算法
    • 檢測:資源分配圖檢查環路
    • 恢復

死鎖例子:+m1 +m2 -m1 +m1

  • 線程T1持有鎖L1並且申請獲得鎖L2
  • 而另一個線程T2持有鎖L2並且申請獲得鎖L1
  • 因爲默認的鎖申請操作都是阻塞的,所以線程T1和T2永遠被阻塞了

實模式、保護模式

  • 實模式:程序通過段地址:偏移值直接訪問物理內存
  • 保護模式
    • 程序通過段選擇:偏移值訪問虛擬內存
    • 然後操作系統通過全局描述符表將虛擬內存轉爲物理地址
    • 好處:進程有了嚴格邊界,任何進程無法訪問不屬於自己進程的物理內存

緩衝區溢出

  • 定義:計算機向緩衝區填充數據時,超過了本身的容量,溢出的數據覆蓋在合法數據上
  • 原因:程序沒有仔細檢查用戶輸入的參數
  • 危害:攻擊,堆棧溢出,函數返回時,跳轉到任意地址
    • 程序崩潰並拒絕服務
    • 跳轉並執行惡意代碼

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