基於C 語言開發的Windows環境微型作業系統

2021-09-25 19:14:58 字數 723 閱讀 3549

一 需求分析

用高階語言編寫程式,模擬實現乙個簡單功能的作業系統。

實現作業排程(先來先服務)、程序排程功能(時間片輪轉)

實現記憶體管理功能(連續分配)

實現檔案系統功能(選做內容)

這些功能要有機地連線起來

二 程式設計

2.1 演算法簡介

先來先服務演算法:

如果早就緒的程序排在就緒佇列的前面,遲就緒的程序排在就緒佇列的後面,那麼先來先服務(fcfs: first come first service)總是把當前處於就緒佇列之首的那個程序排程到執行狀態。也就說,它只考慮程序進入就緒佇列的先後,而不考慮它的下乙個cpu週期的長短及其他因素。fcfs演算法簡單易行,但效能卻不大好。

時間片輪轉演算法:

時間片輪轉排程是一種最古老,最簡單,最公平且使用最廣的演算法。每個程序被分配乙個時間段,稱作它的時間片,即該程序允許執行的時間。如果在時間片結束時程序還在執行,則cpu將被剝奪並分配給另乙個程序。如果程序在時間片結束前阻塞或結束,則cpu當即進行切換。排程程式所要做的就是維護一張就緒程序列表,當程序用完它的時間片後,它被移到佇列的末尾。

動態分配演算法:

主要演算法有首次適應演算法、迴圈首次適應演算法、最壞適應演算法、最佳是適應演算法等,是一種具有較高效能的記憶體分配演算法。

C 開發基於Windows錄屏小軟體!

許久沒有寫部落格了,最近由於公司競標需要,之前使用的第三方錄屏軟體,不是收費限制 就是錄屏時長限制,而且2k 4k螢幕不能很好的相容錄製,於是我自己隨手寫了個基於windows錄屏小軟體 2 可錄製windows音訊 3 可錄製windows麥克風 4 可暫停 繼續錄製滿足客製化需求 相信這個需求也...

C語言在windows下開發環境的搭建

找到mingw32 gcc g 注意class屬性要為bin 右鍵點選mark for installation。下面耐心等待程式的安裝。安裝完成後關閉包管理器,如果由於某種原因安裝未能成功,在退出程式前程式將給予提示,選擇review changes選項重新安裝即可。開啟控制面板 系統 高階系統設...

基於C 開發的2048

昨天花了一晚上的時間寫了乙個過氣的小遊戲 2048,一直到晚上十二點多才把鍵盤響應事件寫好,感覺自己的腦子不行,還要再補補。先來一波執行的效果 主要演算法,可以實現不同邊長的2048 2private void up 316 17 18 19 20private void up remove bla...