原创 進程同步與信號量、信號量臨界區保護、信號量代碼實現

生產者-消費者實例 當生產者發現 counter == BUFFER_SIZE 生產者等待(阻塞) 當消費者發現 counter == 0 消費者等待(阻塞) 存在問題: 只用counter做判斷,在圖中情況下會導致P2不會被

原创 LeetCode 5.最長迴文子串的三種解法

LeetCode 5.最長迴文子串 解法一: 直接使用中心擴展判斷迴文串,具體方法在:LeetCode 132.分割回文串II 再從大到小枚舉長度,若區間[i,j+1)爲迴文串,輸出。 class Solution { p

原创 LeetCode 115.不同的子序列

LeetCode 115.不同的子序列 雙序列型動態規劃 確定狀態: 類似於LCS的思路,以最後一步的T爲出發點。 情況1:T[n-1]=A[m-1],則求T[0..n-2]在S[0..m-2]中出現多少次 情況2:T[n-1]

原创 IO與顯示器、鍵盤(哈工大李志軍)

外設的工作: 外設的寄存器的地址、內容格式都不統一,操作系統要給用戶一個簡單的視圖方便管理 ——文件視圖 驅動外設概括起來就是:創建文件視圖,CPU向外設發出指令(out指令),外設執行完畢後發出中斷,再讀數據到內存。 一段操

原创 三、系統調用及實驗

保護機制:將內核程序與用戶隔離特權級特權級檢查系統調用進入內核的方法系統調用的核心實現實驗實驗內容實驗過程kernel / who.cinclude / unistd.hinclude / linux / sys.h更改Make

原创 內存管理(哈工大李志軍)

文章目錄計算機如何工作?將程序進入內存重定位:修改程序中的地址(相對地址)交換:程序載入後移動運行時重定位內存分段內存分區分頁多級頁表和快表多級頁表快表段頁結合的實際內存管理實際的段頁式內存管理內存換入實際系統的請求調頁內存換出F

原创 實驗一: 配置HIT-oslab實驗環境

慕課網: http://www.feemic.cn/mooc/icourse163/1002692015#。 百度雲鏈接:https://pan.baidu.com/s/1h2aEk6A_DGpXkZvRtNmeUw 提取碼:qo

原创 NS3 安裝(Ubuntu 環境)

文章目錄前言先決依賴(Git 安裝方式)使用 Git 下載源代碼編譯運行測試 前言 參考官方文檔 英語不行開谷歌翻譯問題也不大的 Ctrl + Alt + T 調出終端,所有命令複製粘貼即可 先決依賴(Git 安裝方式) 輸入命

原创 二分法:leetcode 704 . 二分法模板,35.搜索插入位置,74.搜索二維矩陣,240.搜索二維矩陣 II

704.二分查找 class Solution { public int search(int[] nums, int target) { if(nums.length == 0)

原创 死鎖處理(哈工大李志軍)

若將執行順序換成紅字的順序: Producer: 執行P(mutex) mutex 1->0 執行P(empty) empty 0->-1 阻塞 Consumer: 執行P(mutex) mutex 0->-1,阻塞 Pro

原创 文件使用磁盤的實現

sys_write() file_write() create_block() 盤塊記錄在inode->izone m_inode(設備文件) 總結

原创 生磁盤到文件,目錄與文件系統

認識磁盤 扇區 (sector)和 磁道(track): 下圖顯示的是一個盤面,盤面中一圈圈灰色同心圓爲一條條磁道,從圓心向外畫直線,可以將磁道劃分爲若干個弧段,每個磁道上一個弧段被稱之爲一個扇區(圖踐綠色部分)。扇區是磁

原创 二分法:leetcode 704 . 二分法模板,35.搜索插入位置,74.搜索二維矩陣

704.二分查找 class Solution { public int search(int[] nums, int target) { if(nums.length == 0)

原创 IO與顯示器(哈工大李志軍)

外設的工作: 外設的寄存器的地址、內容格式都不統一,操作系統要給用戶一個簡單的視圖方便管理 ——文件視圖 驅動外設概括起來就是:創建文件視圖,CPU向外設發出指令(out指令),外設執行完畢後發出中斷,再讀數據到內存。 一段操

原创 CPU的調度和schedule()(哈工大李志軍)

目錄CPU調度策略調度算法:First Come, First Served(FCFS),先來先服務縮短週轉時間:短作業優先(SJF)縮短響應時間:時間片輪轉調度算法的選擇:一個實際的 schedule() 函數`counter`