2020 操作系统第一天复习(习题总结)
2020.12.9 操作系統系統
系統軟件 臨界區管理的嘗試 進程狀態圖 進程映像
I:屬于系統軟件的是?
答案:操作系統
系統軟件是負責管理系統中各種獨立的硬件。通俗的說就是能夠直接控制硬件的。
硬件層負責提供各種可計算的資源,包括處理器,存儲器,寄存器和各種I/O設備。
主要有操作系統,數據庫系統,語言處理程序,支撐軟件。
操作系統有dos,Windows。Unix,OS/2。操作系統負責管理各種各樣的資源,包括處理器管理,文件管理,設備管理,存儲器管理四項功能。
數據庫系統
語言處理程序比如匯編語言匯編器,C語言編譯器,連接器等等。
支撐軟件,也叫系統輔助處理程序。主要有編輯程序,調試程序,裝備和連接程序。
II:臨界區管理只能通過軟件管理?
答案:錯誤
臨界區管理的軟件算法:Perterson算法。
先開始不謙讓,最后進去的時候再謙讓一把
// peterson 算法 inside[0]=false;inside[1]=false; enum{0,1} turn; cobegin; process PO(){inside[0]=true;turn=1;while(inside[1] && turn==1);臨界區inside[0]=false; }process P1(){inside[1]=true;turn=0;while(inside[0] && turn==0)臨界區inside[1]=false; }臨界區管理的硬件設施:第一 關中斷 第二 測試并建立指令 第三 對換指令
在單處理器計算機系統中,并發程序不能同時執行,只會交替的執行。為了保持互斥性,僅僅需要保證進程不被中斷。而我們主要有兩種方式來實現臨界區管理,一種是關中斷,還有一種是測試并建立指令。
- 關中斷。在進程進入臨界區時關中斷,在進程退出臨界區時開中斷
- 測試并建立指令。用硬件所提供的“測試并建立”機器指令(Test and Set),可以把這一條指令看做是函數。由于TS指令是不可分割的指令,所以可以保證臨界區管理的正確性。
- 對換指令,交換兩個字之間的內容
在IntelX86中,對換指令被稱之XCHG
void swap(bool &a, bool &b){bool temp=a;a=b;b=temp; } //處理程序 // lock =false 表示現在沒有程序 bool lock=false; cobegin void process(){bool s=true;do{swap(&s,&lock);}while(lock);臨界區swap(&s,&lock); }III:進程的調度
答案:在分時系統中,一個正在運行的進程的時間片如果終結,那么該進程會轉入就緒狀態。
進程是對處理器的抽象
文件是對設備的抽象
虛存是對主存的抽象
三態模型
五態模型:添加了new 和exit 終止態
七態模型:增加兩個掛起狀態,將掛起的進程放到磁盤中
- 畫圖 先畫出三態圖,然后再畫出終止態(從運行態指出去),再畫出掛起就緒態,和掛起等待態(和掛起態和就緒態是雙向,同時掛起等待也有指向掛起就緒,運行也有指向掛起運行態,)最后是新建態,有兩個提交指向就緒態。
進程的描述和組成
(1) 進程的映象
由于進程的狀態在不斷的發生改變,某時刻進程的內容及其狀態的集合被稱為進程映象(process image),包括以下的一些元素:
- 進程控制塊PCB
- 進程程序塊
- 進程核心棧
- 進程數據塊 進程控制塊是進程的私有地址空間,存放各種私有數據,用戶棧也要在數據塊中開辟,用于函數調用時候存放棧幀,局部變量等參數。(堆)
如果只具體前面的三條,而共享用戶地址空間。那么就稱為“用戶進程”,如果完全沒有用戶空間,那么就稱為”內核線程“。
總結
以上是生活随笔為你收集整理的2020 操作系统第一天复习(习题总结)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内核函数 系统调用 系统命令 库函数
- 下一篇: (第一次)NODEJS学习笔记