原创 操作系統實驗一實驗報告

實驗一:系統軟件啓動過程 練習1:理解通過make生成執行文件的過程 1.1 操作系統鏡像文件ucore.img是如何一步一步生成的? Makefile如下,解釋部分內容參考 http://blog.csdn.net/liju

原创 操作系統實驗二實驗報告

實驗二:物理內存管理 練習0:填寫已有實驗 將lab1中已完成的代碼更新到lab2中,在這裏分別嘗試了diff+patch和meld兩種方法 在lab2目錄下,trap.c的更新如下(注意可能需要手動在.patch文件中處理合

原创 操作系統實驗七實驗報告

實驗七:同步互斥 練習0:填寫已有實驗 使用meld可以簡單地將前幾個lab的代碼填入lab7中,但是要注意在這次實驗中,部分代碼需要做出修改,如下,主要是trap_dispatch這一個函數 kern/trap/trap.c

原创 操作系統實驗三實驗報告

實驗三:虛擬內存管理 練習0:填寫已有實驗 參考實驗二中的做法,使用meld可以很快完成 http://blog.csdn.net/jasonyuchen/article/details/76424857 練習1:給未被映

原创 操作系統實驗六實驗報告

實驗六:調度器 練習0:填寫已有實驗 使用meld可以簡單地將前幾個lab的代碼填入lab6中,但是要注意在這次實驗中,部分代碼需要做出修改,如下,主要是trap_dispatch、alloc_proc這兩個函數 kern/t

原创 C可變參數的實現

原文 >http://blog.csdn.net/weiwangchao_/article/details/4857567   C函數

原创 操作系統實驗四實驗報告

實驗四:內核線程管理 練習1:分配並初始化一個進程控制塊 首先來看幾個比較重要的數據結構,kern/process/proc.h中定義的進程控制塊及kern/trap/trap.h中定義的中斷幀 struct proc_stru

原创 操作系統實驗五實驗報告

實驗五:用戶進程管理 練習0:填寫已有實驗 使用meld可以簡單地將前幾個lab的代碼填入lab5中,但是要注意在這次實驗中,部分代碼需要做出修改,如下,主要是idt_init、trap_dispatch、alloc_proc、

原创 S19特殊工具與技術

S19特殊工具與技術 一、控制內存分配 1、重載new和delete (1)new/delete的工作機制 調用new時執行了: new表達式調用了名爲operator new/operator new[]的標準庫函數,分配足夠大、

原创 S16模板與泛型編程

S16模板與泛型編程 一、定義模板 1、函數模板 定義一個通用的函數模板用來生成針對特定類型的函數版本,模板定義以關鍵字template開始,後跟一個以逗號分隔的一個或多個模版參數的模板參數列表,當使用模板時顯式或隱式地指定模板實參並

原创 S09順序容器

S09順序容器 一、順序容器概述 1、順序容器類型 vector //可變大小數組,支持快速隨機訪問,在尾部之外的位置插入/刪除元素很慢 deque //雙端隊列,支持快速隨機訪問,在頭/尾位置插入/刪除元

原创 S15面向對象程序設計

S15面向對象程序設計 一、OOP:概述 面向對象程序設計的核心思想是數據抽象、繼承和動態綁定 1、數據抽象:實現了類的接口與分離,參考S07類 2、繼承 通過繼承聯繫在一起的類構成一種層次關係,在層次關係的根部有一個基類,其他類則直

原创 S13拷貝控制

S13拷貝控制 一、拷貝、賦值與銷燬 1、拷貝構造函數:構造函數的第一個參數是自身類類型的引用,且任何額外參數都有默認值,則爲拷貝構造函數,且一般都是一個const的引用,同時往往不是explicit的 (1)合成拷貝構造函數:若類沒

原创 S14操作重載與類型轉換

S14操作重載與類型轉換 一、基本概念 1、重載運算符:名字由關鍵字operator和其後要定義的運算符號共同組成,包含返回類型、參數列表和函數體 (1)參數列表:數量和運算符的運算對象一樣多,即一元運算符有一個參數,二元運算符由左側

原创 S08IO庫

S08IO庫 一、IO類 1、IO庫類型和頭文件 iostream //istream/ostream/iostream,讀寫流,若前綴w如wistream表示對寬字符的支持 fstream //ifstream/ofst