02 2020 档案
摘要:How to write MakeFile 1. 程序的編譯. 程序在編譯過程中,編譯器只檢測程序語法,函數和變量是否被聲明。而函數是否被實現的檢測是在鏈接的過程中檢測的。 2. 一個makefile的示例: 從這個makefile的示例中我們可以看出makefile的工作原理。可以將其想象成一個棧
阅读全文
摘要:2020年一段令我迷惑的代码 这段代码在gcc中可以编译成功,但是在g++中不行。
阅读全文
摘要:近期由于经常需要给别人发送邮件,每次都要打开QQ邮箱觉得非常麻烦。想到Linux终端可以自定义命令,加上python可以实现邮件发送功能,于是自己写了一个终端send + 文件地址的命令。 首先贴上python发送邮件的代码。 我是通过将邮箱信息写在xml文件里面来读取的,这样方便修改。不用每次都修
阅读全文
摘要:C語言中的內存對齊操作 在編譯器給變量分配內存時,變量首地址總是變量字節數的倍數。比如在一段64位的地址空間中,總共有8個字節,char類型總是佔用8個字節,可以隨意分配。而int類型佔用4個字節,如果在這段空間中,前面3個字節都被char類型佔據,那麼int類型分配內存並不會緊接著第4個字節分配內
阅读全文
摘要:計算機的開機啟動過程 1. 當計算機接上電源後,它會先完成加電自檢,然後BIOS會去尋找存儲介質,在盤上尋找引導扇區,如果扇區的結尾是0xAA55的話,計算機就認為這是一個正確的引導扇區。 2. 一個扇區的大小是512B,如果一個0xAA55超過了扇區結尾的話,其大小將超過512B,則也不是一個正確
阅读全文
摘要:C++ static 用法 1. 靜態存儲區:靜態變量存儲的空間分為DATA段和BBS段。DATA段用於存放已經初始化的靜態變量,BBS段存放未初始化的。BBS段在程序開始執行前會被系統自動置為0。於是完成了靜態變量的初始化。 2. c++的static的內部實現機制要求static變量在程序開始執
阅读全文
摘要:操作系統3 內存管理(Linux系統的內存管理方法) 9. Linux系統的內存管理方法 Linux採用“按需調頁”算法,支持三層管理策略。由於Intel CPU在硬件級提供了段式存儲管理和二層頁式存儲管理,Linux作為軟件,必須與之兼容。所以Linux實際上放棄了段式存儲管理,將第二層的頁式管理
阅读全文
摘要:操作系統3 內存管理(請求分段存儲管理) 8.請求分段存儲管理 8.1 請求分段的原理與硬件支持 在段式存儲管理實現的虛擬存儲器上,以段為單位進行換入,換出。相比於請求分頁存儲系統,分段存儲因為段的大小不固定,所以置換算法更加難以實現。請求分段管理的實現需要 段表機制、缺段中斷機制和地址變換機構的支
阅读全文
摘要:操作系統3 內存管理(頁面置換算法) 7. 頁面置換算法 在上一節講過, 換入換出頁面要根據特定的算法來執行, 這種算法就是頁面置換算法. 不合適的算法可能會使系統發生抖動,所謂抖動即指剛剛換出的頁面又要換回來,換回來不久又要換出去,這樣就導致系統的大部分工作時間都花在了頁面調度上,導致效率不高。
阅读全文
摘要:操作系統內核 宏內核與微內核(轉載) 聲明:本文從CSDN轉載,原文鏈接為:https://blog.csdn.net/Silencegll/article/details/51496158 操作系统内核可能是微内核,也可能是单内核(后者有时称之为宏内核Macrokernel)。按照类似封装的形式,
阅读全文
摘要:操作系統3 內存管理(請求分頁內存管理) 6. 請求分頁內存管理方式 6.1 請求分頁的實現 請求分頁是常用的實現虛擬存儲器的方式,其實現需要頁表機制、缺頁中斷機制和地址變換機構的支持。 1. 頁表機制 分頁系統中地址映像是用過頁表實現的。在請求分頁的系統中,頁表項包括:邏輯頁號、物理塊號、狀態位P
阅读全文
摘要:上面这段代码的输出结果为: 说明每个对象都是一个独立的内存空间,而类只决定对象的行为。
阅读全文
摘要:操作系統3 內存管理(虛擬內存) 5.虛擬存儲器 5.1 局部性原理 早在1968年P.Dening就指出:程序在執行過程中呈現出局部性規律。即在很短的時間內,程序的執行儘限於某個部分,其訪問的內存也僅限於某個區域。 局限性體現在時間和空間上,時間上程序中某條指令一旦執行,不就又可能再被執行。空間上
阅读全文
摘要:函數指針可以用來選擇性地調用函數,在這裡只是用法示例,看不出優勢。但是在面向對象編程中,這種編程方式可以根據函數指針來調用不同對象的函數,很有好處。
阅读全文
摘要:操作系統3 內存管理(段式存儲管理) 4 段式存儲管理 4.1 段式存儲的思想 頁式存儲僅僅考慮了程序的長度,可以使一個程序可以不連續地加載內存,但是沒有考慮程序的邏輯結構。 一個程序在加載內存時,其不同部分的訪問權限是不一樣的 。比如程序部分可以多個進程共享,無法修改。而數據部分可以修改,只能由一
阅读全文
摘要:操作系統3 內存管理(分區存儲和頁式存儲) 2. 分區存儲管理方式 分區管理的基本思想是: 將內存空間氛圍一個或若干個連續的區域,稱為分區。每個分區可以存放一個獨立的用戶程序。分區的特點是一個程序可以連續地加載內存。 分區可以分為:單一分區、固定分區、可變分區和重定位分區。 2.1 單道程序的連續分
阅读全文
摘要:字節:1 byte = 8 bit ASCII碼都是佔有一個字節 UTF 8 : 中文(包含繁體)都是佔有三個字節,英文一個字節。 Unicode: 英文中文均佔兩個字節。 B、KB、MB之間都是2^10的換算關係。
阅读全文
摘要:
阅读全文
摘要:一個字符與0xFF做與運算可以得到這個字符在ASCII表中的數字。如:
阅读全文
摘要:操作系統3 內存管理(存儲器管理概述) 1. 存儲器管理概述 1.1 存儲器的層次 寄存器 內存:包括內存、高速緩存、硬盤緩存 外部存儲器 從左至右存儲速度遞減,存儲容量遞增。 高速緩存雖然與內存同為內存,但是其採取了靜態RAM(SRAM),而內存採用了動態RAM(DRAM)。SRAM的存儲速度接近
阅读全文