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

歡迎訪問 生活随笔!

生活随笔

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

windows

操作系统学习之用C语言模拟CLOCK算法

發布時間:2025/3/15 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统学习之用C语言模拟CLOCK算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

CLOCK算法,顧名思義,時鐘算法,是一個在FIFO和LRU的折衷算法,很符合我們的中庸之道,來學一學它折衷了哪些部分。

Buddy算法:操作系統學習之用C語言模擬伙伴(Buddy)算法
FIFO算法:操作系統學習之用C語言模擬FIFO算法
LRU算法:操作系統學習之用C語言模擬LRU算法
Clock算法:操作系統學習之用C語言模擬CLOCK算法
本源代碼原創,轉載請注明,同時由于本人才疏學淺,剛入門操作系統,如有錯誤敬請指教
本文原創,創作不易,轉載請注明!!!
本文鏈接
個人博客:https://ronglin.fun/?p=205
PDF鏈接:見博客網站
CSDN: https://blog.csdn.net/RongLin02/article/details/117632407

算法模擬

教科書原圖

算法解釋

先來看看課本上的解釋。
時鐘策略有很多的變種,最簡單的時鐘策略需要給每個頁框關聯一個使用位的附加位。當某頁首次裝入內存時,將該頁框的使用位置為1;該頁隨后被訪問時(在訪問產生缺頁中斷后),其使用位也會置為1。對于頁面置換算法,用于置換的候選頁框集(當前進程:局部范圍;整個內存:全局范圍)被視為一個循環緩沖區,并有一個指針與之相關聯,當一頁被置換時,該指針被置為指向緩沖區中的下一個頁框。需要置換一個頁時,操作系統掃描緩沖區,查找使用位為 0的一個頁框。每當遇到一個使用位為1的頁框,操作系統就會將該位重置為0;若在這個過程開始時,緩沖區中所有頁框的使用位均為0,則選擇遇到的第一個頁框置換;若所有頁框的使用位均為1,則指針在緩沖區中完整地循環一周,把所有使用位都置為0,并且停留在最初的位置上,置換該頁框的頁。可見,該策略類似于FIFO,唯一不同的,在時鐘策略中會跳過使用位為1的頁框。這種策略稱位時鐘策略的原因是,我們可以把頁框想象在一個環中。 ——操作系統-精髓與設計原理(第九版)P227

代碼解釋

教科書的解釋太多了。簡單說一下大概意思,就是當掃描的時候,還是用的FIFO,從頭掃描到尾,但是不同的是,每個頁框都有一個"免死金牌",當第一次掃描到的時候,如果有"免死金牌"就用掉金牌,如果沒有則直接被替換。好處就是考慮到了程序的局部性原理,而且開銷相比LRU小很多,只用維護"免死金牌"量就行了。

解釋一下代碼過程,當一個"頁框"到來時 ,先找一遍,CLOCK_list中有沒有,如果有,更新一下"免死金牌",如果沒有,則開始執行時鐘算法,從index指針開始掃描,若有"免死金牌"(flag)就用掉金牌(flag = 0),如果沒有"免死金牌",則置換這一頁。如果index到了隊尾,就把其放置到開頭。

源代碼

#include<stdio.h> #define MAX_NUM 3 #define MAX_NUM_PROC 512//進程結構體 struct CList {int data;int flag; }CLOCK_list[MAX_NUM];/* 12 2 3 2 1 5 2 4 5 3 2 5 2 */int main() {for(int i=0;i<MAX_NUM;i++){CLOCK_list[i].data = 0;CLOCK_list[i].flag = 0;}int n;int a[MAX_NUM_PROC];printf("請輸入個數:");scanf("%d",&n);printf("請輸入%d個非零數字:\n",n);for(int i=0;i<n;i++){scanf("%d",&a[i]);}int index = 0;for(int i=0;i<n;i++){int exist =0;for(int j=0;j<MAX_NUM;j++){if(CLOCK_list[j].data == a[i]){CLOCK_list[j].flag =1;exist = 1;break;}}if(!exist){int full = 0;for(;index<MAX_NUM;index++){if(CLOCK_list[index].flag ==0){full = 1;CLOCK_list[index].data = a[i];CLOCK_list[index].flag =1;index++;break;}else{CLOCK_list[index].flag =0;}}if(index == MAX_NUM)index = 0;//如果滿了,置換第一頁if(!full){CLOCK_list[0].data = a[i];CLOCK_list[0].flag =1;index++;}}printf("本次隊列情況:");for(int j=0;j<MAX_NUM;j++){printf("%d",CLOCK_list[j].data);if(CLOCK_list[j].flag == 1){printf("*");}else{printf("#");}(j==MAX_NUM-1)?printf("\n"):printf(" ; ");}}return 0; }

