計算機基礎面試(操作系統)

操作系統

1. 什么是進程和線程?它們的核心區別是什么?
  • 專業解答
    進程是操作系統分配資源的基本單位,擁有獨立的內存空間;線程是進程內的執行單元,共享同一進程的資源。區別在于:進程間資源隔離,線程間資源共享;進程切換開銷大,線程切換開銷小。

  • 初中生版
    進程像獨立工廠,每個工廠有自己機器和材料;線程是工廠里的工人,共享資源。工人協作高效,但一個工人出錯可能影響整個工廠。


2. 進程間通信(IPC)有哪些方式?簡述管道和共享內存的實現原理。
  • 專業解答
    IPC方式包括管道、共享內存、消息隊列、信號量、套接字。

    • 管道:單向數據流,通過內核緩沖區傳遞數據。
    • 共享內存:進程映射同一塊物理內存,需配合信號量同步。
  • 初中生版
    進程通信像兩個工廠合作:

    • 管道是單向傳送帶,A廠放貨,B廠取貨。
    • 共享內存是共用倉庫,但需管理員協調避免沖突。

3. 什么是死鎖?如何避免和檢測死鎖?
  • 專業解答
    死鎖是進程循環等待資源導致僵局。避免方法如銀行家算法;檢測需分析資源分配圖是否存在環。

  • 初中生版
    死鎖像四個人各拿一只筷子等對方放手。
    避免:規定拿齊筷子才能吃飯;檢測:觀察是否有人一直拿不到筷子。


4. 分頁和分段的主要區別是什么?
  • 專業解答
    分頁將內存分固定大小頁,減少碎片;分段按邏輯模塊分段,段長可變,易產生碎片。

  • 初中生版
    分頁像切固定大小的紙片存檔;分段像按章節分書,章節長短不一可能浪費空間。


5. 虛擬內存的作用是什么?如何通過TLB加速地址轉換?
  • 專業解答
    虛擬內存允許進程使用比物理內存更大的地址空間,通過分頁機制擴展。TLB緩存最近頁表項,減少內存訪問。

  • 初中生版
    虛擬內存像書桌:常用書放桌面(內存),其他放書架(硬盤)。TLB是便簽本,記錄最近用過的書頁位置。


6. 頁面置換算法有哪些?LRU和LFU的區別是什么?
  • 專業解答
    常見算法:LRU(最近最少使用)、LFU(最不經常使用)。LRU淘汰最久未訪問頁,LFU淘汰訪問次數最少頁。

  • 初中生版
    書包只能裝5本書:

    • LRU:扔掉最久沒看的書;
    • LFU:扔掉看得最少的書。

7. 什么是上下文切換?何時會發生上下文切換?
  • 專業解答
    上下文切換是保存當前進程狀態并加載新進程狀態的過程,發生在進程/線程切換、中斷或系統調用時。

  • 初中生版
    像做作業時被叫去倒垃圾:記住做到哪題(保存狀態),回來繼續(恢復狀態)。切換越頻繁,效率越低。


8. 進程調度算法有哪些?多級反饋隊列調度如何工作?
  • 專業解答
    算法包括FCFS、SJF、RR、MLFQ。MLFQ設多級隊列,高優先級隊列時間片小,低優先級時間片大,動態調整進程優先級。

  • 初中生版
    多級反饋隊列像游樂場排隊:急事走快速通道(高優先級),慢任務去普通通道(低優先級)。插隊太多會被降級。


9. 什么是臨界區?如何用信號量解決生產者-消費者問題?
  • 專業解答
    臨界區是訪問共享資源的代碼段。信號量通過wait()signal()控制資源訪問,同步緩沖區狀態。

  • 初中生版
    臨界區像公共廁所隔間,一次進一人。信號量是計數器:進隔間減1,出隔間加1,為0時需等待。


10. 什么是僵尸進程和孤兒進程?如何避免?
  • 專業解答
    僵尸進程結束但未被回收,保留PID;孤兒進程被init接管。父進程需調用wait()回收子進程。

  • 初中生版

    • 僵尸進程:氣球爆了但繩子還拴著;
    • 孤兒進程:孩子被社區阿姨收養。
      解決:及時清理氣球(調用wait())。

11. 文件系統的inode是什么?如何通過inode管理文件存儲?
  • 專業解答
    inode存儲文件元數據(權限、大小、時間戳)和數據塊指針,通過inode號唯一標識文件。

  • 初中生版
    inode像圖書館的書目卡:記錄書的位置、作者、出版時間,但不存書內容。找書先查卡,再按地址取書。


12. 磁盤調度算法有哪些?SCAN和C-SCAN的區別是什么?
  • 專業解答
    算法包括FCFS、SSTF、SCAN、C-SCAN。SCAN(電梯算法)雙向移動磁頭;C-SCAN單向循環掃描。

  • 初中生版
    SCAN像電梯上下接送乘客;C-SCAN只上到頂后直接跳到底層,再繼續上行。


