教育

網(wǎng)絡(luò)&操作系統(tǒng)

1.進程通信的方式有哪些,linux中管道的底層原理

管道、消息隊列、共享內(nèi)存、信號量、信號、socket

要知道管道、消息隊列、共享內(nèi)存的本質(zhì):內(nèi)存本質(zhì)、效率以及傳輸數(shù)據(jù)的要求,各種方式使用

http://www.itdecent.cn/p/376b8ac0e461

2.tcp三次握手和四次揮手,四次握手流程,說一下 time_wait

http://www.itdecent.cn/p/186485ef5e5e

TCP四次揮手,結(jié)合CS兩端點的TCP棧和上層應(yīng)用的交互來解釋四次揮手,以及為何需要中間那個FIN-WAIT-2這個過程,最后由被動關(guān)閉一方的上層應(yīng)用通過調(diào)用socket.closed()來結(jié)束數(shù)據(jù)傳輸,進入最終的FIN模式;

3.tcp傳輸中慢啟動原理

http://www.itdecent.cn/p/f95f64711902

慢啟動,是TCP 協(xié)議為了保證可靠性傳輸而設(shè)計的擁塞控制策略中的一個算法,什么是擁塞控制?定義:當網(wǎng)絡(luò)擁堵時,TCP會出現(xiàn)超時、丟失情況,觸發(fā)重傳數(shù)據(jù),但是這會導(dǎo)致情況加劇,TCP 犧牲自己降低發(fā)送數(shù)量為,叫做擁塞控制。

TCP 擁塞控制、重傳機制、滑動窗口、流量控制的關(guān)系(https://mp.weixin.qq.com/s/Tc09ovdNacOtnMOMeRc_uA)

tcp重傳??http://www.itdecent.cn/p/9f7ff80b9d3d

4.一個 10M 大小的 buffer 里存滿了數(shù)據(jù),現(xiàn)在要把這個 buffer 里的數(shù)據(jù)盡量發(fā)出去,可以允許部分丟包,問是用TCP好還是UDP好?為什么?

tcp,udp傳輸?shù)氖菆笪?,每個包都一樣大小,最大報文長度1472,大于就把數(shù)據(jù)分片,但不允許中間有包丟失否則接收端協(xié)議棧不能組合完整數(shù)據(jù)

5.https原理

HTTPS 加密過程,需要幾次通信

http與https的區(qū)別,加密怎么加的?

http各種返回碼,401和406啥區(qū)別?

Https的過程講一下。先是說了http+ssl,dns之后,準備講ssl的原理時,他示意我說回答一下傳輸層相關(guān)的。然后我就回答了tcp三次握手,對著服務(wù)器端指定端口,比如80端口發(fā)起連接,之后就是正常的數(shù)據(jù)請求了

https://mp.weixin.qq.com/s/bUy220-ect00N4gnO0697A

6.完整HTTP 請求涉及哪些協(xié)議?

https://mp.weixin.qq.com/s/bUy220-ect00N4gnO0697A

6打開一個 URL 的過程??https://mp.weixin.qq.com/s/iSZp41SRmh5b2bXIvzemIw

7.進程的調(diào)度:http://www.itdecent.cn/writer#/notebooks/37032437/notes/80945566(待發(fā)布)

8.操作系統(tǒng)內(nèi)存模型?哪些區(qū)具體放什么?

虛擬地址、物理地址

內(nèi)核地址空間、用戶地址空間、

進程內(nèi)存空間模型:代碼段、數(shù)據(jù)段、棧、堆等

http://www.itdecent.cn/p/97d2ce61f64a

9.linux 里,被打開文件可以被另一進程刪除嗎?

不會真正刪除,linux 有 2 個刪除文件函數(shù):

int unlink(const char *pathname);??刪除文件系統(tǒng)中名字,如名字是文件最后一個link 且 該文件沒被打開,刪除。否則等關(guān)閉或最后link被刪除,釋放空間

int rmdir(const char *pathname);????只目錄空時,才能刪除

https://blog.csdn.net/weiwangchao_/article/details/94578327

https://www.cnblogs.com/StartoverX/p/4600866.html

10.linux中seletc和epoll原理

http://www.itdecent.cn/p/4bca399daca3

二、db? redis:

1、為什么 mysql 用 B+ 樹,mongodb 用 B 樹?http://www.itdecent.cn/p/9916e4483905

2、用過哪些鎖,自旋鎖和互斥鎖區(qū)別?http://www.itdecent.cn/p/7c5e28d839bb

3、mysql 主從同步怎么搞的?分哪幾個過程?新機器要加到從機里,怎么個過程?

同步:http://www.itdecent.cn/p/3fae2a45623f

擴容:http://www.itdecent.cn/p/340d0b207a04

4、binlog 日志是 master 推的還是 salve 來拉?s拉,http://www.itdecent.cn/p/dacea10cbddb

5、mysql,redis, zookeeper 分布式鎖優(yōu)缺點? ?http://www.itdecent.cn/p/914c738d29f3

6、redis setnx + expire 有什么缺點,如何優(yōu)化? ?http://www.itdecent.cn/p/e6548912893b

7、redis 跳表,為什么不用紅黑樹?http://www.itdecent.cn/p/0fd6de64bcbf

8、redis 集群怎么實現(xiàn),說下一致性 hash

9、zset 延時隊列怎么實現(xiàn)?
http://www.itdecent.cn/p/326052101b6c

http://www.itdecent.cn/p/072ecd523590

10、ZSET 做排行榜,分數(shù)相同時,按時間順序排序怎么實現(xiàn)?說了一個將 score 拆成高 32 位和低 32 位,高 32 位存分數(shù),低 32 位存時間的方法

