編譯器性能指標
Ⅰ 命令行編譯器
yun
Ⅱ 軟體與硬體的區別
軟體
軟體(中國大陸及香港用語,台灣作軟體)是一系列按照特定順序組織的計算機數據和指令的集合。一般來講軟體被劃分為系統軟體、應用軟體和介於這兩者之間的中間件。其中系統軟體為計算機使用提供最基本的功能,但是並不針對某一特定應用領域。而應用軟體則恰好相反,不同的應用軟體根據用戶和所服務的領域提供不同的功能。
軟體並不只是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟體的一部分。
軟體被應用於世界的各個領域,對人們的生活和工作都產生了深遠的影響。
系統軟體
系統軟體是負責管理計算機系統中各種獨立的硬體,使得它們可以協調工作。系統軟體使得計算機使用者和其他軟體將計算機當作一個整體而不需要顧及到底層每個硬體是如何工作的。
一般來講,系統軟體包括操作系統和一系列基本的工具(比如編譯器,資料庫管理,存儲器格式化,文件系統管理,用戶身份驗證,驅動管理,網路連接等方面的工具)。
應用軟體
應用軟體是為了某種特定的用途而被開發的軟體。它可以是一個特定的程序,比如一個圖像瀏覽器。也可以是一組功能聯系緊密,可以互相協作的程序的集合,比如微軟的Office軟體。也可以是一個由眾多獨立程序組成的龐大的軟體系統,比如資料庫管理系統。
較常見的有
文字處理軟體 如WPS、Word等
信息管理軟體
輔助設計軟體 如AutoCAD
實時控制軟體
教育與娛樂軟體
按操作系統分類
BeOS
DOS
linux
Mac OS
Unix
Windows
軟體開發
軟體開發是根據用戶要求建造出軟體系統或者系統中的軟體部分的過程。軟體開發是一項包括需求捕捉,需求分析,設計,實現和測試的系統工程。
軟體一般是用某種程序設計語言來實現的。通常採用軟體開發工具可以進行開發。http://www.ankty.com
(http://ke..com/lemma-php/dispose/view.php/37.htm)
硬體
一般我們看到的電腦都是由:主機(主要部分)、輸出設備(顯示器)、輸入設備(鍵盤和滑鼠)三大件組成。 而主機是電腦的主體 ,在主機箱中有:主板、CPU、內存、電源、顯卡、音效卡、網卡、硬碟、軟碟機、光碟機等硬體。
從基本結構上來講,電腦可以分為五大部分:運算器、存儲器、控制器、輸入設備、輸出設備。
下面我們將一步一步的來揭開它們的神秘面紗。
(一) 機箱
首先來看看機箱,機箱除了給計算機系統建立一個外觀形象之外,還為計算機系統的其它配件提供安裝支架。另外,它還可以減輕機箱內向外輻射的電磁污染,保護用戶的健康和其它設備的正常使用,真可稱的上是計算機各配件的「家」。目前市場上的主流產品是採用ATX結構的立式機箱,AT結構的機箱已經被淘汰了。機箱內部前面板側有用於安裝硬碟、光碟機、軟碟機的托架,後面板側上部有一個用來安裝電源的位置,除此之外,其風部還附有一些引線,用於連接POWER鍵,REST鍵,PC揚聲器,以及一些指示燈。其內部結構如圖所示
(二) 主板
主板(英文名Mainboard 或 Motherboard)是計算機系統中最大的一塊電路板,主板又叫主機板、系統板、或母板,它安裝在機箱內,也是微機最重要的部件之一,它的類型和檔次決定整個 微機系統的類型和檔次。它可分為AT主板和ATX主板。主板是由各種介面,擴展槽,插座以及晶元組組成。主板選購的基本策略: 速度、穩定性兼容性、擴充能力、升級能力主板中的晶元組是構成主板的核心,其作用是在BIOS和操作系統的控制下規定的技術標准和規范通過主板為微機系統中的CPU、內存條、圖形卡等部件建立可靠、正確的安裝、運行環境,為各種IDE介面存儲以及其他外部設備提供方便、可靠的連接介面。常見的主板如下圖
(三) CPU
CPU(Central Processing Unit,中央處理器)是計算機最重要的部件之一。是一台電腦的核心,相當於人的大腦,它的內部結構分為控制單元、邏輯單元和存儲單元三大部分。CPU的介面標准分為兩大類:一種是Socket類型,另一種是Slot類型。它的主要性能指標:主頻、前端匯流排頻 率、L1 和L2Cache的容量和速率、支持的擴展指令集、CPU內核工作電壓地址匯流排寬度、CPU的選 購。CPU的生產廠商現在主要有Inter、AMD兩家,其中Inter公司的CPU產品市場佔有量最高。目 前市場上主流的CPU有:Inter公司的Pentium III 系列、Pentium 4 系列、Celeron系列;AMD 公司的K7系列。
(四)內存
內存泛指計算機系統中存放數據與指令的半導體存儲單元。按其用途可分為主存儲器和輔助
存器。按工作原理分為ROM和RAM。ROM可分為只讀ROM、可編程可擦除ROM和可編程ROM.而RAM可RAM為靜態
和動態RAM。內存(RAM)是CPU處理信息的地力,它的計算單位是兆位元組MB,即Million Bytes。1個位元組又
由8位(bit)二進制數(0、1)組成。存儲1個英文字母需要佔用1個位元組(Byte)空間。而存儲1個漢字則需佔2個位元組空間。
早期的計算機主要運行D05系統和DOS程序。那時內存的價格是很貴的,DOS對內存的要求也不高,只
需640KB(1KB=1024B),所以那時的計算機內存配得都不大,1MB或2MB就很好。
現在內存價格大大降低了,而Windows和一些新的應用軟體對內存的需要是貪得無厭的,內存越大,
它工作得就越好,所以現在的汁算機64MB內存已算是最低配置,有錢的話,配上128MB乃至512MB也都不
等過。目前比較知名的品牌有Hyundai(現代原廠)、Kingstone(金仕頓)、Kingmax(勝創)、Samsung(三星)、Transcend(創見)和CEIL(金邦)等。
(五)硬碟
硬碟(Hard Disk)是計算機系統的重要存儲設備,其性能直接影響計算機的整體性能。硬碟是一種
固定的存儲設備,它的存儲介質是若干個鋼性磁碟片,其特點:速度快、容量大、可靠靠性高幾乎不存在磨損問題。目前常見的硬碟介面有二種,分別是IDE介面和SCSI介面。口碑不錯的硬碟有邁拓(Maxtor)、希捷(Seagate)、IBM、西部數據(Western Digtal)等。
(六)光碟驅動器
光碟驅動器(CD-ROM)就是讀取光碟上數據的工具,而光碟的特點:容量大、速度快兼容性強、碟片成本低。具前的主流為52倍速的IDE介面光碟機。
(七)軟碟機
軟盤驅動器(Floppy Disk)是電腦一個不可缺少的部件,在必要的時候,它可以為我們啟動計機,還能用它來傳遞和備份一些比較小的文件。現在一般都用3.5英寸的,古老年代用5.25英寸的,現在我們去買人家都不賣了。
(八)顯卡
顯卡是顯示器與主機通信的控制電路和介面,其作用是將主機的數字信號轉換為模擬信號, 並在顯示器上顯示出來。顯卡的基本作用就是控制圖形的輸出,它工作在CPU和顯示器之間它的 主要部件有:顯示晶元、RAMDAC、顯示內存、VGA BIOS VGA插座、特性連接器等。顯卡的三 項重要指標:刷新頻率、解析度、色深。從匯流排類型分,顯示卡有ISA、VESA、PCI、AGP四種。 現在AGP顯示卡已非常普遍。外觀如下圖所示
(九)音效卡
音效卡,想聽音樂可少不了它,電腦就是通過這個玩意傳送聲音給音箱的哦。音效卡是多媒體電腦的主要
部件之一,它包含記錄和播放聲音所需的硬體。音效卡的種類很多,功能也不完全相同,但它們有一些共同的基本功能:能錄制話音(聲音)和音樂,能選擇以單聲道或雙聲道錄音,並且能控制采樣速率。音效卡上有數模轉換晶元(DAC),用來把數字化的聲音信號轉換成模擬信號,同時還有模數轉換晶元(ADC),用來把模擬聲音信號轉換成數字信號。音效卡上有音樂數字介面(MIDI),能使用MIDI樂器,諸如鋼琴鍵、合成器和其MIDI設備。音效卡有聲音混合功能,允許控制聲源和音頻信號的大小。好的音效卡能對低音部分和高音部分進行控制。音效卡上還有一個或幾個CD 音頻輸入介面,用以接收CD-ROM的聲音採集信號。根據匯流排的不同音效卡分為兩大類,一種是ISA音效卡,另一種是PCI音效卡。主流為PCI音效卡如下圖所示
(十)顯視器
顯示器(Monitor)是計算機的主要輸出設備,沒有它,我們和計算機打交道的時候,將變成睜眼瞎。也許您的工作每天都需要面對計算機的屏幕,可是您是否真正的了解它呢?正因為這樣很多人在購買電腦時,只關心顯示器是14寸還是15寸的,而並不關心顯示器的其它性能,其實購買一台電腦最不應該省錢的就是顯示器了。目前顯視器品牌繁多,市場上常見的品牌有:三(Samsung)、索尼(Sony)、LG、優派(Viewsonic)、飛利浦(Philips)、宏基(Acer)、美格(MAG)、EMC等不下幾十種。根據顯像原理劃分,顯視器可以分為CRT顯視器(陰極射線管顯視器)、LCD顯視器(液晶矩陣平面顯示器)和等離子顯視器等。其中常見的是CRT顯視器和LCD顯視器,而LCD顯視器為未來幾年的主流。下圖為三星的一款LCD顯視器。
(十一)鍵盤
鍵盤(Keyboard)我想大家應該不陌生,我只簡單作一些介紹。鍵盤是最常用也是最主要的輸入設備,通過鍵盤,可以將英文字母、數字、標點符號等輸入到計算機中,從而向計算機發出命令、輸入數據等。自IBM PC推出以來,鍵盤經歷了83鍵、84鍵和101/102鍵,Windows95面世後,在101鍵盤的基礎上改進成
了104/105鍵盤,增加了兩個Windows 按鍵。 為了使人操作電腦更舒適,於是出現"人體鍵盤",鍵盤的形狀非常符合兩手的擺放姿勢,操作起來就特別的輕松。
(十二)滑鼠
滑鼠(Mouse)首先應用於蘋果電腦。隨著Windows操作系統的流行,滑鼠變成了必需品,更有些軟體必須要安裝滑鼠才能運行,簡直是無鼠寸步難行。從介面來講,滑鼠有兩種類型:PS/2型滑鼠和串列滑鼠。從滑鼠的構造來講,有機械式和光電式。光電滑鼠是利用光的反射來確定滑鼠的移動,滑鼠內部有紅外光發射和接受裝置,要讓光電式滑鼠發揮出強大的功能,一定要配備一塊專用的感光板。光電滑鼠的定位精度要比機械滑鼠高出許多。另外滑鼠還有單鍵、兩鍵和三鍵之分,蘋果電腦通常都使用單鍵滑鼠,兩鍵滑鼠通常叫做MS滑鼠,三鍵滑鼠叫做PC滑鼠。但滑鼠用於兩鍵或三鍵主要決定於軟體,比如對於Windows 98和Windows95及其應用軟體,滑鼠只能用於兩鍵狀態,否則電腦不認,但有些軟體可支持第三鍵,比如AutoCAD
(http://ke..com/lemma-php/dispose/view.php/25278.htm)
Ⅲ 單位預購CAD/CAE/CAM高端工作站配置工作站。望高手給出詳細配置方案!
一.中小規模CAE前後處理求解的工作站配置
求解規模:100萬~1000萬自由度(300萬節點以內)
工作站配置要求:
CPUCorei7920/940/965/975
內存6~12GBDDR3800
顯卡QuadroFX580/QuadroFX1700
硬碟SATA300G以上7200轉或1萬轉,可選RAID0、5
操作系統WindowsXP64位SP2中文版
XASUN四核靜音級圖形工作站
型號XASUNMi713012-T2AA
配置明細
主要配置 4核Corei73.06/12GB/Qadro600/1TBSATA
工作站硬體性能指標
CPU 運算速度每秒490億次
GPU 幾何三角形處理:2.1億/秒,96個流處理器
磁碟陣列 IO讀寫帶寬100MB/S,IOPS200次/秒
網路埠 1Gbps
硬體配置明細
配件 品牌和型號 數量
CPU 四核Corei7950 1
3.06G/8MB/6.4GTs/超線程/Turbo
晶元組 intelX58Chips 1
內存 2GDDR31333 6
顯卡 NvidiaQuadro6001GB 1
系統盤 1TBSATA企業級7200轉 2
光碟機 DVD刻錄機 1
網卡 千兆以太埠 1
工作站平台 XASUNAGEN2SG02P7V,700WEPS
噪音控制系統 靜音級(全速計算在45分貝以內)
升級能力
顯卡 支持NvidiaQuadro全系列專業圖卡
內存槽 6個,單根內存最大12GB,最大容量12GB
硬碟位 2個,單塊最大SATA:2TB
PCI擴展 1*PCIEx8,1*PCIEx4,1*PCI
操作系統
支持WindowsServer2003、2008
支持WindowsXP、Vista、7
應用軟體
基於windows環境下高性能計算應用軟體全系列
報價 ¥12,900元
二.CAE中大規模前後處理的工作站配置
求解規模:大約2000萬自由度(600萬節點以內)
工作站配置要求:
CPU雙路12核XeonX5650X5660X5670
內存24GBDDR3-1333EccReg
顯卡QuadroFX1800/QuadroFX3800
硬碟SAS300G15000轉,可選RAID0、5
SATA32MB500G7200轉,可選RAID0、10
操作系統WindowsXP64位SP2中文版
XASUN12核靜音級工作站
型號XASUNT522724-T2AB
配置明細
主要配置
12核Xeon2.66/24GB/Qadro2000/450GSAS+1TB*2SATA
工作站硬體性能指標
CPU 運算速度每秒1277億次
GPU 幾何三角形處理:4.1億/秒192流處理器
磁碟陳列 RAID5下,IO讀寫帶寬200MB/S,IOPS200次/秒
網路埠 通過匯聚功能,實現20Gbps
硬體配置明細
配件 品牌和型號 數量
CPU 六核XeonX5650 2
2.66G/12MB/6.4GTs/超線程/Turbo
晶元組 intelS5520Chips
內存 4GDDR31333RegECC 6
顯卡 NvidiaQuadro20001GB 1
系統盤 450G6GbpsSAS 1
超級硬碟系統 1TBSATA企業級 2
RAID0
光碟機 DVD刻錄機 1
網卡 千兆以太埠 2
工作站平台 XASUNSD6C105PAS,1000WEPS
噪音控制系統 靜音級(全速計算45分貝以內)
硬體升級能力
顯卡 支持NvidiaQuadro全系列專業圖卡
內存槽 12個,單根內存最大16GB,最大容量192GB
硬碟位 4個,單塊最大SAS:1TB、SATA:2TB
PCI擴展 1*PCIEx8,2*PCIEx4,3*PCI-X
操作系統
支持WindowsServer2003、2008
支持WindowsXP、Vista、7
支持Redhat、SuseLinux全系列
應用軟體
基於windows、linux環境下軟體全系列
報價 ¥39,999元
三.CAE超大規模前後處理的工作站配置
求解規模:4000~1億自由度(1000萬節點以內)
工作站配置要求:
CPU雙路12核XeonX5680
內存48G~96GDDR3-1333EccReg
顯卡QuadroFX4800/QuadroFX5800
硬碟SAS450G15000轉,可選RAID0、5、10
陣列卡硬SAS高速陣列卡
操作系統WindowsXP64位SP2中文版
XASUN頂級12核超靜音圖形工作站
型號XASUNEX523396-A64RD
配置明細
主要配置 12核Xeon3.33/96GB/Qadro5000/高速陣列
工作站硬體性能指標
CPU 運算速度每秒1598億次
GPU 幾何三角形處理:9.5億/秒,352流處理器
磁碟陣列 RAID5下,IO讀寫帶寬300MB/S,IOPS400次/秒
網路埠 通過匯聚功能,實現2Gbps
硬體配置明細
配件 品牌和型號 數量
CPU 六核XeonX5680 2
3.33G/12MB/6.4GTs/超線程/Turbo
晶元組 intelS5520Chips
內存 8GDDR31333RegECC 12
顯卡 NvidiaQuadro50002.5GB 1
系統盤 450G6GbpsSAS 1
超級硬碟系統 450G6GbpsSAS 5
8口SAS2-RAID 1
光碟機 DVD刻錄機 1
網卡 千兆以太埠 2
工作站平台 XASUNSA6C107PBV,1200WEPS
噪音控制系統 靜音級(全速計算45分貝以內)
硬體升級能力
顯卡 支持NvidiaQuadro全系列專業圖卡
內存槽 12個,單根內存最大16GB,最大容量192GB
硬碟位 8個熱插拔,單塊最大SAS:1TB、SATA:2TB
PCI擴展 1*PCIEx8,2*PCIEx4,3*PCI-X
操作系統
支持WindowsServer2003、2008
支持WindowsXP、Vista、7
支持Redhat、SuseLinux全系列
應用軟體
基於windows、linux環境下應用軟體全系列
報價 ¥115,000元
四.CAE超大規模前後處理---桌面靜音集群配置
求解規模:1億自由度以上
方案1:
類別 配置 數量 單位
集群硬體
主計算節點 19"標准,4U機架式 1 台
◇2顆6核XeonX56502.66GHz,12ML3,QPI6.4GTs
◇48GBDDR3-1333RECC
◇系統盤1塊450G6GbpsSAS硬碟
◇陣列盤2塊450G6GbpsSAS硬碟
◇雙1000M乙太網介面
◇1000WEPS電源
從計算節點 19"標准,4U機架式 3 台
◇2顆6核XeonX56502.66GHz,12ML3,QPI6.4GTs
◇24GBDDR3-1333RECC
◇系統盤1塊300G6GpsSAS硬碟
◇雙1000M乙太網介面
◇1000WEPS電源
管理節點 19"標准,4U機架式 1 台
◇2顆四核XeonE56202.4GHz,12ML3,QPI5.86GTs
◇24GBDDR3-1333RECC
◇系統盤1塊450G6GpsSAS硬碟
◇數據盤2塊1000GSATA企業級
◇雙1000M乙太網介面
◇1000WEPS電源
交換機 16口千兆交換 1 台
KVM系統 8口KVM切換器 1 套
機櫃 19"標准,含網路布線系統、散熱系統、供電系統、導軌、托架,22U 1 套
穩壓源 凈化穩壓電源5KVA 1 台
操作系統與軟體部分
操作系統 WinHPCServer2008或Linux 5 套
並行環境 OpenMPI(支持Infiniband和乙太網MPI環境); 1 套
編譯器 INTEL/PGI編譯器支持C和Fortran; 1 套
資料庫 MPICH/Lam-MPI(支持千兆乙太網的MPI環境); 1 套
應用軟體 可選
總計 ¥198,000.00
備注 集群浮點運算速度:3400億次/秒
方案2
類別 配置 數量 單位
集群硬體
主計算節點 19"標准,4U機架式 1 台
◇2顆6核XeonX56803.33GHz,12ML3,QPI6.4GTs
◇48GBDDR3-1333RECC
◇系統盤1塊450G6GbpsSAS硬碟
◇陣列盤4塊450G6GbpsSAS硬碟
◇陣列卡1塊支持6GpsSAS硬碟,4內+4外介面
◇雙1000M乙太網介面
◇20GbpsINFINIBAND網卡
◇1000WEPS電源
從計算節點 19"標准,4U機架式 3 台
◇2顆6核XeonX56803.33GHz,12ML3,QPI6.4GTs
◇48GBDDR3-1333RECC
◇系統盤1塊300G6GpsSAS硬碟
◇雙1000M乙太網介面
◇20GbINFINIBAND網卡
◇1000WEPS電源
管理節點 19"標准,4U機架式 1 台
◇2顆四核XeonE55202.26GHz,8ML3,QPI5.86GTs
◇24GBDDR3-1333RECC
◇系統盤1塊300G6GpsSAS硬碟
◇數據盤2塊1000GSATA企業級
◇雙1000M乙太網介面
◇20GbINFINIBAND網卡
◇1000WEPS電源
交換機 8-port4XDDRw/20Gb/s 1 台
MellanoxMCC4L30-003,3米長CX4介面銅纜
16口千兆交換 1 台
KVM系統 16口KVM切換器 1 套
機櫃 19"標准,含網路布線系統、散熱系統、供電系統、導軌、托架,22U 1 套
穩壓源 凈化穩壓電源5KVA 1 台
操作系統與軟體
操作系統 WinHPCServer2008或Linux 5 套
並行環境 OpenMPI(支持Infiniband和乙太網MPI環境); 1 套
編譯器 INTEL/PGI編譯器支持C和Fortran; 1 套
資料庫 MPICH/Lam-MPI(支持千兆乙太網的MPI環境); 1 套
應用軟體 可選
總計 ¥338,000.00
備注 集群浮點運算速度:4096億次/秒
XASUN靜音集群系統特點
硬體配備更高端,單節點速度最強
全球第一款採用12核Xeon5680高端處理器的集群
較之傳統集群普遍使用L5520,浮點計算速度提升142%和147%%以上
48核Xeon3.33G全部參加計算,浮點處理速度:639.36Gflops,即6394億次/秒
全球第一家採用SASII介面硬碟,大幅提升IO讀寫帶寬
較之傳統SAS3Gbps硬碟讀寫帶寬提升80%以上
SASII硬碟直接讀寫帶寬200MB/S,叫上一代SAS提升80%以上
獨有的超靜音技術和迷你架構,高性能真正進入辦公環境
無論是白天還是黑夜,高速計算集群,與非常安靜環境,完美融合在一起
面向辦公環境,費用更低,維護更少
無需專門計算中心,無需專業的維護人員
使用簡單,操作方便,開機就可計算
集群速度優異,成本更低廉
惠及更多辦公環境計算需求
Ⅳ 計算機問題
d Linux是一種自由和開放源碼的類操作系統,
c
d
a 晶元組
a(30)
a. 提供多種硬體的插槽
c. 設備檢測
d
a
a. 提高硬碟讀寫信息的速
a
b
a.A
a. MBR
Ⅳ 用c語言完成:1.哈夫曼編碼/解碼器2.內部排序演算法的性能分析
我把網上的程序修改了一下,並整合了,你看看
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 50
#define MAX 100000;
typedef struct
{
int weight;//結點權值
int parent,lchild,rchild;
}HTNODE,*HUFFMANTREE;
typedef char** HUFFMANCODE;//動態分配數組存儲哈夫曼編碼表
typedef struct
{
int key; /*關鍵字*/
}RecordNode; /*排序節點的類型*/
typedef struct
{
RecordNode *record;
int n; /*排序對象的大小*/
}SortObject; //待排序序列
HUFFMANTREE huffmantree(int n,int weight[])//構建哈夫曼樹
{
int m1,m2,k;
int i,j,x1,x2;
HUFFMANTREE ht;
ht=(HUFFMANTREE)malloc((2*n)*sizeof(HTNODE));
for(i=1;i<(2*n);i++)//初始化哈夫曼樹中各結點的數據,沒初始值的賦值為0
{
ht[i].parent=ht[i].lchild=ht[i].rchild=0;
if(i<=n)
ht[i].weight=weight[i];
else
ht[i].weight=0;
}
for(i=1;i<n;i++)//每一重循環從森林中選擇最小的兩棵樹組建成一顆新樹
{
m1=m2=MAX;
x1=x2=0;
for(j=1;j<(n+i);j++)
{
if((ht[j].weight<m1)&&(ht[j].parent==0))
{
m2=m1;
x2=x1;
m1=ht[j].weight;
x1=j;
}
else if((ht[j].weight<m2)&&(ht[j].parent==0))
{
m2=ht[j].weight;
x2=j;
}
}
k=n+i;
ht[x1].parent=ht[x2].parent=k;
ht[k].weight=m1+m2;
ht[k].lchild=x1;
ht[k].rchild=x2;
}
return ht;
}
void huffmancoding(int n,HUFFMANCODE hc,HUFFMANTREE ht,char str[])
{
int i,start,child,father;
char *cd;
hc=(HUFFMANCODE)malloc((n+1)*sizeof(char*));//分配n個字元編碼的頭指針
cd=(char*)malloc(n*sizeof(char));//分配求編碼的工作空間
cd[n-1]='\0';//編碼結束符
for(i=1;i<=n;++i)//逐個字元求哈夫曼編碼
{
start=n-1;
for(child=i,father=ht[i].parent;father!=0;child=father,father=ht[father].parent)/*從葉子結點到根結點求逆向編碼*/
if(ht[father].lchild==child)
cd[--start]='0';
else
cd[--start]='1';
hc[i]=(char*)malloc((n-start)*sizeof(char));//為i個字元編碼分配空間
strcpy(hc[i],&cd[start]);//從cd復制哈夫曼編碼串到hc
}
free(cd);//釋放工作空間
for(i=1;i<=n;++i)
{
printf("\n%c的編碼:",str[i]);
printf("%s\n",hc[i]);
}
}
void huffman()
{
int i,j,k,m,n;
char str[50];
int weight[50];
HUFFMANCODE hc=NULL;
HUFFMANTREE ht;
fflush(stdin);
printf("\n請輸入字元(一次性連續輸入所求的字元):");/*如:abcjhjg不要輸成ab cj hig,即字元間不加空格*/
gets(str);
for(j=0;j<50;j++)
{
if(str[j]=='\0')
break;
}
n=j;
for(j=n;j>0;j--)
str[j]=str[j-1];
str[n+1]='\0';
for(k=0;k<n;k++)
{
printf("\n請輸入%c的權值:",str[k+1]);
scanf("%d",&weight[k]);
}
for(k=n;k>0;k--)
weight[k]=weight[k-1];
weight[0]=0;
ht=huffmantree(n,weight);
huffmancoding(n,hc,ht,str);
}
void InsertSort(SortObject *p,unsigned long *compare,unsigned long *exchange)
{
int i,j,k;
RecordNode temp;
SortObject *pvector;
fflush(stdin);
if((pvector=(SortObject *)malloc(sizeof(SortObject)))==NULL)
{
printf("OverFollow!");
getchar();
exit(1);
}
k=pvector->n;
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<p->n;i++)/* 復制數組*/
pvector->record[i]=p->record[i];
pvector->n=p->n;
*compare=0;
*exchange=0;
for(i=1;i<pvector->n;i++)
{
temp=pvector->record[i];
(*exchange)++;
j=i-1;
while((temp.key<pvector->record[j].key)&&(j>=0))
{
(*compare)++;
(*exchange)++;
pvector->record[j+1]=pvector->record[j];
j--;
}
if(j!=(i-1))
{
pvector->record[j+1]=temp;
(*exchange)++;
}
}
free(pvector);
}
void SelectSort(SortObject *p,unsigned long *compare,unsigned long *exchange)
{
int i,j,k;
RecordNode temp;
SortObject *pvector;
if((pvector=(SortObject *)malloc(sizeof(SortObject)))==NULL)
{
printf("OverFollow!");
getchar();
exit(1);
}
k=pvector->n;
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<p->n;i++)/*復制數組*/
pvector->record[i]=p->record[i];
pvector->n=p->n;
*compare=0;
*exchange=0;
for(i=0;i<pvector->n-1;i++)
{
k=i;
for(j=i+1;j<pvector->n;j++)
{
(*compare)++;
if(pvector->record[j].key<pvector->record[k].key)
k=j;
}
if(k!=i)
{
temp=pvector->record[i];
pvector->record[i]=pvector->record[k];
pvector->record[k]=temp;
( *exchange)+=3;
}
}
free(pvector);
}
void BubbleSort(SortObject *p,unsigned long *compare,unsigned long *exchange)
{
int i,j,noswap,k;
RecordNode temp;
SortObject *pvector;
if((pvector=(SortObject *)malloc(sizeof(SortObject)))==NULL)
{
printf("OverFollow!");
getchar();
exit(1);
}
k=pvector->n;
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<p->n;i++)/* 復制數組*/
pvector->record[i]=p->record[i];
pvector->n=p->n;
*compare=0;
*exchange=0;
for(i=0;i<pvector->n-1;i++)
{
noswap=1;
for(j=0;j<pvector->n-i-1;j++)
{
(*compare)++;
if(pvector->record[j+1].key<pvector->record[j].key)
{
temp=pvector->record[j];
pvector->record[j]=pvector->record[j+1];
pvector->record[j+1]=temp;
(*exchange)+=3;
noswap=0;
}
}
if(noswap) break;
}
free(pvector);
}
void ShellSort(SortObject *p,int d,unsigned long *compare,unsigned long *exchange)
{
int i,j,increment,k;
RecordNode temp;
SortObject *pvector;
if((pvector=(SortObject*)malloc(sizeof(SortObject)))==NULL)
{
printf("OverFollow!");
getchar();
exit(1);
}
k=pvector->n;
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<p->n;i++)/* 復制數組*/
pvector->record[i]=p->record[i];
pvector->n=p->n;
*compare=0;
*exchange=0;
for(increment=d;increment>0;increment/=2)
{
for(i=increment;i<pvector->n;i++)
{
temp=pvector->record[i];
(*exchange)++;
j=i-increment;
while(j>=0&&temp.key<pvector->record[j].key)
{
(*compare)++;
pvector->record[j+increment]=pvector->record[j];
(*exchange)++;
j-=increment;
}
pvector->record[j+increment]=temp;
(*exchange)++;
}
}
free(pvector);
}
void QuickSort(SortObject *pvector,int left,int right,unsigned long *compare,unsigned long *exchange)
{
int i,j;
RecordNode temp;
if(left>=right)
return;
i=left;
j=right;
temp=pvector->record[i];
(*exchange)++;
while(i!=j)
{
while((pvector->record[j].key>=temp.key)&&(j>i))
{
(*compare)++;
j--;
}
if(i<j)
{
pvector->record[i++]=pvector->record[j];
(*exchange)++;
}
while((pvector->record[i].key<=temp.key)&&(j>i))
{
(*compare)++;
i++;
}
if(i<j)
{
pvector->record[j--]=pvector->record[i];
(*exchange)++;
}
}
pvector->record[i]=temp;
(*exchange)++;
QuickSort(pvector,left,i-1,compare,exchange);
QuickSort(pvector,i+1,right,compare,exchange);
}
void SortMethod(void)
{
int i,j,k,l;
unsigned long num[5][10]={0};
unsigned long sum[10]={0};
SortObject *pvector;
fflush(stdin);
printf("請輸入待排序的隨機數個數:\n");
scanf("%d",&k);
pvector=(SortObject *)malloc(sizeof(SortObject));
for(j=0;j<5;j++)
{
pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k);
for(i=0;i<k;i++)
pvector->record[i].key=rand();
pvector->n=k;
InsertSort(pvector,&num[j][0],&num[j][1]);
SelectSort(pvector,&num[j][2],&num[j][3]);
BubbleSort(pvector,&num[j][4],&num[j][5]);
ShellSort(pvector,4,&num[j][6],&num[j][7]);
QuickSort(pvector,0,k-1,&num[j][8],&num[j][9]);
}
printf("\n排序比較如下");
for(j=0;j<5;j++)
{
printf("\n\n對%d個數進行排序,結果為:\n",k);
printf("1.插入排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][0],num[j][1]);
printf("2.選擇排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][2],num[j][3]);
printf("3.冒泡排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][4],num[j][5]);
printf("4.希爾排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][6],num[j][7]);
printf("5.快速排序:比較-->%-7ld次 移動-->%-7ld次\n",num[j][8],num[j][9]);
if(j!=5)
printf("按回車繼續\n");
getchar();
}
for(j=0;j<5;j++)
{
sum[0]=sum[0]+num[j][0];
sum[1]=sum[1]+num[j][1];
sum[2]=sum[2]+num[j][2];
sum[3]=sum[3]+num[j][3];
sum[4]=sum[4]+num[j][4];
sum[5]=sum[5]+num[j][5];
sum[6]=sum[6]+num[j][6];
sum[7]=sum[7]+num[j][7];
sum[8]=sum[8]+num[j][8];
sum[9]=sum[9]+num[j][9];
}
printf("\n\n對%d個隨機數進行5次排序,平均比較次數和平均移動次數為:\n",k);
printf("1.插入排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[0]/5,sum[1]/5);
printf("2.選擇排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[2]/5,sum[3]/5);
printf("3.冒泡排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[4]/5,sum[5]/5);
printf("4.希爾排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[6]/5,sum[7]/5);
printf("5.快速排序:平均比較-->%-7ld次 平均移動-->%-7ld次\n",sum[8]/5,sum[9]/5);
free(pvector);
}
void sort()
{
int i;
while(1)
{
SortMethod();
printf("\n是否繼續?\n1.繼續\n2.返回菜單\n");
scanf("%d",&i);
if(i==2)break;
fflush(stdin);
getchar();
}
}
void huff()
{
int i;
while(1)
{
huffman();
printf("\n是否繼續?\n1.繼續\n2.返回菜單\n");
scanf("%d",&i);
if(i==2)break;
fflush(stdin);
getchar();
}
}
main()
{
int i,j,k;
while(1)
{
printf("請選擇要運行的功能:\n");
printf("1.哈夫曼編碼解碼器\n");
printf("2.內部排序性能分析\n");
printf("3.退出該程序\n\n");
printf("你的選擇為:");
scanf("%d",&i);
switch(i)
{
case 1:huff();break;
case 2:sort();break;
case 3:exit(0);
default:break;
}
fflush(stdin);
getchar();
system("cls");
}
}
Ⅵ 一個與C語言相關的疑問
你分析的對,我上機試了,就是3,沒錯,要買正版資料啊,呵呵
Ⅶ 一台伺服器的主要性能指標有哪些
人盡其才、物盡其用」。企業購買伺服器當然是為滿足特定需要。針對不同需求,我們要關注的性能指標也不同。舉例來說,對於資料庫伺服器,聯機事物處理能力是最需著力考察的指標。TPC-C是「事務處理性能委員會」(TPC)負責制訂的基準測試指標,考察聯機事務處理每分鍾吞吐量。而TPC-C測試結果又包括兩個指標,一個是流量指標tpmC,這個值越大越好;另一個是性價比指標Price/tpmC,指的是測試系統價格與流量指標的比值,這個值則越小越好。以IBM公司的x366為例子,根據TPC官方網站,TPC-C在線交易基準測試中,x366的流量指標達到了141504tpmC,是4路至強晶元伺服器的世界紀錄。
再比如說,購買Web伺服器時,最重要的性能指標就應該是SPEC web99。SPEC web99為Web用戶提供了用於評測系統用作Web伺服器能力的最客觀、最具代表性的基準; 而如果是選購應用伺服器,關注SPEC jbb200和SAP SD這兩個指標就能知道大概其了,因為SPEC jbb200是專門用來評估伺服器系統運行Java應用程序能力的基準測試,而SAP SD 的測試結果為客戶提供了基本的規模建議。
對於大多數人來說,基準測試指標是一個全新的知識空間 – 許多人在購買伺服器時習慣於考慮CPU和內存,以為選定了這些,伺服器的性能就差不多了。其實,不同的系統設計技術會對伺服器的性能產生巨大影響,用諸多量化指標來衡量比較是十分必要和重要的。
用戶都希望系統能24×7×365不停機、無故障地運行,這其實是要求伺服器的可用性。而可用性和可管理性是息息相關的。伺服器的故障處理技術越成熟,為用戶提供的可用性就越高,而這個故障處理技術必須要有良好的管理手段和界面來及時表現:一方面可以通過出現故障時自動執行系統或部件切換以避免或減少意外停機,另一方面要讓管理員及時察覺及幫助診斷,才能從根本上解決問題。目前這方面做得較好的是IBMx3架構伺服器。它帶有一種叫「彈出式光通路診斷面板」的技術,只要輕輕,光通路診斷面板就會以從伺服器前端彈出,指示器可以幫助管理員快速地定位和替換故障組件,減少伺服器的宕機時間。
以基準測試指標為基準,以理性考量為准繩,二者並行互航,您選擇的伺服器肯定錯不了!
附表:部分伺服器性能指標
應用
基準測試
簡述
測試中主要考察的部件
聯機事物處理
TPC-C
TPC-C是一種考察聯機事務處理(OLTP)每分鍾吞吐量的基準測試。TPC-C模擬的是完整的計算環境,大量用戶針對資料庫(如SQL、Server Oracle,DB2)執行並發事務操作。許多IT專業人員將TPC-C視為衡量「真實」OLTP系統性能的有效參考基準。
全面考察微處理器,內存子系統,磁碟子系統合一些網路組件
電子商務
SPECweb99 SPECweb99用於評測Web伺服器能夠支持的最大同時連接數的客戶端/伺服器基準測試。基準負載是由運行HTTP Server的伺服器聯網的客戶端設備上的客戶端軟體來實現的。為Web用戶提供用於評測系統用作Web伺服器能力的最客觀、最具代表性的基準。
系統的微處理器、內存體系結構和編譯器
SPECjbb200 SPECjbb200(Java業務基準)是SPEC第一個用於評估伺服器端Java的性能的基準,為Java用戶提供用於評測伺服器系統運行Java應用程序能力的最客觀、最具代表性的基準
Ⅷ 軟體和硬體的區別
硬體和軟體的區別:
一、軟體是一種邏輯的產品,與硬體產品有本質的區別
硬體是看得見、摸得著的物理部件或設備。在研製硬體產品時,人的創造性活動表現在把原材料轉變成有形的物理產品。
而軟體產品是以程序和文檔的形式存在,通過在計算機上運行來體現他的作用。
在研製軟體產品的過程中,人們的生產活動表現在要創造性地抽象出問題的求解模型,然後根據求解模型寫出程序,最後經過調試、運行程序得到求解問題的結果。整個生產、開發過程是在無形化方式下完成的,其能見度極差,這給軟體開發、生產過程的管理帶來了極大的困難。
二、軟體產品質量的體現方式與硬體產品不同
質量體現方式不同表現在兩個方面。硬體產品設計定型後可以批量生產,產品質量通過質量檢測體系可以得到保障。但是生產、加工過程一旦失誤。
硬體產品可能就會因為質量問題而報廢。而軟體產品不能用傳統意義上的製造進行生產,就目前軟體開發技術而言,軟體生產還是「定製」的,只能針對特定問題進行設計或實現。但是軟體愛你產品一旦實現後,其生產過程只是復制而已,而復制生產出來的軟體質量是相同的。
設計出來的軟體即使出現質量問題,產品也不會報廢,通過修改、測試,還可以將「報廢」的軟體「修復」,投入正常運行。可見軟體的質量保證機制比硬體具有更大的靈活性。
三、軟體產品的成本構成與硬體產品不同
硬體產品的成本構成中有形的物質佔了相當大的比重。就硬體產品生存周期而言,成本構成中設計、生產環節占絕大部分,而售後服務只佔少部分。
軟體生產主要靠腦力勞動。軟體產品的成本構成中人力資源佔了相當大的比重。軟體產品的生產成本主要在開發和研製。研製成功後,產品生產就簡單了,通過復制就能批量生產。
四、軟體產品的失敗曲線與硬體產品不同
硬體產品存在老化和折舊問題。當一個硬體部件磨損時可以用一個新部件去替換他。硬體會因為主要部件的磨損而最終被淘汰。
對於軟體而言,不存在折舊和磨損問題,如果需要的話可以永遠使用下去。但是軟體故障的排除要比硬體故障的排除復雜得多。軟體故障主要是因為軟體設計或編碼的錯誤所致,必須重新設計和編碼才能解決問題。
軟體在其開發初始階段在很高的失敗率,這主要是由於需求分析不切合實際或設計錯誤等引起的。當開發過程中的錯誤被糾正後,其失敗率便下降到一定水平並保持相對穩定,直到該軟體被廢棄不用。在軟體進行大的改動時,也會導致失敗率急劇上升。
五、大多數軟體仍然是定製產生的
硬體產品一旦設計定型,其生產技術、加工工藝和流程管理也就確定下來,這樣便於實現硬體產品的標准化、系列化成批生產。
由於硬體產品具有標準的框架和介面,不論哪個廠家的產品,用戶買來都可以集成、組裝和替換使用。
盡管軟體產品復用是軟體界孜孜不倦追求的目標,在某些局部范圍內幾家領軍軟體企業也建立了一些軟體組件復用的技術標准。
例如,OMG的CORBA,mICROSOFT的COM,sun的J2EE等,但是目前還做不到大范圍使用軟體替代品。大多數軟體任然是為特定任務或用戶定製的。
(8)編譯器性能指標擴展閱讀:
硬體:
計算機的硬體是計算機系統中各種設備的總稱。計算機的硬體應包括5個基本部分,即運算器、控制器、存儲器、輸入設備、輸出設備,上述各基本部件的功能各異。運算器應能進行加、減、乘、除等基本運算。存儲器不僅能存放數據,而且也能存放指令,計算機應能區分是數據還是指令。
控制器應能自動執行指令。操作人員可以通過輸人、輸出設備與主機進行通信。計算機內部採用二進制來表示指令和數據。操作人員將編好的程序和原始數據送人主存儲器中,然後啟動計算機工作,計算機應在不需干預的情況下啟動完成逐條取出指令和執行指令的任務。
軟體:
電腦的外觀、主機內的元件都是看得見的東西,一般稱它們為電腦的「硬體」,那麼電腦的「軟體」是什麼呢?即使打開主機,也看不到軟體在哪裡。既看不見也摸不到,聽起來好像很抽象,但是,如果沒有軟體,就像植物人一樣,空有軀體卻無法行動。
當你啟動電腦時,電腦會執行開機程序,並且啟動系統」,然後你會啟動「Word」程序,並且打開「文件」來編輯文件,或是使用「Excel」來製作報表,和使用「IE」來上網等等,以上所提到的操作系統、打開的程序和文件,都屬於電腦的「軟體」。
軟體包括:
1、應用軟體:應用程序包,面向問題的程序設計語言等
2、系統軟體:操作系統,語言編譯解釋系統服務性程序
硬體與軟體的關系:
硬體和軟體是一個完整的計算機系統互相依存的兩大部分,它們的關系主要體現在以下幾個方面。
1、硬體和軟體互相依存
硬體是軟體賴以工作的物質基礎,軟體的正常工作是硬體發揮作用的唯一途徑。計算機系統必須要配備完善的軟體系統才能正常工作,且充分發揮其硬體的各種功能。
2、硬體和軟體無嚴格界線
隨著計算機技術的發展,在許多情況下,計算機的某些功能既可以由硬體實現,也可以由軟體來實現。因此,硬體與軟體在一定意義上說沒有絕對嚴格的界面。
3、硬體和軟體協同發展
計算機軟體隨硬體技術的迅速發展而發展,而軟體的不斷發展與完善又促進硬體的更新,兩者密切地交織發展,缺一不可。
參考資料:
軟體-網路
硬體-網路