学习日记[17]

更新於 發佈於 閱讀時間約 4 分鐘

你好啊,大家。这段时间就是懒,所以才断更了,我检讨。但也不是一无所获的,我找到了一个比较符合我个人的理想环境,这里很好,人少同时,还能长时间呆在这里。

先来补齐之前的内容。

1.《计算机导论》操作系统篇。之前我们提到过,计算机可以分为三个部分——硬件、软件和数据。操作系统是属于软件部分,但是他是特殊的软件,因为把我们口中的理解的软件和硬件连接起来,只有通过操作系统,我们才可以直接的用硬件去加载程序。其实软件是分为两个部分,应用程序和操作系统。因为操作系统中介的特性,我们往往需要他存储在ROM中,以防止断电后该操作系统的消失。在以前我们是直接将整个操作系统放在ROM中运行,但ROM速度完全达不到日益发展的速度需要,所以现在通常使用一个程序,将ROM中的操作系统加载到RAM中,这个程序就是自举程序。

因为硬件的迅速发展和我们对程序运行速度和总量的不断扩大,我们对操作系统的效率追求变得越来越“疯狂”。批处理系统、分时系统、个人系统、并行系统、分布式系统、实时系统等等都相继应用在不同工程之中。但我们还是讲基础的,毕竟地基不稳,盖房子也不牢固。计算机系统有五个部分组成,分别是用户界面、内存管理器、进程管理器、设备管理器、文件管理器。用户界面就不用再讲了,相信用过电子设备的人都知道这个是什么意思。内存管理器,众所周知,计算机中的内存是用来存储数据和程序的,那么数据就不用多说,管理什么的直接放进去就好。程序执行为了效率,我们就必须想一种效率高的方法进行操作。实际上,内存管理器可以分为两大类,单程序和多程序。单程序顾名思义就是在内存中每次只添加一道程序,只有在这道程序执行结束之后才可以进行下一个程序的执行,这无疑会造成无意义的资源浪费(至少在当代如此,要是以前的话就不一定了,计算机性能受限,这是客观事实)。所以为了提高效率,多程序的执行方式就不断确定下来。基本的有四种两类,非交换类——分区调度和分页调度,交换类——请求分页调度和请求分段调度。非交换类就是在程序的执行过程中,内存和硬盘之间不进行交换,反之,进行交换的就是交换类。先来非交换类,分区调度就是将内存分为不同的几个区,每次执行时将程序载入区内,可以同时载入多道程序。如果计算机中哪个部分空闲,那么就按照顺序,从顶自下的进行资源调度,数据类型来说这个就是栈。但是这个问题也很明显,每一个区的大小难以规定,如果这个区大了,那么就会造成资源的浪费,小了程序又无法进行填充进区。所以我们将内存划分成大小相等的区域——帧,程序也划分为与帧相同大小的区域——页。使用时只需要将页填充进帧中,为了更好地提高效率,我们将其填进不连续的帧中,这样只需要有空位就可以进行填充而不用特别在意连续这个条件。注意一下,是只要有空闲的帧,我们就可以填充,而不用在意程序是否完整。这种方式就是分页调度。那我们想,是不是可以再彻底一点,将所有的程序的所有页都打乱,然后再将它们放在帧中。这种方式就是请求分页调度。请求分页调度是基于计算机而言的,有没有一种方法是基于程序员而言的更加直观的方式呢?答案是有的,请求分段,将程序分为主程序和子程序后再打乱,然后将其放在内存中进行执行操作。注意,后两种方式要在内存和硬盘之间进行数据的交换。多道程序的方式有一个很好玩的点,假设有N个程序,每一个程序有a KB,那么总量大概是N*a KB,但是内存比N*a小。通常情况下,我们把这个N*a称为虚拟内存,是多道程序中可以运行的程序的最大(这里是我个人的猜测)。

2.     数据结构和算法之间是相互作用的,在老师那里学到的一切都只是一个小部分、独立的分支。数据结构是算法的基础,倒不如说是工具,可能他不会有用,但如果用到它的时候,还是不能缺。这样说,算法是最后的产物,或许是合理的,毕竟算法就是解决问题的方法,想要解决问题,那么工具能提供很多帮助。当然我是这样理解的了。还有一个特殊的感悟——多看看他人关于这方面的见解是有帮助的,如果仅仅是我个人的胡乱猜想,这些经验不知道是什么时候才会悟出来。可能这就是上天的安排,上帝会让我们在恰当的时间领悟他想让我们知道的事物。我想把这门课学下去,老师教授的一切都太肤浅了,更有可能是我太肤浅了,片面地看着他人的行动。总之,我还是要进行这门课的学习,因为我想用死程序变成一个个鲜活的、个人理想的作品。其实还有一个目的,就是铸就个人的能力,找到一个出去的机会。

3.     我想继续写下去,可能是有人对我说写日记是一个好习惯,一定是吧,我就这样认为了。所以,很抱歉,各位,拖更了那么久,我不是一个信守承诺的人,更是无义之人,总是屈服于曾经的陋习而不去改变。