13. 什么是RAID?RAID 0、RAID 1、RAID 5的特點是什么?
  • 專業解答
    RAID通過多磁盤組合提升性能或可靠性。

    • RAID 0:條帶化,提升性能但無冗余;
    • RAID 1:鏡像,數據完全冗余;
    • RAID 5:分布式奇偶校驗,兼顧性能和冗余。
  • 初中生版
    RAID像存錢方式:

    • RAID 0:錢分兩份存不同銀行,取錢快但一家倒閉就全丟;
    • RAID 1:兩份存折完全復制,安全但浪費空間;
    • RAID 5:錢分三份,每份加密碼,壞一份也能恢復。

14. 操作系統如何實現多任務并發?
  • 專業解答
    通過時間片輪轉和上下文切換,快速切換進程/線程,宏觀上實現“同時”運行。

  • 初中生版
    像魔術師同時拋三個球:快速切換手的動作,看起來所有球都在空中。


15. 什么是系統調用?用戶態和內核態的區別是什么?
  • 專業解答
    系統調用是用戶程序請求內核服務的接口。用戶態權限低,內核態權限高,通過軟中斷切換。

  • 初中生版
    用戶態像普通員工只能用辦公電腦;內核態像管理員能操作服務器。員工需申請(系統調用)才能讓管理員執行特權操作。


16. 什么是DMA(直接內存訪問)?它如何提升I/O效率?
  • 專業解答
    DMA允許外設直接讀寫內存,無需CPU介入,減少CPU等待時間。

  • 初中生版
    DMA像快遞員直接把包裹放進你家儲物柜,不用每次都找你簽收(CPU)。


17. 什么是SPOOLing技術?舉例說明其應用場景。
  • 專業解答
    SPOOLing將獨占設備模擬為共享設備,如打印機任務先存入磁盤隊列,再由守護進程處理。

  • 初中生版
    SPOOLing像食堂打飯:先寫需求到紙條(磁盤隊列),后廚按順序處理,避免擠在窗口。


18. 什么是內核模塊?動態加載模塊的作用是什么?
  • 專業解答
    內核模塊是可動態加載的代碼片段,擴展內核功能(如驅動),無需重啟系統。

  • 初中生版
    內核模塊像樂高積木:需要新功能時,直接插上對應積木(模塊),不用拆整個玩具(重啟)。


19. 什么是進程的地址空間?代碼段、數據段、堆棧段的作用是什么?
  • 專業解答
    地址空間是進程的虛擬內存區域。

    • 代碼段:存放程序指令;
    • 數據段:存放全局變量;
    • 堆棧段:堆存動態數據,棧存函數調用和局部變量。
  • 初中生版
    進程地址空間像書包:

    • 代碼段是課本;
    • 數據段是文具盒;
    • 是零食袋(隨時增減),是作業本(按順序使用)。

20. 什么是寫時復制(Copy-on-Write)?如何優化fork()的性能?
  • 專業解答
    寫時復制在fork()時共享父進程內存,僅在寫操作時復制,減少內存開銷。

  • 初中生版
    寫時復制像共享筆記:兩人共用同一本筆記,只有當一方要修改時,才復印一頁自己改。


21. 什么是設備驅動程序?為什么需要它?
  • 專業解答
    設備驅動是操作系統與硬件的橋梁,封裝硬件操作細節,提供統一接口。

  • 初中生版
    驅動程序像翻譯官:把操作系統的指令翻譯成硬件能聽懂的語言(如打印機驅動)。


22. 什么是微內核和宏內核?它們的優缺點是什么?
  • 專業解答

    • 微內核:最小化內核功能,服務運行在用戶態,模塊化強但通信開銷大;
    • 宏內核:內核集成更多服務,效率高但擴展性差。
  • 初中生版
    微內核像小政府:只管核心事務,其他外包;宏內核像大政府:事事親力親為,效率高但難調整。


23. 什么是實時操作系統(RTOS)?其調度策略有何特殊性?
  • 專業解答
    RTOS保證任務在確定時間內完成,調度策略如優先級搶占,硬實時(嚴格截止時間)和軟實時(盡量滿足)。

  • 初中生版
    RTOS像準時公交:必須按時到站(硬實時),或盡量準點但允許偶爾遲到(軟實時)。


24. 什么是內存泄漏?如何檢測和避免?
  • 專業解答
    內存泄漏是已分配內存未釋放,導致可用內存減少。需通過工具(如Valgrind)檢測,代碼規范避免。

  • 初中生版
    內存泄漏像水龍頭沒關緊:水(內存)一直流走,最終水池(系統)干涸。需檢查水管(代碼)是否關嚴。


