




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上考研計(jì)算機(jī)復(fù)試面試題總結(jié)專心-專注-專業(yè)概念問題C+/數(shù)據(jù)結(jié)構(gòu)1、簡述你對“面向?qū)ο蟆焙汀懊嫦蜻^程”編程思想的認(rèn)識與思考用就能夠了。面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時候一個一個依次調(diào)面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設(shè)計(jì)思路就是首先分析問題的步驟:1、開始游戲,2、黑子先走,3、繪制畫面,4、判斷輸贏,5、輪到白子,6、繪制畫面,7、判斷輸贏,8、返回步驟2,9、輸出最后結(jié)果。把上面每個步驟用分別的函數(shù)來實(shí)現(xiàn)
2、,問題就解決了。而面向?qū)ο蟮脑O(shè)計(jì)則是從另外的思路來解決問題。整個五子棋能夠分為 1、黑白雙方,這兩方的行為是一模一樣的,2、棋盤系統(tǒng),負(fù)責(zé)繪制畫面,3、規(guī)則系統(tǒng),負(fù)責(zé)判定諸如犯規(guī)、輸贏等。第一類對象(玩家對象)負(fù)責(zé)接受用戶輸入,并告知第二類對象(棋盤對象)棋子布局的變化,棋盤對象接收到了棋子的i變化就要負(fù)責(zé)在屏幕上面顯示出這種變化,同時利用第三類對象(規(guī)則系統(tǒng))來對棋局進(jìn)行判定。能夠明顯地看出,面向?qū)ο笫且怨δ軄韯澐謫栴},而不是步驟。同樣是繪制棋局,這樣的行為在面向過程的設(shè)計(jì)中分散在了總多步驟中,很可能出現(xiàn)不同的繪制版本,因?yàn)橐话阍O(shè)計(jì)人員會考慮到實(shí)際情況進(jìn)行各種各樣的簡化。而面向?qū)ο蟮脑O(shè)計(jì)中,
3、繪圖只可能在棋盤對象中出現(xiàn),從而保證了繪圖的統(tǒng)一。功能上的統(tǒng)一保證了面向?qū)ο笤O(shè)計(jì)的可擴(kuò)展性。比如我要加入悔棋的功能,如果要改動面向過程的設(shè)計(jì),那么從輸入到判斷到顯示這一連串的步驟都要改動,甚至步驟之間的循序都要進(jìn)行大規(guī)模調(diào)整。如果是面向?qū)ο蟮脑?,只用改動棋盤對象就行了,棋盤系統(tǒng)保存了黑白雙方的棋譜,簡單回溯就能夠了,而顯示和規(guī)則判斷則不用顧及,同時整個對對象功能的調(diào)用順序都沒有變化,改動只是局部的。再比如我要把這個五子棋游戲改為圍棋游戲,如果你是面向過程設(shè)計(jì),那么五子棋的規(guī)則就分布在了你的程序的每一個角落,要改動還不如重寫。可是如果你當(dāng)初就是面向?qū)ο蟮脑O(shè)計(jì),那么你只用改動規(guī)則對象就能夠了,五子
4、棋和圍棋的區(qū)別不就是規(guī)則嗎?(當(dāng)然棋盤大小仿佛也不一樣,可是你會覺得這是一個難題嗎?直接在棋盤對象中進(jìn)行一番小改動就能夠了。)而下棋的大致步驟從面向?qū)ο蟮慕嵌葋砜礇]有任何變化。當(dāng)然,要達(dá)到改動只是局部的需要設(shè)計(jì)的人有足夠的經(jīng)驗(yàn),使用對象不能保證你的程序就是面向?qū)ο?,初學(xué)者或者很蹩腳的程序員很可能以面向?qū)ο笾摱忻嫦蜻^程之實(shí),這樣設(shè)計(jì)出來的所謂面向?qū)ο蟮某绦蚝茈y有良好的可移植性和可擴(kuò)展性。2、 ADT是什么?簡述你對“數(shù)據(jù)抽象”和“信息隱藏”的認(rèn)識抽象數(shù)據(jù)類型(Abstract Data Type 簡稱ADT)是指一個數(shù)學(xué)模型以及定義在此數(shù)學(xué)模型上的一組操作。抽象數(shù)據(jù)類型需要經(jīng)過固有數(shù)據(jù)類型(
5、高級編程語言中已實(shí)現(xiàn)的數(shù)據(jù)類型)來實(shí)現(xiàn)。抽象數(shù)據(jù)類型是與表示無關(guān)的數(shù)據(jù)類型,是一個數(shù)據(jù)模型及定義在該模型上的一組運(yùn)算。對一個抽象數(shù)據(jù)類型進(jìn)行定義時,必須給出它的名字及各運(yùn)算的運(yùn)算符名,即函數(shù)名,而且規(guī)定這些函數(shù)的參數(shù)性質(zhì)。一旦定義了一個抽象數(shù)據(jù)類型及具體實(shí)現(xiàn),程序設(shè)計(jì)中就能夠像使用基本數(shù)據(jù)類型那樣,十分方便地使用抽象數(shù)據(jù)類型。抽象數(shù)據(jù)類型經(jīng)過類(class)實(shí)現(xiàn)l 程序設(shè)計(jì)語言對抽象數(shù)據(jù)類型的支持是指允許用戶自定義具有如下特征的數(shù)據(jù)類型:1. 模塊封裝:The representation of, and operations on, objects of the type are defin
6、ed in a singlesyntactic unit2. 信息隱蔽:The representation of objects of the type is hidden from the program units that use theseobjects, so the only operations possible are those provided in the type's definition3、const和static有什么作用?const是一個C和C+語言的關(guān)鍵字,它限定一個變量不允許被改變,即只讀。使用const在一定程度上能夠提高程序的安全性和可靠性,也便
7、于實(shí)現(xiàn)對此進(jìn)行優(yōu)化(如把只讀對象放入ROM中)。const作為類型限定符,是類型的一部分。4、友元關(guān)系的利與弊如果將一個函數(shù)或一個類聲明為另一個類的友元,那么它就能夠直接存取這個類對象中的各種數(shù)據(jù),而不必在意這些數(shù)據(jù)的封裝級別,即無論是private的,protected的,還是public的,有錢同使,有難同當(dāng)。5、C+多態(tài)的實(shí)現(xiàn)1. 用virtual關(guān)鍵字申明的函數(shù)叫做虛函數(shù),虛函數(shù)肯定是類的成員函數(shù)。2. 存在虛函數(shù)的類都有一個一維的虛函數(shù)表叫做虛表。類的對象有一個指向虛表開始的虛指針。虛表是和類對應(yīng)的,虛表指針是和對象對應(yīng)的。3. 多態(tài)性是一個接口多種實(shí)現(xiàn),是面向?qū)ο蟮暮诵摹7譃轭惖亩?/p>
8、態(tài)性和函數(shù)的多態(tài)性。4. 多態(tài)用虛函數(shù)來實(shí)現(xiàn),結(jié)合動態(tài)綁定。5. 純虛函數(shù)是虛函數(shù)再加上= 0。6. 抽象類是指包括至少一個純虛函數(shù)的類。構(gòu)造函數(shù)順序:基類構(gòu)造函數(shù)à派生類構(gòu)造函數(shù)前面輸出的結(jié)果是因?yàn)榫幾g器在編譯的時候,就已經(jīng)確定了對象調(diào)用的函數(shù)的地址,要解決這個問題就要使用遲綁定(late binding)技術(shù)。當(dāng)編譯器使用遲綁定時,就會在運(yùn)行時再去確定對象的類型以及正確的調(diào)用函數(shù)。而要讓編譯器采用遲綁定,就要在基類中聲明函數(shù)時使用virtual關(guān)鍵字(注意,這是必須的,很多學(xué)員就是因?yàn)闆]有使用虛函數(shù)而寫出很多錯誤的例子),這樣的函數(shù)我們稱為虛函數(shù)。一旦某個函數(shù)在基類中聲明為vir
9、tual,那么在所有的派生類中該函數(shù)都是virtual,而不需要再顯式地聲明為virtual。前面輸出的結(jié)果是因?yàn)榫幾g器在編譯的時候,就已經(jīng)確定了對象調(diào)用的函數(shù)的地址,要解決這個問題就要使用遲綁定(late binding)技術(shù)。當(dāng)編譯器使用遲綁定時,就會在運(yùn)行時再去確定對象的類型以及正確的調(diào)用函數(shù)。而要讓編譯器采用遲綁定,就要在基類中聲明函數(shù)時使用virtual關(guān)鍵字(注意,這是必須的,很多學(xué)員就是因?yàn)闆]有使用虛函數(shù)而寫出很多錯誤的例子),這樣的函數(shù)我們稱為虛函數(shù)。一旦某個函數(shù)在基類中聲明為virtual,那么在所有的派生類中該函數(shù)都是virtual,而不需要再顯式地聲明為virtual。編
10、譯器在編譯的時候,發(fā)現(xiàn)基類中有虛函數(shù),此時編譯器會為每個包含虛函數(shù)的類創(chuàng)立一個虛表(即vtable),該表是一個一維數(shù)組,在這個數(shù)組中存放每個虛函數(shù)的地址。那么如何定位虛表呢?編譯器另外還為每個類的對象提供了一個虛表指針(即vptr),這個指針指向了對象所屬類的虛表。在程序運(yùn)行時,根據(jù)對象的類型去初始化vptr,從而讓vptr正確的指向所屬類的虛表,從而在調(diào)用虛函數(shù)時,就能夠找到正確的函數(shù)。對于例1-2的程序,由于pAn實(shí)際指向的對象類型是fish,因此vptr指向的fish類的vtable,當(dāng)調(diào)用pAn->breathe()時,根據(jù)虛表中的函數(shù)地址找到的就是fish類的breathe(
11、)函數(shù)。那么虛表指針在什么時候,或者說在什么地方初始化呢?答案是在構(gòu)造函數(shù)中進(jìn)行虛表的創(chuàng)立和虛表指針的初始化。還記得構(gòu)造函數(shù)的調(diào)用順序嗎,在構(gòu)造子類對象時,要先調(diào)用父類的構(gòu)造函數(shù),此時編譯器只“看到了”父類,并不知道后面是否后還有繼承者,它初始化父類對象的虛表指針,該虛表指針指向父類的虛表。當(dāng)執(zhí)行子類的構(gòu)造函數(shù)時,子類對象的虛表指針被初始化,指向自身的虛表。對于例2-2的程序來說,當(dāng)fish類的fh對象構(gòu)造完畢后,其內(nèi)部的虛表指針也就被初始化為指向fish類的虛表。在類型轉(zhuǎn)換后,調(diào)用pAn->breathe(),由于pAn實(shí)際指向的是fish類的對象,該對象內(nèi)部的虛表指針指向的是fish
12、類的虛表,因此最終調(diào)用的是fish類的breathe()函數(shù)。要注意:對于虛函數(shù)調(diào)用來說,每一個對象內(nèi)部都有一個虛表指針,該虛表指針被初始化為本類的虛表。因此在程序中,不論你的對象類型如何轉(zhuǎn)換,但該對象內(nèi)部的虛表指針是固定的,因此呢,才能實(shí)現(xiàn)動態(tài)的對象函數(shù)調(diào)用,這就是C+多態(tài)性實(shí)現(xiàn)的原理。6、STL是什么?組成部分和核心作用標(biāo)準(zhǔn)模板庫于1994年2月年正式成為ANSI/ISO C+的一部份,它的出現(xiàn),促使C+程序員的思維方式更朝向泛型編程(generic program)發(fā)展。7、闡述C+在什么情況下必須進(jìn)行運(yùn)算符重載。?8、 為什么說“繼承是C+面向?qū)ο蟮囊粋€主要特征之一”,請做一下簡要說明
13、。?9、 請說明函數(shù)模板(Function Template)和函數(shù)模板實(shí)例化(function-template specification)的區(qū)別和聯(lián)系。函數(shù)模板實(shí)例化在函數(shù)模板為每個類型時首先調(diào)用中,編譯器創(chuàng)立一個實(shí)例化。 每個實(shí)例化是為該類型的該模板化功能的版本。 在中,此函數(shù)為類型時,使用此實(shí)例化將調(diào)用。 如果您有幾個相同的實(shí)例化,即使在不同的模塊,因此,只有該實(shí)例化的一個副本在可執(zhí)行文件將結(jié)果。函數(shù)參數(shù)將所有參數(shù)的函數(shù)模板允許和參數(shù),對該參數(shù)不依賴于模板參數(shù)的位置。函數(shù)模板能夠經(jīng)過聲明與特定類型的模板顯式實(shí)例化作為參數(shù)。C+中提供了函數(shù)模板,實(shí)際上是建立一個通用函數(shù),其函數(shù)類型和形
14、參類型不具體指定,用一個虛擬的類型來代表,這個通用函數(shù)就成為函數(shù)模板。使用模板的好處就是對于那些函數(shù)體相同的函數(shù)都能夠用這個模板來代替,而不必去定義每個具體的函數(shù)去實(shí)現(xiàn)。下面經(jīng)過一個簡單的具體例子(比較兩個數(shù)的大?。﹣碚f明:#include <iostream>using namespace std;template<class T> /模板聲明,T為類型參數(shù)T Max(T a, T b) /定義一個通用函數(shù),用T作虛擬的類型名if (a>b)return a;elsereturn b;模板實(shí)例化(template instantiation )是指在編譯或鏈接時
15、生成函數(shù)模板或類模板的具體實(shí)例源代碼。ISO C+定義了兩種模板實(shí)例化方法:隱式實(shí)例化(當(dāng)使用實(shí)例化的模板時自動地在當(dāng)前代碼單元之前插入模板的實(shí)例化代碼)、顯式實(shí)例化(直接聲明模板實(shí)例化)。10、編譯和鏈接的過程源文件的編譯過程包含兩個主要階段,而它們之間的轉(zhuǎn)換是自動的。第一個階段是預(yù)處理階段,在正式的編譯階段之前進(jìn)行。預(yù)處理階段將根據(jù)已放置在文件中的預(yù)處理指令來修改源文件的內(nèi)容。#include指令就是一個預(yù)處理指令,它把頭文件的內(nèi)容添加到.cpp文件中還有其它許多預(yù)處理指令這個在編譯之前修改源文件的方式提供了很大的靈活性,以適應(yīng)不同的計(jì)算機(jī)和操作系統(tǒng)環(huán)境的限制。一個環(huán)境需要的代碼跟另一個環(huán)
16、境所需的代碼可能有所不同,因?yàn)榭捎玫挠布虿僮飨到y(tǒng)是不同的。在許多情況下,能夠把用于不同環(huán)境的代碼放在同一個文件中,再在預(yù)處理階段修改代碼,使之適應(yīng)當(dāng)前的環(huán)境。預(yù)處理器顯示為一個獨(dú)立的操作,但一般不能獨(dú)立于編譯器來執(zhí)行這個操作。調(diào)用編譯器會自動執(zhí)行預(yù)處理過程,之后才編譯代碼。編譯器為給定源文件輸出的是機(jī)器碼,執(zhí)行這個過程需要較長時間。在對象文件之間并沒有建立任何連接。對應(yīng)于某個源文件的對象文件包含在其它源文件中定義的函數(shù)引用或其它指定項(xiàng)的引用,而這些函數(shù)或項(xiàng)仍沒有被解析。同樣,也沒有建立同庫函數(shù)的鏈接。實(shí)際上,這些函數(shù)的代碼并不是文件的一部分。這些工作是由鏈接程序(有時稱為鏈接編輯器)完成的鏈
17、接程序把所有對象文件中的機(jī)器碼組合在一起,并解析它們之間的交叉引用。它還集成了對象模塊所使用的庫函數(shù)的代碼。這是鏈接程序的一種簡化表示,因?yàn)檫@里假定在可執(zhí)行模塊中,模塊之間的所有鏈接都是靜態(tài)建立的。實(shí)際上有些鏈接是動態(tài)的,即這些鏈接是在程序執(zhí)行時建立的。鏈接程序靜態(tài)地建立函數(shù)之間的鏈接,即在程序執(zhí)行之前建立組成程序的源文件中所包含的函數(shù)鏈接。動態(tài)建立的函數(shù)之間的鏈接(在程序執(zhí)行過程中建立的鏈接)將函數(shù)編譯并鏈接起來,創(chuàng)立另一種可執(zhí)行模塊 動態(tài)鏈接庫或共享庫。動態(tài)鏈接庫中的函數(shù)鏈接是在程序調(diào)用函數(shù)時才建立的,在程序調(diào)用之前,該鏈接是不存在的。動態(tài)鏈接庫有幾個重要的優(yōu)點(diǎn)。一個主要的優(yōu)點(diǎn)是動態(tài)鏈接庫
18、中的函數(shù)能夠在幾個并行執(zhí)行的程序之間共享,這將節(jié)省相同函數(shù)占用的內(nèi)存空間。另一個優(yōu)點(diǎn)是動態(tài)鏈接庫在調(diào)用其中的函數(shù)之前是不會加載到內(nèi)存中的。也就是說,如果不使用給定動態(tài)鏈接庫中的函數(shù),該動態(tài)鏈接庫就不會占用內(nèi)存空間11、解釋“優(yōu)先級隊(duì)列”這一抽象數(shù)據(jù)類型及實(shí)現(xiàn)方法如果我們給每個元素都分配一個數(shù)字來標(biāo)記其優(yōu)先級,不妨設(shè)較小的數(shù)字具有較高的優(yōu)先級,這樣我們就能夠在一個集合中訪問優(yōu)先級最高的元素并對其進(jìn)行查找和刪除操作了。這樣,我們就引入了優(yōu)先級隊(duì)列 這種數(shù)據(jù)結(jié)構(gòu)。缺省情況下,優(yōu)先級隊(duì)列利用一個最大堆完成 函數(shù)列表:empty() 如果優(yōu)先隊(duì)列為空,則返回真pop() 刪除第一個元素push() 加入
19、一個元素size() 返回優(yōu)先隊(duì)列中擁有的元素的個數(shù)top() 返回優(yōu)先隊(duì)列中有最高優(yōu)先級的元素用途就不用多說了吧,例如Huffman編碼、分支限界、A*啟發(fā)式都需要用到優(yōu)先隊(duì)列存放信息。12、逆波蘭式用什么數(shù)據(jù)結(jié)構(gòu)算法的效率比較高,為什么13、C和C+,C+和Java的區(qū)別C是一個結(jié)構(gòu)化語言,如譚老爺子所說:它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計(jì)首要考慮的是如何經(jīng)過一個過程,對輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制),而對于C+,首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合與之對應(yīng)的問題域,這樣就能夠經(jīng)過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。因此
20、C與C+的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之因此說C+比C更先進(jìn),是因?yàn)槊嫦驅(qū)?4、什么是預(yù)處理程序設(shè)計(jì)中的預(yù)處理(Preprocess),程序設(shè)計(jì)領(lǐng)域,預(yù)處理是在程序源代碼被編譯之前,由預(yù)處理器(Preprocessor)對程序源代碼進(jìn)行的處理。這個過程并不對程序的源代碼進(jìn)行解析,但它把源代碼分割或處理成為特定的符號用來支持宏調(diào)用。預(yù)處理器的主要作用就是把經(jīng)過預(yù)處理的內(nèi)建功能對一個資源進(jìn)行等價替換,最常見 的預(yù)處理有:文件包含,條件編譯、布局控制和宏替換4種。15、堆和棧的區(qū)別棧區(qū)(stack) 由編譯器自動分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其 操作方式類似于數(shù)據(jù)
21、結(jié)構(gòu)中的棧。堆棧(英文:stack),也可直接稱棧。臺灣作堆疊,在計(jì)算機(jī)科學(xué)中,是一種特殊的串行形式的數(shù)據(jù)結(jié)構(gòu),它的特殊之處在于只能允許在鏈結(jié)串行或陣列的一端(稱為堆棧頂端指標(biāo),英文為top)進(jìn)行加入資料(push)和輸出資料(pop)的運(yùn)算。另外堆棧也能夠用一維陣列或連結(jié)串行的形式來完成。堆棧的另外一個相正確操作方式稱為佇列。由于堆棧數(shù)據(jù)結(jié)構(gòu)只允許在一端進(jìn)行操作,因而按照后進(jìn)先出(LIFO, Last In First Out)的原理運(yùn)作。堆棧數(shù)據(jù)結(jié)構(gòu)使用兩種基本操作:推入(push)和彈出(pop):17、簡述在面向?qū)ο蟪绦蛟O(shè)計(jì)中,引入繼承和封裝的主要作用 繼承:代碼重用 封裝:代碼安全1
22、8、簡述C語言中指針及其作用19、Java語言的多線程機(jī)制20、簡述四種常見的數(shù)據(jù)邏輯結(jié)構(gòu) 集合 集合中任何兩個數(shù)據(jù)元素之間都沒有邏輯關(guān)系,組織形式松散。 圖狀結(jié)構(gòu) 圖狀結(jié)構(gòu)中的結(jié)點(diǎn)按邏輯關(guān)系互相纏繞,任何兩個結(jié)點(diǎn)都能夠鄰接21、簡述在一棵二叉排序樹中查找一特定元素x的算法過程二叉排序樹(Binary Sort Tree)又稱二叉查找樹。 它或者是一棵空樹;或者是具有下列性質(zhì)的二叉樹:(1)若左子樹不空,則左子樹上所有結(jié)點(diǎn)的值均小于它的根結(jié)點(diǎn)的值;(2)若右子樹不空,則右子樹上所有結(jié)點(diǎn)的值均大于它的根結(jié)點(diǎn)的值;(3)左、右子樹也分別為二叉排序樹;在最壞的情況是,兩子數(shù)列擁有大各為 1 和 n-
23、1,且調(diào)用樹(call tree)變成為一個 n 個嵌套(nested)調(diào)用的線性連串(chain)。第 i 次調(diào)用作了O(n-i)的工作量,且遞歸關(guān)系式為: 這與插入排序和選擇排序有相同的關(guān)系式,以及它被解為T(n) = O(n2)。它的最壞情況是很恐怖的,需要空間,遠(yuǎn)比數(shù)列本身還多。23、簡述在一帶權(quán)有向圖中尋找關(guān)鍵路徑的基本思想關(guān)鍵路徑:關(guān)鍵路徑是指網(wǎng)絡(luò)終端元素的元素的序列,該序列具有最長的總工期并決定了整個項(xiàng)目的最短完成時間。在AOE網(wǎng)中,從始點(diǎn)到終點(diǎn)具有最大路徑長度(該路徑上的各個活動所持續(xù)的時間之和)的路徑為關(guān)鍵路徑 關(guān)鍵活動:關(guān)鍵路徑上的活動稱為關(guān)鍵活動。只有所有關(guān)鍵活動提前完成
24、,整個工程才能提前完成。最早可能開始時間Vei:從原點(diǎn)到頂點(diǎn)Vi最長路徑的長度(之前所有事情做完了才可能開始); 最遲允許開始時間Vli:保證匯點(diǎn)Vn-1在Ven-1時刻完成的前提下(整體工期不拖),事件Vi最遲允許的開始時間。Vli=minVlk-dur(<Vi,Vk>)關(guān)鍵活動:松弛時間(slack time)Alj-Aek=0的節(jié)點(diǎn)。24、類作用域和文件作用域的區(qū)別是什么文件作用域也稱“全局作用域”。 ··· 定義在所有函數(shù)之外的標(biāo)識符,具有文件作用域,作用域?yàn)閺亩x處到整個源文件結(jié)束。 文件中定義的全局變量和函數(shù)都具有文件作用域。 如果某個文件
25、中說明了具有文件作用域的標(biāo)識符,該文件又被另一個文件包含,則該標(biāo)識符的作用域延伸到新的文件中。如cin和cout是在頭文件iostream.h中說明的具有文件作用域的標(biāo)識符,它們的作用域也延伸到嵌入iostream.h的文件中。操作系統(tǒng) 1. 進(jìn)程和線程的區(qū)別及聯(lián)系,操作系統(tǒng)的程序棧線程和進(jìn)程的區(qū)別:1、 線程是進(jìn)程的一部分,因此線程有的時候被稱為是輕權(quán)進(jìn)程或者輕量級進(jìn)程。2、 一個沒有線程的進(jìn)程是能夠被看作單線程的,如果一個進(jìn)程內(nèi)擁有多個進(jìn)程,進(jìn)程的執(zhí)行過程不是一條線(線程)的,而是多條線(線程)共同完成的。3、 系統(tǒng)在運(yùn)行的時候會為每個進(jìn)程分配不同的內(nèi)存區(qū)域,可是不會為線程分配內(nèi)存(線程所
26、使用的資源是它所屬的進(jìn)程的資源),線程組只能共享資源。那就是說,出了CPU之外(線程在運(yùn)行的時候要占用CPU資源),計(jì)算機(jī)內(nèi)部的軟硬件資源的分配與線程無關(guān),線程只能共享它所屬進(jìn)程的資源。4、 與進(jìn)程的控制表PCB相似,線程也有自己的控制表TCB,可是TCB中所保存的線程狀態(tài)比PCB表中少多了(上下文保存一下就行)。5、 進(jìn)程是系統(tǒng)所有資源分配時候的一個基本單位,擁有一個完整的虛擬空間地址,并不依賴線程而獨(dú)立存在。進(jìn)程與程序的區(qū)別:程序是一組指令的集合,它是靜態(tài)的實(shí)體,沒有執(zhí)行的含義。而進(jìn)程是一個動態(tài)的實(shí)體,有自己的生命周期。一般說來,一個進(jìn)程肯定與一個程序相對應(yīng),而且只有一個,可是一個程序能夠
27、有多個進(jìn)程,或者一個進(jìn)程都沒有也能夠只有一個進(jìn)程。除此之外,進(jìn)程還有并發(fā)性和交往性。簡單地說,進(jìn)程是程序的一部分,程序運(yùn)行的時候會產(chǎn)生進(jìn)程??偨Y(jié):線程是進(jìn)程的一部分,進(jìn)程是程序的一部分。前一句說的不太準(zhǔn)確,線程也有自己的資源,比如棧,私有數(shù)據(jù)等等。說她使用而不擁有資源指的是使用的是進(jìn)程的打開文件句柄,進(jìn)程的全局?jǐn)?shù)據(jù),進(jìn)程的地址空間等等,這些都屬于進(jìn)程,而不屬于線程,進(jìn)程內(nèi)個線程共享。進(jìn)程切換比線程切換開銷大是因?yàn)檫M(jìn)程切換時要切頁表,而且往往伴隨著頁調(diào)度,因?yàn)檫M(jìn)程的數(shù)據(jù)段代碼段要換出去,以便把將要執(zhí)行的進(jìn)程的內(nèi)容換進(jìn)來。原來進(jìn)程的內(nèi)容就是線程的超集。而且線程只需要保存線程的上下文(相關(guān)寄存器狀態(tài)
28、和棧的信息)就好了,動作很小。2. OS里面進(jìn)程的“三態(tài)”“五態(tài)”“七態(tài)”是什么3. 什么是操作系統(tǒng)4. 死鎖的條件,檢測死鎖的可能方法及其基本思想A deadlock is a situation in which two or more competing actions are each waiting for the other to finish, and thus neither ever does.1. (互斥): At least two resources must be non-shareable.1 Only one process can use the resourc
29、e at any given instant of time.2. Hold and Wait or Resource Holding: A process is currently holding at least one resource and requestingadditional resources which are being held by other processes.3. No (禁止搶占): The operating system must not de-allocate resources once they have beenallocated; they mu
30、st be released by the holding process voluntarily.4. A process must be waiting for a resource which is being held by another process,which in turn is waiting for the first process to release the resource. In general, there is a of waitingprocesses, P = P1, P2, ., PN, such that P1 is waiting for a re
31、source held by P2, P2 is waiting for a resource held by P3 and so on until PN is waiting for a resource held by P1.17These four conditions are known as the Coffman conditions from their first description in a 1971 articleby 7 Unfulfillment of any of these conditions is enough to preclude a deadlock
32、from occurring.Ensure that the system will never enter a deadlock state.Prevention: Ensure one of the four conditions fails.Avoidance: The OS needs more information so that it can determine if the current request can be satisfied ordelayed.死鎖檢測:1. Resource-Allocation Graph2. Detection Algorithm5. 用戶
33、態(tài)和內(nèi)核態(tài)當(dāng)程序運(yùn)行在3級特權(quán)級上時,就能夠稱之為運(yùn)行在用戶態(tài),因?yàn)檫@是最低特權(quán)級,是普通的用戶進(jìn)程運(yùn)行的特權(quán)級,大部分用戶直接面正確程序都是運(yùn)行在用戶態(tài);反之,當(dāng)程序運(yùn)行在級特權(quán)級上時,就能夠稱之為運(yùn)行在內(nèi)核態(tài)。 用戶態(tài)切換到內(nèi)核態(tài)的3種方式a. 系統(tǒng)調(diào)用這是用戶態(tài)進(jìn)程主動要求切換到內(nèi)核態(tài)的一種方式,用戶態(tài)進(jìn)程經(jīng)過系統(tǒng)調(diào)用申請使用操作系統(tǒng)提供的服務(wù)程序完成工作,比如前例中fork()實(shí)際上就是執(zhí)行了一個創(chuàng)立新進(jìn)程的系統(tǒng)調(diào)用。而系統(tǒng)調(diào)用的機(jī)制其核心還是使用了操作系統(tǒng)為用戶特別開放的一個中斷來實(shí)現(xiàn),例如Linux的int 80h中斷。b. 異常當(dāng)CPU在執(zhí)行運(yùn)行在用戶態(tài)下的程序時,發(fā)生了某些事先
34、不可知的異常,這時會觸發(fā)由當(dāng)前運(yùn)行進(jìn)程切換到處理此異常的內(nèi)核相關(guān)程序中,也就轉(zhuǎn)到了內(nèi)核態(tài),比如缺頁異常。c. 外圍設(shè)備的中斷當(dāng)外圍設(shè)備完成用戶請求的操作后,會向CPU發(fā)出相應(yīng)的中斷信號,這時CPU會暫停執(zhí)行下一條即將要執(zhí)行的指令轉(zhuǎn)而去執(zhí)行與中斷信號對應(yīng)的處理程序,如果先前執(zhí)行的指令是用戶態(tài)下的程序,那么這個轉(zhuǎn)換的過程自然也就發(fā)生了由用戶態(tài)到內(nèi)核態(tài)的切換。比如硬盤讀寫操作完成,系統(tǒng)會切換到硬盤讀寫的中斷處理程序中執(zhí)行后續(xù)操作等。這3種方式是系統(tǒng)在運(yùn)行時由用戶態(tài)轉(zhuǎn)到內(nèi)核態(tài)的最主要方式,其中系統(tǒng)調(diào)用能夠認(rèn)為是用戶進(jìn)程主動發(fā)起的,異常和外圍設(shè)備中斷則是被動的。6. 面包店算法該算法的基本思想源于顧客在
35、面包店中購買面包時的排隊(duì)原理. 顧客在進(jìn)入面包店前, 首先抓一個號, 然后按照號碼由小到大的次序依次進(jìn)入面包店購買面包. 這里, 面包店發(fā)放的號碼是由小到大的, 可是兩個或兩個以上的顧客卻有可能得到相同的號碼(使所抓號碼不同需要互斥), 如果多個顧客抓到相同的號碼, 則規(guī)定按照顧客名字的字典次序進(jìn)行排序, 這里假定顧客是沒有重名的. 在計(jì)算機(jī)系統(tǒng)中, 顧客就相當(dāng)于進(jìn)程, 每個進(jìn)程有一個唯一的標(biāo)識, 我們用P的下面加一個下標(biāo)來表示. 例如: 對于 Pi和Pj, 如果有i<j, 則先為Pi服務(wù), 即Pi先進(jìn)入臨界區(qū)7. 系統(tǒng)調(diào)用和庫函數(shù)的區(qū)別(1)調(diào)用形式不同。過程(函數(shù))使用一般調(diào)用指令,
36、其轉(zhuǎn)向地址是固定不變的,包含在跳轉(zhuǎn)語句中;但系統(tǒng)調(diào)用中不包含處理程序入口,而僅僅提供功能號,按功能號調(diào)用。(2)被調(diào)用代碼的位置不同。過程(函數(shù))調(diào)用是一種靜態(tài)調(diào)用,調(diào)用者和被調(diào)用代碼在同一程序內(nèi),經(jīng)過連接編輯后作為目標(biāo)代碼的一部份。當(dāng)過程(函數(shù))升級或修改時,必須重新編譯連結(jié)。而系統(tǒng)調(diào)用是一種動態(tài)調(diào)用,系統(tǒng)調(diào)用的處理代碼在調(diào)用程序之外(在操作系統(tǒng)中),這樣一來,系統(tǒng)調(diào)用處理代碼升級或修改時,與調(diào)用程序無關(guān)。而且,調(diào)用程序的長度也大大縮短,減少了調(diào)用程序占用的存儲空間。(3)提供方式不同。過程(函數(shù))往往由編譯系統(tǒng)提供,不同編譯系統(tǒng)提供的過程(函數(shù))能夠不同;系統(tǒng)調(diào)用由操作系統(tǒng)提供,一旦操作系
37、統(tǒng)設(shè)計(jì)好,系統(tǒng)調(diào)用的功能、種類與數(shù)量便固定不變了。(4)調(diào)用的實(shí)現(xiàn)不同。程序使用一般機(jī)器指令(跳轉(zhuǎn)指令)來調(diào)用過程(函數(shù)),是在用戶態(tài)運(yùn)行的;程序執(zhí)行系統(tǒng)調(diào)用,是經(jīng)過中斷機(jī)構(gòu)來實(shí)現(xiàn),需要從用戶態(tài)轉(zhuǎn)變到核心態(tài),在管理狀態(tài)執(zhí)行,因此,安全性好。8. 經(jīng)典進(jìn)程同步問題是什么,同步思想?生產(chǎn)者-消費(fèi)者問題是著名的進(jìn)程同步問題,它描述一組生產(chǎn)者進(jìn)程向一組消費(fèi)者進(jìn)程提供消息。它們共享一個有界緩沖池,生產(chǎn)者向其中投放消息,消費(fèi)者從中取得消息。生產(chǎn)者-消費(fèi)者問題是許多相互合作進(jìn)程的一種抽象。假定緩沖池中有n個緩沖區(qū),每個緩沖區(qū)存放一個消息。由于緩沖池是臨界資源,它只允許一個生產(chǎn)者投入消息,或者一個消費(fèi)者從中取
38、出消息。生產(chǎn)者之間、生產(chǎn)者與消費(fèi)者之間、消費(fèi)者之間都必須互斥地使用緩沖池。因此必須設(shè)置互斥信號量mutex,它代表緩沖池資源,它的數(shù)值為1。 讀者-寫者問題問題描述:一個數(shù)據(jù)集(如文件)被幾個并行進(jìn)程所共享,有些進(jìn)程只要求讀數(shù)據(jù)集內(nèi)容,稱為讀者,而另一些進(jìn)程則要求修改數(shù)據(jù)集內(nèi)容,稱為寫者,幾個讀者能夠同時讀數(shù)據(jù)集,而不需要互斥,但一個寫者不能和其它進(jìn)程(不論是寫者或讀者)同時訪問這些數(shù)據(jù)集,它們之間必須互斥。哲學(xué)家進(jìn)餐問題該問題描述如下:有五個哲學(xué)家,她們的生活方式是交替地進(jìn)行思考和進(jìn)餐。哲學(xué)家們公用一張圓桌,周圍放有五把椅子,每人坐一把。在圓桌上有五個碗和五根筷子,當(dāng)一個哲學(xué)家思考時,她不與
39、其它人交談,饑餓時便試圖取用其左、右最靠近她的筷子,但她可能一根都拿不到。只有在她拿到兩根筷子時,方能進(jìn)餐,進(jìn)餐完后,放下筷子又繼續(xù)思考。9. 文件管理及組織,F(xiàn)ATFAT = File Allocation Table10. 設(shè)備驅(qū)動程序是否屬于OS,她的作用是什么不是,驅(qū)動程序是另外安裝的軟件,是操作系統(tǒng)控制而且和硬件之間通訊的橋梁(程序)11. 程序和任務(wù)的區(qū)別任務(wù)是最抽象的,是一個一般性的術(shù)語,指由軟件完成的一個活動。一個任務(wù)既能夠是一個進(jìn)程,也能夠是一個線程。簡而言之,它指的是一系列共同達(dá)到某一目的的操 作。例如,讀取數(shù)據(jù)并將數(shù)據(jù)放入內(nèi)存中。這個任務(wù)能夠作為一個進(jìn)程來實(shí)現(xiàn),也能夠作為
40、一個線程(或作為一個中斷任務(wù))來實(shí)現(xiàn)。 進(jìn)程常常被定義為程序的執(zhí)行。能夠把一個進(jìn)程看成是一個獨(dú)立的程序,在內(nèi)存中有其完備的數(shù)據(jù)空間和代碼空間。一個進(jìn)程所擁有的數(shù)據(jù)和變量只屬于它自己。 線程則是某一進(jìn)程中一路單獨(dú)運(yùn)行的程序。也就是說,線程存在于進(jìn)程之中。一個進(jìn)程由一個或多個線程構(gòu)成,各線程共享相同的代碼和全局?jǐn)?shù)據(jù),但各有其自己的堆棧。由于堆棧是每個線程一個,因此局部變量對每一線程來說是私有的。由于所有線程共享同樣的代碼和全局?jǐn)?shù)據(jù),它們比進(jìn)程更緊密,比單獨(dú)的進(jìn)程間更趨向于相互作用,線程間的相互作用更容易些,因?yàn)樗鼈儽旧砭陀心承┕┩ㄐ庞玫墓蚕韮?nèi)存:進(jìn)程的全局?jǐn)?shù)據(jù)進(jìn)程的全局?jǐn)?shù)據(jù)進(jìn)程的全局?jǐn)?shù)據(jù)進(jìn)程的全局
41、數(shù)據(jù)進(jìn)程:資源分配、調(diào)度運(yùn)行的基本單位。線程:進(jìn)程中執(zhí)行運(yùn)算的最小單位,執(zhí)行處理機(jī)調(diào)度的基本單位。12. 數(shù)據(jù)庫安全性和操作系統(tǒng)安全性的關(guān)系安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個問題.只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出.系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標(biāo)之一.數(shù)據(jù)庫的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng),網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系,相互支持的.13. 中斷處理的過程請求中斷響應(yīng)中斷關(guān)閉中斷保留斷點(diǎn)中斷源識別保護(hù)現(xiàn)場中斷服務(wù)子程序恢復(fù)現(xiàn)場中斷返回 在實(shí)際運(yùn)行中,一旦設(shè)備經(jīng)過某引腳N向8259A發(fā)出中斷指令,后
42、者便向8086A的INTR引腳發(fā)送中斷信號。8086A經(jīng)過INTA引腳通知8259A中斷有效(這個過程實(shí)際上還包括對此8259A的選址),后者即經(jīng)過地址總線將對應(yīng)引腳N的中斷類型碼(已預(yù)先存好,見上節(jié))發(fā)送給CPU。CPU得到中斷類型碼后,先進(jìn)行現(xiàn)場保護(hù),主要包括:1. 狀態(tài)寄存器FLAGS壓棧(同時堆棧寄存器SP-2);2. 關(guān)閉中斷(將FLAGS寄存器的IF位置零);3. 將當(dāng)前代碼段寄存器CS和程序計(jì)數(shù)器IP壓棧(同時堆棧寄存器SP-4)。 現(xiàn)場保護(hù)完成后,CPU開始按照前述的兩步驟翻譯中斷程序入口地址。在得到中斷處理程序地址之后但調(diào)用中斷處理程序之前,CPU會再檢查一下NMI引腳是否有
43、信號,以防在剛才的處理過程中忽略了可能的NMI中斷。NMI的優(yōu)先級始終高于INTR。中斷處理程序雖然是由程序員編寫,但須循一定規(guī)范。作為例程,中斷處理程序應(yīng)該先將各寄存器信息(除了IP和CS,此二寄存器現(xiàn)已指向當(dāng)前中斷程序)壓入堆棧予以保存,這樣才能在中斷處理程序內(nèi)部使用這些寄存器。在程序結(jié)束時,應(yīng)該按與壓棧保護(hù)時相反的順序彈出各寄存器的值。中斷程序的最后一句始終是IRET指令,這條指令將棧頂6個字節(jié)分別彈出并存入IP、CS和FLAGS寄存器,完成了現(xiàn)場的還原。當(dāng)然,如果是操作系統(tǒng)的中斷處理程序,則未必一般不會還原中斷前的狀態(tài)。這樣的中斷處理程序一般會在調(diào)用完寄存器保存例程后,調(diào)用進(jìn)程調(diào)度程序
44、(多由高級語言編寫),并決定下一個運(yùn)行的進(jìn)程。隨后將此進(jìn)程的寄存器信息(上次中斷時保存下來的)存入寄存器并返回。在中斷程序結(jié)束之后,主程序也發(fā)生了改變。14. 計(jì)算機(jī)系統(tǒng)怎樣實(shí)現(xiàn)存儲保護(hù)1. 防止地址越界(對進(jìn)程所產(chǎn)生的地址必須加以檢查,發(fā)生越界時產(chǎn)生中斷,由操作系統(tǒng)進(jìn)行相應(yīng)處理)2. 防止操作越權(quán)(對屬于自己區(qū)域的信息,可讀可寫:對公共區(qū)域中允許共享的信息或獲得授權(quán)可使用的信息,可讀而不可修改;對未授權(quán)使用的信息,不可讀,不可寫)15. 調(diào)度的基本準(zhǔn)則(Scheduling Criteria)There are many criteria for comparing different sc
45、heduling algorithms. Here are five common ones: CPU utilization(CPU利用率)Throughput(吞吐量)Turnaround time(周轉(zhuǎn)時間)Waiting time(等待時間)Response time(響應(yīng)時間)16. 多線程是否真正能提高效率17. 磁盤調(diào)度算法有哪幾種FCFSSSTF (Shortest Seek Time First)Scan/LookC-Sacn/C-Look18. RAID工作原理RAID(Redundant Array of Independent D
46、isks)經(jīng)過條帶化存儲和奇偶校驗(yàn)兩個措施來實(shí)現(xiàn)其冗余和容錯的目標(biāo)。條帶化存儲意味著能夠一次寫入一個數(shù)據(jù)塊的方式將文件寫入多個磁盤。條帶化存儲技術(shù)將數(shù)據(jù)分開寫入多個驅(qū)動器,從而提高數(shù)據(jù)傳輸速率并縮短磁盤處理總時間。這種系統(tǒng)非常適用于交易處理、但可靠性卻很差,因?yàn)橄到y(tǒng)的可靠性等于最差的單個驅(qū)動器的可靠性。奇偶校驗(yàn)經(jīng)過在傳輸后對所有數(shù)據(jù)進(jìn)行冗余校驗(yàn)?zāi)軌虼_保數(shù)據(jù)的有效性。利用奇偶校驗(yàn),當(dāng)RAID系統(tǒng)的一個磁盤發(fā)生故障時,其它磁盤能夠重建該故障磁盤。在這兩種情況中,這些功能對于操作系統(tǒng)都是透明的。由磁盤陣列控制器(DAC)進(jìn)行條帶化存儲和奇偶校驗(yàn)控制。19. Windows中段最長多少字節(jié)?20. 同
47、步、互斥22. 簡述請求段頁式虛擬內(nèi)存管理基本思想Bring a page into memory only when it is needed.Less I/O neededLess memory neededFaster responseMore users Page is needed reference to itinvalid reference abortnot-in-memory bring to memory網(wǎng)絡(luò)1. 路由協(xié)議常見路由協(xié)議有:RIP,OSPF,BGP等2. CSMA/CD, 指數(shù)回退載波偵聽多路訪問沖突檢測(英語:Carrier Sense
48、Multiple Access with CollisionDetection,CSMA/CD)此方案要求設(shè)備在發(fā)送幀的同時要對信道進(jìn)行偵聽,以確定是否發(fā)生沖突,若在發(fā)送數(shù)據(jù)過程中檢測到?jīng)_突,則進(jìn)行如下沖突處理操作:1. 發(fā)送特殊阻塞信息并立即停止發(fā)送數(shù)據(jù):特殊阻塞信息是連續(xù)幾個字節(jié)的全1信號,此舉意在強(qiáng)化沖突,以使得其它設(shè)備能盡快檢測到?jīng)_突發(fā)生。2. 在固定時間(一開始是 1 contention period times)內(nèi)等待隨機(jī)的時間,再次發(fā)送。3. 若依舊碰撞,則采用進(jìn)行發(fā)送。即十次之內(nèi)停止前一次“固定時間”的兩倍時間內(nèi)隨機(jī)再發(fā)送,十次后則停止前一次“固定時間”內(nèi)隨機(jī)再發(fā)送。嘗試16
49、次之后依然失敗則放棄傳送。載波偵聽多路訪問沖突避免(英語:Carrier Sense Multiple Access with Collision Avoidance,CSMA/CA)此種方案采用主動避免碰撞而非被動偵測的方式來解決沖突問題。能夠滿足那些不易準(zhǔn)確偵測是否有沖突發(fā)生的需求,如無線網(wǎng)域。CSMA/CA協(xié)議主要使用兩種方法來避免碰撞: 1. 設(shè)備欲發(fā)送訊框(Frame),且訊框聽到通道空閑時,維持一段時間后,再等待一段隨機(jī)的時間依然空閑時,才提交數(shù)據(jù)。由于各個設(shè)備的等待時間是分別隨機(jī)產(chǎn)生的,因此很大可能有所區(qū)別,由此能夠減少沖突的可能性。2. RTS-CTS三向握手(:handsha
50、ke):設(shè)備欲發(fā)送訊框前,先發(fā)送一個很小的RTS(Request to Send)訊框給目標(biāo)端,等待目標(biāo)端回應(yīng)CTS(Clear to Send)幀后,才開始傳送。此方式能夠確保接下來傳送數(shù)據(jù)時,不會發(fā)生沖突。同時由于RTS幀與CTS幀都很小,讓傳送的無效開銷變小。3. 解釋FTP、HTTP的全稱及其原理。FTP、HTTP文件傳輸?shù)漠愅現(xiàn)TP:File Transfer ProtocolHTTP: Hyper Text Transfer Protocol都是應(yīng)用層協(xié)議。4. 七層協(xié)議的名稱PhysicalData LinkNetworkTransmissionSessionPresentati
51、onApplication5. 電子郵件發(fā)送到接收的過程,協(xié)議電子郵件的工作過程遵循客戶-服務(wù)器模式。每份電子郵件 的發(fā)送都要涉及到發(fā)送方與接收方,發(fā)送方式構(gòu)成客戶端,而接收方構(gòu)成服務(wù)器,服務(wù)器含有 眾多用戶的電子信箱。發(fā)送方經(jīng)過郵件客戶程序,將編輯好的電子郵件向郵局服務(wù)器(SMTP服 務(wù)器)發(fā)送。郵局服務(wù)器識別接收者的地址,并向管理該地址的郵件服務(wù)器(POP3服務(wù)器)發(fā) 送消息。郵件服務(wù)器識將消息存放在接收者的電子信箱內(nèi),并告知接收者有新郵件到來。接收 者經(jīng)過郵件客戶程序連接到服務(wù)器后,就會看到服務(wù)器的通知,進(jìn)而打開自己的電子信箱來查 收郵件。發(fā)送:SMTP接收:POP, IMAP6. P2
52、P技術(shù),具體的實(shí)現(xiàn)機(jī)制實(shí)現(xiàn)P2P需要一個中轉(zhuǎn)服務(wù)器。也就是需要一個第三方。(一會兒我們來說為什么需要一個第三方)7. 網(wǎng)絡(luò)中的握手問題8. 無線傳感網(wǎng)絡(luò)(WSN)及其應(yīng)用無線傳感網(wǎng)絡(luò)(Wireless sensor network),或譯無線感知網(wǎng)絡(luò),是由許多在空間中分布的自動裝置組成的一種無線通訊計(jì)算機(jī)網(wǎng)絡(luò),這些裝置使用傳感器協(xié)作地監(jiān)控不同位置的物理或環(huán)境狀況(比如溫度、聲音、振動、壓力、運(yùn)動或污染物)。無線傳感器網(wǎng)絡(luò)的發(fā)展最初起源于戰(zhàn)場監(jiān)測等軍事應(yīng)用。而現(xiàn)今無線傳感器網(wǎng)絡(luò)被應(yīng)用于很多民用領(lǐng)域,如環(huán)境與生態(tài)監(jiān)測、健康監(jiān)護(hù)、家居自動化以及交通控制等。無線傳感網(wǎng)絡(luò)主要包括三個方面:感應(yīng),通訊,計(jì)
53、算(硬件,軟件,算法)。其中的關(guān)鍵技術(shù)主要有無線數(shù)據(jù)庫技術(shù),比如使用在無線傳感器網(wǎng)絡(luò)的查詢,和用于和其它傳感器通訊的網(wǎng)絡(luò)技術(shù),特別是多次跳躍路由協(xié)議。9. 當(dāng)前網(wǎng)絡(luò)新技術(shù)及其應(yīng)用,Web2.0Web 2.0,指的是一個利用Web的平臺,由用戶主導(dǎo)而生成的內(nèi)容互聯(lián)網(wǎng)產(chǎn)品模式,為了區(qū)別傳統(tǒng)由網(wǎng)站雇員主導(dǎo)生成的內(nèi)容而定義為web2.08. 無線傳感網(wǎng)絡(luò)(WSN)及其應(yīng)用無線傳感網(wǎng)絡(luò)(Wireless sensor network),或譯無線感知網(wǎng)絡(luò),是由許多在空間中分布的自動裝置組成的一種無線通訊計(jì)算機(jī)網(wǎng)絡(luò),這些裝置使用傳感器協(xié)作地監(jiān)控不同位置的物理或環(huán)境狀況(比如溫度、聲音、振動、壓力、運(yùn)動或污染
54、物)。無線傳感器網(wǎng)絡(luò)的發(fā)展最初起源于戰(zhàn)場監(jiān)測等軍事應(yīng)用。而現(xiàn)今無線傳感器網(wǎng)絡(luò)被應(yīng)用于很多民用領(lǐng)域,如環(huán)境與生態(tài)監(jiān)測、健康監(jiān)護(hù)、家居自動化以及交通控制等。無線傳感網(wǎng)絡(luò)主要包括三個方面:感應(yīng),通訊,計(jì)算(硬件,軟件,算法)。其中的關(guān)鍵技術(shù)主要有無線數(shù)據(jù)庫技術(shù),比如使用在無線傳感器網(wǎng)絡(luò)的查詢,和用于和其它傳感器通訊的網(wǎng)絡(luò)技術(shù),特別是多次跳躍路由協(xié)議。9. 當(dāng)前網(wǎng)絡(luò)新技術(shù)及其應(yīng)用,Web2.0Web 2.0,指的是一個利用Web的平臺,由用戶主導(dǎo)而生成的內(nèi)容互聯(lián)網(wǎng)產(chǎn)品模式,為了區(qū)別傳統(tǒng)由網(wǎng)站雇員主導(dǎo)生成的內(nèi)容而定義為web2.011. TCP擁塞控制(congestion control)與流量控制(
55、flow control)的功能和區(qū)別流量控制解決的問題:通信雙方速率不匹配。方法:Sliding window,控制滑動窗口大小,自適應(yīng)速率。擁塞控制解決的問題:雙方速率都允許的情況下,如何保證途中不出問題。方法:使用RTT(Round Trip Time)以及RTO(Retransmission Time Out)以及計(jì)算這兩個量的算法,保證傳輸可能失敗的時候重傳。12. PPP協(xié)議點(diǎn)對點(diǎn)協(xié)議(英語:Point-to-Point Protocol,PPP)工作在數(shù)據(jù)鏈路層(以O(shè)SI參考模型的觀點(diǎn))。它一般見在兩節(jié)點(diǎn)間創(chuàng)立直接的連接,并能夠提供連接認(rèn)證、傳輸加密(使用ECP,RFC 1968
56、)以及壓縮。13. 集線器、路由器和交換機(jī)有什么區(qū)別。中繼器、集線器、交換機(jī)、網(wǎng)橋、網(wǎng)關(guān)、路由器的功能14. P2P網(wǎng)絡(luò)編程的特點(diǎn)?15. DNS的遞歸查詢和迭代查詢(1)遞歸查詢遞歸查詢是一種DNS 服務(wù)器的查詢模式,在該模式下DNS 服務(wù)器接收到客戶機(jī)請求,必須使用一個準(zhǔn)確的查詢結(jié)果回復(fù)客戶機(jī)。如果DNS 服務(wù)器本地沒有存儲查詢DNS 信息,那么該服務(wù)器會詢問其它服務(wù)器,并將返回的查詢結(jié)果提交給客戶機(jī)。(2)迭代查詢DNS 服務(wù)器另外一種查詢方式為迭代查詢,DNS 服務(wù)器會向客戶機(jī)提供其它能夠解析查詢請求的DNS 服務(wù)器地址,當(dāng)客戶機(jī)發(fā)送查詢請求時,DNS 服務(wù)器并不直接回復(fù)查詢結(jié)果,而是
57、告訴客戶機(jī)另一臺DNS 服務(wù)器地址,客戶機(jī)再向這臺DNS 服務(wù)器提交請求,依次循環(huán)直到返回查詢的結(jié)果為止。16. ARP協(xié)議、ARP攻擊地址解析協(xié)議(Address Resolution Protocol),其基本功能為經(jīng)過目標(biāo)設(shè)備的IP地址,查詢目標(biāo)設(shè)備的MAC地址,以保證通信的順利進(jìn)行。它是中網(wǎng)絡(luò)層必不可少的協(xié)議,不過在中已不再適用,并被鄰居發(fā)現(xiàn)協(xié)議(NDP)所替代。在以太網(wǎng)協(xié)議中規(guī)定,同一局域網(wǎng)中的一臺主機(jī)要和另一臺主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。而在TCP/IP協(xié)議中,網(wǎng)絡(luò)層和傳輸層只關(guān)心目標(biāo)主機(jī)的IP地址。這就導(dǎo)致在以太網(wǎng)中使用IP協(xié)議時,數(shù)據(jù)鏈路層的以太網(wǎng)協(xié)議接到上層IP協(xié)議提供的數(shù)據(jù)中,只包含目的主機(jī)的IP地址。于是需要一種方法,根據(jù)目的主機(jī)的IP地址,獲得其MAC地址。這就是ARP協(xié)議要做的事情。所謂地址解析(address resolution)就是主機(jī)在發(fā)送幀前將目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過程。ARP欺騙的運(yùn)作原理是由攻擊者發(fā)送假的ARP數(shù)據(jù)包到網(wǎng)絡(luò)上,特別是送到網(wǎng)關(guān)上。其目的是要讓送至特定的IP地址的流量被錯誤送到攻擊者所取代的地方。因此攻擊者可將這些流量另
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外語溝通技巧分析試題及答案
- 數(shù)據(jù)保護(hù)法在審計(jì)中的應(yīng)用試題及答案
- 中級審計(jì)師提升路徑與試題及答案的重視
- 優(yōu)化復(fù)習(xí)計(jì)劃審計(jì)師試題及答案
- 入團(tuán)考試營造氛圍試題及答案
- 中級會計(jì)學(xué)習(xí)班試題及答案
- 2025年入團(tuán)學(xué)習(xí)心得試題及答案
- 2025年建造師考試的職場價值與試題及答案
- 2025年中級會計(jì)外部考試試題及答案
- 2024年中級審計(jì)師考試輕松應(yīng)對試題及答案
- 對方不配合過戶起訴書樣本
- 可愛的中國教案全冊
- 注塑APQP資料參考
- 小數(shù)除法豎式專項(xiàng)計(jì)算144題(有答案)
- 綠城杭州江南里樣板間設(shè)計(jì)方案
- 類比法-創(chuàng)新思維
- DB4403T339-2023城市級實(shí)景三維數(shù)據(jù)規(guī)范
- 乘務(wù)員應(yīng)聘簡歷
- 設(shè)備維護(hù)工程師簡歷
- 基于單片機(jī)的電子時鐘設(shè)計(jì)與實(shí)現(xiàn)
- SMC真空壓力表ZSE30A-01-N設(shè)定
評論
0/150
提交評論