導航:首頁 > 源碼編譯 > 系統調度演算法工程師

系統調度演算法工程師

發布時間:2022-07-19 15:14:36

⑴ DSP工程師和軟體工程師,哪個發展前景更好一些

支持dsp工程師
如果能做到硬體工程師
那就是更牛的了
因為培養硬體工程師花費高,周期長,自然待遇高
而dsp是以後發展的方向,
你要是電子的就是dsp要是計算機方向的,
還是做你擅長的吧

⑵ 數據挖掘工程師一般都做什麼

數據挖掘工程師是做什麼的?

數據挖掘,從字面上理解,就是在數據中找到有用的東西,哪些東西有用就要看具體的業務目標了。最簡單的就是統計應用了,比如電商數據,如淘寶統計過哪個省購買泳衣最多、哪個省的女生胸罩最大等,進一步,可以基於用戶的瀏覽、點擊、收藏、購買等行為推斷用戶的年齡、性別、購買能力、愛好等能表示一個人的畫像,就相當於用這些挖掘出來的屬性來刻畫一個人,這些還是最簡單的東西,更深層次的比如預測(股票預測),但是比較難。

數據挖掘往往與機器學習離不開。比如分類、聚類、關聯規則挖掘、個性化推薦、預測、神經網路、深度學習等。

數據挖掘 = 業務知識 + 自然語言處理技術( NLP ) + 計算機視覺技術( CV ) + 機器學習 / 深度學習( ML/DL )

( 1 )其中業務知識具體指的是個性化推薦,計算廣告,搜索,互聯網金融等; NLP , CV 分別是處理文本,圖像視頻數據的領域技術,可以理解為是將非結構化數據提取轉換成結構化數據;最後的ml/dl 技術則是屬於模型學習理論;

( 2 )在選擇崗位時,各個公司都沒有一套標準的稱呼,但是所做的事情無非 2 個大方向,一種是主要鑽研某個領域的技術,比如自然語言處理工程師,計算機視覺工程師,機器學習工程師等;一種是將各種領域技術應用到業務場景中去解決業務需求,比如數據挖掘工程師,推薦系統工程師等;具體的稱呼不重要,重要的是平時的工作內容;

PS :在互聯網行業,數據挖掘相關技術應用比較成功的主要是推薦以及計算廣告領域,而其中涉及到的數據主要也是文本,所以 NLP 技術相對來講比較重要,至於 CV 技術主要還是在人工智慧領域(無人車,人臉識別等)應用較多,本人了解有限,相關的描述會較少;

數據挖掘崗位需要具備的3 種基本能力

1. 工程能力

( 1 )編程基礎:需要掌握一大一小兩門語言,大的指 C++ 或者 java ,小的指 python 或者 shell 腳本;需要掌握基本的資料庫語言;

建議: MySQL + python + C++ ;語言只是一種工具,看看語法就好;

推薦書籍:《 C++ primer plus 》

( 2 )開發平台: linux

建議:掌握常見的命令,掌握 Linux 下的源碼編譯原理;

推薦書籍:《 Linux 私房菜》

( 3 )數據結構與演算法分析基礎:掌握常見的數據結構以及操作(線性表,隊,列,字元串,樹,圖等),掌握常見的計算機演算法(排序演算法,查找演算法,動態規劃,遞歸等);

建議:多敲代碼,多上 OJ 平台刷題;

推薦書籍:《大話數據結構》《劍指 offer 》

( 4 )海量數據處理平台: Hadoop ( mr 計算模型, java 開發)或者 Spark ( rdd 計算模型, scala開發),重點推薦後者;

建議:主要是會使用,有精力的話可以看看源碼了解集群調度機制之類的;

推薦書籍:《大數據 spark 企業級實戰》

2. 演算法能力

( 1 )數學基礎:概率論,數理統計,線性代數,隨機過程,最優化理論

建議:這些是必須要了解的,即使沒法做到基礎扎實,起碼也要掌握每門學科的理論體系,涉及到相應知識點時通過查閱資料可以做到無障礙理解;

( 2 )機器學習 / 深度學習:掌握 常見的機器學習模型(線性回歸,邏輯回歸, SVM ,感知機;決策樹,隨機森林, GBDT , XGBoost ;貝葉斯, KNN , K-means , EM 等);掌握常見的機器學習理論(過擬合問題,交叉驗證問題,模型選擇問題,模型融合問題等);掌握常見的深度學習模型( CNN ,RNN 等);

建議:這里的掌握指的是能夠熟悉推導公式並能知道模型的適用場景;

推薦書籍:《統計學習方法》《機器學習》《機器學習實戰》《 UFLDL 》

( 3 )自然語言處理:掌握常見的方法( tf-idf , word2vec , LDA );

3. 業務經驗

( 1 )了解推薦以及計算廣告相關知識;

推薦書籍:《推薦系統實踐》《計算廣告》

( 2 )通過參加數據挖掘競賽熟悉相關業務場景,常見的比賽有 Kaggle ,阿里天池, datacastle 等。

想要學習數據挖掘的話可以看一下這篇文章《AI時代就業指南:數據挖掘入門與求職》

⑶ 嵌入式實時操作系統調度演算法的發展現狀

肖文鵬
碩士研究生, 北京理工大學計算機系
2003 年 9 月

隨著信息化技術的發展和數字化產品的普及,以計算機技術、晶元技術和軟體技術為核心的嵌入式系統再度成為當前研究和應用的熱點,通信、計算機、消費電子技術(3C)合一的趨勢正在逐步形成,無所不在的網路和無所不在的計算(everything connecting, everywhere computing)正在將人類帶入一個嶄新的信息社會。

一、嵌入式系統
嵌入式系統是以應用為中心,以計算機技術為基礎,並且軟硬體是可裁剪的,適用於對功能、可靠性、成本、體積、功耗等有嚴格要求的專用計算機系統。嵌入式系統最典型的特點是與人們的日常生活緊密相關,任何一個普通人都可能擁有各類形形色色運用了嵌入式技術的電子產品,小到MP3、PDA等微型數字化設備,大到信息家電、智能電器、車載GIS,各種新型嵌入式設備在數量上已經遠遠超過了通用計算機。這也難怪美國著名未來學家尼葛洛龐帝在1999年1月訪華時就預言,4~5年後嵌入式智能工具將成為繼PC機和Internet之後計算機工業最偉大的發明。

1.1 歷史與現狀

雖然嵌入式系統是近幾年才開始真正風靡起來的,但事實上嵌入式這個概念卻很早就已經存在了,從上個世紀70年代單片機的出現到今天各種嵌入式微處理器、微控制器的廣泛應用,嵌入式系統少說也有了近30年的歷史。縱觀嵌入式系統的發展歷程,大致經歷了以下四個階段:

*

無操作系統階段

嵌入式系統最初的應用是基於單片機的,大多以可編程式控制制器的形式出現,具有監測、伺服、設備指示等功能,通常應用於各類工業控制和飛機、導彈等武器裝備中,一般沒有操作系統的支持,只能通過匯編語言對系統進行直接控制,運行結束後再清除內存。這些裝置雖然已經初步具備了嵌入式的應用特點,但僅僅只是使用8位的CPU晶元來執行一些單線程的程序,因此嚴格地說還談不上"系統"的概念。

這一階段嵌入式系統的主要特點是:系統結構和功能相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶介面。由於這種嵌入式系統使用簡便、價格低廉,因而曾經在工業控制領域中得到了非常廣泛的應用,但卻無法滿足現今對執行效率、存儲容量都有較高要求的信息家電等場合的需要。
*

簡單操作系統階段

