原创 字節跳動-抖音C++開發面經(牛客上的面經,找了答案記錄下來)

1.最長無重複字符子串 滑動窗口解法:最長無重複子串 2.std::unordered_map/std::map的區別 1)map: map內部實現了一個紅黑樹,該結構具有自動排序的功能,因此map內部的所有元素都是有序的。可以做

原创 讀書筆記(十)-內核同步方法

內核中提供了多種方法來防止競爭條件,理解這些方法的使用場景有助於我們在編寫內核代碼時選用合適的同步方法,從而即可保證代碼中臨界區的安全,同時也讓性能損失降到最低. 主要內容: 原子操作 自旋鎖  讀寫自旋鎖 信號量 讀寫信號量

原创 讀書筆記(七)-中斷處理

中斷處理一般不是純軟件來實現的,需要硬件的支持.通過對中斷的學習有助於更深入地瞭解系統的一些底層原理,特別是驅動程序的開發. 主要內容: 什麼是中斷 中斷類型 中斷相關函數 中斷處理機制 中斷控制方法 總結 1.什麼是中斷 爲

原创 讀書筆記(八)-中斷下半部的處理

在前一章也提到過,之所以中斷會分成上下兩部分,是由於中斷對時限的要求非常高,需要儘快地響應硬件. 主要內容: 中斷下半部的處理 實現中斷下半部的機制 總結中斷下半部的實現 中斷實現示例 1.中斷下半部處理 那麼對於一箇中斷,

原创 讀書筆記(十二)-內存管理

內核的內存使用不像用戶空間那樣隨意,內核的內存出現錯誤時也只有靠自己來解決(用戶空間的內存錯誤可以拋給內核來解決). 所有內核的內容管理必須簡潔而且高效. 主要內容: 內存的管理單元 獲取內存的方法 獲取高端內存 內核內存的分配

原创 動態符號鏈接的細節

基本概念 ELF ELF 是 Linux 支持的一種程序文件格式,本身包含重定位、執行、共享(動態鏈接庫)三種類型(man elf)。 代碼: /* test.c */ #include <stdio.h> int gl

原创 網易社招面試(牛客上的面經,找了答案記錄下來)

1.struct和union的區別 1)在任何同一時刻, union存放一個被選中的成員, 而struct存放所有的成員變量。 2)對於union的不同成員賦值,將會對其他成員重寫, 原來成員的值就不存在了, 而對於struct的

原创 騰訊 C++後臺開發面經(牛客上的面經,找了答案記錄下來)

LINUX 1.Linux進程調度算法 1)先來先服務 2)短作業優先 3)最短剩餘時間 4)時間片輪轉 5)最高響應比優先 6)公平共享調度 Linux進程調度算法 2.Linux進程地址空間分佈 3.Linux內存管理方法

原创 讀書筆記(十一)-定時器和時間管理

系統中有很多與時間相關的程序(比如定期執行的任務,某一時間執行的任務,推遲一段時間執行的任務),因此,時間的管理對於linux來說非常重要. 主要內容: 系統時間 定時器 定時器相關概念 定時器執行流程 實現程序延遲的方法 定

原创 讀書筆際(五)-系統調用

主要內容: 什麼是系統調用 Linux上的系統調用實現原理 一個簡單的系統調用的實現 1.什麼是系統調用 簡單來說,系統調用就是用戶程序和硬件設備之間的橋樑. 用戶程序在需要的時候,通過系統調用來使用硬件設備. 系統調用的存在

原创 讀書筆記(六)-內核數據結構

內核數據結構貫穿於整個內核代碼中,這裏介紹4個基本的內核數據結構. 利用這4個基本的數據結構,可以在編寫內核代碼時節約大量時間. 主要內容: 鏈表 隊列 映射 紅黑樹 1.鏈表 鏈表是linux內核中最簡單,同時也是應用最廣泛

原创 讀書筆記(三)-Linux的進程

進程是所有操作系統的核心概念,同樣在linux上也不例外. 主要內容: 進程和線程 進程的生命週期 進程的創建 進程的終止 1.進程和線程 進程和線程是程序運行時的狀態,是動態變化的,進程和線程的管理操作(比如創建,銷燬等)都

原创 讀書筆記(一)-內核簡介

本章簡單介紹內核相關的基本概念. 主要內容: 單內核和微內核 內核版本號    1.單內核和微內核 原理 優勢 劣勢 單內核 整個內核都在一個大內核地址空間上運行 1.簡單.2.高效:所有內核都在一個大的地址空間上

原创 讀書筆記(二)-內核開發的準備

在嘗試內核開發之前,需要對內核有個整體的瞭解. 主要內容 獲取內核源碼 內核源碼的結構  編譯內核的方法 內核開發的特點 1.獲取內核源碼 內核是開源的,所以獲取源碼特別方便,參照以下的網址,可以通過git或者直接下載壓縮好的

原创 騰訊社招電面(牛客上的面經,找了答案記錄下來)

1.free()函數入參是一個void*指針,它是如何知道被指向的大小的? 舉個例子:假設你用malloc需要申請100字節,實際是申請了104個字節。把前4字節存成該塊內存的實際大小,並把前4字節後的地址返回給你。 free釋放