原创 JOS學習筆記(八)

神說、內核要有自己的數據、使用戶不可訪問.事就這樣成了。  神稱高地址爲內核空間、稱低地址爲用戶空間. 神看着是好的。  神說、用戶要有自己的進程、和自己的頁表、並可以進行系統調用.事就這樣成了。   有晚上、有早晨、是第三日。 

原创 JOS學習筆記(九)

LAB3代碼已經上傳。 最近忙於打WOWTCG,早就做完了一直沒騰出時間寫博客。 LAB3第二部分主要是處理系統調用。 第一部分我們已經讓第一個env運行了起來,接着這個env執行一個cprintf,這個cprintf是一個系統調用,因爲

原创 自制編譯器:語言語法

在翻譯完CUCU編譯器的三篇文章之後,一直有自己嘗試去寫個編譯器的念頭,最近的課餘時間暫且擱置JOS實驗,嘗試自己寫個編譯器,然後若僅僅是個編譯器則所做之事未免和CUCU太雷同了,因此除了編譯器之外還打算寫一個簡單的運行時讓編譯器編譯出的

原创 Weka算法Classifier-tree-J48源碼分析(二)ClassifierTree

一、問題 主要帶着四個問題去研究J48的實現。 1、如何控制分類樹的精度。 2、如何處理缺失的值(MissingValue) 3、如何對連續值進行離散化。 4、如何進行分類樹的剪枝。 二、BuildClassifier 每一個分類器都

原创 JOS學習筆記(十一)

不知不覺已經寫了11篇日誌了,本篇博客將完成LAB 4的PART A的剩餘部分,包括內核鎖、進程(環境)的簡單調度算法,以及fork系統調用。 一、內核鎖 1、鎖實現 考慮到當多個CPU同時陷入內核的場景,若對於關鍵數據結構不加鎖必然就

原创 JOS學習筆記(七)

接前一篇。 上篇日誌主要是完成了一些分頁相關機制的工作,但還沒有真正的去使用這個分頁系統。Lab2的part3部分主要就是讓我們使用part2中完成的映射機制來初始化內核的頁目錄和頁表,並將此頁目錄加載到cr3裏,讓os真正去使用我們初始

原创 自制編譯器:後端代碼生成(二)

(8)stmts stmts邏輯上代表一個語句塊或一組語句塊,對應的生成式和在節點中使用的type如下: stmts --> NUL|            type-->0                   stmt stmts|  

原创 自制Runtime:虛擬執行環境設計

編譯器前端基本設計已經完成(詳見我的自制編譯器系列博文),但在考慮編譯器後端之前,首先要考慮代碼的運行環境,因此考慮再三我便把製作Runtime的過程寫成博文,記錄從中所學到的知識。 Runtime的設計以JVM爲原型,加以部分的簡化來去

原创 JOS學習筆記(十)

神說、進程要有多個、可以分片、切換、互不影響.  並要支持多任務、多處理器並行.事就這樣成了。   於是 神造了多個內核棧,又開闢多個寄存器。   就把這些擺列在內存裏、內核空間裏、  管理多核,分別任務. 神看着是好的.  有晚上、有早

原创 Android下同時使用WIFI與3G網絡(二)

爲了同時使用WiFi和3G網絡,就要手動繞過Android的Framework層去打開WiFi功能,包括: 1、加載驅動 2、連接AP 3、使用dhcp服務獲取ip地址 4、更改路由表  這4步在上一篇博文http://blog.csdn

原创 自制編譯器:詞法分析器

詞法分析器代碼已上傳到個人資源中。 當我們的程序源文件進入編譯器,首先遇到的就是詞法分析器。 詞法分析器的作用就是解析源文件,分析出其中的詞素,並把這個詞素的順序集輸入給語法分析器。 接上篇把所謂的詞素也就是終結符號列出來: if e

原创 Android下網絡接口能耗估計原理

最近做一些手機能耗方面相關的工作,研究了PowerTutor的源代碼,本篇日誌剖析其中的3G和WiFi能耗估計與測算的方法。 能耗估計實質上是估計功率,再根據功率和時間乘積算出能耗。 PowerTutor的GitHub地址:https:/

原创 自制編譯器:語法分析器(一)

感覺語法分析器在編譯器前端是一個較爲龐大的東西,因此打算分兩篇博客來描述,第一篇着重描述思想,第二篇具體論述實現。   1、語法分析器要做什麼 在編寫任何一個東西的的時候,都要先弄明白這個玩意兒是做什麼的,接受什麼輸入,產生什麼輸出。

原创 Weka算法Classifier-tree-J48源碼分析(一)算法和基本數據結構

大概一年沒打理博客了,重新拿起筆不知道該從哪裏寫起,想來想去就從最近手頭用的Weka寫起吧。 Weka爲一個Java基礎上的機器學習工具,上手簡單,並提供圖形化界面,提供如分類、聚類、頻繁項挖掘等工具,本篇文章主要寫一下分類器算法中的J

原创 JOS學習筆記(十二)

快找工作了,一直沒更新,放假一週的時間抽了點工夫做了LAB4的PART B,總體來說還是感覺比較難的,尤其是一段彙編代碼和異常棧那亂七八糟的堆棧。 一、概述 本部分實驗主要是實現一個copy on write的fork函數,第一步是實現