




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
公共課計算機(jī)基礎(chǔ)知識點(diǎn)概括總結(jié)為了使不同計算機(jī)廠家生產(chǎn)的計算機(jī)能夠相互通訊,以便在更大的范圍內(nèi)建立計算機(jī)網(wǎng)絡(luò),國際標(biāo)準(zhǔn)化組織(ISO)在1978年提出了“開放系統(tǒng)互聯(lián)參照模型”,即有名的OSI/RM模型(OpenSystemInterconnection/ReferenceModel)。它將計算機(jī)網(wǎng)絡(luò)系統(tǒng)構(gòu)造的通訊協(xié)議區(qū)分為七層,自下而上挨次為:物理層(PhysicsLayer)、數(shù)據(jù)鏈路層(DataLinkLayer)、網(wǎng)絡(luò)層(NetworkLayer)、傳輸層(TransportLayer)、會話層(SessionLayer)、表示層(PresentationLayer)、應(yīng)用層(ApplicationLayer)。此中第四層達(dá)成數(shù)據(jù)傳遞服務(wù),上邊三層面向用戶。除了標(biāo)準(zhǔn)的OSI七層模型以外,常有的網(wǎng)絡(luò)層次區(qū)分還有TCP/IP四層協(xié)議以及TCP/IP五層協(xié)議,它們之間的對應(yīng)關(guān)系以下所示:TCP/IP協(xié)議、三次握手和四次握手TCP/IP協(xié)議是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)講和傳輸層的TCP協(xié)議構(gòu)成。平常而言:TCP負(fù)責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號,要求從頭傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺聯(lián)網(wǎng)設(shè)施規(guī)定一個地點(diǎn)。TCP協(xié)議中有有名的三次握手和四次握手規(guī)則,以下所示:TCP連結(jié)成立過程第一Client端發(fā)送連結(jié)懇求報文,Server段接受連結(jié)后答復(fù)ACK報文,并為此次連結(jié)分派資源。Client端接收到ACK報文后也向Server段發(fā)生ACK報文,并分派資源,這樣TCP連結(jié)就成立了。TCP連結(jié)斷開過程假定Client端倡始中止連結(jié)懇求,也就是發(fā)送FIN報文。Server端接到FIN報文后,意思是說''我Client端沒有數(shù)據(jù)要發(fā)給你了'',可是假如你還有數(shù)據(jù)沒有發(fā)送達(dá)成,則不用急著封閉Socket,能夠連續(xù)發(fā)送數(shù)據(jù)。所以你先發(fā)送ACK,''告訴Client端,你的懇求我收到了,可是我還沒準(zhǔn)備好,請連續(xù)你等我的信息''。這個時候Client端就進(jìn)入FIN_WAIT狀態(tài),連續(xù)等候Server端的FIN報文。當(dāng)Server端確立數(shù)據(jù)已發(fā)送達(dá)成,則向Client端發(fā)送FIN報文,''告訴Client端,好了,我這邊數(shù)據(jù)發(fā)完了,準(zhǔn)備好封閉連結(jié)了''。Client端收到FIN報文后,''就知道能夠封閉連結(jié)了,可是他仍是不相信網(wǎng)絡(luò),怕Server端不知道要封閉,所以發(fā)送ACK后進(jìn)入TIME_WAIT狀態(tài),假如Server端沒有收到ACK則能夠重傳。“,Server端收到ACK后,''就知道能夠斷開連結(jié)了''。Client端等候了2MSL后依舊沒有收到答復(fù),則證明Server端已正常封閉,那好,我Client端也能夠封閉連結(jié)了。Ok,TCP連結(jié)就這樣封閉了!為何要三次握手?在只有兩次“握手”的情況下,假定Client想跟Server成立連結(jié),可是卻因?yàn)榘胪具B結(jié)懇求的數(shù)據(jù)報丟掉了,故Client端不得不從頭發(fā)送一遍;這個時候Server端僅收到一個連結(jié)懇求,所以能夠正常的成立連結(jié)。可是,有時Client端從頭發(fā)送懇求不是因?yàn)閿?shù)據(jù)報丟掉了,而是有可能數(shù)據(jù)傳輸過程因?yàn)榫W(wǎng)絡(luò)并發(fā)量很大在某結(jié)點(diǎn)被堵塞了,這類情況下Server端將先后收到2次懇求,并連續(xù)等候兩個Client懇求向他發(fā)送數(shù)據(jù)...問題就在這里,Cient端實(shí)質(zhì)上只有一次懇求,而Server端卻有2個響應(yīng),極端的狀況可能因?yàn)镃lient端多次從頭發(fā)送懇求數(shù)據(jù)而致使Server端最后成立了N多個響應(yīng)在等候,因此造成極大的資源浪費(fèi)!所以,“三次握手”很有必需!為何要四次握手?試想一下,若是此刻你是客戶端你想斷開跟Server的所有連結(jié)該怎么做?第一步,你自己先停止向Server端發(fā)送數(shù)據(jù),并等候Server的答復(fù)。但事情還沒有完,固然你自己不往Server發(fā)送數(shù)據(jù)了,可是因?yàn)槟銈円郧耙呀?jīng)成立好同等的連結(jié)了,所以此時他也有主動權(quán)向你發(fā)送數(shù)據(jù);故Server端還得停止主動向你發(fā)送數(shù)據(jù),并等候你的確認(rèn)。其實(shí),說白了就是保證兩方的一個合約的完好履行!進(jìn)度與線程定義進(jìn)度是擁有必定獨(dú)立功能的程序?qū)τ谀硞€數(shù)據(jù)會合上的一次運(yùn)轉(zhuǎn)活動,進(jìn)度是系統(tǒng)進(jìn)行資源分派和調(diào)動的一個獨(dú)立單位.線程:當(dāng)一個進(jìn)度內(nèi)有多個線程時,線程的程序是其所屬進(jìn)度的一部分,表示進(jìn)度中的一個控制點(diǎn),履行一系列的指令。同屬一個進(jìn)度的其余的線程共享進(jìn)度所擁有的所有資源(包含地點(diǎn)空間)。它是比進(jìn)度更小的能獨(dú)立運(yùn)轉(zhuǎn)的基本單位.線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)轉(zhuǎn)中必不行少的資源(如程序計數(shù)器,一組寄存器和棧),所以,它的創(chuàng)立、撤除、切換所需要的時空開支比進(jìn)度要小。線程的引入可進(jìn)一步提升系統(tǒng)的并發(fā)性。差異進(jìn)度和線程的主要差異在于它們是不同的操作系統(tǒng)資源管理方式。進(jìn)度有獨(dú)立的地點(diǎn)空間,一個進(jìn)度崩潰后,在保護(hù)模式下不會對其余進(jìn)度產(chǎn)生影響,而線程不過一個進(jìn)度中的不同履行路徑。線程有自己的貨倉和局部變量,但線程之間沒有獨(dú)自的地點(diǎn)空間,一個線程死掉就等于整個進(jìn)度死掉,所以多進(jìn)度的程序要比多線程的程序強(qiáng)健,但在進(jìn)度切換時,耗資資源較大,效率要差一些。但對于一些要求同時進(jìn)行而且又要共享某些變量的并發(fā)操作,只好用線程,不可以用進(jìn)度。調(diào)動分派:線程是可調(diào)動分派的工作單元,它包含辦理器上下文環(huán)境和棧中自己的數(shù)據(jù)地區(qū)。線程次序履行,而且能夠中止,這樣辦理器能夠轉(zhuǎn)到另一個線程。在有線程的系統(tǒng)中,進(jìn)度不再是可調(diào)動分派的工作單元。資源擁有:進(jìn)度是一個或多個線程和有關(guān)資源的會合。線程基本不擁有資源,它的運(yùn)轉(zhuǎn)資源取決于其所屬的進(jìn)度。地點(diǎn)空間:不同進(jìn)度的地點(diǎn)空間是相互獨(dú)立的,而同一個進(jìn)度的各線程共享同一地點(diǎn)空間。一個進(jìn)度可包含一個或多個線程,反過來則否則。一個進(jìn)度中的線程在另一個進(jìn)度中時不行見的。通訊關(guān)系:進(jìn)度間的通訊一定使用操作系統(tǒng)供給的進(jìn)度間通訊體制,而同一個進(jìn)度中的各線程間能夠經(jīng)過直接讀寫數(shù)據(jù)段來進(jìn)行通訊。自然,同一個進(jìn)程中的各線程間的通訊也需要同步和互斥手段的協(xié)助,以保證數(shù)據(jù)一致性。4、進(jìn)度調(diào)動算法(1)先來先服務(wù)(FCFS,F(xiàn)irst-Come-First-Served):此算法的原則是依據(jù)作業(yè)抵達(dá)后備作業(yè)行列(或進(jìn)度進(jìn)入就緒行列)的先后序次來選擇作業(yè)(或進(jìn)度)。(2)短作業(yè)優(yōu)先(SJF,ShortestProcessNext):這類調(diào)動算法主要用于作業(yè)調(diào)動,它從作業(yè)后備行列中精選所需運(yùn)轉(zhuǎn)時間(預(yù)計值)最短的作業(yè)進(jìn)入主存運(yùn)轉(zhuǎn)。(3)時間片輪轉(zhuǎn)調(diào)動算法(RR,Round-Robin):當(dāng)某個進(jìn)度履行的時間片用完時,調(diào)動程序便停止該進(jìn)度的履行,并將它送就緒行列的末端,等候分派下一時間片再履行。而后把辦理機(jī)分派給就緒行列中新的隊首進(jìn)度,同時也讓它履行一個時間片。這樣就能夠保證就緒行列中的所有進(jìn)度,在一給定的時間內(nèi),均能獲取一時間片辦理機(jī)履行時間。(4)高響應(yīng)比優(yōu)先(HRRN,HighestResponseRatioNext):依據(jù)高響應(yīng)比((已等候時間+要求運(yùn)轉(zhuǎn)時間)/要求運(yùn)轉(zhuǎn)時間)優(yōu)先的原則,在每次選擇作業(yè)投入運(yùn)轉(zhuǎn)時,先計算此時后備作業(yè)行列中每個作業(yè)的響應(yīng)比RP而后選擇其值最大的作業(yè)投入運(yùn)轉(zhuǎn)。(5)優(yōu)先權(quán)(Priority)調(diào)動算法:依據(jù)進(jìn)度的優(yōu)先權(quán)大小來調(diào)動,使高優(yōu)先權(quán)進(jìn)度獲取優(yōu)先辦理的調(diào)動策略稱為優(yōu)先權(quán)調(diào)動算法。(6)多級行列調(diào)動算法:多行列調(diào)動是依據(jù)作業(yè)的性質(zhì)和種類的不同,遷就緒行列再分為若干個子行列,所有的作業(yè)(或進(jìn)度)按其性質(zhì)排入相應(yīng)的行列中,而不同的就緒行列采納不同的調(diào)動算法。5、死鎖什么是死鎖在兩個或多個并發(fā)進(jìn)度中,假如每個進(jìn)度擁有某種資源而又都等候其余進(jìn)度開釋它或它們此刻保持著的資源,在未改變這類狀態(tài)以前都不可以向前推動,稱這一組進(jìn)度產(chǎn)生了死鎖。平常地講,就是兩個或多個進(jìn)度被無窮期地堵塞、相互等候的一種狀態(tài)。產(chǎn)存亡鎖的原由死鎖產(chǎn)生的原由主若是:1、系統(tǒng)資源不足;2、進(jìn)度推動次序非法。產(chǎn)存亡鎖有四個必需條件:(1)互斥:一個資源每次只好被一個進(jìn)度使用;(2)不行搶占進(jìn)度已獲取的資源,在未使用完以前,不可以強(qiáng)行剝奪;(3)據(jù)有并等候一個進(jìn)度因懇求資源而堵塞時,對已獲取的資源保持不放;(4)環(huán)形等候若干進(jìn)度之間形成一種首尾相接的循環(huán)等候資源關(guān)系。這四個條件是死鎖的必需條件,只需系統(tǒng)發(fā)存亡鎖,這些條件必定成立,而只需上述條件之一不知足,就不會發(fā)存亡鎖。怎樣防止死鎖理解了死鎖的原由,特別是產(chǎn)存亡鎖的四個必需條件,就能夠最大可能地防止、預(yù)防和排除死鎖。所以,在系統(tǒng)設(shè)計、進(jìn)度調(diào)動等方面注意怎樣不讓這四個必需條件成立,怎樣確立資源的合理分派算法,防止進(jìn)度永遠(yuǎn)據(jù)有系統(tǒng)資源。其余,也要防備進(jìn)度在處于等候狀態(tài)的狀況下占用資源。所以,對資源的分派要賜予合理的規(guī)劃。下邊介紹幾種常有的死鎖解決方法:設(shè)置加鎖次序當(dāng)多個線程需要同樣的一些鎖,可是依據(jù)不同的次序加鎖,死鎖就很簡單發(fā)生。假如能保證所有的線程都是依據(jù)同樣的次序獲取鎖,那么死鎖就不會發(fā)生。看下邊這個例子:假如一個線程(比方線程3)需要一些鎖,那么它一定依據(jù)確立的次序獲取鎖。它只有獲取了從次序上排在前面的鎖以后,才能獲取后邊的鎖。比如,線程2和線程3只有在獲取了鎖A以后才能試試獲取鎖C(譯者注:獲取鎖A是獲取鎖C的必需條件)。因?yàn)榫€程1已經(jīng)擁有了鎖A,所以線程2和3需要向來等到鎖A被開釋。而后在它們試試對B或C加鎖以前,一定成功地對A加了鎖。依據(jù)次序加鎖是一種有效的死鎖預(yù)防體制。可是,這類方式需要你預(yù)先知道所有可能會用到的鎖,但總有些時候是沒法預(yù)知的。加鎖時限此外一個能夠防止死鎖的方法是在試試獲取鎖的時候加一個超不時間,這也就意味著在試試獲取鎖的過程中若超出了這個時限該線程則放棄對該鎖懇求。若一個線程沒有在給定的時限內(nèi)成功獲取所有需要的鎖,則會進(jìn)行回退并開釋所有已經(jīng)獲取的鎖,而后等候一段隨機(jī)的時間再重試。這段隨機(jī)的等候時間讓其余線程有時機(jī)試試獲取同樣的這些鎖,而且讓該應(yīng)用在沒有獲取鎖的時候能夠連續(xù)運(yùn)轉(zhuǎn)。死鎖檢測死鎖檢測是一個更好的死鎖預(yù)防體制,它主若是針對那些不行能實(shí)現(xiàn)按次加鎖而且鎖超時也不行行的場景。每當(dāng)一個線程獲取了鎖,會在線程和鎖有關(guān)的數(shù)據(jù)構(gòu)造中(map、graph等等)將其記下。除此以外,每當(dāng)有線程懇求鎖,也需要記錄在這個數(shù)據(jù)構(gòu)造中。當(dāng)一個線程懇求鎖失敗時,這個線程能夠遍歷鎖的關(guān)系圖看看能否有死鎖發(fā)生。比如,線程A懇求鎖7,可是鎖7這個時候被線程B擁有,這時線程A就能夠檢查一下線程B能否已經(jīng)懇求了線程A目前所擁有的鎖。假如線程B的確有這樣的懇求,那么就是發(fā)生了死鎖(線程A擁有鎖1,懇求鎖7;線程B擁有鎖7,懇求鎖1)。自然,死鎖一般要比兩個線程互對擁有對方的鎖這類狀況要復(fù)雜的多。線程A等候線程B,線程B等候線程C,線程C等候線程D,線程D又在等候線程A。線程A為了檢測死鎖,它需要遞進(jìn)地檢測所有被B懇求的鎖。從線程B所懇求的鎖開始,線程A找到了線程C,而后又找到了線程D,發(fā)現(xiàn)線程D懇求的鎖被線程A自己擁有著。這是它就知道發(fā)生了死鎖。下邊是一幅對于四個線程(A,B,C和D)之間鎖據(jù)有和懇求的關(guān)系圖。像這樣的數(shù)據(jù)構(gòu)造就能夠被用來檢測死鎖。那么當(dāng)檢測出死鎖時,這些線程該做些什么呢?一個可行的做法是開釋所有鎖,回退,而且等候一段隨機(jī)的時間后重試。這個和簡單的加鎖超時近似,不同樣的是只有死鎖已經(jīng)發(fā)生了才回退,而不會是因?yàn)榧渔i的懇求超時了。固然有回退和等候,可是假如有大批的線程競爭同一批鎖,它們?nèi)允菚貜?fù)地死鎖(編者注:原由同超時近似,不可以從根本上減少競爭)。一個更好的方案是給這些線程設(shè)置優(yōu)先級,讓一個(或幾個)線程回退,剩下的線程就像沒發(fā)存亡鎖同樣連續(xù)保持著它們需要的鎖。假如給予這些線程的優(yōu)先級是固定不變的,同一批線程老是會擁有更高的優(yōu)先級。為防止這個問題,能夠在死鎖發(fā)生的時候設(shè)置隨機(jī)的優(yōu)先級。6、高速緩存CacheCache的原理Cache,即高速緩存,是介于CPU和內(nèi)存之間的高速小容量儲存器。在金字塔式儲存系統(tǒng)中它位于自頂向下的第二層,僅次于CPU寄存器。其容量遠(yuǎn)小于內(nèi)存,但速度卻能夠靠近CPU的頻次。當(dāng)CPU發(fā)出內(nèi)存接見懇求時,會先查察Cache內(nèi)能否有懇求數(shù)據(jù)。假如存在(命中),則直接返回該數(shù)據(jù);假如不存在(無效),再去接見內(nèi)存——先把內(nèi)存中的相應(yīng)數(shù)據(jù)載入緩存,再將其返回辦理器。供給“高速緩存”的目的是讓數(shù)據(jù)接見的速度適應(yīng)CPU的辦理速度,經(jīng)過減少接見內(nèi)存的次數(shù)來提升數(shù)據(jù)存取的速度。Cache技術(shù)所依靠的原理是”程序履行與數(shù)據(jù)接見的局部性原理“,這類局部性表此刻兩個方面:時間局部性:假如程序中的某條指令一旦履行,不久此后該指令可能再次執(zhí)行,假如某數(shù)據(jù)被接見過,不久此后該數(shù)據(jù)可能再次被接見。空間局部性:一旦程序接見了某個儲存單元,在不久以后,其鄰近的儲存單元也將被接見,即程序在一段時間內(nèi)所接見的地點(diǎn),可能集中在必定的范圍以內(nèi),這是因?yàn)橹噶罨驍?shù)據(jù)往常是次序寄存的。時間局部性是經(jīng)過快要來使用的指令和數(shù)據(jù)保留到Cache中實(shí)現(xiàn)。空間局部性往常是使用較大的高速緩存,并將預(yù)取體制集成到高速緩存控制邏輯中來實(shí)現(xiàn)。Cache替代策略(頁面置換算法)Cache的容量是有限的,當(dāng)Cache的空間都被占滿后,假如再次發(fā)生緩存失效,就一定選擇一個緩存塊來替代掉。常用的替代策略有以下幾種:(1)最正確置換算法(Optimal):即選擇那些永不使用的,或許是在最長時間內(nèi)不再被接見的頁面置換出去。(它是一種理想化的算法,性能最好,但在實(shí)質(zhì)上難于實(shí)現(xiàn))。(2)先進(jìn)先出置換算法FIFO:該算法老是裁減最初進(jìn)入內(nèi)存的頁面,即選擇在內(nèi)存中駐留時間最久的頁面予以裁減。(3)近來最久未使用置換算法LRU(LeastRecentlyUsed):該算法是選擇近來最久未使用的頁面予以裁減,系統(tǒng)在每個頁面設(shè)置一個接見字段,用以記錄這個頁面自上一次被接見以來所經(jīng)歷的時間T,當(dāng)要裁減一個頁面時,選擇T最大的頁面。(4)Clock置換算法:也叫近來未用算法NRU(NotRecentlyUs
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 框架協(xié)議單價合同
- 酒吧員工安全協(xié)議合同
- 解除銷售合同協(xié)議范本
- 離婚協(xié)議勞動合同
- 解除合同免責(zé)協(xié)議
- 餐廳物業(yè)托管協(xié)議合同
- 清理垃圾合同書
- 農(nóng)藝師的專業(yè)知識重要性探討試題及答案
- 2024年福建事業(yè)單位考試考生備考心得試題及答案
- 2024年輔導(dǎo)員崗位責(zé)任與權(quán)利分析試題及答案
- The+Little+Woman英文名著《小婦人》整本書閱讀指導(dǎo)課件
- 高等學(xué)校學(xué)生學(xué)籍信息更改審批表
- BIM項目管理沙盤
- 慢性胃炎中醫(yī)癥候評分表
- 學(xué)生心理健康檔案表格
- 臨時用電施工組織設(shè)計(總體)
- 2023年神東煤炭集團(tuán)招聘筆試題庫及答案解析
- YY/T 1723-2020高通量基因測序儀
- GB/T 40276-2021柔巾
- GB/T 25052-2010連續(xù)熱浸鍍層鋼板和鋼帶尺寸、外形、重量及允許偏差
- GA/T 965-2011法庭科學(xué)DNA親子鑒定規(guī)范
評論
0/150
提交評論