日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

2020 操作系统第零天复习(知识点总结)

發布時間:2025/1/21 windows 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2020 操作系统第零天复习(知识点总结) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1:概論
    • 2:處理器管理

1:概論

  • 處理系統
    • 是第一個使用多道程序設計的系統
    • 缺少交互性 但是效率提升
  • 分時處理系統
    • 把一臺計算機按照時間片輪轉的方式分配給多個用戶,使得用戶覺得是自己獨占計算機
    • 必須在規定的時間進行響應
    • 交互性增加 響應的時間和CPU的性能,聯機終端的數目,所用時間片的長短,系統調度開銷和兌換信息的多少
  • 實時處理系統
    • 能夠實時的查詢并且更新數據
    • 機票系統 實時查詢系統 飛機 導彈

2:處理器管理

  • 處理器狀態

    • 核心態和用戶態,又叫管態和目態
    • 核心態可以執行所有的指令,目態只能執行用戶指令
    • X86 一種有四個特權級,0最高,3最低 但是Windows 中只有兩個特特權級
    • 模式切換
    • 用戶態到核心態:系統調用,中斷或者異常
    • 程序狀態字的模式為設置為核心態
    • 核心態到用戶態:加載程序狀態字特權指令
  • 程序狀態字

    • 指示處理器的狀態,控制指令的執行順序,并且指示與運行程序有關的信息,主要作用是實現程序狀態的保護和恢復
    • 在X86總 PWS由標志寄存器和EIP組成
  • 中斷的處理

    • 發現中斷源
    • 保護現場
    • 轉向中斷/ 異常時間的處理程序
    • 恢復現場
  • 時鐘中斷是肯定是在用戶使用的哈 中斷程序是在內核

  • 可再入 和可再用

    • 可再入:只讀的代碼,能夠被多個程序同時調用 編譯程序
    • 可再用:一次只能一個程序調用
  • 進程的特征

    • 【并發性 制約性】【 獨立性 共享性】【 結構性】【 動態性】
  • 操作系統的特性

    • 異步性 共享性 并發性

并發制約獨立動態結構共享

  • 進程的狀態和轉換

    • 三態模型
    • 五態模型
    • 七態模型
  • 進程映像

    • 進程控制塊
      • 表示信息
      • 現場信息
      • 控制信息
    • 進程程序塊
    • 進程核心快
    • 進程數據塊
  • 上下文切換和模式切換

    • 上下文是不同的進程之間的轉換
    • 模式切換是同一個進程下的 內核和用戶之間的轉變
    • 上下文切換,進程切換一定是在內核空間中的

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-CgfwqGsg-1610355301000)(C:%5CUsers%5CAdministrator.DESKTOP-CGIO78B%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210111095717447.png)]

  • 進程的管理和控制

    • 原語 關中斷,不能并發執行 是哦那個房管指令
  • 線程

    • 用戶級線程:無需模式切換,節省開銷
    • 大多數系統調用是阻塞的,一個的阻塞導致整個進程的阻塞
    • 內核級線程:能夠利用多個CPU
    • 并且一個線程阻塞之后,也不會導致整個的堵塞
    • 線程在用戶時,模式切換的開銷太大。用戶——內核——用戶
