chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

總結一下關于操作系統(tǒng)的面經(jīng)

工程師鄧生 ? 來源:Rand ? 作者:Rand ? 2022-09-16 08:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

啟動

啟動過程,BIOS->MBR->Bootloader->OS,多 CPU 情況下 BSP 啟動 APs,敘述每個階段做的主要事情。

上電那一刻,CS:IP = 0xf000:0xfff0,此地址上的 16 字節(jié)是個跳轉地址:jmp f000:e05b(據(jù)然還真問到了具體跳轉地址)

BIOS

干了些啥事,自檢程序,將 MBR 加載到 0x7c00

提問其他的固件方面的知識,BIOS,UEFI等,不太了解

實模式、保護模式

區(qū)別,前者16位,地址線只用了20根,后者解開限制,前者的段寄存器里面是段基址,后者段寄存器里面是段選擇子

為什么有實模式,兼容?

如何進入保護模式,構建GDT、打開A20,CR0.PG = 1

MBR

MBR 構成,引導程序->64字節(jié)分區(qū)表->魔數(shù)(0x55和0xAA)

在哪兒,啟動盤最開始那個扇區(qū)

加載到哪兒,加載到 0x7c00

主要干的事情,根據(jù)分區(qū)表找到一個活動分區(qū),然后加載 Bootloader

如何判斷是否是啟動盤,魔數(shù) 0x55 和 0xAA

開啟分頁機制(x86),構建頁表;頁表地址給 CR3;CR0.PE = 1

BSP 啟動 AP 過程(x86,中斷控制器為APIC),主要通過 LAPIC 發(fā)送 INIT-SIPI-SIPI 消息... 詳見 Multiprocessor Specification

OS 第一個 init 進程做了些什么

xv6 里面打開 0 1 2 號文件

fork 出 shell

然后 wait(等待孤兒進程過繼給init)

提問現(xiàn)在的 Linux 里面干了些什么,有簡單看了看,有些復雜待研究

匯編和 C 交互的一些問題,遵循調用約定,全局變量等在匯編時就要處理好

內存管理

尋址方式,x86 段基址:段內偏移

實模式下段寄存器為實際的段基址,保護模式下為段選擇子

分段分頁特點,為什么分頁

分段同類型數(shù)據(jù)放在一起,分頁邏輯上連續(xù)物理上分散實現(xiàn)離散化存儲

x86 有段寄存器,硬件上原生支持分段,其他架構硬件上似乎不支持

x86 可以設置平坦模式,“隱藏”分段

地址轉換過程,段級轉換(GDT)、頁級轉換(查頁表)

0dfbae2a-3559-11ed-ba43-dac502259ad0.png

GDTR 中存放 GDT 的線性地址,CR3 里面存放頁目錄的物理地址,頁表項里面存放的也是物理地址。

物理內存管理,目前 xv6 里面簡單的空閑鏈表法,引申到伙伴系統(tǒng) Slab 分配器,不管什么地方,空間管理的方式一般就兩種,鏈表和位圖,萬變不離其宗。

虛擬地址空間如何布局的

0e26e374-3559-11ed-ba43-dac502259ad0.png查看源圖像

堆、共享區(qū)等的管理方式,xv6 里面堆的管理方式也是鏈表,看侯捷老師關于 C++ 內存部分講解,也是類似伙伴系統(tǒng)的思想,申請空間過大時也是 mmap 在共享區(qū)分配空間

堆空間分配相關,C++ new 出來的,能否用 free 返回,一個 C++ 相關的問題,從堆分配的空間有個頭部,頭部記錄了大小信息,而 new 不一定,所以最好不要這么干。

缺頁異常三種,寫時復制、延遲分配、頁面置換

寫時復制的實現(xiàn)思想,要點:利用頁表項保留位設置為COW標志位,復制內存時(主要fork)不實際復制內存,只復制頁表,并將COW=1,R/W 設置為只讀,其他共享計數(shù)、回收等略,詳見 xv6 寫時復制實現(xiàn)

延遲分配,頁表項全0,只在頁表中建立了映射,并未實際分配物理內存,詳見 xv6 延遲分配實驗

頁面置換,頁表項非空,頁表項 P = 0;常見頁面置換算法;頁面置換交換區(qū)實現(xiàn)方式,具體實現(xiàn)有些復雜,詳見 ucore 的例子,有配套的手冊講解。