20世紀80年代,隨著微電子工藝水平的提高,IC製造商開始把嵌入式應用中所需要的微處理器、I/O介面、串列介面以及RAM、ROM等部件統統集成到一片VLSI中,製造出面向I/O設計的微控制器,並一舉成為嵌入式系統領域中異軍突起的新秀。與此同時,嵌入式系統的程序員也開始基於一些簡單的"操作系統"開發嵌入式應用軟體,大大縮短了開發周期、提高了開發效率。

這一階段嵌入式系統的主要特點是:出現了大量高可靠、低功耗的嵌入式CPU(如Power PC等),各種簡單的嵌入式操作系統開始出現並得到迅速發展。此時的嵌入式操作系統雖然還比較簡單,但已經初步具有了一定的兼容性和擴展性,內核精巧且效率高,主要用來控制系統負載以及監控應用程序的運行。
*

實時操作系統階段

20世紀90年代,在分布控制、柔性製造、數字化通信和信息家電等巨大需求的牽引下,嵌入式系統進一步飛速發展,而面向實時信號處理演算法的DSP產品則向著高速度、高精度、低功耗的方向發展。隨著硬體實時性要求的提高,嵌入式系統的軟體規模也不斷擴大,逐漸形成了實時多任務操作系統(RTOS),並開始成為嵌入式系統的主流。

這一階段嵌入式系統的主要特點是:操作系統的實時性得到了很大改善,已經能夠運行在各種不同類型的微處理器上,具有高度的模塊化和擴展性。此時的嵌入式操作系統已經具備了文件和目錄管理、設備管理、多任務、網路、圖形用戶界面(GUI)等功能,並提供了大量的應用程序介面(API),從而使得應用軟體的開發變得更加簡單。
*

面向Internet階段

21世紀無疑將是一個網路的時代,將嵌入式系統應用到各種網路環境中去的呼聲自然也越來越高。目前大多數嵌入式系統還孤立於Internet之外,隨著Internet的進一步發展,以及Internet技術與信息家電、工業控制技術等的結合日益緊密,嵌入式設備與Internet的結合才是嵌入式技術的真正未來。

信息時代和數字時代的到來,為嵌入式系統的發展帶來了巨大的機遇,同時也對嵌入式系統廠商提出了新的挑戰。目前,嵌入式技術與Internet技術的結合正在推動著嵌入式技術的飛速發展,嵌入式系統的研究和應用產生了如下新的顯著變化:
1. 新的微處理器層出不窮,嵌入式操作系統自身結構的設計更加便於移植,能夠在短時間內支持更多的微處理器。
2. 嵌入式系統的開發成了一項系統工程,開發廠商不僅要提供嵌入式軟硬體系統本身,同時還要提供強大的硬體開發工具和軟體支持包。
3. 通用計算機上使用的新技術、新觀念開始逐步移植到嵌入式系統中,如嵌入式資料庫、移動代理、實時CORBA等,嵌入式軟體平台得到進一步完善。
4. 各類嵌入式Linux操作系統迅速發展,由於具有源代碼開放、系統內核小、執行效率高、網路結構完整等特點,很適合信息家電等嵌入式系統的需要,目前已經形成了能與Windows CE、Palm OS等嵌入式操作系統進行有力競爭的局面。
5. 網路化、信息化的要求隨著Internet技術的成熟和帶寬的提高而日益突出,以往功能單一的設備如電話、手機、冰箱、微波爐等功能不再單一,結構變得更加復雜,網路互聯成為必然趨勢。
6. 精簡系統內核,優化關鍵演算法,降低功耗和軟硬體成本。
7. 提供更加友好的多媒體人機交互界面。

1.2 體系結構

