日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

华为内部面试题库---(2)

發(fā)布時(shí)間:2024/1/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 华为内部面试题库---(2) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.在分頁存儲(chǔ)管理系統(tǒng)中,從頁號(hào)到物理塊號(hào)的地址映射是通過(? )實(shí)現(xiàn)的。

A.段表?

B.頁表???

CPCB???

DJCB

答案:B

???? 用戶程序的地址空間被劃分成若干固定大小的區(qū)域,稱為“頁”,相應(yīng)地,內(nèi)存空間分成若干個(gè)物理塊,頁和塊的大小相等,可將用戶程序的某一頁放在內(nèi)存的一個(gè)塊中。線性地址包含了頁號(hào)信息和頁內(nèi)偏移量信息(頁大小為4Kbyte時(shí)線性地址的低12位為頁內(nèi)偏移量),頁表的功能是將一個(gè)線性地址的頁號(hào)轉(zhuǎn)換為某一個(gè)物理塊的物理地址。得到了物理塊的物理地址后通過線性地址中的頁內(nèi)偏移量就可以找到精確的物理地址。

???? 分段是將邏輯地址轉(zhuǎn)換為線性地址,在LINUX中邏輯地址與線性地址是一致的,即LINUX實(shí)際上沒有使用分段功能。

???? PCB(進(jìn)程控制塊):進(jìn)程創(chuàng)建時(shí)內(nèi)核為其分配的一個(gè)由結(jié)構(gòu)體task_struct所定義的數(shù)據(jù)結(jié)構(gòu),其中包括了管理進(jìn)程所需的各種信息,進(jìn)程自身不能對(duì)其直接存取。

???? JCB:作業(yè)是用戶提交給操作系統(tǒng)計(jì)算的一個(gè)獨(dú)立任務(wù),一般每個(gè)作業(yè)必須經(jīng)過若干個(gè)相對(duì)獨(dú)立又相互關(guān)聯(lián)的順序加工步驟才能得到結(jié)果。為有效管理作業(yè),操作系統(tǒng)為每個(gè)作業(yè)建立作業(yè)控制塊JCBJob Control Block)用于對(duì)作業(yè)進(jìn)行管理。JCB通常在批作業(yè)進(jìn)入系統(tǒng)時(shí)建立,它是作業(yè)存在于系統(tǒng)的標(biāo)志,作業(yè)撤離時(shí),JCB也被撤銷。

?

2.快速排序在( )情況下最易發(fā)揮其長處

?? A.被排序的數(shù)據(jù)中含有多個(gè)相同排序碼

?? B.被排序的數(shù)據(jù)已基本有序

?? C.被排序的數(shù)據(jù)完全無序

?? D.被排序的數(shù)據(jù)中的最大值和最小值相差懸殊

答案: C?

???? 在快速排序算法中, n個(gè)元素被分成三段:左段l e f t,右段r i g h t和中段m i d d l e。中段僅包含一個(gè)元素。左段中各元素都小于等于中段元素,右段中各元素都大于等于中段元素。

???? 因此l e f tr i g h t中的元素可以獨(dú)立排序,并且不必對(duì)l e f tr i g h t的排序結(jié)果進(jìn)行合并。m i d d l e中的元素被稱為支點(diǎn)( pivot )。支點(diǎn)的一種選法是選擇待排序段中的第一個(gè)元素。

????在最壞情況下(被排序的數(shù)據(jù)已基本有序) l e f t總是為空,快速排序所需的計(jì)算時(shí)間為O(n^2)。在最好情況下(被排序的數(shù)據(jù)完全無序) le f tr i g h t中的元素?cái)?shù)目大致相同,快速排序的復(fù)雜性為O(nlogn)

?

3.采用(? )不會(huì)產(chǎn)生內(nèi)部碎片
??? A
.分頁存儲(chǔ)管理?? B.分段存儲(chǔ)管理?? C.固定分區(qū)存儲(chǔ)管?? D.段頁式存儲(chǔ)管理

答案: B

