第一篇:軟考軟件設計師必做練習題及答案
軟考軟件設計師必做練習題及答案
軟件設計師考試屬于全國計算機技術與軟件專業技術資格考試(簡稱計算機軟件資格考試)中的一個中級考試??荚嚥辉O學歷與資歷條件,也不論年齡和專業,考生可根據自己的技術水平選擇合適的級別合適的資格,但一次考試只能報考一種資格。考試采用筆試形式,考試實行全國統一大綱、統一試題、統一時間、統一標準、統一證書的考試辦法。下面是希賽小編整理的軟考軟件設計師考前必做的練習題。試題一分析
本題主要考查類圖和順序圖。【問題1】
需要分析此門禁系統的體系結構,根據體系結構的描述來看什么數據放在什么類中最為合適。題目中提到:系統中的每個電控鎖都有一個唯一的編號。鎖的狀態有兩種:“已鎖住”和“未鎖住”。所以Lock中含有鎖編號和鎖狀態這兩個屬性。又因為題中有:在主機上可以設置每把鎖的安全級別以及用戶的開鎖權限。只有當用戶的開鎖權限大于或等于鎖的安全級并且鎖處于“已鎖住”狀態時,才能將鎖打開。因此,Lock中還有鎖的安全級別。
【問題2】
首先,(1)、(2)是FingerReader和LockController之間的交互。所以我們看題目中是如何描述他們的交互的。題目中有“指紋采集器將發送一個中斷事件給鎖控器,鎖控器從指紋采集器讀取用戶的指紋”,所以(1)應填“中斷事件”,(2)應填“讀取指紋”。(3)是主機與UserInfo的交互,從圖2-35中可以看出,UserInfo中存儲了用戶的指紋信息和開鎖權限,所以(3)應是從UserInfo讀取用戶的指紋信息和開鎖權限。(4)空應填“讀取鎖的安全級別”。(5)是MainFrame向自己發送的一條消息,從題目中的“主機根據數據庫中存儲的信息來判斷用戶是否具有開鎖權限,若有且鎖當前處于已鎖住狀態,則將鎖打開;否則系統報警”可以看出,主機在得到所有信息后要判斷用戶是否能開鎖,所以(5)應填“判斷用戶是否能開鎖”。
【問題3】
這是純理論題,請直接閱讀參考答案。
試題一參考答案
【問題1】
鎖的編號、安全級別、鎖的當前狀態。
【問題2】
(1)中斷事件(2)讀取用戶指紋
(3)讀取用戶開鎖權限(4)讀取鎖的安全級別
(5)判斷用戶是否有權限開鎖,或用戶是否可以開鎖
【問題3】
組裝和聚集都表示實例之間的整體/部分關系。組裝是聚集的一種形式。
聚集是概念性的,只是區分整體與部分。
組裝具有很強的歸屬關系,而且整體與部分的對象生存周期是一致的。
試題二分析
本題考查的是UML類圖和順序圖的基本知識。
【問題1】
由于一個商品分類中可以有多個商品,而一個商品僅僅對應一個商品分類,所以商品分類與商品之間的關系是1:0..*,即第(1)空填“0..*”,第(2)空填“1”。
促銷活動與商品之間的關系是這樣的:一個促銷活動至少得有一種促銷商品,否則就無法成為促銷活動;而一種商品可以參與多個促銷活動,所以促銷活動與商品之間的關系有些特別,應是0..*:1..*,故第(3)空填“0..*”,第(4)空填“1..*”。
再看訂單與促銷活動之間的關系:由于題目中說明“用戶可選擇參與某一個促銷(Promotion)活動”,同時對于一個促銷活動可以有多個客戶下訂單,所以它們之間的關系為1:0..*,所以第(5)空填“1”,第(6)空填“0..*”。
【問題2】
在順序圖中,消息的執行順序為:在垂直方向自上至下地執行,其中的虛線表示消息結果的返回。在圖2-38中,包含著兩個操作,第一個操作是得到某個商品的信息,其流程是:先在商品分類列表中找到相應的分類,再從分類中找到具體的商品,從此商品對應的類中得到相應信息。所以第(7)空應填“getCategories”,第(8)空應填“getCommodities”。第二個操作是創建一次促銷活動,并為其指定促銷品,所以第(9)空應填“createPromotion”,第(10)空應填“addCommodities”。
【問題3】
這是一個純理論問題,請直接閱讀參考答案。
試題二參考答案
【問題1】
(1)0..n或1..n(2)1(3)0..n
(4)1..n(5)1(6)0..n
【問題2】
(7)getCategories(8)getCommodities
(9)createPromotion(10)addCommodities
【問題3】
關系:聚集(聚合)是關聯的特例。(聚集是關聯的一種)
不同點:聚集表示部分與整體關系的關聯。
試題三分析
本題考查類圖和狀態圖。
【問題1】
根據“每首歌曲的描述信息包括:歌曲的名字、譜寫這首歌曲的藝術家及演奏這首歌曲的藝術家”和圖2-39中類A與類B之間約束為“編寫”、“演奏”,所以類A與類B只能是藝術家和歌曲,又根據圖上標示的關聯關系(1,0..*),可以確定類A為藝術家(Artist);類B為歌曲(Song)。類B與類E之間是聚集關系,根據題中“一條音軌中只包含一首歌曲或為空,一首歌曲可分布在多條音軌上”,可以得到類E為音軌(Track)。
接下來看類E與類F之間存在組成的關系,根據“每張唱片由多條音軌構成”得到,類F為唱片(Album)。再來看類C和類D,它們與類A存在泛化關系,根據“藝術家可能是一名歌手或一支由2名或2名以上的歌手所組成的樂隊”可知,類C與類D為歌手和樂隊,又因為類C與類D存在聚集關系,根據題中“一名歌手可以不屬于任何樂隊,也可以屬于一個或多個樂隊”可知,類C為樂隊(Band),類D為歌手(Musician)。
【問題2】
類C為樂隊,類D為歌手,題中“一支由2名或2名以上的歌手所組成的樂隊。一名歌手可以不屬于任何樂隊,也可以屬于一個或多個樂隊”,則第(1)空應填“0..*”,第(2)空應填“2..*”。類B與類E存在聚集關系,題中“一條音軌中只包含一首歌曲或為空,一首歌曲可分布在多條音軌上”,所以第(3)空應填“0..1”,第(4)空應填“1..*”。
類E與類F存在泛化關系,題中“每張唱片由多條音軌構成”,所以第(5)空應填“1..*”,第(6)空應填“1”。
特別要說明一下,是“0..*”還是“1..*”,要看表述和實際情況,比如第(5)空,一張唱片至少有幾條音軌,當然至少有一條,否則就不是唱片了,故是從1開始的。
【問題3】
本問題考查的是類/對象關聯中的一種特殊關聯:遞歸關聯,它描述的是同一個類的不同實例之間的關系。而類Track的不同實例之間恰好具有這種關系(因此對于任意一條音軌,播放器需要準確地知道,它的下一條音軌和上一條音軌是什么)。所以缺少的那條聯系的兩端都是類Track,其多重度都為0..1。下限為0,是對應不存在上一條或下一條音軌的情況。
【問題4】
問題4給定了兩個狀態“關閉”和“播放”,要求找出從“關閉”到“播放”的最短事件序列。這就要求我們能夠在狀態圖上找到連接這兩個狀態的最短遷移,然后將遷移上的事件記錄下來就可以了。
從“關閉”狀態到“播放”狀態可以選擇經過遷移“連接電腦”到達“聯機”狀態,再經過遷移“斷開連接”到達狀態“打開”,再從“打開”狀態的初始狀態“歌曲待選”,經過遷移“選擇歌曲”到達“播放狀態”。這樣經過的事件序列為:連接電腦電量飽和/完成復制斷開連接選擇歌曲。顯然這樣的事件序列遠比“關閉”經過“按任意鍵”直接到達“打開”狀態要長得多。所以從“關閉”到“播放”的最短事件序列是:按任意鍵,選擇歌曲。
試題三參考答案
【問題1】
A:ArtistB:SongC:Band
D:MusicianE:TrackF:Album
【問題2】
(1)0..*(2)2..*(3)0..1
(4)1..*(5)1..*(6)1
【問題3】
【問題4】
按任意鍵,選擇歌曲。
試題四分析
題目以希賽公司在線會議審稿系統為例,考查考生對UML用例圖與活動圖的掌握情況。
【問題1】
題目已經給出了4類參與者:用戶、作者、審稿人、委員會主席,關鍵在于弄清楚各個參與者之間的關系,這些關系是通過題目中的系統功能描述來獲得的。
(1)“用戶在初始使用系統時,必須在系統中注冊(register)成為作者或審稿人”,從此處可以得知系統中的用戶分成了兩類:作者和審稿人。
(2)“會議委員會主席是一個特殊審稿人”。
從上面兩個條件得知:A1對應用戶,A2對應作者,A3對應審稿人,A4對應會議委員會主席。同時由于UML圖中不允許出現中文,且題目明確要求用英文名稱給出A1~A4所對應的參與者,所以A1~A4處應分別填寫User、Author、Reviewer和PCChair。
【問題2】
由“會議委員會主席是一個特殊審稿人,可以瀏覽提交的稿件,給審稿人分配稿件,羅列錄用和(或)拒絕的稿件,以及關閉審稿過程”結合“用例名稱列表”可以得知:會議委員會主席能操作的功能有瀏覽提交的稿件、分配稿件給審稿人、羅列錄用或/和拒絕的稿件、關閉審稿過程。而從“其中關閉審稿過程須包括羅列錄用和(或)拒絕的稿件”可以看出,用例“關閉審稿過程”與“羅列錄用或/和拒絕的稿件”之間有包含關系。從這個關系可以得知,U1對應的用例為:羅列錄用或/和拒絕的稿件。同時(2)對應的關系為包含關系,即U1應填“listaccepted/rejectedpapers”,(2)應填“>”。這樣,剩余的兩項功能“瀏覽提交的稿件”和“分配稿件給審稿人”對應的為U2與U3,所以U2和U3分別應填“browsesubmittedpapers”和“assignpapertoreviewer”。
【問題3】
該小題考查考生對包含與擴展關系的理解。在對問題2的分析中,已經得出(2)填“>”?,F在來看(1),該空是填“登錄”與“提交稿件”之間的關系,在提交稿件時,若用戶已經登錄,則可直接提交;但如果用戶沒有登錄,則需要先登錄再提交,所以它們之間的關系應是擴展關系,即(1)應填“>”。
【問題4】
該活動圖所描述的是作者提交稿件的過程,對此過程題目有詳細的描
述:“作者登錄(login)后提交稿件和瀏覽稿件審閱結果。提交稿件必須在規定提交時間范圍內,其過程為先輸入標題和摘要、選擇稿件所屬主題類型、選擇稿件所在位置(存儲位置)。上述幾步若未完成,則重復;若完成,則上傳稿件至數據庫中,系統發送通知?!?,所以Action1~Action4分別對應:輸入標題和摘要、選擇稿件所屬主題類型、選擇稿件所在位置、上傳稿件。所以Action1~Action4分別填:entertitleandabstract、selectsubjectgroup、selectpaperlocation和uploadpaper。
試題四參考答案
【問題1】
A1:UserA2:AuthorA3:ReviewerA4:PCChair
【問題2】
U1:listaccepted/rejectedpapersU2:browsesubmittedpapers U3:assignpapertoreviewer
注:U2和U3的答案可互換
【問題3】
(1)>(2)>
【問題4】
Action1:entertitleandabstract Action2:selectsubjectgroup Action3:selectpaperlocation Action4:uploadpaper
試題五分析
本題考查面向對象系統開發時,采用UML模型進行建模的方法。
【問題1】
識別參與者時,考查和系統交互的人員和外部系統。在本題中,與系統交互的人員包括員工、注冊到系統的員工(顧客)、餐廳員工、菜單管理員、送餐員以及工資系統。
由“菜單管理員是餐廳特定員工”以及圖2-43中A2和圖中餐廳員工之間的“是一種”關系可知,A2為菜單管理員;圖2-43中還缺少描述中與工資系統的交互,由“……并發送給工資系統”可知,A1為工資系統。
【問題2】
在本題中,由“任何員工都可以查看菜單和今日特價”可知,圖2-43中缺少用例查看今日特價,對應參與者是員工;由“系統的顧客是……,注冊工資支付、……”可知,圖中缺少用例注冊工資支付,對應參與者是顧客和工資系統;由“餐廳員工是……,可以進行備餐、生成付費請求……發送給工資系統”可知,圖2-43中缺少用例“生成付費請求”,對應的參與者是餐廳員工和工資系統;由“菜單管理員是餐廳特定員工,可以管理菜單”可知,圖2-43中缺少用例管理菜單,對應的參與者是菜單管理員。
需要注意的是,在注冊工資支付所對應的參與者中,雖然沒有明確說明要和工資系統交互,但是由“對于注冊工資支付的顧客生成付費請求并發送給工資系統”可知,工資支付是由工資系統控制,所以注冊也需要和工資系統交互。
【問題3】
在顧客訂餐過程的描述中,在“顧客選菜”之前,圖中缺少符號和活動。由說明中顧客“可以訂餐(如果未登錄,需先登錄)”可以判斷,在系統“顯示菜單和今日特價”之后“顧客選菜”之前,需要判斷(判定符號)當前用戶身份是否為顧客,如果不是,需先登錄;由“……發送E-mail給顧客以確認訂餐,同時發送相關訂餐信息通知給餐于員工”可知,發送E-mail和通知餐廳員工為并行活動,需要在前后有同步條(或縱向
【問題4】
參與者之間的關系表示子類型“是一種”父類型,即泛化關系。其中父類型通常是一個抽象泛化的參與者,可以完成子類型可完成的共同行為,每個具體的子類型繼承它,可以完成父類型參與者同樣的任務,并可以補充額外的角色功能。
試題五參考答案
【問題1】)。
A1:工資系統A2:菜單管理員
【問題2】
【問題3】
【問題4】
泛化關系(一般/特殊關系、繼承關系)。泛化關系描述了一個參與者可以完成另一個參與者同樣的任務,并可補充額外的角色功能。
第二篇:2015年軟考軟件設計師模擬試題及答案解析
2015年軟考軟件設計師模擬試題及答案解析[1] 【網絡綜合-2015年軟考軟件設計師模擬試題及答案解析】:
41.不是C語言提供的合法關鍵字是(46)
(45)A.switch
B.begin
C.case
D.default
參考答案:(46)B。
解析:因C語言的關鍵字表中沒有begin,它不是C語言的關鍵字。所以解答是B。
42.下列字符列中,能作為單個標識符是(47)
(47)A.?a
B.a=2
C.a.3
D.a___3
參考答案:(47)D。
解析:在C語言中,規定標識符是這樣一種字符序列,由英文字母或下線字符開始,后接任1個英文字母、下線字符和數字符組成。所以問題所列的字符列只有a_3是標識符,其余都l是標識符,一個是由字符’?’開頭、一個中間有字符’=’,另一個有字符’.’。所以解答是D。
43.在C語言中,下列說法中錯誤的是(48)
(47)A.函數定義可以分為兩個部分:函數說明部分和函數體
B.主函數可以調用任何非主函數
C.任何非主函數可以調用其它任何非主函數
D.程序可以從任何函數開始執行
參考答案:(48)D。
解析:每個C函數的定義分兩部分,函數說明部分和函數體,所以敘述①是正確的敘述。C語言中,函數可以遞歸調用,主函數可以調用程序中的任何函數,當然可以調用任何非主教的其它函數,所以敘述②是一個正確的敘述。同樣理由,敘述③也是正確的。C語言規,C程序只有一個主函數,并總是從主函數開始執行,不能從非主函數開始執行。所以,說程可以從任何函數開始執行是錯誤的。所以解答是D。
44.為了直觀地分析系統的動作,從特定的視點出發描述系統的行為,需要采用動態分析的方法。其中,(49)適用于描述與分析相互獨立、協同操作的處理系統,也就是并發執行的處理系統。
(49)A.狀態遷移圖
B.時序圖
C.Petri網
D.HIPO圖
參考答案:(49)C。
解析:為了直觀地分析系統的動作,從特定的視點出發描述系統的行為,需要采用動態分析的方法。常用的動態分析方法有狀態遷移圖、時序圖和Petri網。
狀態遷移圖是描述系統的狀態如何響應外部的信號進行推移的一種圖形表示。
時序圖用于對比在系統中處理時間的時序與相應的處理時間,進行系統分析。
Petri網方法本來是表達異步系統的控制規則的圖形表示方法,現在已經廣泛地應用于硬件與軟件系統的開發中,它適用于描述與分析相互獨立、協同操作的處理系統,也就是并發執行的處理系統。
在結構化設計中,分層輸入-處理-輸出圖(HIPO圖)既可以描述軟件總的模塊層次結構,又可以描述每個模塊的輸入/輸出關系、處理內容、模塊的內部數據和模塊的調用關系。它是系統設計的重要成果,也是系統實施階段編制程序設計任務書和進行程序設計的出發點和依據。
46.函數調用語句“f((el,e2),(e3,e4,e5));”中參數的個數是(51)
(51)A.1
B.2
C.4
D.5
參考答案:(51)B。
解析:上述函數調用中,(e1,e2)和(e3,e4,e5)是兩個帶括號的表達式,所以函數調用只提供兩個實參,其中第一個實參先計算el的值,然后計算e2,并以e2的值為實參。第二個實參順序計算e3,e4,e5,并以e5的值為實參。所以解答是B。
47.C語言中,函數的隱含存儲類型是(52)
(52)A.auto
B.static
C.extern
D.無存儲類別
參考答案:(52)C。
解析:由于C函數內不能再定義函數,C函數的存儲類型只能是靜態的或外部的之一。若定義函數時不指定存儲類型是靜態的,則它的存儲類型就是外部的(extern),即函數允許被程序的其它函數調用。所以解答是C。
48.測試是保證軟件質量的重要手段。根據國家標準GB 8566-88《計算機軟件開發規范》的規定,應該在(53)階段制定系統測試計劃。
(53)A.需求分析
B.概要設計
C.詳細設計
D.系統測試
參考答案:(53)A 49.以下對C語言函數的有關描述中,正確的是(54)
(54)A.在C語言中,調用函數時,只能把實參的值傳遞給形參,形參的值不能傳遞給實參
B.C函數既可以嵌套定義,又可以遞歸調用
C.函數必須有返回值,否則不能定義成函數
D.C程序中,有調用關系的所有函數必須放在同一個源程序文件中
參考答案:(54)A。
解析:C語言規定,調用函數時,只能把實參的值傳遞給函數的形參。函數調用時,形參從實參表達式得到初值,報參也是函數的一種局部變量,其值可以改變,但形參的值不能傳回給對應的實參。當函數設置非指針類型的形參時,實參可以是同類型的一般表達式;當函數設置指針類型的形參時,對應的實參也必須是同類型的指針表達式。所以敘述A是正確的。C語言雖可以遞歸調用,但同時規定,在函數內不能再定義函數,所以敘述B是錯誤的。通常C函數會有返回值,但也可以沒有返回值。有許多情況,函數的執行是完成某種預定的工作,并沒有返回值,所以敘述C是不正確的。在C程序中,如函數未指定是靜態的,則就是外部的,能讓別的文件中的函數調用。但函數要調用別的文件中的函數,在調用代碼之前,需對它作說明,所以敘述D也是不正確的。正確的解答只有A。
50.某軟件產品在應用初期運行在Windows 2000環境中。現因某種原因,該軟件需要在Linux環境中運行,而且必須完成相同的功能。為適應該需求,軟件本身需要進行修改,而所需修改的工作量取決于該軟件的(55)。
(55)A.可復用性
B.可維護性
C.可移植性
D.可擴充性
參考答案:(55)C。
解析:軟件的可復用性指軟件或軟件的部件能被再次用于其他應用中的程度。軟件復用性取決于其模塊獨立性、通用性和數據共享性等。
軟件的可維護性是指一個軟件模塊是否容易修改、更新和擴展,即在不影響系統其他部分的情況下修改現有系統功能中問題或缺陷的能力。
軟件的可移植性指將軟件系統從一個計算機系統或操作系統移植到另一種計算機系統或操作系統中運行時所需工作量的大小??梢浦残匀Q于系統中硬件設備的特征、軟件系統的特點和開發環境,以及系統分析與設計中關于通用性、軟件獨立性和可擴充性等方面的考慮。
軟件的可擴充性指軟件的體系結構、數據設計和過程設計的可擴充程度。可擴充性影響著軟件的靈活性和可移植性。
由以上分析可知,該軟件產品從Windows 2000環境中遷移到Linux環境中運行,為完成相同的功能,軟件本身需要進行修改,而所需修改的工作量取決于該軟件產品的可移植性。
51.進程的五態模型包括運行狀態、活躍就緒狀態、靜止就緒狀態、活躍阻塞狀態和靜止阻塞狀態。針對圖5的進程五態模型,為了確保進程調度的正常工作,(a)、(b)和(c)的狀態分別為(56)。
軟件設計師練習試題及答案解析
圖6 進程的五態模型圖
(56)A.靜止就緒、靜止阻塞和活躍阻塞
B.靜止就緒、活躍阻塞和靜止阻塞
C.活躍阻塞、靜止就緒和靜止阻塞
D.活躍阻塞、靜止阻塞和靜止就緒
參考答案:(56)D。
解析:在多道程序系統中,進程在處理器上交替運行,在運行、就緒和阻塞3種基本狀態之間不斷地發生變化。由于進程的不斷創建,系統資源(特別是主存資源)已不能滿足進程運行的要求。此時就必須將某些進程掛起,對換到磁盤鏡像區,暫時不參與進程調度,以平衡系統負載的目的。如果系統出現故障,或者是用戶調試程序,也可能需要將進程掛起檢查問題。
在圖6具有掛起狀態的進程狀態及其轉換圖中,活躍就緒是指進程在主存并且可被調度的狀態。(1)空缺處各選項中,靜止就緒是指進程被對換到輔存時的就緒狀態,是不能被直接調度的狀態,只有當主存中沒有活躍就緒態進程,或者是掛起態進程具有更高的優先級,系統將把掛起就緒態進程調回主存并轉換為活躍就緒。因此,圖6的(c)空缺處應填入“靜止就緒”這一狀態。
活躍阻塞是指進程在主存中。一旦等待的事件產生,便進入活躍就緒狀態。因此,圖6的(a)空缺處應填入“活躍阻塞”。
靜止阻塞是指進程對換到輔存時的阻塞狀態。一旦等待的事件產生,便進入靜止就緒狀態。故圖6的(b)空缺處應填入“靜止阻塞”。
由以上分析可知,(56)空缺處的正確答案是選項D。
另外,對于一張完整的進程五態模型圖,則需在圖3-4模型圖中增加一條從“運行”態到“活躍阻塞”態的邊,其狀態轉換原因是“等待”事件(如I/O請求)發生,以及增加一條從“運行”態到“靜止就緒”態的邊,其狀態轉換原因是“掛起”。
52.基于構件的開發(CBD)模型,融合了(57)模型的許多特征。該模型本質是演化的,采用迭代方法開發軟件。
(57)A.瀑布
B.螺旋
C.噴泉
D.快速應用開發(RAD)
參考答案:(57)B。
解析:螺旋模型是演化軟件過程模型的一種,最早由Boehm提出,它將原型實現的迭代特征與線性順序模型中控制的和系統化的方面結合起來,使軟件增量版本的快速開發成為可能。在螺旋模型中,軟件開發是一系列的增量發布。
面向對象技術為軟件工程的基于構件的過程模型提供了技術框架?;跇嫾拈_發模型融合了螺旋模型的許多特征。它本質上是演化型的,要求軟件創建迭代方法。
基于構件的開發模型是利用預先包裝好的軟件構件來構造應用的。統一軟件開發(RUP)過程是在產業界提出的一系列基于構件的開發模型的代表。
53.設有定義“inta=3,b,*p=&a;”,則下列語句中使b不為3的語句是(58)
(58)A.b=*&a;
B.b=*p;
C.b=a;
D.b=*a;
參考答案:(58)D。
解析:定義有inta=3,b,*p=&a;對b賦值的表達式有*&a、*p、a、*a。引用變量。的值有兩種方法,一是直接引用a,二是通過a的指針間接引用a。對于后者,又有多種表達方法,通過指向a的指針p,間接引用a的內容,如*p?;蛲ㄟ^求地址運算符由變量a得到其指針&a,再由這指針表達式間接引用a的內容,如*&a。所以表達式*&a、*p和a都能引用變量a的值,而使b的值為3。而表達式。a是錯誤的,因為a不是指針變量,不能對它施行取內容運算符。所以解答是D。
54.設指針x指向的整型變量值為萬,則“printf(”%d “,++*x);”的輸出是(59)
(59)A.23
B.24
C.25
D.26
參考答案:(59)D。
解析:若指針變量x指向某個變量,例如指向變量v,并且變量v的值是25,則表達式++*x的值是26。這是因為表達式的計算順序可加圓括號表達成(++(*x)),首先是*x,是對X所指變量V的引用,所以++*X就是++V。++V是先讓變量V增1,并以增至后的V的值為表達式++V的結果,所以其值是26。所以解答是D。
55.若有說明:“inti,j=7,*p=&i;”,則與“i=j;”等價的語句是(60)
(59)A.i=*p;
B.*P=*&j;
C.i==&j;
D.i=**p;
參考答案:(60)B。
解析:指針變量p指向變量i時,表達式i=*p等價于i=i;表達式*p=*&j等價于i=j;而表達式i=&j企圖將整型變量的指針賦給整型變量,這是錯誤的;表達式i=**p也是一種錯誤的表達式。p是指針,*p是p所指變量j,**p是企圖將整型變量j當作指針,并想通過j間接引用某個變量。所以解答是B。
56.以下關于軟件質量度量指標的敘述中,說法正確的是(61)。
(32)A.正確性就是用每千行代碼的故障(fault)數來度量
B.軟件完整性是指軟件功能與需求符合的程度
C.軟件維護的工作量比開發階段的工作量小
D.可用性與用戶的操作效率和主觀評價有關
參考答案:(61)D。
解析:最主要的軟件質量度量指標有正確性、可維護性、完整性和可用性。軟件的正確性是指軟件完成所需功能的程度,盡管這種程度與每千行代碼的故障數有關,但不完全等同。
軟件完整性是指軟件在安全方面抗攻擊的能力。
軟件維護的工作量比開發階段的工作量大,通常的估計是,開發階段的工作量占軟件生命期整個工作量的40%,而維護階段的工作量則占60%,甚至更多。
軟件可用性用來度量軟件的“用戶友好性”,可以從①學會操作軟件所需的體力和智力、②對系統的使用達到中等效率所需的時間、③當系統由一個中等效率的人使用時測量到的生產率增長值和④用戶對系統的主觀評價等4個方面來度量可用性。
第三篇:2010年上半年軟考軟件設計師考試試題及答案
2010年上半年軟考軟件設計師考試試題及答案
案例分析1 當初為了占領市場,淘寶網等C2C網站前仆后繼選擇了免費策略。在成功使用免費戰略籠絡了客戶之后,2006年5月,淘寶網嘗試性地推出了收費性服務——招財進寶,即“淘寶網將按賣家所出招財進寶價格等條件決定其寶貝在淘寶相關頁面或其合作伙伴的相關頁面中排名位置,并按照最后的成交情況,來收取服務費”。然而這一朝著贏利方向的嘗試,遭到用戶的強烈反抗,不少淘寶用戶甚至采取罷市的方法,抗議淘寶網失信當初的免費諾言。2006年6月,招財進寶被用戶公開投票宣判死刑,淘寶網對C2C電子商務網站盈利模式的首次摸索,以失敗告終。案例簡介 在“招財進寶”出道的時候,很受人關注,多數專業人士認為“招財進寶”思路清晰,方式巧妙,和百度的競價排名異曲同工;在激烈的C2C競爭中,淘寶網找到了一條潛在的贏利道路。但在“招財進寶”的實施過程當中,業績并不好,最后被撤銷。作為關鍵字付費點擊業務的C2C版本,淘寶網創造新的收入模式,為一部分會員提供增值業務;另一方面,隨著商品數量的上升,如何進行有效的商品篩選及排序也是一項難題。
認真閱讀以上案例材料,回答以下問題。1.簡單概述一下淘寶網的經營模式。2.試分析淘寶網“招財進寶”失敗的原因?
3.從淘寶網“招財進寶”失敗的案例中,你得到的啟示有哪些?
案例分析2 材料1 伊利集團是全國乳品行業的龍頭企業之一。為了提升企業的管理水平,1999年,伊利集團開始醞釀上ERP。以伊利集團的財力,上一套國外的管理軟件從資金上講根本沒有問題。任何成熟的管理軟件,不論是SAP的ERP軟件,還是Oracle的ERP軟件,都是對一種成熟管理模式的總結,是一種標準的共性產品。
在企業信息化的過程中,是個性文化適應抽象的軟件系統,還是抽象的軟件適應個性化文化?在資源、管理、文化等諸多方面凝聚的現實面前。與IBM、HP、寶潔等跨國公司的管理品質相比,伊利的管理還處在童年。ERP誕生于德國,是對成熟制造業管理模式的一種總結,是一種事后管理。而任何企業,要成為全行業的排頭兵,一定要有自己獨特的管理理念和管理模式。買了一個ERP軟件,也就等于買了別人的管理模式。
伊利的目標是成為全國乳品行業的老大,要集中資源“構建中國伊利”,因此,伊利的管理系統一定要“量身定制”。通過用友為其量身定制的分銷管理系統,伊利實現了從傳統管理到過程管理的轉變。
(1)改變了管理的思維方式,實現了數字管理和過程管理,達到了真正的目標管理。以前伊利集團的管理方式也是逐級匯報,一條消息從代理點傳到總部至少要兩三天;采用信息系統后,代理點—子公司—事業部—總部實現了7×24小時實時數據的輸入和查詢,從幾十個小時縮減到幾秒,更重要的是有了后臺數據庫支持,除了必要的溝通外,多數經營數據可以在數據庫內直接查詢,將事后控制,變成了過程控制。(2)優化了業務流程,提高了效率,一個訂單的流轉從一周縮短到不足24小時。以前,從客戶下訂單到配送中心的汽車離開倉庫,通常需要一周的時間。采用分銷管理系統以后,全部訂單的配送當天就可以完成,同時還可對客戶進行實時審查。信用額度的問題:某個客戶只有100萬的額度,但在沒有分銷管理系統的時候,信用額度就有可能被忽視或者被人情、關系替代,有了分銷管理系統以后,超過一分錢都下不了訂單。(3)大大降低了運營成本,僅產品過期損失一項就從百萬元級降低到了十萬元級。存貨時間敏感:鮮奶的保質期只有3天,冷飲是3個月,液態奶是8個月,奶粉是12個月。庫存管理:倉庫管理員只憑“記憶”管理倉庫,經常把即將過期的產品留在倉庫,而把剛生產出來的產品發走了。有了分銷管理系統以后,根據產品的標號,倉庫內哪些產品是即將過期的,哪些是新生產的,一目了然,因而大大降低了過期產品的損失。而因為資金周轉速度加快、準確預測產量等帶來的效益的提高就更多了。
材料2 河南許繼集團是以機電裝備的研發、生產、銷售為主的國有控股大型企業,是國家520家重點企業之一。產品涵蓋電力系統一、二次設備、民用機電及電子商務、環保工程、資產管理等行業。
1998年初,許繼公司采用Symix公司的產品來實施ERP。
許繼上ERP希望解決三個方面問題:規范業務流程、信息的收集整理更暢通、成本計算更準確。備選軟件:SAP、Symix、浪潮軟件、利瑪等國內外廠商,出于價位原因選擇Symix。
1998年初簽單,同年7月份,許繼實施ERP進展順利。包括數據整理、業務流程重組及物料清單的建立。廠商售后服務也算到位,基本完成了產品的知識轉移。許繼在培養自己的而出開發隊伍方面也有成效。
1998年8月,許繼公司進行了重大機構調整,管理層關注企業的生存、經營的合理化和利潤最大化,沒有認真考慮結構調整對ERP項目的影響。
企業經營結構變了,當時所用的軟件流程已經死了,廠商也想不出好辦法,公司項目暫停,只在下屬小公司運行,部分功能在使用。造成資源極大的浪費。
結合上述材料回答以下問題。
1.伊利公司運用ERP系統的主要目的是什么? 2.伊利和許繼集團引進ERP的案例給我們什么啟示?
案例分析3 百度搜索引擎競價排名服務可將您的網站排在百度搜索結果前列,同時出現在各大搜索引擎的搜索結果中;CNNIC調查報告顯示,搜索引擎是用戶得知新網站的最重要途徑,80%的網民習慣通過搜索引擎以“關鍵詞”搜索的方式查詢所感興趣的信息。
競價排名是百度國內首創的一種按效果付費的網絡推廣方式,用少量的投入就可以給企業帶來大量潛在客戶,有效提升企業銷售額。通過本章的案例學習,可以掌握企業在復雜的互聯網上如何更好更快的展現自己,立于不敗之地。
深圳市新三思材料檢測有限公司是國內專業從事材料試驗方法研究與材料試驗機制造的股份制高新技術企業,是國內最大的材料試驗機專業制造商。2001年被授予“中國儀器儀表行業500強企業”。
1996年6月,新三思材料檢測有限公司誕生于深圳經濟特區,當時公司的注冊資本只有100萬元。第二年,新三思公司便在上海設立了辦事處,并在上海交通大學掛牌成立了“華東地區技術服務中心”,新三思公司的業務量遍及了全中國,除了上海分公司以外,在長春、濟南等地也建有分公司,此外還在成都、青島等全國主要城市設立了26個辦事處和七大服務中心。綜合實力在中國試驗機行業排名首位,市場占有率、人均生產產值與人均銷售收入三項指標也在國內同行業連續五年名列首位。新三思公司從2004年六七月份開始決定在百度上做推廣。公司在此之前經過了大量的調查研究工作,對內詢問銷售員,對外調查客戶。調查人員發現從網絡上推廣或者獲取新三思公司的信息是一條非常重要的途徑。而百度作為最大的中文搜索引擎網站,天然的具有優勢。于是公司決定在百度上做推廣,并牢牢占據前三位的位置。果然很快就有了明顯的效果:業務量增加了兩成以上,當年8月份新三思公司就一舉奪得了南昌大學試驗機臺數超過33臺的招標合同,刷新了公司8年來發展歷程中的合同金額以及銷售試驗機臺數的最新紀錄。
結合上述材料回答一下問題
1.搜索引擎都有哪些?(至少寫出3個)2.百度競價排名的優勢有哪些? 3.新三思公司選擇百度的理由是什么?
案例分析4 戴爾公司1984年成立;1992年,首次被《財富》評為世界五百強企業;1996年,開始通過網站銷售旗下產品,拉開網絡直銷的序幕。2000年,網上營業額達到每天5,000萬美元;自1995年起,戴爾公司一直名列《財富》雜志評選的 “ 最受仰慕的公司 ”,2001年排名第10位。2006年,首次季度出貨量超過1000萬臺系統,但賴以為生的直銷模式開始出現衰退。2008年,季度盈利超過9億美元,市場占有率卻不停下降,已遠遠低于競爭對手惠普和聯想。
戴爾公司定位:全球領先的IT產品及服務提供商。
經營模式:按照客戶要求制造計算機,提供客戶所信賴和注重的創新技術與服務,并向客戶直接發貨。
服 務:產品服務、安裝服務、工廠定制成、企業支持服務、戴爾培訓與認證、實行“修理、更換、退貨服務”的三包服務
產 品:戴爾電腦(除固定配置外,客戶也可以根據自身需求選擇電腦配置得到真正有個人特色的專屬電腦)。按照家庭與個人辦公、中小企業、公共事務部、大型企業的分類提供產品。產品涉及筆記本、上網本、電子產品、軟件電腦附件、顯示器打印機。通過網絡直接經營的商業模式,消除中間商。以此減少運營成本、中間代理獲利及信息溝通時間。提供各種資訊、優質服務、個人服務。提供額外利益給顧客(在戴爾網上直銷站點 購置電腦都有至少500元的現金折扣)提供社區意識。令顧客擁有全面性的體驗自助方式(根據自我意識個性化選擇)。從市場份額來看在華中小企業及個人消費者通過網絡訂購電腦的占20%。戴爾將客戶分為兩類:一類是大企業、政府和行業客戶,約占公司整體業務銷售80%;另一部分為中小企業和個人消費者,僅占20%的比例。
隨著電子商務的發展,越來越多的電商的競爭,主要競爭者為,新蛋網,中關村在線,京東商城等。單一網站的競爭力逐漸被綜合性商城削弱。網絡消費者對于綜合性電子商務商城相對熟悉,除電子數碼產品外還購買其他服裝、配飾、家居、書籍等產品,購買習慣驅使也會影響消費者選擇這些非專業性但自己對其有了解的網站。這類商城也有二手產品銷售,價格上也有優勢。
根據以上材料,回答一下問題。
1.對戴爾這種網絡直銷模式進行SWOT分析。
第四篇:2010年上半年軟考軟件設計師考試試題及答案(精)
2010年上半年軟考軟件設計師考試試題及答案 案例分析1 當初為了占領市場,淘寶網等C2C網站前仆后繼選擇了免費策略。在成功使用免費戰略籠絡了客戶之后,2006年5月,淘寶網嘗試性地推出了收費性服務——招財進寶,即“淘寶網將按賣家所出招財進寶價格等條件決定其寶貝在淘寶相關頁面或其合作伙伴的相關頁面中排名位置,并按照最后的成交情況,來收取服務費”。然而這一朝著贏利方向的嘗試,遭到用戶的強烈反抗,不少淘寶用戶甚至采取罷市的方法,抗議淘寶網失信當初的免費諾言。2006年6月,招財進寶被用戶公開投票宣判死刑,淘寶網對C2C電子商務網站盈利模式的首次摸索,以失敗告終。
案例簡介
在“招財進寶”出道的時候,很受人關注,多數專業人士認為“招財進寶”思路清晰,方式巧妙,和百度的競價排名異曲同工;在激烈的C2C競爭中,淘寶網找到了一條潛在的贏利道路。但在“招財進寶”的實施過程當中,業績并不好,最后被撤銷。
作為關鍵字付費點擊業務的C2C版本,淘寶網創造新的收入模式,為一部分會員提供增值業務;另一方面,隨著商品數量的上升,如何進行有效的商品篩選及排序也是一項難題。
認真閱讀以上案例材料,回答以下問題。1.簡單概述一下淘寶網的經營模式。2.試分析淘寶網“招財進寶”失敗的原因? 3.從淘寶網“招財進寶”失敗的案例中,你得到的啟示有哪些? 案例分析2 材料1
伊利集團是全國乳品行業的龍頭企業之一。為了提升企業的管理水平,1999年,伊利集團開始醞釀上ERP。以伊利集團的財力,上一套國外的管理軟件從資金上講根本沒有問題。任何成熟的管理軟件,不論是SAP的ERP軟件,還是Oracle的ERP軟件,都是對一種成熟管理模式的總結,是一種標準的共性產品。
在企業信息化的過程中,是個性文化適應抽象的軟件系統,還是抽象的軟件適應個性化文化?在資源、管理、文化等諸多方面凝聚的現實面前。與IBM、HP、寶潔等跨國公司的管理品質相比,伊利的管理還處在童年。
ERP誕生于德國,是對成熟制造業管理模式的一種總結,是一種事后管理。而任何企業,要成為全行業的排頭兵,一定要有自己獨特的管理理念和管理模式。買了一個ERP軟件,也就等于買了別人的管理模式。
伊利的目標是成為全國乳品行業的老大,要集中資源“構建中國伊利”,因此,伊利的管理系統一定要“量身定制”。通過用友為其量身定制的分銷管理系統,伊利實現了從傳統管理到過程管理的轉變。
(1改變了管理的思維方式,實現了數字管理和過程管理,達到了真正的目標管理。
以前伊利集團的管理方式也是逐級匯報,一條消息從代理點傳到總部至少要兩三天;采用信息系統后,代理點—子公司—事業部—總部實現了7×24小時實時數據的輸入和查詢,從幾十個小時縮減到幾秒,更重要的是有了后臺數據庫支持,除了必要的溝通外,多數經營數據可以在數據庫內直接查詢,將事后控制,變成了過程控制。(2優化了業務流程,提高了效率,一個訂單的流轉從一周縮短到不足24小時。以前,從客戶下訂單到配送中心的汽車離開倉庫,通常需要一周的時間。采用分銷管理系統以后,全部訂單的配送當天就可以完成,同時還可對客戶進行實時審查。信用額度的問題:某個客戶只有100萬的額度,但在沒有分銷管理系統的時候,信用額度就有可能被忽視或者被人情、關系替代,有了分銷管理系統以后,超過一分錢都下不了訂單。(3大大降低了運營成本,僅產品過期損失一項就從百萬元級降低到了十萬元級。存貨時間敏感:鮮奶的保質期只有3天,冷飲是3個月,液態奶是8個月,奶粉是12個
月。庫存管理:倉庫管理員只憑“記憶”管理倉庫,經常把即將過期的產品留在倉庫,而把剛生產出來的產品發走了。有了分銷管理系統以后,根據產品的標號,倉庫內哪些產品是即將過期的,哪些是新生產的,一目了然,因而大大降低了過期產品的損失。而因為資金周轉速度加快、準確預測產量等帶來的效益的提高就更多了。
材料2 河南許繼集團是以機電裝備的研發、生產、銷售為主的國有控股大型企業,是國家520家重點企業之一。產品涵蓋電力系統一、二次設備、民用機電及電子商務、環保工程、資產管理等行業。
1998年初,許繼公司采用Symix公司的產品來實施ERP。
許繼上ERP希望解決三個方面問題:規范業務流程、信息的收集整理更暢通、成本計算更準確。備選軟件:SAP、Symix、浪潮軟件、利瑪等國內外廠商,出于價位原因選擇Symix。
1998年初簽單,同年7月份,許繼實施ERP進展順利。包括數據整理、業務流程重組
及物料清單的建立。廠商售后服務也算到位,基本完成了產品的知識轉移。許繼在培養自己的而出開發隊伍方面也有成效。
1998年8月,許繼公司進行了重大機構調整,管理層關注企業的生存、經營的合理化和利潤最大化,沒有認真考慮結構調整對ERP項目的影響。
企業經營結構變了,當時所用的軟件流程已經死了,廠商也想不出好辦法,公司項目暫停,只在下屬小公司運行,部分功能在使用。造成資源極大的浪費。
結合上述材料回答以下問題。
1.伊利公司運用ERP系統的主要目的是什么?
2.伊利和許繼集團引進ERP的案例給我們什么啟示? 案例分析3 百度搜索引擎競價排名服務可將您的網站排在百度搜索結果前列,同時出現在各大搜索引擎的搜索結果中;CNNIC調查報告顯示,搜索引擎是用戶得知新網站的最重要途徑,80%的網民習慣通過搜索引擎以“關鍵詞”搜索的方式查詢所感興趣的信息。
競價排名是百度國內首創的一種按效果付費的網絡推廣方式,用少量的投入就可以給企業帶來大量潛在客戶,有效提升企業銷售額。通過本章的案例學習,可以掌握企業在復雜的互聯網上如何更好更快的展現自己,立于不敗之地。
深圳市新三思材料檢測有限公司是國內專業從事材料試驗方法研究與材料試驗機制造的股份制高新技術企業,是國內最大的材料試驗機專業制造商。2001年被授予“中國儀器儀表行業500強企業”。
1996年6月,新三思材料檢測有限公司誕生于深圳經濟特區,當時公司的注冊資本只有100萬元。第二年,新三思公司便在上海設立了辦事處,并在上海交通大學掛牌成立了“華東地區技術服務中心”,新三思公司的業務量遍及了全中國,除了上海分公司以外,在長春、濟南等地也建有分公司,此外還在成都、青島等全國主要城市設立了26個辦事處和七大服務中心。綜合實力在中國試驗機行業排名首位,市場占有率、人均生產產值與人均銷售收入三項指標也在國內同行業連續五年名列首位。
新三思公司從2004年六七月份開始決定在百度上做推廣。公司在此之前經過了大量的調查研究工作,對內詢問銷售員,對外調查客戶。調查人員發現從網絡上推廣或者獲取新三思公司的信息是一條非常重要的途徑。而百度作為最大的中文搜索引擎網站,天然的具有優
勢。于是公司決定在百度上做推廣,并牢牢占據前三位的位置。果然很快就有了明顯的效果:業務量增加了兩成以上,當年8月份新三思公司就一舉奪得了南昌大
學試驗機臺數超過33臺的招標合同,刷新了公司8年來發展歷程中的合同金額以及銷售試驗機臺數的最新紀錄。
結合上述材料回答一下問題 1.搜索引擎都有哪些?(至少寫出3個 2.百度競價排名的優勢有哪些? 3.新三思公司選擇百度的理由是什么? 案例分析4 戴爾公司1984年成立;1992年,首次被《財富》評為世界五百強企業;1996年,開始通過網站銷售旗下產品,拉開網絡直銷的序幕。2000年,網上營業額達到每天5,000萬美元;自1995年起,戴爾公司一直名列《財富》雜志評選的“最受仰慕的公司”,2001年排名第10位。2006年,首次季度出貨量超過1000萬臺系統,但賴以為生的直銷模式開始出現衰退。2008年,季度盈利超過9億美元,市場占有率卻不停下降,已遠遠低于競爭對手惠普和聯想。
戴爾公司定位:全球領先的IT產品及服務提供商。
經營模式:按照客戶要求制造計算機,提供客戶所信賴和注重的創新技術與服務,并向客戶直接發貨。
服務:產品服務、安裝服務、工廠定制成、企業支持服務、戴爾培訓與認證、實行“修理、更換、退貨服務”的三包服務
產品:戴爾電腦(除固定配置外,客戶也可以根據自身需求選擇電腦配置得到真正有個人特色的專屬電腦。按照家庭與個人辦公、中小企業、公共事務部、大型企業的分類提供產品。產品涉及筆記本、上網本、電子產品、軟件電腦附件、顯示器打印機。
通過網絡直接經營的商業模式,消除中間商。以此減少運營成本、中間代理獲利及信息溝通時間。提供各種資訊、優質服務、個人服務。提供額外利益給顧客(在戴爾網上直銷站點購置電腦都有至少500元的現金折扣提供社區意識。令顧客擁有全面性的體驗自助方式(根據自我意識個性化選擇。
從市場份額來看在華中小企業及個人消費者通過網絡訂購電腦的占20%。戴爾將客戶分為兩類:一類是大企業、政府和行業客戶,約占公司整體業務銷售80%;另一部分為中小企
業和個人消費者,僅占20%的比例。
隨著電子商務的發展,越來越多的電商的競爭,主要競爭者為,新蛋網,中關村在線,京東商城等。單一網站的競爭力逐漸被綜合性商城削弱。網絡消費者對于綜合性電子商務商城相對熟悉,除電子數碼產品外還購買其他服裝、配飾、家居、書籍等產品,購買習慣驅使也會影響消費者選擇這些非專業性但自己對其有了解的網站。這類商城也有二手產品銷售,價格上也有優勢。
根據以上材料,回答一下問題。
1.對戴爾這種網絡直銷模式進行SWOT分析。
第五篇:軟考軟件設計師教程重難點解析
軟考軟件設計師資訊
http:// 軟考軟件設計師教程重難點解析
2016下半年軟考軟件設計師考試即將開始,同學們準備好了嗎,希賽小編為正在備戰下半年考試的你們準備了一些軟件設計師教程重難點解析,希望對大家有所幫助。
死鎖(Deadlock)是指多個進程在運行的過程中因爭奪資源而造成的一種僵局。當進程處于這種僵持狀態時,若無外力作用,它們都將無法再向前推進。在軟件設計師的考試當中,這個知識點的考查是以選擇題的形式出現的,考點主要有:死鎖的必要條件、解決死鎖的方法,最難高難度會考到“銀行家算法”。本文將介紹死鎖的相關知識,但不會具體講解“銀行家算法”,該算法將在本系列的下一篇文章中詳細說明。
1、死鎖發生的必要條件
死鎖的發生必須具備四個必要條件,這四個條件相互聯系、缺一不可。
(1)互斥條件:指進程對所分配到的資源進行排他性使用,即在一段時間內某資源只由一個進程占用。如果此時還有其他進程請求該資源,則請求者只能等待,直至占有該資源的進程用完并釋放。
(2)請求和保持條件:指進程已經保持了至少一個資源,但又提出了新的資
軟考軟件設計師資訊
http:// 源請求,而該資源又已被其他進程占有,此時請求進程阻塞,但又對自己已獲得的其他資源保持不放。
(3)不剝奪條件:指進程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由自己釋放。
(4)環路等待條件:指在發生死鎖時,必然存在一個進程--資源的環形鏈,即進程集合{P0,P1,P2…Pn}中的P0正在等待一個P1占用的資源,P1正在等待P2占用的資源,……Pn正在等待已被P0占用的資源。
2、判斷系統是否可能進入死鎖狀態
從上面的死鎖解決方案來看,無論哪一種方式都不可避免的要增加系統的負擔。而同時一個系統是否有可進入死鎖狀態受系統資源數量,需要使用該資源的進程數量等因素影響。若系統本不可能引起死鎖,而我們采用了死鎖解決方案,是很不合理的。所以,考試中??嫉竭@樣的題型:給出系統的資源數,以及需要使用該資源的進程數量等參數,讓考生判斷系統有無可能產生死鎖。下面我們以例題的方式來說明如何解決這類問題。
例題1:
系統有3個進程:A、B、C。這3個進程都需要5個系統資源。如果系統有多少個資源,則不可能發生死鎖。
解答:
在分析這個問題時,我們可以取一些簡單的數據代入試題進行驗證、分析,以得到相應的規律。
如:
(1)當系統資源數量為9時,若給A與B分別分配了4個資源,C分配了
1軟考軟件設計師資訊
http:// 個資源,則系統中的每個進程都存在資源不足的情況,而都不放手自己擁有的資源。不能正常運行完畢,發生死鎖。
(2)當系統資源數量為12時,若給A、B、C各分配4個資源,則死鎖。
(3)當系統資源數量為13時,無論如何分配,總有至少1個進程能得到5個資源,得到5個資源的進程可以正常運行完畢,而后將自己占用的資源分配給其它進程,所以這樣能使所有進程運行完畢。
從上面的嘗試,我們可以總結出一個規律:先給所有進程分配他們所需要的資源數減1個資源,然后系統如果能再剩余1個資源,則系統不會發生死鎖。這樣解答本題變得非常容易。
(5-1)*3+1=13。
例題2:
一臺計算機有10臺磁帶機被m個進程競爭,每個進程最多需要三臺磁帶機,那么m至多為時,系統沒有死鎖的危險。
A.3 B.4 C.5 D.6
解答
首先從m=6開始考察,首先每個進程分配1臺,剩下的4臺只能分配給4個進程,還有2個進程沒有分配,如果已經分配了2臺的4個進程需要3臺的話,則系統就會死鎖。同樣,如果m=5,也會發生這種情況。當m=4時,每個進程可以分得2臺,還有2個進程可分得3臺,則可正常運行,運行完畢后可釋放資源,從而不會死鎖。在解這道題時有些學員提出“如果按照答案m=4,則這4個進程都是需要3臺磁帶機的話,共需要12臺磁帶機,這樣還不會死鎖?”。這種想法是錯誤的,因為并不是同時把所有進程都分配給足夠的資源才能完成這
軟考軟件設計師資訊
http:// 些進程,可以是一個進程先執行完,釋放完資源再執行另一個進程。
例如:4個進程中,每個進程分配2臺磁帶機,用去了8臺。剩下2臺,仍然可以滿足兩個進程,直到他們完成,釋放他們暫用的磁帶機。
流水線
流水線這個知識點在軟件設計師考試中是個重點也是個難點,考查的頻率比較高。之所以說流水線是個難點,有兩方面的原因:一方面是需要理解流水線的理論,了解其工作原理,計算方式;另一方面是在軟考當中,對于流水線的相關計算,標準并不是完全統一的,這一點在后面我們將詳細介紹。
流水線是指在程序執行時多條指令重疊進行操作的一種準并行處理實現技術。各種部件同時處理是針對不同指令而言的,它們可同時為多條指令的不同部分進行工作,以提高各部件的利用率和指令的平均執行速度。
指令流水線是將指令執行分成幾個子過程,每一個子過程對應一個工位,我們稱為流水級或流水節拍,這個工位在計算機里就是可以重疊工作的功能部件,稱為流水部件。
如圖1所示,IF,ID,EX,WD分別是流水線的流水部件。
流水線要求所有的流水級部件必須在相同的時間內完成各自的子過程。在流水線中,指令流動一步便是一個機器周期,機器周期的長度必須由最慢的流水級部件處理子過程所需的時間來決定。
軟考軟件設計師資訊
http://
那么我們為什么要提出流水線這個概念,以及流水線是如何提高系統吞吐量的呢?下面我們來看幾個圖,概念自然就清楚了。
圖2是一個非流水線結構系統執行指令時空圖。
我們從圖2中可以看到,任意一個系統時間都有大量的設備處于空閑狀態,如第一個時間段有ID,EX,WB空閑,則第二個時間段有IF,EX,WB空閑。
我們再來看采用了流水線結構的時空圖3。
顯然,采用流水線可以大大提升系統資源的利用率,以及整個系統的吞吐量。
流水線的操作周期取決于基本操作中最慢的那個。例如:一個3段流水線,軟考軟件設計師資訊
http:// 各段的執行時間分別為t,2t,t。則最慢的一段為2t,所以流水線操作周期為2t。
流水線的執行時間公式為:
第1條指令的執行時間+(指令條數-1)*流水線操作周期
例題1
若每一條指令都可以分解為取指、分析和執行三步。己知取指時間t取指=4△t,分析時間t分析=3△t,執行時間t執行=5△t。如果按串行方式執行完100條指令需要(1)△t。如果按照流水方式執行,執行完100條指令需要(2)△t。
供選擇的答案
(1)A.1190 B.1195 C.1200 D.1205
(2)A.504 B.507 C.508 D.510
試題分析
本題考查的是計算機系統指令流水線方面的基礎知識。根據題意可以看到,在此流水線中按串行方式執行完100條指令要用1200△t。采用流水方式執行,執行的總時間的關鍵取決于最長的執行時間,所以執行完100條的時間為:4Δt+3Δt+5Δt+(100-1)*5Δt=507Δt。
試題答案
C B 例題2
現采用4級流水線結構分別完成一條指令的取指、指令譯碼和取數、運算,以及送回運算結果4個基本操作,每步操作時間依次為60 ns,100 ns,50 ns和70 ns。該流水線的操作周期應為A ns。若有一小段程序需要用20條基本指
軟考軟件設計師資訊
http:// 令完成(這些指令完全適合于流水線上執行),則得到第一條指令結果需B ns,完成該段程序需C ns。
在流水線結構的計算機中,頻繁執行D指令時會嚴重影響機器的效率。當有中斷請求發生時,采用不精確斷點法,則將E。
供選擇的答案
A:①50②70③100④280
B:①100②200③280④400
C:①1400②2000③2300④2600
D:①條件轉移②無條件轉移③算術運算④訪問存儲器
E:①僅影響中斷反應時間,不影響程序的正確執行
②不僅影響中斷反應時間,還影響程序的正確執行
③不影響中斷反應時間,但影響程序的正確執行
④不影響中斷反應時間,也不影響程序的正確執行
試題分析
本題主要考查對流水線技術的掌握。
對于CPU來說,流水線技術實際上是一種以增加硬件換取性能的方式:把一條指令分解成多條更小的指令,由不同的處理單元來處理,在理想的滿負荷運行狀態下,執行一條指令的時間雖然沒有減少,但是由于多個處理單元同時工作,在同一時間上可以執行不同指令的不同部分,從而使得總體的執行時間大大減少。流水線的操作周期取決于基本操作中最慢的那個。這里最慢的是100 ns,所以操作周期是100 ns。在流水線中,其實每一條指令的執行時間并沒有減少,而第一條指令的執行并沒有體現流水線的優勢,它在4個操作周期后才能執行完
軟考軟件設計師資訊
http:// 成,這以后每個操作周期都能完成一條指令的執行。
影響流水線效率的重要因素有條件轉移指令和中斷,因為它們打斷了流水線,使得流水線不得不重新裝載。
不精確斷點法實現簡單,但是要等到流水線內的指令完成之后再響應中斷。
試題答案
A.③B.④C.③D.①E.②
上面的兩個例題,都是軟考當中出現過的真題。我們可以看出,兩個題在計算流水線時間方面,標準并不是統一的。
在例題1中:
4Δt+3Δt+5Δt+(100-1)*5Δt=507Δt。
而在例題2中:
100ns+100ns+100ns+100ns+(20-1)*100ns=2300ns
這兩種計算方法,都是在套用公式:“第1條指令的執行時間+(指令條數-1)*流水線操作周期”,而對于“第1條指令的執行時間”的理解并不相同。在例題1中,第1條指令的執行時間是將指令執行時的幾個階段所需時間相加得到,而在例題2中,認為每一個階段所需時間都是流水線的周期時間。其中前者是流水線的理論計算方法,而后者是我們在設計硬件流水線時,常用的方式。兩種計算方法,從理論上來講,都是正確的,但考試時,只有一個是正確答案。那么我們應該怎么做呢?由于每次考試中,無論認可的是哪種計算方式,都只會把這種計算方式的正確答案放入選項中,而不會將兩個正確答案都放入,所以我們在用一種方式不能得到正確選項時,應采用另一種方式進行計算,來得到正確答案。