Linux kmalloc 的特點,分配的物理內存連續(xù)

IO 管理/中斷

中斷、異常區(qū)別,外、內

中斷異常詳細分類,據(jù) CSAPP 中斷、陷阱、故障、終止

中斷、異常返回的 PC 是什么,據(jù)CSAPP,中斷、陷阱下一條,異常(故障)可能返回當前 PC,終止不會返回

中斷過程

0e58b296-3559-11ed-ba43-dac502259ad0.png

中斷控制器干了什么事,見上圖

如何定位的中斷服務程序,見上圖

上圖 x86 的情況是硬件識別,向量中斷的方式

還有軟件識別的方式,跳到一個固定地址,然后再查詢異常狀態(tài)寄存器看是什么異常,再跳到特定的處理程序,一般精簡指令集這么干。

開關中斷的事,一般我們說中斷時保存上下文前要關中斷,x86 下,關中斷就是 EFLAGS 的 IF = 0

系統(tǒng)調用過程

沒有中斷控制器這個過程,其他階段基本相同

傳參兩種方式,寄存器,壓棧(進入內核后從上下文中的棧指針寄存器獲取用戶態(tài)棧頂?shù)刂?

x86下系統(tǒng)調用可以用中斷門實現(xiàn),也可以使用陷阱門實現(xiàn),使用中斷門進入中斷自動關中斷,如果使用陷阱門則不會自動關中斷,這是二者唯一的區(qū)別

按下一個鍵到顯示在屏幕上,鍵盤中斷 + 顯卡、寫顯存 過程,太多略,詳見捋一捋控制臺的輸入輸出

DMA 過程,不是很清楚,百度google,我也是搜的。

磁盤尋址,CHS(柱面磁頭扇區(qū))、LBA(邏輯塊地址),實際上似乎不是想問這個,但面試官當時也沒說清楚就下一個問題,emm??????

內核態(tài)、用戶態(tài)的理解,實際上就是特權級,RPL、CPL、DPL 三者之間不同情況下的各種比較變化,特復雜。

用戶態(tài)到內核態(tài)棧的變化,x86 下根據(jù) TR 可以找到 TSS,TSS 里面有內核棧的 CS 和 ESP;RISC-V 下 sscratch 有內核上下文的地址。

文件管理

分區(qū)布局,引導塊->超級塊->inode、位圖、數(shù)據(jù)區(qū)

寫磁盤如何保證數(shù)據(jù)一致性,設計日志層(當時某度二面,全程基本就討論這個)

inode、路徑、目錄、目錄項、全局文件表和文件結構體、進程打開文件表和文件描述符等概念以及它們之間的關系

open close dup write read 等常見系統(tǒng)調用,做了什么事情

比如 open 的要點分配文件結構體、文件描述符。

這個函數(shù)只是用戶接口,整個是一個是系統(tǒng)調用過程。

inode 相當于樹形結構的索引、假如設計為哈希索引,如何設計,Cache 緩存,優(yōu)劣等等討論

硬鏈接、軟鏈接區(qū)別

硬鏈接與目錄項掛鉤,多個目錄項一個 inode 一個文件

軟鏈接是個文件有自己的 inode,文件內容是路徑

目錄項緩存,Linux 使用目錄項緩存 dentry cache 緩存提高目錄項對象的處理效率,我也只知道這個東西,待研究

命令獲取某個目錄下的文件數(shù)量

進程

談進程、線程、協(xié)程的理解,聊區(qū)別,簡易設計

第一個進程干了些什么事,見前

切換過程,重點換上下文、換棧

為什么切換進程比切換線程慢,除了進程“體量”大,另外切換進程要切換頁表,切換頁表要刷新TLB

切換時機,自己阻塞讓出 CPU,時間片到了

狀態(tài)轉換,發(fā)生中斷時進程狀態(tài)如何轉換,時間中斷設置為就緒,其他情況在 xv6 里面沒變,Linux 不了解。

fork 實現(xiàn)

exec 實現(xiàn)

孤兒進程:父進程先退出了,過繼給 init 進程;僵尸進程:子進程退出父進程沒有wait

僵尸進程孤兒進程的理解,進程要退出時調用 exit,exit 會關閉文件等資源,另一部分資源是父進程調用 wait 來釋放,wait 釋放子進程的棧、上下文、頁表、任務結構體等資源。