???? 在一個(gè)分區(qū)內(nèi)部出現(xiàn)的碎片(即被浪費(fèi)的空間)稱做內(nèi)部碎片,如固定分區(qū)法會(huì)產(chǎn)生內(nèi)部碎片.在所有分區(qū)之外新增的碎片稱做外部碎片.
???? 在分頁系統(tǒng)中,允許將進(jìn)程的各個(gè)頁離散地存儲(chǔ)在內(nèi)存不同的物理塊中,但系統(tǒng)應(yīng)能保證進(jìn)程的正確運(yùn)行,即能在內(nèi)存中找到每個(gè)頁面所對(duì)應(yīng)的物理塊。為此,系統(tǒng)又為每個(gè)進(jìn)程建立了一張頁面映像表,簡(jiǎn)稱頁表。
???? 分段管理方式和分頁管理方式在實(shí)現(xiàn)思路上是很相似的,只不過他們的基本單位不同。分段有段表,也有地址變換機(jī)構(gòu)。
???? 段頁式系統(tǒng)的基本原理,是分段和分頁原理的結(jié)合,即先將用戶程序分成若干個(gè)段,再把每個(gè)段分成若干個(gè)頁,并為每一個(gè)段賦予一個(gè)段名。在段頁式系統(tǒng)中,地址結(jié)構(gòu)由段號(hào)、段內(nèi)頁號(hào)和頁內(nèi)地址三部分所組成。

分頁和分段的主要區(qū)別:
1、兩者相似之處:兩者都采用離散分配方式,且都要通過地址映射機(jī)構(gòu)來實(shí)現(xiàn)地址變換。
2、兩者不同之處:
1)頁是信息的物理單位,分頁是為實(shí)現(xiàn)離散分配方式,以消減內(nèi)存的外零頭,提高內(nèi)存的利用率。或者說,分頁僅僅是由于系統(tǒng)管理的需要而不是用戶的需要。段則是信息的邏輯單位,它含有一組其意義相對(duì)完整的信息。分段的目的是為了能更好地滿足用戶的需要。
2)頁的大小固定且由系統(tǒng)決定,而段的長度卻不固定。
3)分頁的作業(yè)地址空間是一維的,即單一的線性地址空間;而分段的作業(yè)地址空間則是二維的。

?

4.下面敘述中正確的是(? )
??? A
.操作系統(tǒng)的一個(gè)重要概念是進(jìn)程,因此不同進(jìn)程所執(zhí)行的代碼也一定不同
??? B
.為了避免發(fā)生進(jìn)程死鎖,各進(jìn)程只能逐個(gè)申請(qǐng)資源
??? C
.操作系統(tǒng)用PCB管理進(jìn)程,用戶進(jìn)程可以從PCB中讀出與本身運(yùn)行狀態(tài)有關(guān)的信息
??? D
.進(jìn)程同步是指某些進(jìn)程之間在邏輯上的相互制約關(guān)系?

標(biāo)準(zhǔn)答案是 D

A:不同進(jìn)程可以執(zhí)行相同的代碼,例如動(dòng)態(tài)庫。

B:產(chǎn)生死鎖的四個(gè)必要條件:

1互斥條件:一個(gè)資源每次只能被一個(gè)進(jìn)程使用。
2請(qǐng)求與保持條件:一個(gè)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲得的資源保持不放。
3不剝奪條件:進(jìn)程已獲得的資源,在末使用完之前,不能強(qiáng)行剝奪。
4循環(huán)等待條件:若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。
這四個(gè)條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會(huì)發(fā)生死鎖。?

C:個(gè)人覺得也算正確,不管是用戶進(jìn)程還是內(nèi)核線程,只要是在內(nèi)核態(tài)就可以讀取自身PCB。問題是目前用戶進(jìn)程進(jìn)入內(nèi)核態(tài)的方式只能是系統(tǒng)調(diào)用和中斷處理,而目前操作系統(tǒng)沒有提供這種接口給用戶進(jìn)程使用。
D:進(jìn)程同步指的是進(jìn)程間邏輯上的直接制約關(guān)系,進(jìn)程異步是進(jìn)程間邏輯上的間接制約關(guān)系。

?

5.Linux軟中斷softirq是在什么上下文中運(yùn)行的???

?A.進(jìn)程上下文
?B.
中斷上下文
?C.
可能是中斷上下文也可能是進(jìn)程上下文
?D.
以上都不對(duì)

答案:C
????? softirq 屬于中段下半部,一般來說是在中斷上下文中執(zhí)行。但是如果系統(tǒng)中的sofrirq一次執(zhí)行的次數(shù)太多,內(nèi)核會(huì)把softirq轉(zhuǎn)由softirqd內(nèi)核線程執(zhí)行,