輸出解釋

請輸入個數:12 請輸入12個非零數字: 2 3 2 1 5 2 4 5 3 2 5 2 本次隊列情況:2* ; 0# ; 0# 本次隊列情況:2* ; 3* ; 0# 本次隊列情況:2* ; 3* ; 0# 本次隊列情況:2* ; 3* ; 1* 本次隊列情況:5* ; 3# ; 1# 本次隊列情況:5* ; 2* ; 1# 本次隊列情況:5* ; 2* ; 4* 本次隊列情況:5* ; 2* ; 4* 本次隊列情況:3* ; 2# ; 4# 本次隊列情況:3* ; 2* ; 4# 本次隊列情況:3* ; 2# ; 5* 本次隊列情況:3* ; 2* ; 5*

*表示還有"免死金牌",#表示沒有"免死金牌"了,結果和書上的一樣,不在解釋了。

總結

CLOCK算法是一個很有意思的算法,最開始想用一個循環雙向鏈表表示的,但是循環雙向鏈表維護起來比較麻煩,我就用一個數組來維護吧。=w=

總結

以上是生活随笔為你收集整理的操作系统学习之用C语言模拟CLOCK算法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 中国少妇无码专区 | 韩国黄色一级片 | 亚洲精品久久久久av无码 | 外国a级片| 中文字幕91 | 四虎在线视频 | 日韩一区二区三区三四区视频在线观看 | 美国一级大黄一片免费中文 | 999久久久 | 成人午夜影视在线观看 | 新红楼梦2005锦江版高清在线观看 | 中文字幕在线观看91 | 夜夜天天操 | 日韩不卡在线观看 | 激情文学8888 | 天天摸天天舔天天操 | 国产精品乱 | a资源在线 | 麻豆一区二区 | 大肉大捧一进一出好爽 | 青娱乐自拍视频 | 九色论坛| 久久久888| 少妇性l交大片7724com | 网站在线播放 | 日韩性xxx| 亚洲午夜精品久久 | 欧洲做受高潮免费看 | 激情福利| 国产99久一区二区三区a片 | 中文字幕高清 | 91亚洲国产成人精品一区二区三 | 校园春色亚洲激情 | 久久久999精品 | 少妇视频一区二区三区 | 变态另类丨国产精品 | 男男一级淫片免费播放 | 黑人巨大精品人妻一区二区 | 欧美极品三级 | 日韩av中文字幕在线免费观看 | 自拍欧美亚洲 | 日本女人一级片 | 欧美一区二区三区成人久久片 | 成人亚洲精品久久久久软件 | 日本精品在线播放 | 天堂av网在线 | 热re99久久精品国产99热 | 伊人欧美| 日韩福利 | av动漫网| 国产手机看片 | 污网站在线播放 | 一级a毛片免费观看久久精品 | 欧美性福利 | 久久国产一区二区三区 | 爱的天堂 | av噜噜在线观看 | 精品一区二区三区无码视频 | 三级小视频在线观看 | 久久久久亚洲av无码专区 | 欧美大片一区二区三区 | 久久精品国产亚洲av嫖农村妇女 | 里番精品3d一二三区 | 日日夜夜影院 | 欧美不卡一区二区三区 | 欧美丝袜一区二区 | 久草欧美视频 | 97超碰国产在线 | 97精品人妻一区二区三区蜜桃 | 日韩日日夜夜 | 欧美巨大荫蒂茸毛毛人妖 | 蜜桃精品成人影片 | 熟妇五十路六十路息与子 | 一本到在线观看 | 一本久道在线 | 日本一区二区免费电影 | 精品久久九九 | 麻豆高清 | 国内精品人妻无码久久久影院蜜桃 | 佐佐木明希电影 | 欧美性天堂 | 精品人妻av一区二区三区 | 久久系列| 亚洲成人99 | 伊人66 | 欧美小视频在线观看 | 亚洲精品一区二区在线观看 | 自拍偷拍亚洲区 | 成人在线视频免费播放 | 免费av一区 | 欧美日韩看片 | 国模精品视频一区二区 | av免费播放网站 | 性感av在线 | 久久久国产一区 | 国产999精品 | 成人夜色 | 国产精品国产三级国产aⅴ9色 | 国产免费又黄又爽又色毛 |