根據國際電氣和電子工程師協會(IEEE)的定義,嵌入式系統是"控制、監視或者輔助設備、機器和車間運行的裝置"(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。一般而言,整個嵌入式系統的體系結構可以分成四個部分:嵌入式處理器、嵌入式外圍設備、嵌入式操作系統和嵌入式應用軟體,如圖1所示。

圖1 嵌入式系統的組成

*

嵌入式處理器

嵌入式系統的核心是各種類型的嵌入式處理器,嵌入式處理器與通用處理器最大的不同點在於,嵌入式CPU大多工作在為特定用戶群所專門設計的系統中,它將通用CPU中許多由板卡完成的任務集成到晶元內部,從而有利於嵌入式系統在設計時趨於小型化,同時還具有很高的效率和可靠性。

嵌入式處理器的體系結構經歷了從CISC(復雜指令集)至RISC(精簡指令集)和Compact RISC的轉變,位數則由4位、8位、16位、32位逐步發展到64位。目前常用的嵌入式處理器可分為低端的嵌入式微控制器(Micro Controller Unit,MCU)、中高端的嵌入式微處理器(Embedded Micro Processor Unit,EMPU)、用於計算機通信領域的嵌入式DSP處理器(Embedded Digital Signal Processor,EDSP)和高度集成的嵌入式片上系統(System On Chip,SOC)。

目前幾乎每個半導體製造商都生產嵌入式處理器,並且越來越多的公司開始擁有自主的處理器設計部門,據不完全統計,全世界嵌入式處理器已經超過1000多種,流行的體系結構有30多個系列,其中以ARM、PowerPC、MC 68000、MIPS等使用得最為廣泛。
*

嵌入式外圍設備

在嵌入系統硬體系統中,除了中心控制部件(MCU、DSP、EMPU、SOC)以外,用於完成存儲、通信、調試、顯示等輔助功能的其他部件,事實上都可以算作嵌入式外圍設備。目前常用的嵌入式外圍設備按功能可以分為存儲設備、通信設備和顯示設備三類。

存儲設備主要用於各類數據的存儲,常用的有靜態易失型存儲器(RAM、SRAM)、動態存儲器(DRAM)和非易失型存儲器(ROM、EPROM、EEPROM、FLASH)三種,其中FLASH憑借其可擦寫次數多、存儲速度快、存儲容量大、價格便宜等優點,在嵌入式領域內得到了廣泛應用。

目前存在的絕大多數通信設備都可以直接在嵌入式系統中應用,包括RS-232介面(串列通信介面)、SPI(串列外圍設備介面)、IrDA(紅外線介面)、I2C(現場匯流排)、USB(通用串列匯流排介面)、Ethernet(乙太網介面)等。

由於嵌入式應用場合的特殊性,通常使用的是陰極射線管(CRT)、液晶顯示器(LCD)和觸摸板(Touch Panel)等外圍顯示設備。
*

嵌入式操作系統

為了使嵌入式系統的開發更加方便和快捷,需要有專門負責管理存儲器分配、中斷處理、任務調度等功能的軟體模塊,這就是嵌入式操作系統。嵌入式操作系統是用來支持嵌入式應用的系統軟體,是嵌入式系統極為重要的組成部分,通常包括與硬體相關的底層驅動程序、系統內核、設備驅動介面、通信協議、圖形用戶界面(GUI)等。嵌入式操作系統具有通用操作系統的基本特點,如能夠有效管理復雜的系統資源,能夠對硬體進行抽象,能夠提供庫函數、驅動程序、開發工具集等。但與通用操作系統相比較,嵌入式操作系統在系統實時性、硬體依賴性、軟體固化性以及應用專用性等方面,具有更加鮮明的特點。

嵌入式操作系統根據應用場合可以分為兩大類:一類是面向消費電子產品的非實時系統,這類設備包括個人數字助理(PDA)、行動電話、機頂盒(STB)等;另一類則是面向控制、通信、醫療等領域的實時操作系統,如WindRiver公司的VxWorks、QNX系統軟體公司的QNX等。實時系統(Real Time System)是一種能夠在指定或者確定時間內完成系統功能,並且對外部和內部事件在同步或者非同步時間內能做出及時響應的系統。在實時系統中,操作的正確性不僅依賴於邏輯設計的正確程度,而且與這些操作進行的時間有關,也就是說,實時系統對邏輯和時序的要求非常嚴格,如果邏輯和時序控制出現偏差將會產生嚴重後果。

實時系統主要通過三個性能指標來衡量系統的實時性,即響應時間(Response Time)、生存時間(Survival Time)和吞吐量(Throughput):
o 響應時間 是實時系統從識別出一個外部事件到做出響應的時間;
o 生存時間 是數據的有效等待時間,數據只有在這段時間內才是有效的;
o 吞吐量 是在給定的時間內系統能夠處理的事件總數,吞吐量通常比平均響應時間的倒數要小一點。

實時系統根據響應時間可以分為弱實時系統、一般實時系統和強實時系統三種。弱實時系統在設計時的宗旨是使各個任務運行得越快越好,但沒有嚴格限定某一任務必須在多長時間內完成,弱實時系統更多關注的是程序運行結果的正確與否,以及系統安全性能等其他方面,對任務執行時間的要求相對來講較為寬松,一般響應時間可以是數十秒或者更長。一般實時系統是弱實時系統和強實時系統的一種折衷,它的響應時間可以在秒的數量級上,廣泛應用於消費電子設備中。強實時系統則要求各個任務不僅要保證執行過程和結果的正確性,同時還要保證在限定的時間內完成任務,響應時間通常要求在毫秒甚至微秒的數量級上,這對涉及到醫療、安全、軍事的軟硬體系統來說是至關重要的。

時限(deadline)是實時系統中的一個重要概念,指的是對任務截止時間的要求,根據時限對系統性能的影響程度,實時系統又可以分為軟實時系統(soft real-time-system)和硬實時系統(hard real-time-system)。軟實時指的是雖然對系統響應時間有所限定,但如果系統響應時間不能滿足要求,並不會導致系統產生致命的錯誤或者崩潰;硬實時則指的是對系統響應時間有嚴格的限定,如果系統響應時間不能滿足要求,就會引起系統產生致命的錯誤或者崩潰。如果一個任務在時限到達之時尚未完成,對軟實時系統來說還是可以容忍的,最多隻會降低系統性能,但對硬實時系統來說則是無法接受的,因為這樣帶來的後果根本無法預測,甚至可能是災難性的。在目前實際運用的實時系統中,通常允許軟硬兩種實時性同時存在,其中一些事件沒有時限要求,另外一些事件的時限要求是軟實時的,而對系統產生關鍵影響的那些事件的時限要求則是硬實時的。
*

嵌入式應用軟體

嵌入式應用軟體是針對特定應用領域,基於某一固定的硬體平台,用來達到用戶預期目標的計算機軟體,由於用戶任務可能有時間和精度上的要求,因此有些嵌入式應用軟體需要特定嵌入式操作系統的支持。嵌入式應用軟體和普通應用軟體有一定的區別,它不僅要求其准確性、安全性和穩定性等方面能夠滿足實際應用的需要,而且還要盡可能地進行優化,以減少對系統資源的消耗,降低硬體成本。

1.3 關鍵問題

嵌入式系統是將先進的計算機技術、半導體技術以及電子技術與特定行業的具體應用相結合的產物,因此必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統,嵌入式系統的開發充滿了競爭、機遇與創新,需要解決好如下一些關鍵問題:

1. 內核精巧 嵌入式系統的應用領域一般都是小型電子裝置,系統資源相對有限,因此對內核的要求相當高,較之傳統的操作系統來講要小得多,例如ENEA公司推出的OSE分布式嵌入式系統,整個內核只有5KB。
2. 面向應用 嵌入式系統通常是面向用戶、面向產品、面向特定應用的。嵌入式系統中的CPU大多工作在為特定用戶群定製的環境中,具有低耗、體積小、集成度高等特點,在進行軟硬體設計時必須突出效率、去除冗餘,針對用戶的具體需求對系統進行合理的配置,方能達到理想的性能。
3. 系統精簡 嵌入式系統中的系統軟體和應用軟體通常沒有明顯的區別,不要求其功能及實現上過於復雜,這樣一方面有利於控制系統成本,另一方面也有利於保證系統安全。
4. 性能優化 嵌入式系統通常都要求有一定的實時性保障,為了提高執行速度和系統性能,嵌入式系統中的軟體一般都固化在存儲晶元或者處理器的內部存儲器件當中,而不是存貯在磁碟等外部載體中。由於嵌入式系統的運算速度和存儲容量存在一定程度上的限制,而且大部分系統都必須有較高的實時性保證,因此對軟體質量(特別是可靠性方面)有著較高的要求。
5. 專業開發 嵌入式系統本身並不具備自主開發能力,用戶不能直接在其上進行二次開發。當系統完成之後,用戶如果需要修改其中某個程序的功能,必須藉助一套完整的開發工具和環境。嵌入式系統中專用的開發工具和環境通常是基於通用計算機上的軟硬體設備,以及各種邏輯分析儀、混合信號示波器等。

二、嵌入式Linux
Linux從1991年問世到現在,短短的十幾年時間已經發展成為功能強大、設計完善的操作系統之一,不僅可以與各種傳統的商業操作系統分庭抗爭,在新興的嵌入式操作系統領域內也獲得了飛速發展。嵌入式Linux(Embedded Linux)是指對標准Linux經過小型化裁剪處理之後,能夠固化在容量只有幾K或者幾M位元組的存儲器晶元或者單片機中,適合於特定嵌入式應用場合的專用Linux操作系統。

2.1 優勢

嵌入式Linux的開發和研究是操作系統領域中的一個熱點,目前已經開發成功的嵌入式系統中,大約有一半使用的是Linux。Linux之所以能在嵌入式系統市場上取得如此輝煌的成果,與其自身的優良特性是分不開的。

*

廣泛的硬體支持

Linux能夠支持x86、ARM、MIPS、ALPHA、PowerPC等多種體系結構,目前已經成功移植到數十種硬體平台,幾乎能夠運行在所有流行的CPU上。Linux有著異常豐富的驅動程序資源,支持各種主流硬體設備和最新硬體技術,甚至可以在沒有存儲管理單元(MMU)的處理器上運行,這些都進一步促進了Linux在嵌入式系統中的應用。
*

內核高效穩定

Linux內核的高效和穩定已經在各個領域內得到了大量事實的驗證,Linux的內核設計非常精巧,分成進程調度、內存管理、進程間通信、虛擬文件系統和網路介面五大部分,其獨特的模塊機制可以根據用戶的需要,實時地將某些模塊插入到內核或從內核中移走。這些特性使得Linux系統內核可以裁剪得非常小巧,很適合於嵌入式系統的需要。
*

開放源碼,軟體豐富

Linux是開放源代碼的自由操作系統,它為用戶提供了最大限度的自由度,由於嵌入式系統千差萬別,往往需要針對具體的應用進行修改和優化,因而獲得源代碼就變得至關重要了。Linux的軟體資源十分豐富,每一種通用程序在Linux上幾乎都可以找到,並且數量還在不斷增加。在Linux上開發嵌入式應用軟體一般不用從頭做起,而是可以選擇一個類似的自由軟體做為原型,在其上進行二次開發。
*

優秀的開發工具

開發嵌入式系統的關鍵是需要有一套完善的開發和調試工具。傳統的嵌入式開發調試工具是在線模擬器(In-Circuit Emulator,ICE),它通過取代目標板的微處理器,給目標程序提供一個完整的模擬環境,從而使開發者能夠非常清楚地了解到程序在目標板上的工作狀態,便於監視和調試程序。在線模擬器的價格非常昂貴,而且只適合做非常底層的調試,如果使用的是嵌入式Linux,一旦軟硬體能夠支持正常的串口功能時,即使不用在線模擬器也可以很好地進行開發和調試工作,從而節省了一筆不小的開發費用。嵌入式Linux為開發者提供了一套完整的工具鏈(Tool Chain),它利用GNU的gcc做編譯器,用gdb、kgdb、xgdb做調試工具,能夠很方便地實現從操作系統到應用軟體各個級別的調試。
*

完善的網路通信和文件管理機制

Linux至誕生之日起就與Internet密不可分,支持所有標準的Internet網路協議,並且很容易移植到嵌入式系統當中。此外,Linux還支持ext2、fat16、fat32、romfs等文件系統,這些都為開發嵌入式系統應用打下了很好的基礎。

2.2 挑戰

目前,嵌入式Linux系統的研發熱潮正在蓬勃興起,並且占據了很大的市場份額,除了一些傳統的Linux公司(如RedHat、MontaVista等)正在從事嵌入式Linux的開發和應用之外,IBM、Intel、Motorola等著名企業也開始進行嵌入式Linux的研究。雖然前景一片燦爛,但就目前而言,嵌入式Linux的研究成果與市場的真正要求仍有一段差距,要開發出真正成熟的嵌入式Linux系統,還需要從以下幾個方面做出努力。

*

提高系統實時性

Linux雖然已經被成功地應用到了PDA、行動電話、車載電視、機頂盒、網路微波爐等各種嵌入式設備上,但在醫療、航空、交通、工業控制等對實時性要求非常嚴格的場合中還無法直接應用,原因在於現有的Linux是一個通用的操作系統,雖然它也採用了許多技術來加快系統的運行和響應速度,並且符合POSIX 1003.1b標准,但從本質上來說並不是一個嵌入式實時操作系統。Linux的內核調度策略基本上是沿用UNIX系統的,將它直接應用於嵌入式實時環境會有許多缺陷,如在運行內核線程時中斷被關閉,分時調度策略存在時間上的不確定性,以及缺乏高精度的計時器等等。正因如此,利用Linux作為底層操作系統,在其上進行實時化改造,從而構建出一個具有實時處理能力的嵌入式系統,是現在日益流行的解決方案。
*

改善內核結構

Linux內核採用的是整體式結構(Monolithic),整個內核是一個單獨的、非常大的程序,這樣雖然能夠使系統的各個部分直接溝通,有效地縮短任務之間的切換時間,提高系統響應速度,但與嵌入式系統存儲容量小、資源有限的特點不相符合。嵌入式系統經常採用的是另一種稱為微內核(Microkernel)的體系結構,即內核本身只提供一些最基本的操作系統功能,如任務調度、內存管理、中斷處理等,而類似於文件系統和網路協議等附加功能則運行在用戶空間中,並且可以根據實際需要進行取捨。Microkernel的執行效率雖然比不上Monolithic,但卻大大減小了內核的體積,便於維護和移植,更能滿足嵌入式系統的要求。可以考慮將Linux內核部分改造成Microkernel,使Linux在具有很高性能的同時,又能滿足嵌入式系統體積小的要求。
*

完善集成開發平台

引入嵌入式Linux系統集成開發平台,是嵌入式Linux進一步發展和應用的內在要求。傳統上的嵌入式系統都是面向具體應用場合的,軟體和硬體之間必須緊密配合,但隨著嵌入式系統規模的不斷擴大和應用領域的不斷擴展,嵌入式操作系統的出現就成了一種必然,因為只有這樣才能促成嵌入式系統朝層次化和模塊化的方向發展。很顯然,嵌入式集成開發平台也是符合上述發展趨勢的,一個優秀的嵌入式集成開發環境能夠提供比較完備的模擬功能,可以實現嵌入式應用軟體和嵌入式硬體的同步開發,從而擺脫了"嵌入式應用軟體的開發依賴於嵌入式硬體的開發,並且以嵌入式硬體的開發為前提"的不利局面。一個完整的嵌入式集成開發平台通常包括編譯器、連接器、調試器、跟蹤器、優化器和集成用戶界面,目前Linux在基於圖形界面的特定系統定製平台的研究上,與Windows CE等商業嵌入式操作系統相比還有很大差距,整體集成開發環境有待提高和完善。

三、關鍵技術
嵌入式系統是一種根據特定用途所專門開發的系統,它只完成預期要完成的功能,因此其開發過程和開發環境同傳統的軟體開發相比有著顯著的不同。

3.1 開發流程

在嵌入式系統的應用開發中,整個系統的開發過程如圖2所示:

圖2 嵌入式系統的開發流程

嵌入式系統發展到今天,對應於各種微處理器的硬體平台一般都是通用的、固定的、成熟的,這就大大減少了由硬體系統引入錯誤的機會。此外,由於嵌入式操作系統屏蔽了底層硬體的復雜性,使得開發者通過操作系統提供的API函數就可以完成大部分工作,因此大大簡化了開發過程,提高了系統的穩定性。嵌入式系統的開發者現在已經從反復進行硬體平台設計的過程中解脫出來,從而可以將主要精力放在滿足特定的需求上。

嵌入式系統通常是一個資源受限的系統,因此直接在嵌入式系統的硬體平台上編寫軟體比較困難,有時候甚至是不可能的。目前一般採用的解決辦法是首先在通用計算機上編寫程序,然後通過交叉編譯生成目標平台上可以運行的二進制代碼格式,最後再下載到目標平台上的特定位置上運行。

需要交叉開發環境(Cross Development Environment)的支持是嵌入式應用軟體開發時的一個顯著特點,交叉開發環境是指編譯、鏈接和調試嵌入式應用軟體的環境,它與運行嵌入式應用軟體的環境有所不同,通常採用宿主機/目標機模式,如圖3所示。

圖3 交叉開發環境

宿主機(Host)是一台通用計算機(如PC機或者工作站),它通過串口或者乙太網介面與目標機通信。宿主機的軟硬體資源比較豐富,不但包括功能強大的操作系統(如Windows和Linux),而且還有各種各樣優秀的開發工具(如WindRiver的Tornado、Microsoft的Embedded Visual C++等),能夠大大提高嵌入式應用軟體的開發速度和效率。

目標機(Target)一般在嵌入式應用軟體開發期間使用,用來區別與嵌入式系統通信的宿主機,它可以是嵌入式應用軟體的實際運行環境,也可以是能夠替代實際運行環境的模擬系統,但軟硬體資源通常都比較有限。嵌入式系統的交叉開發環境一般包括交叉編譯器、交叉調試器和系統模擬器,其中交叉編譯器用於在宿主機上生成能在目標機上運行的代碼,而交叉調試器和系統模擬器則用於在宿主機與目標機間完成嵌入式軟體的調試。在採用宿主機/目標機模式開發嵌入式應用軟體時,首先利用宿主機上豐富的資源和良好的開發環境開發和模擬調試目標機上的軟體,然後通過串口或者以網路將交叉編譯生成的目標代碼傳輸並裝載到目標機上,並在監控程序或者操作系統的支持下利用交叉調試器進行分析和調試,最後目標機在特定環境下脫離宿主機單獨運行。

建立交叉開發環境是進行嵌入式軟體開發的第一步,目前常用的交叉開發環境主要有開放和商業兩種類型。開放的交叉開發環境的典型代表是GNU工具鏈、目前已經能夠支持x86、ARM、MIPS、PowerPC等多種處理器。商業的交叉開發環境則主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。

3.2 交叉編譯和鏈接

在完成嵌入式軟體的編碼之後,需要進行編譯和鏈接以生成可執行代碼,由於開發過程大多是在使用Intel公司x86系列CPU的通用計算機上進行的,而目標環境的處理器晶元卻大多為ARM、MIPS、PowerPC、DragonBall等系列的微處理器,這就要求在建立好的交叉開發環境中進行交叉編譯和鏈接。

交叉編譯器和交叉鏈接器是能夠在宿主機上運行,並且能夠生成在目標機上直接運行的二進制代碼的編譯器和鏈接器。例如在基於ARM體系結構的gcc交叉開發環境中,arm-linux-gcc是交叉編譯器,arm-linux-ld是交叉鏈接器。通常情況下,並不是每一種體系結構的嵌入式微處理器都只對應於一種交叉編譯器和交叉鏈接器,比如對於M68K體系結構的gcc交叉開發環境而言,就對應於多種不同的編譯器和鏈接器。如果使用的是COFF格式的可執行文件,那麼在編譯Linux內核時需要使用m68k-coff-gcc和m68k-coff-ld,而在編譯應用程序時則需要使用m68k-coff-pic-gcc和m68k-coff-pic-ld。

嵌入式系統在鏈接過程中通常都要求使用較小的函數庫,以便最後產生的可執行代碼能夠盡可能地小,因此實際運用時一般使用經過特殊處理的函數庫。對於嵌入式L

⑷ 資料庫開發工程師需要學習哪些課程

資料庫開發工程師需要學習的課程有:

1、計算機導論

內容提要:為新學生提供一個關於計算機科學與技術學科的入門介紹,使他們對該學科有一個整體的認識,並了解該專業的學生應具有的基本知識和技能以及在該領域工作應有的職業道德與應遵守的法律准則。

2、數字電路與數字邏輯

內容提要:介紹數字邏輯與數字系統的基本概念、分析方法和設計原理,包括開關理論基礎、組合邏輯、時序邏輯、可編程邏輯器件、數字系統等。

3、計算機組成原理與匯編語言

內容提要:以馮諾依曼計算機模型為出發點,介紹計算機的組織結構和工作原理,剖析計算機的運算器、存儲器、控制器和輸入輸出設備的結構、工作原理和相互關系;介紹 80X86指令系統、匯編語言與匯編指令、匯編程序與匯編過程、簡單匯編程序設計、匯編語言與高級語言的介面、宏匯編等。

4、計算機網路

內容提要:介紹數據通信的基本概念和計算機網路的基本原理,包括計算機網路的體系結構、數據通信的基本方法和協議、計算機網路的主要應用協議;同時介紹計算機網路系統的安全和管理知識,使學生對數據通信和計算機網路有一個全面理解。

5、計算機體系結構

內容提要:研究計算機系統結構的基本概念、基本原理、基本結構和基本分析方法,使同學在具有一定的軟硬體知識基礎上能綜合認識計算機系統的軟硬體功能分配與各種不同結構類型機器的特性和性能評價方法。為研究、開發、應用高級計算機系統打下基礎。確立全面、系統的觀點和學會定量分析問題的方法。

6、離散數學

內容提要:包括集合論、數理邏輯、圖論、組合數學等內容,形式化的數學證明貫穿此課程。

7、高級程序設計語言

內容提要:分別以 C、C#或JAVA為例,介紹程序設計和語言,程序的基本數據結構、類型定義、簡單類型和結構化類型、程序的基本控制結構、結構化程序設計、面向對象的程序設計等。

8、演算法分析與設計

內容提要: 本課程延續數據結構課程的學習,從演算法分析和設計的角度出發,除去傳統的分類查找演算法和一般的設計方法外,主要內容包括如下幾個部分:演算法研究的理論基礎,遞歸分析技術,基本演算法設計策略(幾類經典演算法學習), 多項式運算與 FFT ,串匹配,概率分析演算法。 希望通過這一課程的學習,使學生能對現代的演算法設計及分析的基本工具能有較全面的掌握。

9、數據結構

內容提要:介紹線性表及其鏈接存儲結構與演算法、數組與矩陣、堆棧與隊列、廣義表的存儲結構與多元多項式表示、串與文本編輯、排序、樹、圖、文件結構。

10、資料庫系統原理

內容提要:介紹資料庫系統的基本概念、原理、方法及應用,主要包括資料庫系統概論、資料庫管理系統實現技術、資料庫存儲結構及其他類型的資料庫系統。

11、編譯技術

內容提要:介紹編譯原理的理論和實踐,包括編譯程序設計、詞法分析、語法分析、符號表、聲明和存儲管理、代碼生成以及優化技術。

12、操作系統

內容提要:介紹操作系統的設計與實現,包括操作系統各組成部分的概述、互斥性和同步性、處理器實現、調度演算法、存儲演算法、設備管理和文件系統。

⑸ 2018年上半年系統集成項目管理工程師下午題第2題書上有解答嗎

試題二(17分)

閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。

【說明】

某項目由p1、p2、p3、p4、p5五個活動組成,五個活動全部完成之後項目才能夠完成,每個活動都需要用到r1、r2、r3三種互斥資源,三種資源都必須達到活動的資源需求量,活動才能開始。已分配資源只有在完成本活動後才能被其他活動所用。目前項目經理能夠調配的資源有限,r1、r2、r3的可用資源數分別為9、8、5,活動對資源的需求量、已分配資源數和各活動歷時如下表所示(假設各活動之間沒有依賴關系):

3、建議


無論是前面第1種情況,還是後面的第2種情況,都應該給分。



【問題2】的參考答案


項目的完工時間:7周


以上面的「第2種情況」為例,寫出每個活動開始時間、佔用資源和完成時間以及項目經理分配資源的過程。


因項目剩餘資源量為(2,2,0),而P2、P4尚需資源量分別為(0,2,0)和(2,0,0),因此R1剩餘的2個資源首先滿足P4,R2剩餘的2個資源首先滿足P2,首先同時做活動P2和P4:


1-2周,完成P4,其佔用、以及完成後釋放的資源為(3,2,0),


1-3周,完成P2,其佔用、以及完成後釋放的資源為(2,3,1),


4-7周,完成P5,其佔用、以及完成後釋放的資源為(1,4,4),


4-4周,完成P1,其佔用、以及完成後釋放的資源為(6,4,1),


4-7周,完成P3,其佔用、以及完成後釋放的資源為(8,0,1),



【問題3】的參考答案


詳見清華版《系統集成項目管理工程師教程》(第2版)P310-P311。


資源平衡:為了在資源需求與資源供給之間取得平衡,根據資源制約對開始日期和結束日期進行調整的一種技術。資源平衡往往導致關鍵路徑改變,通常是延長。


資源平滑:是對進度模型中的活動進行調整,從而使項目資源需求不超過預定的資源限制的一種技術。相對於資源平衡而言,資源平滑不會改變項目關鍵路徑,完工日子也不會延遲。也就是說,活動旨在其自由浮動時間和總浮動時間內延遲。因此,資源平衡技術可能無法實現所有資源的優化。

⑹ 淺談學習運籌與優化軟體的心得

科普推廣運籌學一直以來是【運籌OR帷幄】平台的初衷。本次我們邀請到了平台優化板塊的責編團隊的成員,結合各自獨特的業界工作體會,分享他們眼中在業界發光發熱的運籌學。

一、元器件行業中的運籌學

本人在一家做元器件服務的公司實習,軍用元器件使用的時候有兩個典型場景:替代和統型。

替代是設計師針對進口元器件找到可替代的國產型號;統型是在一個產品的BOM內確定某幾個不同元器件是否可以統一使用一種,以此減少元器件品種數。

目前行業內開始從依賴專家經驗(比如知道某個國產元器件就是對標某個進口元器件做的),轉向從元器件性能參數的相似度出發進行判斷,所以涉及到相似度和聚類方法的應用。

相比方法本身,解決問題的更大阻礙是元器件性能參數數據的復雜性和不規范性。例如不同類別的元器件性能參數不同,即使在同一類別下,不同生廠商給出的性能參數形式也不同,對此進行規范需要有元器件專業知識,所以實際中,數據清洗往往耗費最多人力,也是影響方法使用效果的一大因素。

⑺ 資料庫系統工程師考試的科目內容

1.計算機系統知識
1.1 硬體知識
1.1.1計算機體系結構和主要部件的基本工作原理
·CPU和存儲器的組成、性能、基本工作原理
·常用I/O設備、通信設備的性能,以及基本工作原理
·I/O介面的功能、類型和特點
·CISC/RISC,流水線操作,多處理機,並行處理
1.1.2存儲系統
·虛擬存儲器基本工作原理,多級存儲體系
·RAID類型和特性
1.1.3 安全性、可靠性與系統性能評測基礎知識
·診斷與容錯
·系統可靠性分析評價
·計算機系統性能評測方法
1.2數據結構與演算法
1.2.1 常用數據結構
·數組(靜態數組、動態數組)
·線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)
·棧和隊列
·樹(二叉樹、查找樹、平衡樹、遍歷樹、堆)、圖、集合的定義、存儲和操作
·Hash(存儲位置計算、碰撞處理)
1.2.2 常用演算法
·排序演算法、查找演算法、數值計算、字元串處理、數據壓縮演算法、遞歸演算法、圖的相關演算法
·演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表),演算法的復雜性
1.3軟體知識
1.3.1操作系統知識
·操作系統的類型、特徵、地位、內核(中斷控制)、進程、線程概念
·處理機管理(狀態轉換、同步與互斥、信號燈、分時輪轉、搶占、死鎖)
·存儲管理(主存保護、動態連接分配、分段、分頁、虛存)
·設備管理(I/O控制、假離線、磁碟調度)
·文件管理(文件目錄、文件的結構和組織、存取方法、存取控制、恢復處理、共享和安全)
·作業管理(作業調度、作業控制語言(JCL)、多道程序設計)
·漢字處理,多媒體處理,人機界面
·網路操作系統和嵌入式操作系統基礎知識
·操作系統的配置
1.3.2程序設計語言和語言處理程序的知識
· 匯編、編譯、解釋系統的基礎知識和基本工作原理
·程序設計語言的基本成分:數據、運算、控制和傳輸,程序調用的實現機制
· 各類程序設計語言的主要特點和適用情況
1.4 計算機網路知識
·網路體系結構(網路拓撲、OSI/RM、基本的網路協議)
·傳輸介質,傳輸技術,傳輸方法,傳輸控制
·常用網路設備和各類通信設備
·Client/Server結構、Browser/Server結構、Browser/Web/Datebase結構
·LAN拓撲,存取控制,LAN的組網,LAN間連接,LAN-WAN連接
·網際網路基礎知識及應用
·網路軟體
·網路管理
·網路性能分析
·網路有關的法律、法規
2.資料庫技術
2.1 資料庫技術基礎
2.1.1資料庫模型
·資料庫系統的三級模式(概念模式、外模式、內模式),兩級映像(概念模式/外模式、外模式/內模式)
·資料庫模型:數據模型的組成要素,概念數據模型ER圖(實體、屬性、關系),邏輯數據模型(關系模型、層s次模型、網路模型)
2.1.2資料庫管理系統的功能和特徵
·主要功能(資料庫定義、資料庫操作、資料庫控制、事務管理、用戶視圖)
·特徵(確保數據獨立性、資料庫存取、同時執行過程、排它控制、故障恢復、安全性、完整性)
·RDB(關系資料庫),OODB(面向對象資料庫),ORDB(對象關系資料庫),NDB(網狀資料庫)
·幾種常用Web資料庫的特點
2.1.3 資料庫系統體系結構
· 集中式資料庫系統
· Client/Server資料庫系統
·並行資料庫系統
·分布式資料庫系統
· 對象關系資料庫系統
2.2 數據操作
2.2.1 關系運算
·關系代數運算(並、交、差、笛卡兒積、選擇、投影、連接、除)
·元組演算
·完整性約束
2.2.2 關系資料庫標准語言(SQL)
·SQL的功能與特點
·用SQL進行數據定義(表、視圖、索引、約束)
·用SQL進行數據操作(數據檢索、數據插入/刪除/更新、觸發控制)
·安全性和授權
·程序中的API,嵌入SQL
2.3 資料庫的控制功能
·資料庫事務管理(ACID屬性)
·資料庫備份與恢復技術(UNDO、REDO)
·並發控制
2.4資料庫設計基礎理論
2.4.1 關系資料庫設計
·函數依賴
·規范化(第一範式、第二範式、第三範式、BC範式、第四範式、第五範式)
·模式分解及分解應遵循的原則
2.4.2 對象關系資料庫設計
·嵌套關系、 復雜類型,繼承與引用類型
·與復雜類型有關的查詢
·SQL中的函數與過程
·對象關系
2.5 數據挖掘和數據倉庫基礎知識
·數據挖掘應用和分類
·關聯規則、聚類
·數據倉庫的成分
·數據倉庫的模式
2.6 多媒體基本知識
2.6.1 多媒體技術基本概念
·多媒體系統基礎知識
·常用多媒體文件格式
2.6.2 多媒體壓縮編碼技術
·多媒體壓縮編碼技術
·統計編碼
·預測編碼
·編碼的國際標准
2.6.3多媒體技術應用
·簡單圖形的繪制,圖像文件的處理方法
·音頻和視頻信息的應用
·多媒體應用開發過程
2.7 系統性能知識
·性能計算(響應時間、吞吐量、周轉時間)
·性能指標和性能設計
·性能測試和性能評估
2.8 計算機應用基礎知識
·信息管理、數據處理、輔助設計、科學計算,人工智慧等基礎知識
·遠程通信服務及相關通信協議基礎知識
3. 系統開發和運行維護知識
3.1軟體工程、軟體過程改進和軟體開發項目管理知識
·軟體工程知識
·軟體開發生命周期階段目標和任務
·軟體開發項目基礎知識(時間管理、成本管理、質量管理、人力資源管理、風險管理等)及其常用管理工具
·主要的軟體開發方法(生命周期法、原型法、面向對象法、CASE)
·軟體開發工具與環境知識
·軟體質量管理基礎知識
·軟體過程改進基礎知識
·軟體開發過程評估、軟體能力成熟度評估的基礎知識
3.2 系統分析基礎知識
·系統分析的目的和任務
·結構化分析方法(數據流圖(DFD)和數據字典(DD),實體關系圖(ERD),描述加工處理的結構化語言)
·統一建模語言(UML)
·系統規格說明書
3.3系統設計知識
·系統設計的目的和任務
·結構化設計方法和工具(系統流程圖、HIPO圖、控制流程圖)
·系統總體結構設計(總體布局,設計原則,模塊結構設計,數據存取設計,系統配置方案)
·系統詳細設計(代碼設計、資料庫設計、用戶界面設計、處理過程設計)
·系統設計說明書
3.4系統實施知識
·系統實施的主要任務
·結構化程序設計、面向對象程序設計、可視化程序設計
·程序設計語言的選擇、程序設計風格
·系統測試的目的、類型,系統測試方法(黑盒測試、白盒測試、灰盒測試)
·測試設計和管理(錯誤曲線、錯誤排除、收斂、注入故障、測試試用例設計、系統測試報告)
·系統轉換基礎知識
3.5 系統運行和維護知識
·系統運行管理知識
·系統維護知識
·系統評價知識
4. 安全性知識
·安全性基本概念(網路安全、操作系統安全、資料庫安全)
·計算機病毒的防治,計算機犯罪的防範,容災
·訪問控制、防闖入、安全管理措施
·加密與解密機制
·風險分析、風險類型、抗風險措施和內部控制
5.標准化知識
·標准化意識,標准化的發展,標准出台過程
·國際標准、國家標准、行業標准、企業標准基本知識
·代碼標准、文件格式標准、安全標准軟體開發規范和文檔標准
·標准化機構
6.信息化基礎知識
·信息化意識
·全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略
·有關的法律、法規
·遠程教育、電子商務、電子政務等基礎知識
·企業信息資源管理基礎知識
7.計算機專業英語
·掌握計算機技術的基本詞彙
·能正確閱讀和理解計算機領域的英文資料 1.資料庫設計
1.1 理解系統需求說明
·了解用戶需求、確定系統范圍
·確定應用系統資料庫的各種關系
·現有環境與新系統環境的關系
·新系統中的數據項、數據字典、數據流
1.2 系統開發的准備
·選擇開發方法,准備開發環境,制訂開發計劃
1.3 設計系統功能
·選擇系統機構,設計各子系統的功能和介面,設計安全性策略、需求和實現方法,制定詳細的工作流和數據流
1.4資料庫設計
1.4.1 設計數據模型
·概念結構設計(設計ER模型)
·邏輯結構設計(轉換成DBMS所能接收的數據模型)
·評審設計
1.4.2 物理結構設計
·設計方法與內容
·存取方法的選擇
·評審設計與性能預測
1.4.3 資料庫實施與維護
·數據載入與應用程序調試
·資料庫試運行
·資料庫運行與維護
1.4.4 資料庫的保護
·資料庫的備份與恢復
·資料庫的安全性
·資料庫的完整性
·資料庫的並發控制
1.5 編寫外部設計文檔
·編寫系統說明書(系統配置圖、各子系統關系圖、系統流程圖,系統功能說明、輸入輸出規格說明、數據規格說明、用戶手冊框架)
·設計系統測試要求
1.6 設計評審
2.資料庫應用系統設計
2.1 設計資料庫應用系統結構
·信息系統的架構(如Client/Server)與DBMS
·多用戶資料庫環境(文件伺服器體系結構、Client/Server體系結構)
·大規模資料庫和並行計算機體系結構(SMP、MPP)
·中間件角色和相關工具
·按構件分解,確定構件功能規格以及構件之間的介面
2.2 設計輸入輸出
·屏幕界面設計,設計輸入輸出檢查方法和檢查信息
·資料庫交互與連接(掌握C程序設計語言,以及Java、Visual Basic、Visual C++、PowerBuilder、Delphi中任一種開發工具與資料庫互連的方法(如何與資料庫伺服器溝通))
2.3 設計物理數據
·分析事務在資料庫上運行的頻率和性能要求,確定邏輯數據組織方式、存儲介質,設計索引結構和處理方式
·將邏輯數據結構變換成物理數據結構,計算容量(空間代價),確定存取方法(時間效率)、系統配置(維護代價)並進行優化
2.4 設計安全體系
·明確安全等級
·資料庫的登錄方式
·資料庫訪問
·許可(對象許可、命令許可、授權許可的方法)
2.5應用程序開發
2.5.1 應用程序開發
·選擇應用程序開發平台
·系統實施順序
·框架開發
·基礎小組的程序開發
·源代碼控制
·版本控制
2.5.2 模塊劃分(原則、方法、標准)
2.5.3 編寫程序設計文檔
·模塊規格說明書(功能和介面說明、程序處理邏輯的描述、輸入輸出數據格式的描述)
·測試要求說明書(測試類型和目標,測試用例,測試方法)
2.5.4 程序設計評審
2.6 編寫應用系統設計文檔
·系統配置說明、構件劃分圖、構件間的介面、構件處理說明、屏幕設計文檔、報表設計文檔、程序設計文檔、文件設計文檔、資料庫設計文檔
2.7 設計評審
3. 資料庫應用系統實施
3.1 整個系統的配置與管理
3.2 常用資料庫管理系統的應用(SQL Server、Oracle、Sybase、DB2、Access或Visual Foxpro)
·創建資料庫
·創建表、創建索引、創建視圖、創建約束、創建UDDT(用戶自定義類型)
·創建和管理觸發器
·建立安全體系
3.3 資料庫應用系統安裝
·擬定系統安裝計劃(考慮費用、客戶關系、雇員關系、後勤關系和風險等因素)
·擬定人力資源使用計劃(組織機構安排的合理性)
·直接安裝(安裝新系統並使系統快速進入運行狀態)
·並行安裝(新舊系統並行運行一段時間)
·階段安裝(經過一系列的步驟和階段使新系統各部分逐步投入運行)
3.4 資料庫應用系統測試
·擬定測試目標、計劃、方法與步驟
·數據載入,准備測試數據
·指導應用程序員進行模塊測試進行驗收
·准備系統集成測試環境測試工具
·寫出資料庫運行測試報告
3.5 培訓與用戶支持
4.資料庫系統的運行和管理
4.1 資料庫系統的運行計劃
·運行策略的確定
·確定資料庫系統報警對象和報警方式
·資料庫系統的管理計劃(執行,故障/恢復,安全性,完整性,用戶培訓和維護)
4.2 資料庫系統的運行和維護
·新舊系統的轉換
·收集和分析報警數據(執行報警、故障報警、安全報警)
·連續穩定的運行
·資料庫維護(資料庫重構、安全視圖的評價和驗證、文檔維護)
·資料庫系統的運行統計(收集、分析、提出改進措施)
·關於運行標准和標准改進一致性的建議
·資料庫系統的審計
4.3 資料庫管理
·數據字典和數據倉庫的管理
·數據完整性維護和管理(實體完整性、參照完整性)
·資料庫物理結構的管理(保證數據不推遲訪問)
·資料庫空間及碎片管理
·備份和恢復(順序、日誌(審計痕跡)、檢查點)
·死鎖管理(集中式、分布式)
·並發控制(可串列性、鎖機制、時間戳、優化)
·數據安全性管理(加密、安全、訪問控制、視圖、有效性確認規則)
·資料庫管理員(DBA)職責
4.4 性能調整
·SQL語句的編碼檢驗
·表設計的評價
·索引的改進
·物理分配的改進
·設備增強
·資料庫性能優化
4.5 用戶支持
·用戶培訓
·售後服務
5. SQL
5.1資料庫語言
·資料庫語言的要素
·資料庫語言的使用方式(互動式和嵌入式)
5.2 SQL概述
·SQL語句的特徵
·SQL語句的基本成分
5.3 資料庫定義
·創建資料庫(Create Datebase)、創建表(Create Table)
·定義數據完整性
·修改表(Alter Table)、刪除表(Drop Table)
·定義索引(Create Index)、刪除索引(Drop Index)
·定義視圖(Create View)、刪除視圖(Drop View)、更新視圖
5.4 數據操作
·Select語句的基本機構
·簡單查詢
·SQL中的選擇、投影
·字元串比較,涉及空值的比較
·日期時間,布爾值,輸出排序
·多表查詢
·避免屬性歧義
·SQL中的連接、並、交、差
·SQL中的元組變數
·子查詢
5.5完整性控制與安全機制
·主鍵(Primary Key)約束
·外鍵(Foreign Key)約束
·屬性值上的約束(Null、Check、Create Domain)
·全局約束(Create Assertions)
·許可權、授權(Grant)、銷權(Revoke)
5.6 創建觸發器(Create Trigger)
5.7 SQL使用方式
·互動式SQL
·嵌入式SQL
·SQL與宿主語言介面(Declare、共享變數、游標、卷游標)
·動態SQL
·API
5.8 SQL 標准化
6. 網路環境下的資料庫
6.1分布式資料庫
6.1.1 分布式資料庫的概念
·分布式資料庫的特點與目標
6.1.2 分布式資料庫的體系結構
·分布式資料庫的模式結構
·數據分布的策略(數據分片、分布透明性)
·分布式資料庫管理系統
6.1.3分布式查詢處理和優化
6.1.4分布式事務管理
·分布式資料庫的恢復(故障、恢復、2段提交、3段提交)
·分布式資料庫的透明性(局部、分裂、復制、處理、並發、執行)
6.1.5分布式資料庫系統的應用
6.2 網路環境下資料庫系統的設計與實施
·數據的分布設計
·負載均衡設計
·資料庫互連技術
6.3 面向Web的DBMS技術
·三層體系結構
·動態Web網頁
·ASP、JSP、XML的應用
7.資料庫的安全性
7.1 安全性策略的理解
·資料庫視圖的安全性策略
·數據的安全級別(最重要的、重要的、注意、選擇)
7.2資料庫安全測量
·用戶訪問控制(採用口令等)
·程序訪問控制(包含在程序中的SQL命令限制)
·表的訪問控制(視圖機制)
·控制訪問的函數和操作
·外部存儲數據的加密與解密
8. 資料庫發展趨勢與新技術
8.1面向對象資料庫(OODBMS)
8.1.1 OODBMS的特徵
8.1.2 面向對象數據模型
·對象結構、對象類、繼承與多重繼承、對象標識、對象包含、對象嵌套
8.1.3面向對象資料庫語言
8.1.4 對象關系資料庫系統(ORDBMS)
·嵌套關系
·復雜類型
·繼承、引用類型
·與復雜類型有關的查詢
·函數與過程
·面向對象與對象關系
·ORDBMS應用領域
8.2企業資源計劃(ERP)和資料庫
8.2.1 ERP概述
·基本MRP(製造資源計劃)、閉環MRP、ERP
·基本原理、發展趨勢
·ERP設計的總體思路(一個中心、兩類業務、三條干線)
8.2.2 ERP與資料庫
·運行資料庫與ERP數據模型之間的關系
·運行資料庫與ERP資料庫之間的關系
8.2.3 案例分析
8.3決策支持系統的建立
·決策支持系統的概念
·數據倉庫設計
·數據轉移技術
·聯機分析處理(OLAP)技術
·企業決策支持解決方案
·聯機事務處理(OLTP)

