嵌入式軟件工程師筆試面試指南-操做系統

哈嘍,你們好。今天更新一篇驅動筆試面試總結。因爲篇幅有限,本文只給出了問題,並無給出答案。我把PDF版本,放在了百度網盤羣組中,出現問題,能夠和我及時反饋。git

你們能夠在個人主頁找到個人聯繫方式,加我好友經過後,發送【資料羣】給我,會自動拉進羣裏。本文內容已同步更新在github,點擊閱讀原文能夠直達github。github

操做系統

進程和線程

什麼是進程?什麼是線程?

進程和線程有什麼區別?

什麼時候使用多進程,什麼時候使用多線程?

進程有幾種狀態?畫一下進程狀態轉換圖?

建立進程有哪幾種方式?

進程間通訊方式?有什麼優缺點?

線程間同步方法有哪些?

什麼是內核線程和用戶線程?

內核線程和用戶線程的區別?

內核線程和用戶線程有什麼優缺點?

什麼是殭屍進程,孤兒進程,守護進程?

殭屍進程有什麼危害?

如何清理殭屍進程?

如何喚醒被阻塞的socket線程?

如何肯定當前線程是繁忙仍是阻塞?

空閒的進程和阻塞的進程狀態會不會在喚醒的時候誤判?

請問就緒狀態的進程在等待什麼?

如何實現線程池?

請你回答一下fork和vfork的區別

server端監聽端口,但尚未客戶端鏈接進來,此時進程處於什麼狀態?

堆和棧

什麼是代碼段,數據段,bss段,堆,棧?

爲何堆的空間是不連續的?

什麼是用戶棧和內核棧?

用戶棧和內核棧,爲何不能共用一個棧?

線程是否具備相同的堆棧?

併發和互斥

驅動裏面爲何要有併發、互斥的控制?如何實現?講個例子?

自旋鎖是什麼?信號量是什麼?兩者有何異同?

自旋鎖和信號量能夠睡眠嗎?爲何?

自旋鎖和信號量能夠用於中斷中嗎?

讀寫鎖是什麼?

產生死鎖的緣由是什麼?

死鎖的4個必要條件是什麼?

死鎖的處理方式有哪些?

如何避免死鎖?

請問單核機器上寫多線程程序,是否須要考慮加鎖,爲何?

內存

在1G內存的計算機中可否malloc(1.2G)?爲何?

malloc能申請多大的空間?

內存管理有哪幾種方式?

什麼是虛擬內存?

解釋下內存碎片,內碎片,外碎片?

解釋下虛擬地址、邏輯地址、線性地址、物理地址?

請問虛擬內存和物理內存怎麼對應?

虛擬內存置換方式是怎麼樣的?

給你一個類,裏面有static,virtual之類的,來講一說這個類的內存分佈?

假設臨界區資源釋放,如何保證只讓一個線程得到臨界區資源而不是都得到?

操做系統中的缺頁中斷是什麼?

OS缺頁置換算法如何實現的?

系統調用是什麼,你用過哪些系統調用,和庫函數有什麼區別?

爲何要有page cache,操做系統怎麼設計的page cache?

上下文

上下文有哪些?怎麼理解?

爲何會有上下文這種概念?

什麼狀況下進行用戶態到內核態的切換?

中斷上下文代碼中有哪些注意事項?

請問線程須要保存哪些上下文,SP、PC、EAX這些寄存器是幹嗎用的?

結語

若是以爲本篇文章對你有幫助,在【收藏】的時候,能夠【點贊】支持下做者,這個對我真的很重要!面試

你的每個讚我都當成了喜歡,謝謝各位兄弟姐妹啦~算法

文章來源多線程

嵌入式軟件工程師筆試面試指南-操做系統 併發

關於做者

本碩雙非,參加了2020年秋招和2021年的春招,投遞崗位是嵌入式軟件(驅動)相關。總共收穫Oppo,小米,海康威視,兆易創新,全志科技等十餘家公司的offer。 我把本身的秋招,春招歷程詳細記錄了下來,同時,把本身秋招過程總結的筆試面試資料分享了出來,即嵌入式軟件工程師筆試面試指南。PDF版本獲取方式在公衆號。
相關文章
相關標籤/搜索