主存和内存以及一些概念
1.大學雖然學習了操作系統,計算機組成原理等基礎課,可是當時沒有認識到他的重要性,對于這些課程只是不掛科就好,所以也就沒深入的學習和理解.不過靠著大學的軟件工程課程,現在打算在系統的看以下<深入理解計算機系統>這本書,看了第一章,真的是吹爆這本書,建議所有寫程序的可以看下,對于計算的理解會更深入一個層次.
雖然大學對于計算機已經有一些概念了,不過這里還是總結下自己模糊的地方或者以前理解有問題的地方,算是提高下自己.
2.
主存:臨時存儲設備,在處理器執行程序時,用來存放程序和程序處理的數據.
內存:內部存儲器,包含了寄存器,高速緩沖器等等.在這里專業術語中內存指的不是內存條,雖然生活中我們經常把內存看作內存條.
大致關系如下:
轉載自:知乎-喬喬-縮頭者
3.
計算機系統中也有抽象,比如: 文件,虛擬內存等等.
文件: I/O設備.
虛擬內存: 程序存儲器的抽象. 主存 + I/O設備.
進程: 正在運行的程序的抽象.主存 + I/O設備 + 處理器.
虛擬機: 對整個計算機的抽象.主存 + I/O設備 + 處理器+操作系統.
4. 一點感悟: 學習了基礎知識,在回過頭看java的語言,java只不過是這些抽象概念的具體實現,IO,集合,線程等等.剩下的就是熟悉api調用,jvm虛擬機也和操作系統有點類似,都有堆棧等一些基本的數據結構,復雜的是jvm的垃圾回收機制要自己回收對象占用的堆內存,這中間就涉及到了很多復雜的算法,可達性算法,復制-清除算法,標記-清除算法等等,其他的和操作系統的設計思想沒有改變,畢竟它也是按照虛擬機的抽象來實現的一個虛擬機.在編譯程序的時候,jdk會把.java文件編譯成平臺無關的.class文件,只要有虛擬機,就能運行這些程序,所以算是多了一層封裝把. c封裝匯編,java封裝c,最終實現了jvm這一偉大的設計.
我們會發現即使高層的設計在怎么變,底層的思想還是不會改變,因為計算機的架構是經過時間的檢驗的,如果要推翻從頭設計的話,估計還要在經過個100年,這么長的時間就算從商業角度也不會允許.
就和我們人類的基因經過這么長時間也沒有改變一樣,因為底層一變,所牽扯的復雜的高層就會發生翻天覆地的變化.
總結
以上是生活随笔為你收集整理的主存和内存以及一些概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 路由器禁用后手机怎么解除怎样解除路由器对
- 下一篇: Decoder和Encoder