一、特點不同
創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元永登做網(wǎng)站,已為上家服務(wù),為永登各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
Windows系統(tǒng)直觀、高效的面向?qū)ο蟮膱D形用戶界面,易學(xué)易用,Windows用戶界面和開發(fā)環(huán)境都是面向?qū)ο蟮?,這種操作方式模擬了現(xiàn)實世界的行為,易于理解、學(xué)習(xí)和使用;Linux適用性強,微型計算機的Linux系統(tǒng)也能夠移植到大型計算機中運行。
二、軟件獲取的途徑不一樣
windows系統(tǒng)每一種特定功能可能都需要商業(yè)軟件的支持,需要購買相應(yīng)的授權(quán);linux系統(tǒng)大部分軟件都可以自由獲取,同樣功能的軟件選擇較少。
三、源代碼公布不一樣
linux系統(tǒng)源代碼完全公開;Windows系統(tǒng)只留出必要的接口。
四、兼容不一樣
Windows系統(tǒng)兼容軟件比較多;linux系統(tǒng)則兼容比較少。
五、穩(wěn)定性不同
Linux的主機連續(xù)運行一年以上不藍(lán)屏、不關(guān)機是很平常的事;而Windows系統(tǒng)有時候會莫名其妙的藍(lán)屏。
六、要求不一樣
windows系統(tǒng)使用比較簡單,容易入門。圖形化界面對沒有計算機背景知識的用戶使用十分有利;linux系統(tǒng)圖形界面使用簡單,容易入門。文字界面,需要學(xué)習(xí)才能掌握。
七、學(xué)習(xí)的難度不一樣
windows系統(tǒng)構(gòu)造復(fù)雜、變化頻繁,且知識、技能淘汰快,深入學(xué)習(xí)困難;linux系統(tǒng)構(gòu)造簡單、穩(wěn)定,且知識、技能傳承性好,深入學(xué)習(xí)相對容易。
以mas os為例,如果你不是蘋果電腦的話,難度系數(shù)可以達到四顆星。虛擬機能使用就很厲害了,你得配置clower文件,關(guān)鍵還要看有沒有支持你主板的clower文件,這個是系統(tǒng)跑碼重要步驟,就算后面你成功了也有百分之九十的電腦裝不了網(wǎng)卡驅(qū)動,上不了網(wǎng),安裝系統(tǒng)前不僅要配置clower文件,還要蘋果鏡像,還要空出一個磁盤,轉(zhuǎn)換為os可以讀取的格式。
作為曾經(jīng)的碼農(nóng)來回答一下
開發(fā)一個類似win的成熟的桌面級操作系統(tǒng),難度高過眾所周知的曼哈頓計劃和登月計劃,是不是覺得有些夸張?但事實可能就是這樣。
vista代碼行數(shù)5000萬行,打印出來是170萬頁A4紙,耗資超過200億美元,這還是有了微軟那么多年積累,只開發(fā)vista的費用,win7 4000萬行,win10數(shù)據(jù)沒有公布,但行業(yè)預(yù)估在5000到7000萬行。
win7公開的開發(fā)工作人數(shù)是23個小組,每個小組約40人,分別負(fù)責(zé)windows中的每個模塊的開發(fā),比如設(shè)備和媒體,文件系統(tǒng),桌面圖形等等,這還是在vista基礎(chǔ)上的開發(fā),并不是從頭開發(fā)。
windows的發(fā)展已經(jīng)有了30年,中間的積累,走的彎路都不是外人可以輕易得知的。
我國的自助操作系統(tǒng),實際都是開源系統(tǒng)的二次開發(fā),遠(yuǎn)不是從0開始的建設(shè),而且軟件的開發(fā)并不是1+1=2那么簡單。不是說你能蓋5層樓,我給你投兩倍人力物力你就能蓋出十層樓來。
說個有趣的小故事吧,微軟的excel現(xiàn)在已經(jīng)成為了祖?zhèn)鞔a,里邊存在很多無用代碼,但微軟自己都不敢把excel重新寫一遍。
經(jīng)過一天半的戰(zhàn)斗,終于把操作系統(tǒng)概論這本書給拿下了。對于曾經(jīng)專業(yè)課學(xué)過一些電腦硬件知識的我來說,這本書更加吸引我,以前一些聽過的名詞或高大上的詞語在這本書上被詳細(xì)介紹了,看的非常有收獲。下面來總結(jié)下自己的收獲:
首先第一章引論,在這里首先介紹了計算機系統(tǒng),包括了軟件和硬件兩部分。
接下來就是第一章的重點:操作系統(tǒng)。如下圖:
當(dāng)前流行的操作系統(tǒng)有windows、unix、linux等。微軟的windows系統(tǒng)經(jīng)歷了一個從簡單到復(fù)雜,從低級到高級的過程;從ms-dos---windows 3---windows 95---windows 98---windows nt---windows 2000,再到現(xiàn)在win7、8甚至win10,微軟始終在進步。unix是一個通用的交互式分時操作系統(tǒng),有att公司下屬的bell實驗室開發(fā),在誕生后,源代碼就一直公開,用戶可以參與到unix的升級中。unix的特點:1.短小精悍;2.可裝卸的多層次文件系統(tǒng);3.可移植性好;4.網(wǎng)絡(luò)通信功能強。linux是網(wǎng)絡(luò)時代的產(chǎn)品,繼承于unix,并做了很多改進。
第一章總領(lǐng)了全書,后面的二三四五六章都是講的計算機的各種管理,總結(jié)如下圖:
在這里我把每章中的重點用紅色的顏色標(biāo)記出來了,這樣在精讀的時候就可以有重點的向外擴散,抓住考點,征服考試。第一遍閱讀畫的有點粗糙,在精讀的時候再大大的豐富下。
操作系統(tǒng)概念學(xué)結(jié) [篇2]
1.什么是計算機性能
所謂計算機的性能(performance)通常是指計算機的速度,它是程序執(zhí)行時間的倒數(shù)。而程序執(zhí)行時間是指用戶向計算機送入一個任務(wù)后,直到獲得他需要的結(jié)果這一段等待時間。
包括:
1.訪問磁盤和訪問存儲器的時間
2.cpu 運算時間
#url#動作時間
4.操作系統(tǒng)的開銷時間等。
2.linux桌面操作系統(tǒng)性能分析意義
1.操作系統(tǒng)的性能直接影響了其上應(yīng)用系統(tǒng)的性能
2.性能評估結(jié)果是用戶在操作系統(tǒng)選購過程中的重要參考指標(biāo)
3.為開發(fā)者優(yōu)化操作系統(tǒng)的性能提供指導(dǎo)
4.為操作系統(tǒng)的評測提供依據(jù)
3.linux桌面操作系統(tǒng)性能分析難點
1.應(yīng)用千差萬別
2.測試點過多
3.依賴多種因素和特征
4.沒有針對性
5.沒有實際應(yīng)用前景
4.如何評測計算機的性能
1.機器級的性能評測
機器級的性能評測,包括 cpu 和存儲器的某些基本性能指標(biāo),計算機的可用性與有效性以及機器成本、價格與性/價比等,它是引進和購買計算機時最主要的選擇依據(jù)。
2.算法級的性能評測
算法級的性能評測方法主要用于并行機評測,最初大都是為了評價并行算法的性能提出的,后來這些評測方法也被推廣到并行程序上。
3.程序級的性能評測
程序級的性能評測主要是使用一組基準(zhǔn)測試程序(benchmark)測試和評價計算機系統(tǒng)的各種性能。
5.測試程序準(zhǔn)確度層次
1.真實程序
通過運行實際應(yīng)用程序, 例如 c 語言的各種編譯程序、 tex 文本處理軟件、 cad 設(shè)計工具 spice等
2.核心程序
它是從實際程序中抽取少量但很關(guān)鍵的代碼段,并以此來評估程序性能
3.小測試程序
這些測試程序的代碼長度一般在100行之內(nèi),用戶可以根據(jù)自己的目的隨時編寫一些小段程序,并按已預(yù)知的輸出結(jié)果(如皇后問題、排序問題、求素數(shù)等)來判斷機器的性能。
4.綜合測試程序
它是首先對大量的應(yīng)用程序中的操作進行統(tǒng)計,得到各種操作比例,再以此比例人為制造出測試程序。
6.基準(zhǔn)測試 6.1 含義
基準(zhǔn)測試程序用于測試和預(yù)測計算機系統(tǒng)的性能, 揭示不同結(jié)構(gòu)機器的長處和短處,為用戶決定購買或使用哪種機器最適合他們的應(yīng)用要求提供決策?;鶞?zhǔn)測試程序試圖提供一個客觀、公正的評價機器性能的標(biāo)準(zhǔn)。
6.2 分類
宏觀微觀:
宏觀基準(zhǔn)測試程序(macro-benchmark)和微觀基準(zhǔn)測試程序(micro-benchmark)兩大類。 前者將計算機系統(tǒng)作為一個整體來測試其性能,它相對于某一應(yīng)用類來比較不同的計算機系統(tǒng),所以對機器買主很有用,但它不能揭示計算機系統(tǒng)性能好、壞的原因。后者是測試機器的某一特定方面的性質(zhì),如cpu速度、存儲器速度、i/o速度、os性能、網(wǎng)絡(luò)特性等。
應(yīng)用類別:
定點性能
浮點性能
web服務(wù)性能
數(shù)據(jù)處理性能
系統(tǒng)軟件性能
科學(xué)與工程計算性能
6.3 主要的基準(zhǔn)測試工具
lmbench
是由sgi的larry mcvoy所維護,是一種用于測試不同 unix 平臺上 os 開銷以及處理器、高速緩存、主存、網(wǎng)絡(luò)和磁盤之間數(shù)據(jù)傳輸能力的可移植的基準(zhǔn)測試程序。
whetstone
比較不同的計算機的浮點性能而設(shè)計的綜合性基準(zhǔn)測試程序。lmbench 著重測量以下內(nèi)核組件:調(diào)度程序、進程管理、通信、聯(lián)網(wǎng)、內(nèi)存映射和文件系統(tǒng)。
dhrystone
主要為測試整數(shù)與邏輯運算性能而設(shè)計的綜合型基準(zhǔn)測試程序whetstone,dhrystone不能預(yù)測用戶程序性能,這些基準(zhǔn)程序的主要缺點是對編譯程序比較敏感。
linpack
測試的基準(zhǔn)是用全精度64位字長的子程序求解100階線性方程組的速度,測試的結(jié)果以mflops(每秒百萬次浮點運算)作單位給出。
spec
原主要是測試cpu性能的,現(xiàn)在強調(diào)開發(fā)能反映真實應(yīng)用(如實際負(fù)載等)的基準(zhǔn)測試程序,并已推廣至客戶/服務(wù)器計算、商業(yè)應(yīng)用、i/o子系統(tǒng)等。
unixbench
應(yīng)用比較廣泛的unix類操作系統(tǒng)性能測試工具之一,它屬于微觀基準(zhǔn)測試程序,它主要從cpu浮點運算能力,以不同緩沖區(qū)大小拷貝不同大小文件,管道吞吐量,進程生成速度,系統(tǒng)調(diào)用開銷等方面來測試linux相關(guān)性能。
xbench
主要測試 xwindow 圖形界面的性能。
iozone
文件系統(tǒng)的評測工具,對read,write,re-read,re-write,read backwards,read
strided,fread,fwrite,random read,pread,mmap,aio-read,aio_write 等一系列文件i/o性能進行了評測,是十分有用的文件系統(tǒng)性能分析工具。
ltp
最大的 linux 性能測試團體 linux test project 開展的開源測試項目, 這個團體專門從事 linux 性能測試研究。 這個項目收集了各種 linux 內(nèi)核測試工具和相關(guān)資料, 它的目標(biāo)就是為了通過把自動化測試引入到 linux 內(nèi)核測試以提高linux 內(nèi)核性能。
6.4 現(xiàn)狀和不足
linux 基準(zhǔn)測試程序都是微觀基準(zhǔn)測試程序,都是在測試機器的某一特定方面的性質(zhì),分別著重于 cpu 速度、存儲器速度、i/o 速度、網(wǎng)絡(luò)特性等等某一方面或多個方面,偏重于硬件。把 linux 操作系統(tǒng)作為一個整體,針對 linux 的操作系統(tǒng)性能的宏觀基準(zhǔn)測試程序目前還沒有。
現(xiàn)有的linux測試工具都是基于微觀基準(zhǔn)測試程序,對于操作系統(tǒng)而言微觀可測點實在是太多,寫一個全面的基于自頂向下三層的全面測試工具工作量大,并且也沒有太大實用價值。畢竟應(yīng)用是千差萬別的,不利于在有限的時間內(nèi)快速的得出 linux 版本性能優(yōu)劣結(jié)論。
7.性能評測方法學(xué)
如何進行性能評測,一般一個性能評測的實際解決方案應(yīng)該包括以下三個方面:
1.讓被評測系統(tǒng)處于壓力負(fù)荷下;
2.測量系統(tǒng)執(zhí)行有效特定任務(wù)的能力,執(zhí)行特定任務(wù)的耗時,執(zhí)行特定任務(wù)的 cpu 利用率;
3.基于性價比考慮進行改進。進行性能評測分析的目的是為了幫助開發(fā)人員更好更深層次的理解系統(tǒng), 找出系統(tǒng)瓶頸,并作出相應(yīng)的改進。
8.三種性能評價技術(shù)
1.分析技術(shù)(modeling)
分析技術(shù)也叫建模分析,在一定假設(shè)條件下,計算機系統(tǒng)參數(shù)與性能指標(biāo)參數(shù)之間存在著某種函數(shù)關(guān)系,按其工作負(fù)載的驅(qū)動條件列出方程,用數(shù)學(xué)方法求解。
2.模擬技術(shù)(simulation)
模擬技術(shù)按被評價系統(tǒng)的運行特性建立系統(tǒng)模型; 按系統(tǒng)可能有的工作負(fù)載特性建立工作負(fù)載模型;語言編寫模擬程序,模仿被評價系統(tǒng)的運行;設(shè)計模擬實驗,依照評價目標(biāo),選擇與目標(biāo)有關(guān)因素,得出實驗值,再進行統(tǒng)計、分析。該技術(shù)的特點是可應(yīng)用于設(shè)計中或?qū)嶋H應(yīng)用中的系統(tǒng),可與分析技術(shù)相結(jié)合,構(gòu)成一個混合系統(tǒng)。
3.測量技術(shù)(measurement)
測量技術(shù)只能對已投入使用的系統(tǒng)進行測量, 通常采用不同層次的基準(zhǔn)測試。
9.工作量選區(qū)(workload)
工作量就是模擬實際工作的工作任務(wù),一個工作量它要產(chǎn)生針對該被評測系統(tǒng)實際工作應(yīng)用的典型的工作任務(wù),并且該工作任務(wù)應(yīng)該對系統(tǒng)產(chǎn)生相應(yīng)的壓力負(fù)荷 ,一個好的性能評測工作量應(yīng)該包括以下基本特征。
可測量性
可反復(fù)性
不變性
典型性
10.自頂向下分析法
1.系統(tǒng)層(system level):包括處理器、內(nèi)存、硬盤、網(wǎng)絡(luò)等;(硬件資源)
2.應(yīng)用層(appalication level):包括鎖、線程、堆、api 等;(程序資源)1
3.微結(jié)構(gòu)層(micro-achitecture):包括數(shù)據(jù)隊列、循環(huán)結(jié)構(gòu)、cache 優(yōu)化等。
11.衡量linux桌面系統(tǒng)性能評價的主要標(biāo)準(zhǔn)和參數(shù)
1.響應(yīng)時間(elapsed time)
內(nèi)核完成某一任務(wù)(程序)所花費的時間,如磁盤訪問、存儲器訪問、輸入/
輸出等待。
2.cpu 時間
程序在cpu中的執(zhí)行時間。以秒為單位。
3.cpu 利用率
12.衡量linux桌面操作系統(tǒng)性能評價的主要標(biāo)準(zhǔn)
提供一個統(tǒng)一的、客觀的、公正的和可相互比較的評價計算機的標(biāo)準(zhǔn)。
1.權(quán)威性
不是自己憑空想象,要有可靠的理論及事實依據(jù)支撐,業(yè)界廣泛認(rèn)可。
2.系統(tǒng)化
不是現(xiàn)有benchmark和工具的簡單組合,而是能夠系統(tǒng)化評估整機性能的方案。
它能夠反映出整個計算機軟件及硬件的綜合處理能力,而不單純是軟件或者硬件,也就是說同一個硬件平臺上測試,能夠反映出不同操作系統(tǒng)性能不同,且在同一個操作系統(tǒng),在不同的硬件平臺上,性能測試也應(yīng)該有所不同。
3.全面性
是對整機的整體性能測試,不是單純的某個硬件或者某一方面能力的測試。
4.實用
要求該方法有實用價值,參考意義。
5.公正性
不一某些利益為目的的。
13.如何確定測試負(fù)載
從微觀基準(zhǔn)理論的角度來看,操作系統(tǒng)的基本性能參數(shù)實在是太多,基本性能參數(shù)測試包括 cpu、內(nèi)存、i/o、網(wǎng)絡(luò)、操作系統(tǒng)、文件系統(tǒng)、編譯器、數(shù)據(jù)庫的性能指標(biāo)。
從宏觀基準(zhǔn)測試?yán)碚摮霭l(fā)就簡單多了, 主要是要確定合適的工作量來模擬有代表性的用戶作業(yè)。工作量的確定需要一定的理論依據(jù),可以借鑒現(xiàn)有各種linux 測試工具實踐結(jié)果。
14.如何測試linux操作系統(tǒng)性能
linux 桌面操作系統(tǒng)是近幾年來基于 linux 內(nèi)核發(fā)展起來的面向用戶桌面應(yīng)用的操作系統(tǒng),內(nèi)核還是基于 linux,只是在其上添加了很多窗口程序,并且在用戶界面和友好度上作出了很大的改進,更加易用和實用。
測試 linux 性能的關(guān)健在于測試 linux 內(nèi)核性能,而測試 linux內(nèi)核性能又可以細(xì)化成五大子系統(tǒng)的測試??梢葬槍?nèi)核這五大子系統(tǒng)設(shè)計工作量負(fù)載。
操作系統(tǒng)概念學(xué)結(jié) [篇3]
linux操作系統(tǒng)學(xué)結(jié)(一)
最近粗略地看了一遍linux操作系統(tǒng)的書籍,主要講的都還是一些概念上的知識,并沒有深入地去了解內(nèi)核以及內(nèi)部機制?,F(xiàn)在總結(jié)一下看了書后的一些知識上的收獲:
linux最大的魅力是支持gpl,并且以網(wǎng)絡(luò)為核心。其實操作系統(tǒng)的作用就是有效地整合軟、硬件資源而為用戶工作。操作系統(tǒng)提高了開發(fā)的效率,我學(xué)習(xí)linux,關(guān)鍵也是在于研究了解其內(nèi)核構(gòu)造。
說到linux的歷史,其最初版本是有芬蘭的一個大學(xué)生linustorvalds開發(fā)的,現(xiàn)在的linux版本是聚集了很多人的智慧后開發(fā)出來的。linux包含了人們對操作系統(tǒng)的很多期望,比如真正的多任務(wù)、虛擬內(nèi)存、世界上最快的tcp/ip程序、共享庫以及多用戶支持等,而很多這些功能在windos中都是沒有支持的。linux繼承了unix的幾乎所有特征,又有新創(chuàng)的許多新特征。在home根目錄下可以創(chuàng)建多個用戶目錄,而實現(xiàn)多用戶操作。其文件系統(tǒng)與windos也是有很大的區(qū)別的。linux還有豐富的接口。它的源碼開放,可以跨越多個平臺??傊?,linux的強勢在與它的網(wǎng)絡(luò)功能和硬件的高效率。
linux是以獨占方式執(zhí)行最低層的任務(wù),包括程序級及用戶級的級別。與圖形界面比起來,shell用起來更加直接與快速。設(shè)備驅(qū)動程序開發(fā)在linux下顯得更加簡單和方便。從linux2.0內(nèi)核版本開始支持多內(nèi)核模式,并且引入動態(tài)的模塊技術(shù),是系統(tǒng)在運行時可以修改內(nèi)核,實現(xiàn)了內(nèi)核的動態(tài)可伸縮性,但是也帶來了一定的負(fù)面影響即不穩(wěn)定性。
我國的linux研究仍然走在世界一流水平的后面。linux內(nèi)核發(fā)展方向主要是硬件支持,嵌入式系統(tǒng)和分布式系統(tǒng)三個方面。這需要大量的硬件驅(qū)動程序開發(fā)以及互聯(lián)網(wǎng)分布式系統(tǒng)開發(fā)。
處理機即為cpu。在但處理機系統(tǒng)中,并不存在真正意義上的并發(fā)執(zhí)行,只是串行執(zhí)行的家鄉(xiāng)而已。提高處理機的使用率關(guān)鍵是要合理地安排各個程序之間的相互切換。作業(yè)其實就是用戶的一個請求,而聯(lián)機作業(yè)需要各個設(shè)備之間的交互性地執(zhí)行。shell命令具有交互性,實時性較強,可以一次執(zhí)行一條命令或者批處理執(zhí)行腳本命令。進程是動態(tài)執(zhí)行的程序。linux下的進程應(yīng)該與windos下的進程是一致的,每一個進程都有一個唯一的標(biāo)識號。而進程樹清晰地展現(xiàn)了進程之間的關(guān)系。進程控制塊pcb包含了處理器以及文件系統(tǒng)的大量信息,很多進程都是根據(jù)pcb來進行調(diào)度的。
linux中使用的虛擬存儲器的作用是使用有限的內(nèi)存發(fā)揮出巨大的作用,根據(jù)程序運行的局部原理來吧物理內(nèi)存劃分成有一定規(guī)則的小塊,每次只裝入需要運行的小塊到內(nèi)存中運行。這需要合理地調(diào)配內(nèi)存與外存之間的關(guān)系,把內(nèi)存中不需要的小塊暫時存放至外存之中,而cpu只進行部分程序的訪問。通過多次地交換內(nèi)外存之間的信息來制造假象,這就是虛擬內(nèi)存。系統(tǒng)采用段機制以及三級分頁機制。
我們知道設(shè)計操作系統(tǒng)的目的是為了最大限度地利用硬件資源,是cpu盡可能地處于工作狀態(tài),這就需要一個良好的cpu調(diào)度了。處理機調(diào)度的級別從高至低依次分為作業(yè)調(diào)度、交換調(diào)度、進程調(diào)度和線程調(diào)度。作業(yè)調(diào)度是最高級別的,是針對作業(yè)的創(chuàng)建以及結(jié)束進行的;交換調(diào)度是指進行內(nèi)外存之間進程的相互調(diào)換;進程調(diào)度是指進程的各個狀態(tài)之間的轉(zhuǎn)換;而最后的線程調(diào)度是指占用處理機與否之間的轉(zhuǎn)換。
外設(shè)通常是指除了cpu與內(nèi)存之外的硬件設(shè)備統(tǒng)稱外設(shè)。通過接口進行連接和統(tǒng)一管理。設(shè)備管理的目的是管理協(xié)同好繁多的外部設(shè)備,是它們能夠有序的工作。在linux中把設(shè)備當(dāng)作文件進行統(tǒng)一管理,可以用文件操作方式來操作硬件設(shè)備。設(shè)備驅(qū)動程序的作用是直接操作硬件,并且為其提供接口。
linux的文件系統(tǒng)是其很重要的一個部分。文件系統(tǒng)進行數(shù)據(jù)以及設(shè)備的統(tǒng)一管理,并為用戶命令和系統(tǒng)函數(shù)提供統(tǒng)一的服務(wù)接口。在進程控制塊pcb中有文件的系統(tǒng)信息。把設(shè)備均抽象為文件進行統(tǒng)一的管理,并為設(shè)備管理提供統(tǒng)一的接口。
默認(rèn)的文件系統(tǒng)是ext2。虛擬文件系統(tǒng)是位于linux文件系統(tǒng)層析結(jié)構(gòu)的頂層,進行管理各種邏輯文件系統(tǒng),或者說是同化各類邏輯文件系統(tǒng),實現(xiàn)其跨平臺的特性。
linux文件系統(tǒng)采用多重索引的方式,類似于數(shù)據(jù)結(jié)構(gòu)中的鏈表方式。文件系統(tǒng)中的每一個文件,目錄以及設(shè)備均同級,并且對應(yīng)于一個i節(jié)點。內(nèi)存中的i節(jié)點是磁盤中的i節(jié)點的映像,目的是減少設(shè)備存取的次數(shù),提高文件的訪問效率。
linux目錄本身也是一種文件,稱為目錄文件。單級目錄存在文件命名的沖突,而在多級目錄中,使用目錄樹來記錄目錄結(jié)構(gòu)。在文件共享中,一般使用文件的絕對路徑來訪問文件,如果要進行共享文件的話,必須先回溯,在向下尋找共享的文件,這樣的方法效率比較低下。而通過改進的鏈接文件的方法進行文件共享,會使目錄樹形成網(wǎng)狀結(jié)構(gòu)。
linux系統(tǒng)的根目錄是root目錄,其下面有多個默認(rèn)的子目錄。bin是實用程序的子目錄,存放常用的系統(tǒng)工具;boot子目錄存放系統(tǒng)啟動時的映像文件;dev子目錄中為每個設(shè)備均分配了一個i節(jié)點;ect是基本數(shù)據(jù)子目錄,存放系統(tǒng)的用戶口令,網(wǎng)絡(luò)配置等設(shè)置文件;home是用戶數(shù)據(jù)子目錄,默認(rèn)情況下的用戶登錄后均到達這個子目錄;lib目錄存放庫函數(shù);root是超級管理員的用戶目錄等。
虛擬文件系統(tǒng)vfs進行統(tǒng)一管理各種類型的文件系統(tǒng),無法存在于物理磁盤當(dāng)中,只能存在與內(nèi)存之中,負(fù)責(zé)管理并控制下層的邏輯文件系統(tǒng),可以支持多種不同的邏輯文件系統(tǒng),它為多種邏輯文件系統(tǒng)提供了統(tǒng)一的接口并進行管理。
總之,粗略地學(xué)習(xí)了linux操作系統(tǒng)知識后,對整個系統(tǒng)的架構(gòu)和組成有了一定的了解,特別是linux特殊的文件系統(tǒng)和存儲管理有了較深的印象和理解。今后有機會一定要更深地了解linux的內(nèi)部構(gòu)造。
操作系統(tǒng)概念學(xué)結(jié) [篇4]
1.什么叫同步? 相互合作的兩個進程之間需要在某個(些)確定點協(xié)調(diào)它們的工作,一個進程到達了該點后,除非另一進程已經(jīng)完成了某些操作,否則就不得不停下來,等待這些操作的完成。這就是進程間的同步。
什么叫互斥?
兩個進程由于不能同時使用同一臨界資源,只能在一個進程使用完了,另一進程才能使用,這種現(xiàn)象稱為進程間的互斥。
①同步的主要特征是:一個進程在某一點上等待另一進程提供信息,兩進程之間存在直接制約關(guān)系,其表現(xiàn)形式為進程—進程。②互斥的主要特征是爭用資源,兩進程間存在間接制約關(guān)系,其表現(xiàn)形式是進程—資源—進程。
2.試給出p、v操作的定義。
p、v操作是定義在信號量s上的兩個操作,其定義如下:
p(s):①s:=s-1;②若s≥0,則調(diào)用p(s)的進程繼續(xù)運行;③若s<0,則調(diào)用p(s)的進程被阻塞,并把它插入到等待信號量s的阻塞隊列中。
v(s):①s:=s+1;②若s>0,則調(diào)用v(s)的進程繼續(xù)運行;③若s≤0,則從等待信號量s的阻塞隊列中喚醒頭一個進程,然后調(diào)用v(s)的進程繼續(xù)運行。
如何利用p、v操作實現(xiàn)進程間的互斥?
p、v操作是解決同步與互斥問題的有力工具。為解決互斥問題,應(yīng)采取如下步驟: 首先根據(jù)給定問題的描述,列出各進程要執(zhí)行的程序。其次,設(shè)置信號量?;コ鈫栴}中,在臨界區(qū)前面加p(s),臨界區(qū)后面加v(s)。最后確定信號量的初值。在互斥問題中,信號量通常取為互斥資源的個數(shù)。
說明信號量的物理意義:
信號量s>0時,s的`數(shù)值表示某類可用資源的數(shù)目,執(zhí)行p操作意味著申請分配一個單位的資源;當(dāng)s≤0時,表示無資源可用,此時s的絕對值表示信號量s的阻塞隊列中的進程數(shù)。執(zhí)行v操作意味著釋放一個單位的資源。
3.如何利用p、v操作實現(xiàn)進程間的同步?
p、v操作是解決同步與互斥問題的有力工具。為解決同步問題,應(yīng)采取如下步驟:首先根據(jù)給定問題的描述,列出各進程要執(zhí)行的程序。其次,設(shè)置信號量。同步問題中有幾個同步點就設(shè)置幾個信號量,等待的地方加p(s),發(fā)信號(解除等待)的
地方加v(s)。最后確定信號量的初值。在同步問題中,信號量的初值一般取0.在同步和互斥中,信號量初值的設(shè)置有何不同:在同步問題中,信號量的初值一般取為0,在互斥問題中,信號量通常取為互斥資源的個數(shù)。
4.高級通信原語有何優(yōu)點?
能夠?qū)崿F(xiàn)在進程之間傳遞大量的信息。
在消息緩沖通信方式中,發(fā)送原語和接收原語的主要功能是什么?
發(fā)送原語的作用:將欲發(fā)送的消息從發(fā)送區(qū)復(fù)制到消息緩沖區(qū),并把它掛起在接收進程的消息緩沖隊列末尾。如果該接收進程因等待消息而處于阻塞狀態(tài),則將其喚醒。
接收原語的作用:把發(fā)送者發(fā)來的消息從消息緩沖區(qū)復(fù)制到接收區(qū),然后將消息緩沖區(qū)從消息隊列中消去,如果沒有消息可以接收,則進入阻塞狀態(tài)。
5.什么是信箱?
信箱用于存放信件,而信件是一個進程發(fā)送給另一進程的消息。
信箱的數(shù)據(jù)結(jié)構(gòu):信箱頭和信箱體。信箱頭是信箱的描述部分,信箱體由若干格子組成,每個格子可存放一個信件。
信箱頭包括的信息:①信箱名②信箱大?、垡汛嫘偶?shù)④空的格子數(shù)。
如何用信箱實現(xiàn)兩個進程之間的通信?
進程a想向進程b發(fā)送消息前,先把消息組成一封信件,然后調(diào)用send原語向進程b發(fā)送信件,并將信件投入進程b的信箱中。進程b為得到進程a的消息,只要調(diào)用receive原語就可以從信箱中索取來自進程a的信件。這就完成了一次進程a到進程b的通信過程。
6.在網(wǎng)絡(luò)操作系統(tǒng)中,為什么要采用消息傳遞的通信機制?
基于共享變量的通信方式適用于網(wǎng)絡(luò)中各節(jié)點內(nèi)部諸進程之間的通信,而基于消息傳遞的通信方式適用于網(wǎng)絡(luò)中各節(jié)點之間的進程通信。
在消息傳遞的通信機制中有哪些通信方式?①通信原語 ②遠(yuǎn)程過程調(diào)用 ③組通信。
7.什么是同步原語?
當(dāng)一個進程調(diào)用一個send原語時,在消息開始發(fā)送后,發(fā)送進程便處于阻塞狀態(tài),直至消息完全發(fā)送完畢,send原語的后繼語句才能繼續(xù)執(zhí)行。當(dāng)一個進程調(diào)用一個receive原語時,并不立即返回控制,而是等到把消息實際接收下來,并把它放入指定的接收區(qū),才返回控制,繼續(xù)執(zhí)行該原語的后繼指令。在這段時間它一直處于阻塞狀態(tài)。上述的send和receive被稱為同步通信原語或阻塞通信原語。
什么是異步原語?發(fā)送進程在調(diào)用send原語后,并不進入阻塞狀態(tài),它不等消息發(fā)送完就繼續(xù)執(zhí)行其后繼語句。
在使用異步通信原語時,發(fā)送者在消息發(fā)送完成前為什么不能使用緩沖區(qū)?
因為倘若發(fā)送進程在消息發(fā)送完成之前,即在消息發(fā)送期間使用或修改原來的緩沖區(qū),將會造成錯誤。
如何解決?
有兩種辦法(應(yīng)采用異步原語):①采用帶拷貝的非阻塞原語,即讓內(nèi)核把消息拷貝到內(nèi)核緩沖區(qū),允許調(diào)用進程繼續(xù)運行。②帶中斷的非阻塞發(fā)送,即當(dāng)消息發(fā)送完成后,中斷發(fā)送進程,通知發(fā)送進程此時緩沖區(qū)可用。
8.在進程間通信如何保證消息不會丟失?
為了保證消息被對方收到,可采用可靠原語。具體作法是:客戶向服務(wù)器方發(fā)一請求后,服務(wù)器對這一請求,由其內(nèi)核向客戶內(nèi)核返回一個確認(rèn)ack,當(dāng)客戶內(nèi)核收到這一消息后,就喚醒客戶進程。在客戶與服務(wù)器之間的請求/應(yīng)答共需四個消息:①從客戶向服務(wù)器的請求②從服務(wù)器內(nèi)核向客戶內(nèi)核返回一個確認(rèn)③從服務(wù)器到客戶的應(yīng)答④從客戶的內(nèi)核向服務(wù)器內(nèi)核返回一個確認(rèn)。
9.遠(yuǎn)程過程調(diào)用:在網(wǎng)絡(luò)或分布式系統(tǒng)中,設(shè)有任意兩個節(jié)點a、b,節(jié)點a上的進程調(diào)用節(jié)點b上的一個進程時,節(jié)點a上的進程被掛起,在節(jié)點b上執(zhí)行被調(diào)用的過程,消息以參數(shù)的形式從調(diào)用進程傳送到被調(diào)用進程,并將被調(diào)用過程執(zhí)行的結(jié)果返回給調(diào)用進程。這種通信方式稱為遠(yuǎn)程過程調(diào)用。
其基本原理是什么?
允許某一節(jié)點上的程序調(diào)用其他節(jié)點上的過程或函數(shù)。例如節(jié)點機a上的進程調(diào)用節(jié)點機b上的過程,節(jié)點機a的調(diào)用進程被掛起,在節(jié)點機b上執(zhí)行被調(diào)用過程。消息以參數(shù)的形式從調(diào)用過程傳到被調(diào)用過程,被調(diào)用過程執(zhí)行的結(jié)果再返回給調(diào)用過程。對程序員來說,他看不到消息傳遞過程和i/o處理過程。
10.rpc的透明性指的是什么?
指的是要使得遠(yuǎn)程過程調(diào)用盡可能像本地調(diào)用一樣。調(diào)用過程應(yīng)該不知道被調(diào)用過程是在另外一臺計算機上執(zhí)行,反過來也是如此,被調(diào)用過程也不應(yīng)該知道是由哪個機器上的進程調(diào)用的。如何保證這一透明性:遠(yuǎn)程過程調(diào)用為實現(xiàn)其透明性,在客戶機上設(shè)置一個客戶代理,同樣在服務(wù)器機上設(shè)置一個服務(wù)器代理。
11.簡述遠(yuǎn)程過程調(diào)用的步驟。
①客戶過程以通常方式調(diào)用客戶代理。②客戶代理構(gòu)造一個消息并陷入內(nèi)核。③本地內(nèi)核發(fā)送消息給遠(yuǎn)程內(nèi)核。④遠(yuǎn)程內(nèi)核把消息送給服務(wù)器代理。⑤服務(wù)器代理從消息包中取出參數(shù)并調(diào)用服務(wù)器。⑥服務(wù)器完成相應(yīng)的服務(wù),將結(jié)果送給服務(wù)代理。⑦服務(wù)代理將結(jié)果打包形成一個消息并陷入內(nèi)核。⑧遠(yuǎn)程內(nèi)核發(fā)送消息給客戶機內(nèi)核。⑨客戶機內(nèi)核把消息傳送給客戶代理。⑩客戶代理取出結(jié)果,返回給客戶的調(diào)用程序。并以實例說明。
12.試說明遠(yuǎn)程過程調(diào)用的優(yōu)缺點。
優(yōu)點:格式化好、使用方便、透明性好;
缺點:缺乏靈活性。
在具體實現(xiàn)上尚有哪些難點需要解決?
①遠(yuǎn)程過程調(diào)用的參數(shù)在系統(tǒng)內(nèi)不同機型之間的通用能力有所不足。②缺乏在一次調(diào)用過程中多次接收返回結(jié)果的能力。③遠(yuǎn)程過程調(diào)用缺乏傳送大量數(shù)據(jù)的能力。
13.什么叫組通信?
在網(wǎng)絡(luò)系統(tǒng)中,一個相互作用的進程集合稱為組。一個發(fā)送者在一次操作中將一個消息發(fā)送給多個接收者的通信,稱為組通信。
它應(yīng)用于何種場合?在網(wǎng)絡(luò)系統(tǒng)中可以采用組通信方式。
組通信的主要特征是?當(dāng)一個消息發(fā)送給這個組時,該組的所有成員都可以接收,組通信具有“一對多”的形式,即一個發(fā)送者,多個接收者。
組通信的實現(xiàn)?組通信的實現(xiàn)在很大程度上依賴于硬件。在一些網(wǎng)絡(luò)系統(tǒng)中,可以為組指定一個特殊的網(wǎng)絡(luò)地址??刹捎枚嗖ナ?、廣播式、單播式。
微軟的Windows系統(tǒng)是伴隨我們已久的老朋友了,大多數(shù)人都是一代一代Windows的用上來,老用戶幾乎都形成一個共識,就是微軟的系統(tǒng)有一代會很好,也有一代會很糟糕,比如Windows XP、Windows 7就很受歡迎,而Windows 2000、Windows Vista就是一個悲傷的故事。那么,微軟的Windows系統(tǒng)用了這么久,究竟它有多少行代碼呢?
Microsoft Windows問世于1985年,起初僅僅是Microsoft-DOS模擬環(huán)境,后續(xù)的系統(tǒng)版本由于微軟不斷的更新升級,不但易用,也慢慢的成為家家戶戶人們最喜愛的操作系統(tǒng)。下面我們從代碼行數(shù)、開發(fā)難度,參與人員的數(shù)量,開發(fā)的時間長度等角度來說說,一個windows系統(tǒng)有多復(fù)雜。
Windows XP大約40,000,000行代碼。
Windows Vista 大約50,000,000行代碼,算上修正掉的代碼估計超過一億行。內(nèi)部版本超過上千個,每個版本都有所測試。為其做出貢獻的正式工合約工臨時工超過數(shù)萬人。大概的工程量可能和胡夫金字塔相當(dāng)。
Windows 7 大約50,000,000行代碼。Windows 7開發(fā)的時候有23個小組,每個小組約40人,也就是將近1000人。這僅僅是Windows團隊的人數(shù),其余為其做出貢獻的更是數(shù)不勝數(shù)。
幾千萬行代碼的工作量是個什么概念?舉個參照系吧,很多人在用的金山的WPS代碼行數(shù)約有150萬行,而金山軟件公司重寫這個級別的辦公軟件WPS,用了3年時間。
再比如微軟在4年前的研發(fā)成本超過100億美元,在開發(fā)Windows Vista的所花費的研發(fā)費用更是超過了恐怖的200億美元。Linux內(nèi)核開發(fā)根據(jù)人員投入的規(guī)模測算,也耗資數(shù)有十億美元。
假如一個桌面級的操作系統(tǒng)代碼規(guī)模在千萬行數(shù)量級,如果加上配套軟件,總規(guī)模應(yīng)該超過一億行,如果再加上一個完整的軟件生態(tài)系統(tǒng),那么總規(guī)模應(yīng)該不少于十億行。這還是成熟的系統(tǒng),再加上調(diào)試精簡前更多。再加上各個功能之間需要兼容性,可維護性,可管理性等這些隨著代碼的越來越多可推敲,需考慮的問題也會越來越多,是項技術(shù)難度非常大的工作!你覺得呢?