如何解決僵尸進程,父進程總會退出,那么在 exit 中檢測是否有將是狀態(tài)的子進程,如果有,將其過繼給 init 進程,然后喚醒 init 讓它來處理。

進程間的通信,信號、信號量、共享內存、消息隊列、匿名管道、有名管道,聊簡單設計

調度算法,Linux 的 CFS

Go 的協(xié)程模型,不太了解卒

關于進程的命令,如何查看進程狀態(tài)等等

其他

鎖的實現(xiàn),自旋鎖和休眠鎖

自旋鎖,while 循環(huán)

內存一致性,硬件如何支持的原子操作,聊了指令 Lock 鎖總線等等,CAS、Acquire/Released 等

休眠鎖涉及進程的休眠喚醒機制如何實現(xiàn)

Cache 緩存一致性,MESI

設計操作系統(tǒng)需要研究研究設計模式,所以設計模式??????

復雜指令集和精簡指令集區(qū)別

elf 文件格式介紹,可裝載段,裝載地址,filesz、memsz 等

好了,本文就到這里了,有什么問題還請批評指正。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • BIOS
    +關注

    關注

    6

    文章

    474

    瀏覽量

    48399
  • MBR
    MBR
    +關注

    關注

    0

    文章

    12

    瀏覽量

    11377
  • APIC
    +關注

    關注

    0

    文章

    4

    瀏覽量

    7377
  • UEFI
    +關注

    關注

    0

    文章

    57

    瀏覽量

    12305

原文標題:操作系統(tǒng)面經(jīng)