typedef struct semaphore{int value;struct pcb* list; };void P(semaphore &s){s.value--;if(s.value<0){W(s.list); //利用W(s.list)來阻塞自己} }void V(semaphore &s){s.value++;if(s.value<=0){R(s.list);} }

管程的實現代碼

type struct InterfaceModule{semaphore mutex;semaphore next;int next_count; }//enter mutex=1; next=0; next_count=0;process enter(){P(IM.mutex); }process leave(){if(IM.next_count>0){V(IM.next);}else{V(IM.NEXT);} }process singal(semaphore & x_sem, int & x_count,IM){next_count++;//喚醒當前信號量上的if(x_count>0){V(x_sem);P(IM.next);next_count--;} }process wait(semaphore & x_sem,int & x_count,IM){x_count++;if(IM.next_count>0){V(IM.next);}else{V(IM.mutex);}P(x_sem);x_count--; }哲學家就餐問題typedef philiosopher_dinner=monitorenum {hungry,eating,thinking} state[5]; semaphore self[5]; int selft[5]_count; for(int i=0;i<5;i++){state[i]=thinking; } define pickup,putdown; use enter,leave,putdown,singalvoid puton(int i){enter(IM);state[i]=hungry;test(i);if(state[i]!=eating){wait(self[i],self_count[i],IM);}拿到左右的兩邊筷子leave(IM); }void putdown(int i){enter(IM);state[i]=thinking;test((i-1)%5);test((i+1)%5);leave(IM); }void test(int i){if(state[i]== hungry && state[(i-1)%4]!=eating && state[(i+1)%5]!=eating){state[i]=eating;singal(self[i],self[i]_count,IM);} }生產者消費者問題process enter(){P(IM.mutex); }process leave(){if(IM.next_count>0){V(IM.next);}else{V(IM.NEXT);} }process singal(semaphore & x_sem, int & x_count,IM){next_count++;//喚醒當前信號量上的if(x_count>0){V(x_sem);P(IM.next);next_count--;} }process wait(semaphore & x_sem,int & x_count,IM){x_count++;if(IM.next_count>0){V(IM.next);}else{V(IM.mutex);}P(x_sem);x_count--; }typedef produce_customer=monitorsemaphore notfull,notempty; int notfull_count,not_empty; notfull=0,notempty=0; notfull_count=0;not_empty_count=0; int count = 0;void put(){enter(IM);if(count==M){wait(notfull,notfull_count,IM);}//進行產品的制作count++;singal(notempty,notempty_count,IM);leave(IM); }void putdown(){enter(IM);if(count==0){wait(notempty,notempty_count,IM);}count--;singal(notfull,notfull_count,IM);leave(IM); }讀者寫者問題typedef reader_writer=monitorsemaphore R,W; int R_count,W_count; int readcount,writecount;void startread(){enter(IM);if(writecount>0){wait(R,R_count,IM);}readcount++;leave(IM); }void endread(){enter(IM);readcount--;if(readcount==0) singal(W,W_count,IM);leave(IM); }void startwrite(){enter(IM);writecount++;if(writecount>1 || readcount>0 ){wait(W,W_count,IM);}leave(IM); }void endwrite(){enter(IM);writecount--;if(writecount>0){singal(W,W_count,IM);}else{singal(R,R_count,IM);}leave(IM); }
  • 進程通信
  • 信號
  • 管道
  • 共享內存
  • 消息傳遞
  • 共享內存

死鎖防止:

破壞四個必要條件

互斥 保持與申請 不剝削 循環等待

保持與申請:靜態分配

不剝削:剝削

循環等待:按需分配 俺層次分配

死鎖避免 銀行家算法

如果可以收回來,那我才借給你

死鎖檢測和接觸 資源分配圖 和死鎖定理

設備管理 I/O 硬件原理

  • I/O控制方法

    • 輪詢
    • 中斷
    • DMA
    • 通道
    • 對CPU的影響程度越來越小
  • I/O 軟件的設計目標 高效率和通用性

    • 考慮的問題
      • 設備通用性
      • 出錯處理
      • 同步/異步傳輸
      • 緩沖技術
    • IO軟件的四個層次
      • I/O 中斷處理程序
      • I/O 設備驅動程序
      • 獨立于設備的 I/O軟件
      • 用戶空間中的I/O 軟件
    • 驅動程序的三功能
      • 設備初始化
      • 執行設備驅動歷程
      • 執行中斷處理歷程
    • 獨立于設備的 I/O軟件
      • 設備命名和設備保護
      • 提供與設備無關的塊尺寸
      • 緩沖技術
      • 設備分配和狀態跟蹤
      • 錯誤處理與報告
    • 用戶空間的 I/O軟件
      • 庫函數
      • SPOOLING
        • 作業調度程序 井管理程序 運行作業
  • 緩沖技術

    • 單緩沖
    • 雙緩沖
    • 多緩沖
  • 移動臂調度

    • FCFS 先進先出
    • elevator 電梯調度
    • SSTF 最短查詢時間 可能被黏
    • 掃描算法 scan 需要 到頭
    • circular scan 循環掃描 單方向
  • 文件管理

  • 文件的存取方式

    • 順序
    • 直接
    • 索引
  • 文件的邏輯結構

    • 流失 無結構
    • 記錄
  • 文件的物理結構

    • 順序
    • 連接
    • 直接文件
    • 索引
  • 標準化的操作接口

    • 文件共享
      • 靜態共享
      • 動態共享
      • 文件符號鏈接共享
  • 硬盤空間管理

    • 連續分配
    • 非連續分配
  • 付村管理方法

    • 位示圖
    • 空閑區表
    • 空閑塊鏈
    • 成組鏈接發

總結

以上是生活随笔為你收集整理的2020 操作系统第零天复习(知识点总结)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。