⑻ 軟體工程師需要學習哪些課程

計算機導論

內容提要:為新學生提供一個關於計算機科學與技術學科的入門介紹,使他們對該學科有一個整體的認識,並了解該專業的學生應具有的基本知識和技能以及在該領域工作應有的職業道德與應遵守的法律准則。

數字電路與數字邏輯

內容提要:介紹數字邏輯與數字系統的基本概念、分析方法和設計原理,包括開關理論基礎、組合邏輯、時序邏輯、可編程邏輯器件、數字系統等。

計算機組成原理與匯編語言

內容提要:以馮諾依曼計算機模型為出發點,介紹計算機的組織結構和工作原理,剖析計算機的運算器、存儲器、控制器和輸入輸出設備的結構、工作原理和相互關系;介紹 80X86指令系統、匯編語言與匯編指令、匯編程序與匯編過程、簡單匯編程序設計、匯編語言與高級語言的介面、宏匯編等。

計算機網路

內容提要:介紹數據通信的基本概念和計算機網路的基本原理,包括計算機網路的體系結構、數據通信的基本方法和協議、計算機網路的主要應用協議;同時介紹計算機網路系統的安全和管理知識,使學生對數據通信和計算機網路有一個全面理解。

計算機體系結構

內容提要:研究計算機系統結構的基本概念、基本原理、基本結構和基本分析方法,使同學在具有一定的軟硬體知識基礎上能綜合認識計算機系統的軟硬體功能分配與各種不同結構類型機器的特性和性能評價方法。為研究、開發、應用高級計算機系統打下基礎。確立全面、系統的觀點和學會定量分析問題的方法。