文章出處:【微信號:程序喵大人,微信公眾號:程序喵大人】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    操作系統(tǒng)體系結構

    操作系統(tǒng)的體系結構是個開放的問題。正如上文所述,操作系統(tǒng)在核心態(tài)為應用程序提供公共的服務,那么操作系統(tǒng)在核心態(tài)應該提供什么服務、怎樣提供服務?有關這個問題的回答形成了兩種主要的體系結
    發(fā)表于 01-15 08:19

    操作系統(tǒng)的發(fā)展及分類

    手工操作階段(此階段無操作系統(tǒng))   用戶在計算機上算題的所有工作都要人工干預,如程序的裝入、運行、結果的輸出等。隨著計算機硬件的發(fā)展,人機矛盾(速度和資源利用)越來越大,必須尋求新的解決辦法
    發(fā)表于 01-15 08:00

    操作系統(tǒng)運行機制

    計算機系統(tǒng)中,通常CPU執(zhí)行兩種不同性質的程序:種是操作系統(tǒng)內核程序;另種是用戶自編程序或系統(tǒng)外層的應用程序。對
    發(fā)表于 01-15 07:12

    龍蜥操作系統(tǒng)裝機量突破1000萬

    11月17日,以“生態(tài)共融·智驅未來”為主題的2025龍蜥操作系統(tǒng)大會(OpenAnolis Conference)在北京成功舉辦。千余位全球技術大咖、業(yè)界精英和行業(yè)開發(fā)者齊聚堂,深入探討AI時代下操作系統(tǒng)產(chǎn)業(yè)發(fā)展的新趨勢、新
    的頭像 發(fā)表于 11-20 11:40 ?852次閱讀

    單片機的操作系統(tǒng)

    單片機操作系統(tǒng)主要分為實時操作系統(tǒng)(RTOS)和嵌入式操作系統(tǒng)兩類,以下是常見選擇: 實時操作系統(tǒng)(RTOS) ? FreeRTOS ?:輕量級開源內核(最小內核約6 KB RAM)
    發(fā)表于 11-14 06:18

    嵌入式實時操作系統(tǒng)的特點

    實時嵌入式操作系統(tǒng)(Real-Time Embedded Operating System)是專門設計用于嵌入式系統(tǒng)的實時操作系統(tǒng)。嵌入式系統(tǒng)
    發(fā)表于 11-13 06:30

    如何選擇合適的實時操作系統(tǒng)

    選擇合適的實時操作系統(tǒng)(RTOS,Real-Time Operating System)可能會影響你在不同行業(yè)的職業(yè)發(fā)展路徑。
    的頭像 發(fā)表于 09-09 14:47 ?1085次閱讀

    樹莓派操作系統(tǒng):版本、特性及設置完整指南!

    樹莓派操作系統(tǒng)是什么?樹莓派操作系統(tǒng)是由樹莓派基金會專為樹莓派開發(fā)的官方操作系統(tǒng)。它基于DebianLinux發(fā)行版,并針對樹莓派的ARM架構進行了專門優(yōu)化。樹莓派操作系統(tǒng)有多個版本,
    的頭像 發(fā)表于 07-28 18:26 ?1469次閱讀
    樹莓派<b class='flag-5'>操作系統(tǒng)</b>:版本、特性及設置完整指南!

    鴻道Intewell操作系統(tǒng):人形機器人底層操作系統(tǒng)

    操作系統(tǒng)的實時性賦能東土科技的鴻道(Intewell)工業(yè)操作系統(tǒng)作為國內唯通過汽車、工業(yè)控制、醫(yī)療、軌道交通四項功能安全認證的系統(tǒng),為標準體系中的技術層架構提供了底層支持。其微內核
    的頭像 發(fā)表于 05-16 14:44 ?797次閱讀

    理想汽車智駕操作系統(tǒng)解讀

    [首發(fā)于智駕最前沿微信公眾號]在智能網(wǎng)聯(lián)與生成式AI技術深度融合的浪潮,汽車操作系統(tǒng)已經(jīng)從最初的簡單資源管理平臺,演化為承載感知決策、執(zhí)行控制與安全防護的智能化中樞。理想汽車自主研發(fā)的星環(huán)OS
    的頭像 發(fā)表于 05-13 10:54 ?1233次閱讀
    理想汽車智駕<b class='flag-5'>操作系統(tǒng)</b>解讀

    EZUSB FX3 SDK win10操作系統(tǒng)安裝失敗的原因?

    EZUSB FX3 SDK win10操作系統(tǒng)安裝失敗。
    發(fā)表于 04-30 07:54

    深開鴻推出全國首個基于開源鴻蒙的機器人操作系統(tǒng)

    、標準不統(tǒng)等難題——不同廠商的操作系統(tǒng)互不兼容,開發(fā)者需為每類硬件重復適配,跨設備協(xié)同更是舉步維艱。這一局面不僅推高了研發(fā)成本,也制約了機器人產(chǎn)業(yè)的規(guī)?;瘧谩?/div>
    的頭像 發(fā)表于 04-19 15:07 ?1544次閱讀

    國產(chǎn)操作系統(tǒng)有哪些?政企官方認證的5大國產(chǎn)系統(tǒng),實測好用才敢推薦!

    近年來,“國產(chǎn)操作系統(tǒng)”這個詞越來越頻繁地出現(xiàn)在政策文件、企業(yè)采購清單和行業(yè)新聞里。尤其是在“信創(chuàng)”浪潮,無論是政府機關還是央企國企,都在加速替換國外操作系統(tǒng)。但面對市面上琳瑯滿目的國產(chǎn)系統(tǒng)
    的頭像 發(fā)表于 04-17 15:34 ?6786次閱讀
    國產(chǎn)<b class='flag-5'>操作系統(tǒng)</b>有哪些?政企官方認證的5大國產(chǎn)<b class='flag-5'>系統(tǒng)</b>,實測好用才敢推薦!

    SEGGER發(fā)布下代安全實時操作系統(tǒng)embOS-Ultra-MPU

    2025年3月,SEGGER發(fā)布滿足周期定時分辨率要求的下代安全實時操作系統(tǒng)embOS-Ultra-MPU,該系統(tǒng)基于成熟的embOS-Classic-MPU和embOS-Ultra操作系統(tǒng)
    的頭像 發(fā)表于 03-31 14:56 ?1371次閱讀

    模型原生操作系統(tǒng):機遇、挑戰(zhàn)與展望 CCCF精選

    本文立足人工智能時代用戶、應用和系統(tǒng)的需求,分析“外掛式模型”演進路徑操作系統(tǒng)發(fā)展困局,提出通過“模型-系統(tǒng)-芯片”的全棧協(xié)同設計來構建模型原生
    的頭像 發(fā)表于 03-14 17:46 ?1171次閱讀
    模型原生<b class='flag-5'>操作系統(tǒng)</b>:機遇、挑戰(zhàn)與展望  CCCF精選