25. 什么是緩存替換策略?為什么LRU比FIFO更高效?
  • 專業解答
    緩存替換策略決定淘汰哪些數據。LRU基于時間,FIFO基于順序。LRU更適應局部性原理。

  • 初中生版
    LRU像整理衣柜:最近沒穿的衣服先扔;FIFO像排隊,先放進衣柜的先扔。LRU更懂你最近的需求。


26. 什么是文件描述符?Linux中文件描述符的限制如何調整?
  • 專業解答
    文件描述符是內核用于追蹤打開文件的索引。可通過ulimit或修改/etc/security/limits.conf調整限制。

  • 初中生版
    文件描述符像圖書館借書卡的編號。如果編號用完了(默認1024),需找管理員(修改配置)增加額度。


27. 什么是信號(Signal)?如何通過信號實現進程間通信?
  • 專業解答
    信號是異步通知機制(如SIGKILL終止進程)。進程可注冊信號處理函數響應事件。

  • 初中生版
    信號像手機通知:收到短信(信號)時,手機(進程)會響鈴或震動(執行處理函數)。


28. 什么是原子操作?如何通過CAS實現無鎖編程?
  • 專業解答
    原子操作是不可中斷的操作。CAS(Compare-And-Swap)通過比較并交換實現無鎖數據結構。

  • 初中生版
    原子操作像搶椅子游戲:只有音樂停下(比較成功)時才能坐下(修改數據),否則重試。


29. 什么是進程的優先級反轉?如何解決?
  • 專業解答
    低優先級進程持有資源導致高優先級進程等待。可通過優先級繼承協議解決。

  • 初中生版
    優先級反轉像VIP用戶(高優先級)等普通用戶(低優先級)還書。解決方法:讓普通用戶臨時升級為VIP還書。


30. 什么是容器化技術(如Docker)?與傳統虛擬化有何區別?
  • 專業解答
    容器共享宿主機內核,輕量級;傳統虛擬化需模擬完整硬件,資源開銷大。

  • 初中生版
    容器像獨立房間:共用整棟樓的水電(內核),但彼此隔音;虛擬化像每套房自帶發電機(虛擬硬件),更耗電。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896816.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896816.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896816.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

考研408數據結構線性表核心知識點與易錯點詳解(附真題示例與避坑指南)