離散數學

內容提要:包括集合論、數理邏輯、圖論、組合數學等內容,形式化的數學證明貫穿此課程。

高級程序設計語言

內容提要:分別以 C、C#或JAVA為例,介紹程序設計和語言,程序的基本數據結構、類型定義、簡單類型和結構化類型、程序的基本控制結構、結構化程序設計、面向對象的程序設計等。

演算法分析與設計

內容提要: 本課程延續數據結構課程的學習,從演算法分析和設計的角度出發,除去傳統的分類查找演算法和一般的設計方法外,主要內容包括如下幾個部分:演算法研究的理論基礎,遞歸分析技術,基本演算法設計策略(幾類經典演算法學習), 多項式運算與 FFT ,串匹配,概率分析演算法。 希望通過這一課程的學習,使學生能對現代的演算法設計及分析的基本工具能有較全面的掌握。

數據結構

內容提要:介紹線性表及其鏈接存儲結構與演算法、數組與矩陣、堆棧與隊列、廣義表的存儲結構與多元多項式表示、串與文本編輯、排序、樹、圖、文件結構。

資料庫系統原理

內容提要:介紹資料庫系統的基本概念、原理、方法及應用,主要包括資料庫系統概論、資料庫管理系統實現技術、資料庫存儲結構及其他類型的資料庫系統。