avatar-img
0會員
20內容數
这个专题是我个人的学习日记,每日会更新,内容很乱,请多见谅。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
Thumbnail
深入探討操作系統和中央處理單元 (CPU) 的基本概念,涵蓋 OS 的功能、CPU 的運作,以及程式與執行緒的管理。透過生動的比喻,讀者能夠更輕鬆地理解複雜的硬體運作機制,包括記憶體管理和行程間的通訊。本文為想了解計算機科學的讀者提供了一個清晰的入門指南,讓他們掌握多程式協調與虛擬化技術的基本知識。
Thumbnail
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
此篇文章連結 RAM 與 C語言陣列的關係並提供陣列與for-loop 使用的相關教學 前半段為基本電腦觀念、後半段為實作能力的教學
“所有人寫的程式會變成指令 每一道指令是由CPU執行 而CPU所能理解的指令類型有限”
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
電腦的運作需要仰賴許多的硬體與軟體,統稱電腦系統 (computer system)。這篇文章會概略地介紹電腦系統中的重要角色,以及它們如何相互合作,來完成複雜的工作,比如說讓無所事事的宅宅如我,假日可以躲在房間玩一整天的遊戲。 電腦、程式、與使用者 說到電腦,你的腦中會浮現什麼呢? 是螢幕
※ 認識變數: 變數(variable)是在程式裡面把東西存起來的概念。 基於不讓電腦每次都需要重新運算,把需要花時間運算的東西先存起來,之後再直接拿出來使用,所以我們需要變數。 變數儲存的位置在電腦裡的記憶體。變數就像是一個箱子,記憶體就像是一個倉庫。箱子的名稱就是變數名稱,箱子的內容物就是
計算機組織不難,但東西很多 這個科目也是我比較不熟悉的,在此之前都是自學,所以會寫的更詳細一點 1.計算機組織在學什麼? 想像計算機的架構就像一個蛋糕有好多層,上半是軟體下半則是硬體,對我來說,軟硬體的兩端是電腦的核心(應用程式&半導體),而中間的每一層都是串接兩端的橋樑;那計算機組織就是要探
對於程序式編程來說,程式是由一系列的指令組成,例如計算數值、印出訊息、修改變數、呼叫子程序、配置變數的記憶體空間等。定義函式是為了讓一些程序可以重複利用,因此稱為子程序,其中參數為子程序中特別的變數,讓我們能夠透過它們控制子程序的行為。函式的回傳值只是一種方便將結果帶回來的方法,但一般只能回傳一個值
Thumbnail
解決電腦上遇到的問題、證明正確性、探討效率 並且很著重溝通,說服別人你做的事是正確且有效率的。 內容: 計算模型、資料結構介紹、演算法介紹、時間複雜度介紹。
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
Thumbnail
深入探討操作系統和中央處理單元 (CPU) 的基本概念,涵蓋 OS 的功能、CPU 的運作,以及程式與執行緒的管理。透過生動的比喻,讀者能夠更輕鬆地理解複雜的硬體運作機制,包括記憶體管理和行程間的通訊。本文為想了解計算機科學的讀者提供了一個清晰的入門指南,讓他們掌握多程式協調與虛擬化技術的基本知識。
Thumbnail
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
此篇文章連結 RAM 與 C語言陣列的關係並提供陣列與for-loop 使用的相關教學 前半段為基本電腦觀念、後半段為實作能力的教學
“所有人寫的程式會變成指令 每一道指令是由CPU執行 而CPU所能理解的指令類型有限”
Thumbnail
本文探討了電腦架構的運行方式,使用比喻解釋CPU、記憶體與硬碟的關係,並指出在提升電腦速度時,加記憶體並非總是有效的方法。讀者將瞭解到,解決電腦速度問題需要分析具體的瓶頸,而不是單純依賴擴充記憶體。讓讀者對電腦性能的提升有更深入的理解。
Thumbnail
電腦的運作需要仰賴許多的硬體與軟體,統稱電腦系統 (computer system)。這篇文章會概略地介紹電腦系統中的重要角色,以及它們如何相互合作,來完成複雜的工作,比如說讓無所事事的宅宅如我,假日可以躲在房間玩一整天的遊戲。 電腦、程式、與使用者 說到電腦,你的腦中會浮現什麼呢? 是螢幕
※ 認識變數: 變數(variable)是在程式裡面把東西存起來的概念。 基於不讓電腦每次都需要重新運算,把需要花時間運算的東西先存起來,之後再直接拿出來使用,所以我們需要變數。 變數儲存的位置在電腦裡的記憶體。變數就像是一個箱子,記憶體就像是一個倉庫。箱子的名稱就是變數名稱,箱子的內容物就是
計算機組織不難,但東西很多 這個科目也是我比較不熟悉的,在此之前都是自學,所以會寫的更詳細一點 1.計算機組織在學什麼? 想像計算機的架構就像一個蛋糕有好多層,上半是軟體下半則是硬體,對我來說,軟硬體的兩端是電腦的核心(應用程式&半導體),而中間的每一層都是串接兩端的橋樑;那計算機組織就是要探
對於程序式編程來說,程式是由一系列的指令組成,例如計算數值、印出訊息、修改變數、呼叫子程序、配置變數的記憶體空間等。定義函式是為了讓一些程序可以重複利用,因此稱為子程序,其中參數為子程序中特別的變數,讓我們能夠透過它們控制子程序的行為。函式的回傳值只是一種方便將結果帶回來的方法,但一般只能回傳一個值
Thumbnail
解決電腦上遇到的問題、證明正確性、探討效率 並且很著重溝通,說服別人你做的事是正確且有效率的。 內容: 計算模型、資料結構介紹、演算法介紹、時間複雜度介紹。