嵌入式100題(61) 核心態,使用者態的區別

2021-10-20 10:44:04 字數 688 閱讀 9469

就像世界上的人並不平等一樣,並不是所有的程式都是平等的。世界上有的人占有資源多,有的人占有資源少,有的人來了,別人得讓出資源,有的人則專門為別人讓出資源。程式也是這樣,有的程式可以訪問計算機的任何資源,有的程式則只能訪問非常受限的少量資源。而作業系統作為計算機的管理者,自然不能和被管理者享受一樣的待遇,它應該享有更多的方便或特權。為了區分不用程式的不同權利,人們發膽了核心和使用者態的概念。

那麼什麼是核心態,什麼是使用者態呢?只要想一想現實生活中,處於社會核心的人與處於社會邊緣的人有什麼區別就能明白處於核心的人擁有的資源多!因此,核心態就是擁有資源多的狀態,或者說訪問資源多的狀態,我們也稱之為特權態。相對來說,使用者態就是非特權態,在此種狀態下訪問的資源將受到限制。如果乙個程式執行在特權態,則該程式就可以訪問計算機的任何資源,即它的資源訪問許可權不受限制。如果乙個程式執行在使用者態,則其資源需求將受到各種限制。

例如,如果要訪問作業系統的核心資料結構,如程序表,則需要在特權態下才能辦到。如果要訪問使用者程式裡的資料,則在使用者態下就可以了。

由於核心態的程式可以訪問計算機的所有資源,這種程式的可靠性和安全性就顯得十分重要。試想如果乙個不可靠的程式在核心態下修改了作業系統的各種核心資料結構,結果會怎樣呢?整個系統有可能崩潰。而執行於使用者態的程式就比較簡單了,如果其可靠性和安全性出了問題,其造成的損失只不過是讓使用者程式崩潰,而作業系統將繼續執行。

很顯然,核心態和使用者態各有優勢:執行在核心態的程式可以訪

嵌入式100題(61) 核心態,使用者態的區別

就像世界上的人並不平等一樣,並不是所有的程式都是平等的。世界上有的人占有資源多,有的人占有資源少,有的人來了,別人得讓出資源,有的人則專門為別人讓出資源。程式也是這樣,有的程式可以訪問計算機的任何資源,有的程式則只能訪問非常受限的少量資源。而作業系統作為計算機的管理者,自然不能和被管理者享受一樣的待...

嵌入式100題(48) 氣泡排序

氣泡排序 氣泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,我想你是不會再無聊地把他們倆交換一下的 如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,...

嵌入式100題(51) 歸併排序

歸併排序 歸併排序是把序列遞迴地分成短序列,遞迴出口是短序列只有1個元素 認為直接有序 或者2個序列 1次比較和交換 然後把各個有序的段序列合併成乙個有序的長序列,不斷合併直到原序列全部排好序。可以發現,在1個或2個元素時,1個元素不會交換,2個元素如果大小相等也沒有人故意交換,這不會破壞穩定性。那...