原创 google PageRank算法

公式 鏈接 http://infolab.stanford.edu/~backrub/google.html https://zh.wikipedia.org/wiki/PageRank

原创 計算機視覺 / 二維空間中,如何判斷點在不在某個封閉圖形內?

這是一個 Point in Polygon Test問題。 問題建模 輸入: 點變量(用來描述待測試點),點變量數組(用來描述封閉圖形),整型變量(用來描述封閉圖形的邊數)。 輸出: bool值(用來描述點是否在封閉圖形內)。 測試定理爲

原创 LAB5 Shell、外存管理與操作

Shell shell就是一個進程,這個進程的工作就是接收鍵盤輸入,並parser到相應的系統調用,執行系統調用. 操作系統是如何管理外存設備的? 操作系統是如果操作外存的? 問題引入 爲什麼使用外存? 爲什麼需要內存呢?因爲寄存

原创 LAB6 網絡通信 、 網卡驅動

操作系統是如何安排網絡通信的 操作系統內部實現了socket()系列的系統調用,以供進程進行網絡通信。 簡單講,調用socket()系列函數後,會按照用戶所傳參數選擇指定協議,通過調用操作系統內部的協議實現來包裝待傳輸信息,然後I/O走網絡

原创 如何使用google搜索?

基本搜索 與 直接空格分開就好。 像我這樣的人 李正堯 或 樹哥 OR李正堯 包含“李正堯”或者“樹哥”、或者兩者均有的中英文網站. 排除 年輕有爲 -李正堯 *匹配 例如國家 匹夫*, google搜索會自動匹配出“國家興亡,匹夫

原创 shuffle實現 / 洗牌算法

目的 隨機打亂一個數組 code #include <bits/stdc++.h> using namespace std; void knuth_shuffle(int *arr, int n) { for (int i

原创 Linux 命令行界面下,好玩的東西

回顯 toilet 藝術字 遊戲 nsnake 貪喫蛇 bastet 俄羅斯方塊 查看這臺機器的信息 CPU詳細信息 cat /proc/cpuinfo 當前內存的詳細情況 cat /proc/meminfo 外存詳細情況

原创 LAB4 多進程調度

我們思考這幾個問題: 操作系統kernel要如何實現多處理器支持? 用戶進程能不能由用戶進程創建?怎麼實現?提到fork()、exec()你想到什麼? 操作系統kernel要如何支持多進程?你設計的多進程調度可能在哪些地方會有性能弊端?如

原创 LAB1 啓動操作系統

從機器上電到運行OS發生了什麼? 在電腦主板上有一個Flash塊,存放了BIOS的可執行代碼。它是ROM,斷電不會丟掉數據。在機器上電的時候,CPU要求內存控制器從0地址讀取數據(程序第一條指令)的時候,內存控制器去主板上的BIOS所在RO

原创 LAB2 內核的內存管理

Physical Page Management JOS內核以頁爲最小粒度管理內存,從而實時記錄哪些內存區域空閒,哪些內存區域佔用,這個信息被記錄在一條結構體PageInfo的鏈表中,鏈表的每個結點對應一個物理頁。 內核開始,會調用mem_

原创 Improvements since Nature DQN / 2014~2016

Intro 如果想省時間,建議直接看:Rainbow Deep Q Network(Vanilla DQN) 抓兩個點: Replay Buffer Target Network 詳細見:https://www.cnblogs.com

原创 <數學> 交叉熵 / KL散度

Intro 交叉熵,用來衡量兩個隨機變量之間的相似度。 KL散度(相對熵),量化兩種概率分佈P和Q之間差異。 計算公式 交叉熵 \(CE(p,q) = - (\sum_{i=1}^{n}[p_{i}*log(q_{i}) + (1-p_{i

原创 機器學習算法入門到精通的一個指南

Intro 目標 掌握線性迴歸算法 掌握邏輯迴歸算法 掌握k-means算法 掌握PCA算法 理解線性支持向量機/非線性支持向量機算法 理解凸優化的梯度下降算法 對機器學習中的術語有一定的簡單認識與理解 必啃資料 谷歌機器學習入門課程

原创 <計算機網絡 / 基礎知識> 網絡性能 / 四種時延

intro 以下均基於分組交換技術 我們將以下這樣的一段連接稱爲一段鏈路 假設發送端到接收端間有N條鏈路,對於對一個分組而言,忽略其他因素,端到端總時延\(d(end-end) = N × ( d(proc) + d(queue)