????? 參與CPU競(jìng)爭(zhēng),從而保證sortirq太頻繁的情況下,普通進(jìn)程也能夠被執(zhí)行;
nt max_restart = MAX_SOFTIRQ_RESTART; //最大的softirq執(zhí)行次數(shù)
if (pending && --max_restart) //如果沒有到最大次數(shù),繼續(xù)執(zhí)行
goto restart;
...
if (pending) //
如果在執(zhí)行上次softirq途中又pending了新的softirq請(qǐng)求并且已經(jīng)不能再繼續(xù)執(zhí)行softirq了,那么喚醒softirqd吧。
wakeup_softirqd();

?

6.?intel x86架構(gòu)CPU有一種新類型的中斷SMI,一下對(duì)SMI描述不正確的說法是:

?A. SMI中斷是x86體系結(jié)構(gòu)的一種新的CPU執(zhí)行模式;
?B. SMI
中斷又稱系統(tǒng)管理中斷,由引腳SMI# Pin或者APIC SMI message觸發(fā);
?C. SMM
中斷對(duì)操作系統(tǒng)透明,操作系統(tǒng)不感知SMM中斷的執(zhí)行
?D. SMM
中斷就是普通中斷,只是中斷調(diào)用號(hào)不同而已;

答案:D
?CPU的四種運(yùn)行模式

?實(shí)模式

?保護(hù)模式

?系統(tǒng)管理模式

?V86模式

????? SMMIntel386SL之后引入x86體系結(jié)構(gòu)的一種CPU的執(zhí)行模式。系統(tǒng)管理模式只能通過系統(tǒng)管理中斷(System Management Interrupt, SMI)進(jìn)入,并只能通過執(zhí)行RSM指令推出。SMM模式對(duì)操作系統(tǒng)透明,換句話說,操作系統(tǒng)根本不知道系統(tǒng)何時(shí)進(jìn)入SMM模式,也無法感知SMM模式曾經(jīng)執(zhí)行過。為了實(shí)現(xiàn)SMMIntel在其CPU上新增了一個(gè)引腳SMI# Pin,當(dāng)這個(gè)引腳上為高電平的時(shí)候,CPU會(huì)進(jìn)入該模式。在SMM模式下一切被都屏蔽,包括所有的中斷。SMM模式下的執(zhí)行的程序被稱作SMM處理程序,所有的SMM處理程序只能在稱作系統(tǒng)管理內(nèi)存(System Management RAM,SMRAM)的空間內(nèi)運(yùn)行。可以通過設(shè)置SMBASE的寄存器來設(shè)置SMRAM的空間。SMM處理程序只能由系統(tǒng)固件實(shí)現(xiàn)。
???進(jìn)入SMM的唯一方法就是通過SMI,也即是系統(tǒng)管理中斷(System Management Interrupt)。而觸發(fā)SMI的唯一方法是將前述的SMI Pin引腳上加一個(gè)物理電平。而這個(gè)電平是由系統(tǒng)chipset根據(jù)不同的物理執(zhí)行環(huán)境(如某些事件到來,某些設(shè)備需要特別服務(wù))加到CPU上去的。

?

7.以下哪一點(diǎn)不是異常的特點(diǎn):

?A.異常與指令執(zhí)行的是同步的,由指令的異常情況觸發(fā);
?B.
當(dāng)異常發(fā)生時(shí),CPU將當(dāng)前指令的地址入棧,在異常返回時(shí),可能會(huì)重復(fù)執(zhí)行該指令;
?C.
異常發(fā)生時(shí),當(dāng)前執(zhí)行的程序也會(huì)被打斷;
?D.
異常也可能由CPU的外部引腳所觸發(fā);

答案:D

?

8.?一下哪一點(diǎn)不是中斷的特點(diǎn):

?A.中斷分為可屏蔽中斷和不可屏蔽中斷;
?B.
當(dāng)CPU執(zhí)行關(guān)中斷執(zhí)行時(shí),NMI中斷不會(huì)被屏蔽;
?C.
在中斷中要打印信息時(shí),必須使用不可睡眠的printk命令;
?D. CPU SF
寄存器,反映了系統(tǒng)當(dāng)前對(duì)中斷的是否屏蔽的狀態(tài);