一、線性表基礎概念 1.1 定義與分類 定義:線性表是由n(n≥0)個相同類型數據元素構成的有限序列,元素間呈線性關系。 分類: 順序表:元素按邏輯順序存儲在一段連續的物理空間中(數組實現&…

【實戰 ES】實戰 Elasticsearch:快速上手與深度實踐-1.2.2倒排索引原理與分詞器(Analyzer)

👉 點擊關注不迷路 👉 點擊關注不迷路 👉 點擊關注不迷路 文章大綱 1.2.2倒排索引原理與分詞器(Analyzer)1. 倒排索引:搜索引擎的基石1.1 正排索引 vs 倒排索引示例數據對比: 1.2 倒排索引核心結…

Springboot項目本地連接并操作MySQL數據庫

目錄 前提 準備工作 用cmd在本地創建數據庫、表: 1.創建springboot項目(已有可跳過) 2.編輯Mybatis配置 3.連接數據庫 4.創建模型類,用于與數據庫里的數據表相連 5.創建接口mapper,定義對數據庫的操作 6.創建…

《寶塔 Nginx SSL 端口管理實戰指南:域名解析、端口沖突與后端代理解析》

📢 Nginx & SSL 端口管理分析 1?? 域名解析與 SSL 申請失敗分析 在使用寶塔申請 www.mywebsite.test 的 SSL 證書時,遇到了解析失敗的問題。最初,我認為 www 只是一個附加的前綴,不屬于域名的關鍵部分,因此只為…

java和Springboot和vue開發的企業批量排班系統人臉識別考勤打卡系統

演示視頻: https://www.bilibili.com/video/BV1KU9iYsEBU/?spm_id_from888.80997.embed_other.whitelist&t52.095574&bvidBV1KU9iYsEBU 主要功能: 管理員管理員工,采集員工人臉特征值存入數據庫,可選擇多個員工批量排班…

DeepSeek學習規劃

DeepSeek是一個專注于深度學習和人工智能技術研究與應用的平臺,旨在通過系統化的學習和實踐,幫助用戶掌握深度學習領域的核心知識和技能。為了在DeepSeek平臺上高效學習,制定一個科學合理的學習規劃至關重要。以下是一個詳細的學習規劃&#…

打開 Windows Docker Desktop 出現 Docker Engine Stopped 問題

一、關聯文章: 1、Docker Desktop 安裝使用教程 2、家庭版 Windows 安裝 Docker 沒有 Hyper-V 問題 3、安裝 Windows Docker Desktop - WSL問題 二、問題解析 打開 Docker Desktop 出現問題,如下: Docker Engine Stopped : Docker引擎停止三、解決方法 1、檢查服務是否…

突破Ajax跨域困境,解鎖前端通信新姿勢

一、引言 在當今的 Web 開發領域,前后端分離的架構模式已經成為主流,它極大地提升了開發效率和項目的可維護性。在這種開發模式下,前端通過 Ajax 技術與后端進行數據交互,然而,跨域問題卻如影隨形,成為了開…

Mercury、LLaDA 擴散大語言模型

LLaDA 參考: https://github.com/ML-GSAI/LLaDA https://ml-gsai.github.io/LLaDA-demo/ 在線demo: https://huggingface.co/spaces/multimodalart/LLaDA Mercury 在線demo: https://chat.inceptionlabs.ai/ 速度很快生成

Rust~String、str、str、String、Box<str> 或 Box<str>

Rust語言圣經中定義 str Rust 語言類型大致分為兩種:基本類型和標準庫類型,前者由語言特性直接提供,后者在標準庫中定義 str 是唯一定義在 Rust 語言特性中的字符串,但也是幾乎不會用到的字符串類型 str 字符串是 DST 動態大小…

大數據SQL調優專題——底層調優

引入 上一篇我們提到了調優的常見切入點,核心就是通過數據產出情況發現問題,借助監控等手段收集信息排查瓶頸在哪,最后結合業務理解,等價重寫思路去解決問題。 在實際工作場景中,去保證數據鏈路產出SLA的時候&#x…

Hue 編譯異常:ImportError: cannot import name ‘six‘ from ‘urllib3.packages‘

個人博客地址:Hue 編譯異常:ImportError: cannot import name six from urllib3.packages | 一張假鈔的真實世界 在編譯Hue的時候出現錯誤信息如下: Running /home/zhangjc/ysten/git/ysten-hue/build/env/bin/hue makemigrations --noinpu…

計算機網絡——詳解TCP三握四揮

文章目錄 前言一、三次握手1.1 三次握手流程1.2 tcp為什么需要三次握手建立連接? 二、四次揮手2.1 四次揮手流程2.2 為什么是四次,不是三次?2.3 為什么要等待2msl?2.4 TCP的保活計時器 前言 TCP和UDP是計算機網絡結構中運輸層的兩…

# C# 中堆(Heap)與棧(Stack)的區別

在 C# 中,堆和棧是兩種不同的內存分配機制,它們在存儲位置、生命周期、性能和用途上存在顯著差異。理解堆和棧的區別對于優化代碼性能和內存管理至關重要。 1. 棧(Stack) 1.1 定義 棧是一種后進先出(LIFO&#xff0…

如何把圖片或者圖片地址存到 MySQL 數據庫中以及如何將這些圖片數據通過 JSP 顯示在網頁中

如何優雅地管理圖片:從MySQL數據庫存儲到JSP展示的全流程解析 在互聯網時代,一張引人入勝的圖片往往能為網站帶來巨大的流量。而作為開發者的我們,如何高效地管理和展示這些圖片資源則成為了一項重要的技術挑戰。今天,我們就一起…

「拼好幀」小黃鴨 Lossless Scaling 軟件介紹與下載

「拼好幀」小黃鴨 Lossless Scaling 軟件介紹與下載 在游戲和視頻播放時,你是否遇到過分辨率不匹配、畫質模糊的問題?今天給大家介紹一款神器——Lossless Scaling(拼好幀),也被玩家們親切地稱為“小黃鴨”&#xff0…

科普|無人機專業術語

文章目錄 前言一、飛控二、電調三、通道四、2S、3S、4S電池五、電池后面C是什么意思?六、電機的型號七、什么是電機的KV值?八、螺旋槳的型號九、電機與螺旋槳的搭配 前言 無人機飛控系統控制飛行姿態,電調控制電機轉速,遙控器通道控制飛行動作。電池C…

和鯨科技攜手四川氣象,以 AI 的力量賦能四川氣象一體化平臺建設

氣象領域與農業、能源、交通、環境科學等國計民生關鍵領域緊密相連,發揮著不可替代的重要作用。人工智能技術的迅猛發展,為氣象領域突破困境帶來了新的契機。AI 技術能夠深度挖掘氣象大數據中蘊含的復雜信息,助力人類更精準地把握自然規律&am…

Linux mount命令

Linux mount命令是經常會使用到的命令,它用于掛載Linux系統外的文件。 一、掛載功能介紹 掛載方法:mount DECE MOUNT_POINT 命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir device:指明要掛載的設備&…

《Operating System Concepts》閱讀筆記:p177-p178

《Operating System Concepts》學習第 18 天,p177-p178 總結,總計 2 頁。 一、技術總結 1.implicit thread A programming model that transfers the creation and management of threading from application developers to compilers and run-time l…