編譯技術

內容提要:介紹編譯原理的理論和實踐,包括編譯程序設計、詞法分析、語法分析、符號表、聲明和存儲管理、代碼生成以及優化技術。

操作系統

內容提要:介紹操作系統的設計與實現,包括操作系統各組成部分的概述、互斥性和同步性、處理器實現、調度演算法、存儲演算法、設備管理和文件系統。

閱讀全文

與系統調度演算法工程師相關的資料

熱點內容
方舟pv怎麼轉伺服器 瀏覽:99
數據挖掘中誤差值演算法函數 瀏覽:118
php開發套件 瀏覽:190
伺服器的spi板是什麼 瀏覽:896
解壓縮全能王中文密碼是什麼 瀏覽:80
javaftp伺服器上傳文件 瀏覽:103
演算法設計中文版pdf 瀏覽:81
視頻壓縮形式怎麼改 瀏覽:368
perl程序員 瀏覽:789
電子表格對比命令 瀏覽:610
php循環輸出數組內容 瀏覽:750
電腦加密能不能強制關掉 瀏覽:616
趣味單人解壓桌游 瀏覽:212
oppo手機谷歌伺服器無法核實什麼 瀏覽:320
軟體怎麼加密華為 瀏覽:222
掃地機怎麼安裝app 瀏覽:319
考研結合特徵值計演算法 瀏覽:516
操作系統演算法綜合題 瀏覽:152
華為程序員待遇 瀏覽:547
程序員帶娃的圖片 瀏覽:79