11、讓你設(shè)計一個限流的系統(tǒng)怎么做?令牌桶

12、讓你設(shè)計一個延時任務(wù)系統(tǒng)怎么做 說了兩個方案,一個是使用 redis 的 ZSET 來實現(xiàn),考慮分片來抗高并發(fā),使用 redis 的持久化來實現(xiàn)落地,使用 redis 的哨兵實現(xiàn)故障轉(zhuǎn)移。一個是使用時間輪的方法。

中間件

DUBBO的底層原理

rabbitmq 的工作原理

kafka 工作原理,如何保證順序等

Kafka 選主怎么做的?

kafka 分區(qū)怎么同步的

kafka 為什么可以扛住這么高的qps

kafka partition broker consumer consumer group topic 等都是啥關(guān)系?

Netty的IO原理,答:Reactor反應(yīng)模型,Linux那邊叫做IO多路復(fù)用。一個線程用來接收請求,將讀寫事件交給背后的worker線程。Redis、Nginx、Netty都是用到了這種模型。Redis其實也是多線程,只不過是用單線程來接收請求,在客戶端看起來是串行接收執(zhí)行,所以效果上就是單線程。但是IO多路復(fù)用才是Redis能高并發(fā)的底層保證

系統(tǒng)設(shè)計

海量的評論系統(tǒng)。這部分一共聊了近 20 分鐘

設(shè)計海量日志系統(tǒng)

微信朋友圈系統(tǒng),列出主要的表結(jié)構(gòu),只需要實現(xiàn)一些基礎(chǔ)的功能,比如聊天列表等。寫出一些數(shù)據(jù)結(jié)構(gòu)

設(shè)計一個長鏈接轉(zhuǎn)短鏈接,不過需要考慮高并發(fā),回答了分庫分表

算法:

實現(xiàn)簡單令牌桶算法,沒有考慮隨時間滑動的情況;

加強版:令牌桶,加上隨時間滑動的要求,即:限制用戶在任一連續(xù)的一小時內(nèi),不能超過5W的請求。這邊提到了說將一小時分成多格,比如60格這樣的,面試官點頭貌似同意了,然后就實現(xiàn)代碼了,包括協(xié)程異步更新時間窗口;

206. 反轉(zhuǎn)鏈表

15. 三數(shù)之和

面試題 02.05. 鏈表求和

76. 最小覆蓋子串

最大交換

把一個方程式設(shè)計成樹以及很多的 follow up?

①給你一個整數(shù) n,使得從 n 中刪除 k 個數(shù)字之后的數(shù)字最大

二叉樹中和為K的所有路徑

面試題 16.25. LRU緩存

鏈表表示的兩個數(shù)相加

股票買賣,一次和無限次兩

給定一個數(shù)組代表股票每天的價格,請問只能買賣一次的情況下,最大化利潤是多少?日期不重疊的情況下,可以買賣多次呢?

輸入: {100, 80, 120, 130, 70, 60, 100, 125}

1)只能買一次:65(60 買進,125 賣出)

2)可以買賣多次: 115(80買進,130賣出;60 買進,125賣出)

輸出買賣的序列和最大利潤

求一個有序整數(shù)數(shù)組中和為K的數(shù)的對數(shù)

給出兩個 非空 的鏈表用來表示兩個非負的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲的,并且它們的每個節(jié)點只能存儲 一位 數(shù)字。

如果,我們將這兩個數(shù)相加起來,則會返回一個新的鏈表來表示它們的和。

? 您可以假設(shè)除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。

? 示例:

? 輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

? 輸出:7 -> 0 -> 8

? 原因:342 + 465 = 807

兩個單向鏈表,返回求和后的鏈表結(jié)構(gòu),例如2->3->1->5,和3->6,結(jié)果返回2->3->5->1

一個無序數(shù)組找其子序列構(gòu)成的和最大,要求子序列中的元素在原數(shù)組中兩兩都不相鄰

現(xiàn)有一個隨機數(shù)生成器可以生成0到4的數(shù),現(xiàn)在要讓你用這個隨機數(shù)生成器生成0到6的隨機數(shù),要保證生成的數(shù)概率均勻。

有 N 枚棋子,每個人一次可以拿1到 M 個,誰拿完后棋子的數(shù)量為0誰就獲勝?,F(xiàn)在有1000顆棋子,每次最多拿8個,A 先拿,那么 A 有必勝的拿法嗎?第一個人拿完后剩余棋子的數(shù)量是8的倍數(shù)就必勝,否則就必輸。

給出一棵二叉樹的根節(jié)點,現(xiàn)在有這個二叉樹的部分節(jié)點,要求這些節(jié)點最近的公共祖先

1.https://blog.csdn.net/weixin_33805152/article/details/106618948;

2. https://leetcode-cn.com/circle/discuss/A0YstA/;

3. https://www.nowcoder.com/discuss/476824?type=post&order=time&pos=&page=1&channel=-2&source_id=search_post&subType=2;

4. https://www.sohu.com/a/404254709_463974

演拉登的題:

1、操作系統(tǒng)中斷時,保存上下文保存的都是什么內(nèi)容

2、print f輸出輸入時,程序怎么運行,操作系統(tǒng)底層在干嘛

3、Java里邊的future等待時候底層在干嘛,操作系統(tǒng)在干嘛

4、紅黑樹原理,證明紅黑樹查找logn

5、序列化和反序列化????https://leetcode-cn.com/problems/xu-lie-hua-er-cha-shu-lcof/submissions/

6、兩個線程并發(fā)輸出,1到100,怎樣才能保證輸出按順序

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容