os中程序?qū)Υ鎯?chǔ)器的翻頁和進(jìn)程切換有沖突怎么辦? 我的程序使用了OS,幾個(gè)進(jìn)程都會(huì)對外部存儲(chǔ)器操作,而且有一個(gè)進(jìn)程會(huì)對存儲(chǔ)器進(jìn)行翻頁存儲(chǔ)與讀取(使用573擴(kuò)展總線),其他進(jìn)程都對第0頁操作,平時(shí)程序也都只對第0頁操作。
我的疑問是:當(dāng)進(jìn)程A將存儲(chǔ)器翻頁到第n頁工作的時(shí)候,任務(wù)切換到進(jìn)程B,進(jìn)程B當(dāng)作是在第0頁進(jìn)行操作了,或者此時(shí)進(jìn)程B將存儲(chǔ)器翻到第0頁了,再回到進(jìn)程A的時(shí)候A當(dāng)成還在第n頁進(jìn)行操作,這樣對存儲(chǔ)器的操作就混亂了。因?yàn)槲覜]法控制各個(gè)進(jìn)程會(huì)在什么地方退出和進(jìn)入,所以翻頁和進(jìn)程切換的沖突似乎很難避免?
現(xiàn)在發(fā)現(xiàn)程序長時(shí)間運(yùn)行中有出現(xiàn)數(shù)據(jù)混亂的現(xiàn)象,但沒有想象中那么嚴(yán)重,第0頁某個(gè)區(qū)域的數(shù)據(jù)讀出來發(fā)現(xiàn)有2個(gè)字節(jié)有改變,按上面的理解,這么大的一個(gè)區(qū)域被修改的似乎不應(yīng)該只這么2個(gè)字節(jié)。
請問翻頁的要求和進(jìn)程切換的沖突怎么避免? 在翻頁操作時(shí)禁止任務(wù)調(diào)度好不好?我擔(dān)心若翻頁操作某時(shí)很頻繁的話,對其他進(jìn)程會(huì)有較大影響。
|