答案:D
???? 同步的中斷,也稱為異常,之所以稱為"同步",是因?yàn)檫@些異常是在程序執(zhí)行的時(shí)候某條語句觸發(fā)的,比如除0錯(cuò)誤,缺頁異常等等,有名的段錯(cuò)誤也屬于其中的一種,這個(gè)時(shí)候,你的程序不能繼續(xù)往下走,而必須對(duì)這些異常做出回應(yīng),也就是處理
.
  異步的中斷,也就是中斷,之所以稱為"異步",是因?yàn)檫@些中斷是在當(dāng)前指令之外的指令觸發(fā)的.比如你的程序正在執(zhí)行,來了一個(gè)I/O請(qǐng)求,或者定時(shí)器到時(shí)間被觸發(fā)了,等等.也就是說,程序無法預(yù)知中斷在什么時(shí)候到來
.
  總的來說:中斷分為兩種,同步的中斷叫做異常,一般由程序中的錯(cuò)誤觸發(fā);異步的中斷叫做中斷,一般由當(dāng)前程序外部觸發(fā),比如IO請(qǐng)求,定時(shí)器等觸發(fā)
.
中斷分類:

v可屏蔽中斷(Maskable interrupt
?I/O設(shè)備發(fā)出的所有中斷請(qǐng)求(IRQ)都可以產(chǎn)生可屏蔽中斷。
?可屏蔽中斷可以處于兩種狀態(tài):屏蔽的(masked)和非屏蔽的
(unmasked)
v非屏蔽中斷(Nonmaskable interrupt

?只有幾個(gè)特定的危急事件才引起非屏蔽中斷。如硬件故障或是掉電
中斷是否得到響應(yīng)由兩條件決定:一是IF寄存器,為0時(shí),所有可屏蔽中斷都不被響應(yīng)。二是8259上的中斷屏蔽寄存器,當(dāng)其相應(yīng)位為1,且IF寄存器為1時(shí),中斷才可以被響應(yīng)。

異常分類
?
v處理器探測(cè)異常

?CPU執(zhí)行指令時(shí)探測(cè)到一個(gè)反常條件時(shí)產(chǎn)生,如溢出、除0錯(cuò)等
v編程異常
?由編程者發(fā)出的特定請(qǐng)求產(chǎn)生,通常由int類指令觸發(fā)
?通常叫做軟中斷

?
v對(duì)于處理器探測(cè)異常,根據(jù)異常時(shí)保存在內(nèi)核堆棧中的eip的值可以進(jìn)一步分為:

?故障(fault)eip=引起故障的指令的地址
l通常可以糾正,處理完異常時(shí),該指令被重新執(zhí)行
l例如缺頁異常
?陷阱(trap)eip=隨后要執(zhí)行的指令的地址。
?異常中止(abort)

9.?一下關(guān)于中斷號(hào)共享正確的是:

?A. Linux下中斷是不能共享的;
?B.
中斷號(hào)共享是只所有的中斷號(hào)共享一條中斷線;
?C.
對(duì)于共享的中斷號(hào),當(dāng)中斷觸發(fā)時(shí),LInux一定要把所有的共享中斷例程都執(zhí)行一遍;
?D.
所有的中斷歷程都支持中斷號(hào)共享;

答案:C
???? 共享同一中斷號(hào)的ISR,通過request_irq中的同一個(gè)中斷號(hào)注冊(cè)到系統(tǒng)中的同一個(gè)中斷鏈表中,而dev_id則用于區(qū)分該中斷鏈表中不同的ISR,因此注冊(cè)時(shí)dev_id不能相同,也不能為
NULL
???? 共享中斷的所有注冊(cè),其第3個(gè)參數(shù)都必須指明IRQF_SHARED,以表示是注冊(cè)共享中斷
,中斷發(fā)生時(shí),系統(tǒng)會(huì)順次調(diào)用中斷鏈表中所有的ISR。因此ISR一定要根據(jù)自己是否真的發(fā)生了中斷,來返回IRQ_HANDLEDIRQ_NONE,釋放中斷free_irq的第2個(gè)參數(shù)dev_id,正是用來查找中斷鏈表中要被釋放的中斷。

?

轉(zhuǎn)載于:https://www.cnblogs.com/wangfengju/archive/2013/05/20/6173057.html

總結(jié)

以上是生活随笔為你收集整理的华为内部面试题库---(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。