進(jìn)程vs線程矮燎?
processes 和thread 操作系統(tǒng)所要管理的對(duì)象力穗。
1.了解面試者側(cè)重點(diǎn)
2.進(jìn)一步展開
比如面試者說他們的內(nèi)存不同愧口。舞虱。就會(huì)問你內(nèi)存的問題欢际。
從構(gòu)成上來講,進(jìn)程有什么矾兜,線程有什么损趋。
進(jìn)程vs進(jìn)程
內(nèi)存是固定的,進(jìn)程需要多少內(nèi)存椅寺,就用多少內(nèi)存浑槽,不是說,你32位的系統(tǒng)返帕,就把4g分給你一個(gè)進(jìn)程桐玻。
PC是指下一條指定的地址
進(jìn)程是一個(gè)容器,線程才是真正的執(zhí)行對(duì)象荆萤。
緩沖區(qū)溢出镊靴。
比如本來應(yīng)該存用戶名的地方,黑客把用戶名存的特別長(zhǎng)链韭,超出了給用戶名存儲(chǔ)的緩沖區(qū)偏竟,一直寫到存儲(chǔ)程序的那部分去,
黑客就可以通過用戶名的框敞峭,把程序植入進(jìn)來踊谋。
解決辦法:檢測(cè),防止用戶名長(zhǎng)度過長(zhǎng)儡陨。
線程才是操作系統(tǒng)真正去運(yùn)行的褪子,進(jìn)程其實(shí)只是一個(gè)容器,它把一些相關(guān)的東西放到了一起骗村,放了一個(gè)很強(qiáng)的隔離嫌褪,把不同的程序隔離出來。
進(jìn)程間不能交互內(nèi)存胚股,所以我們有一些進(jìn)程交互的方案笼痛。(其中一個(gè)方案就是通過TCP/IP的端口來實(shí)現(xiàn))
線程間通信就比較簡(jiǎn)單了课兄,我們可以通過一大塊共享的內(nèi)存來實(shí)現(xiàn)。
2.3尋址和存儲(chǔ)
為什么不都用存儲(chǔ)和讀取速度快的呢搅裙?主要還是因?yàn)閮r(jià)格
谷歌把所有互聯(lián)網(wǎng)都放到內(nèi)存里面了蘸秘,所以他的速度比較快。
尋址
windows里面是有很大一塊的虛擬內(nèi)存的刻坊,而Linux用戶是看不到Linux里面的虛擬內(nèi)存的枷恕。
從物理內(nèi)存里面取到之后,再放到寄存器里面谭胚。
其實(shí)我們大多數(shù)數(shù)據(jù)都是在物理內(nèi)存的徐块,但是如果物理內(nèi)存里面的數(shù)據(jù)太多的話,頻繁的分頁的話灾而,讀取數(shù)據(jù)很慢胡控。