前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇編譯原理論文范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
論文摘要:醫(yī)院現(xiàn)代人力資源管理與傳統(tǒng)人事管理有著本質(zhì)的區(qū)別,前者強(qiáng)調(diào)的是人的潛能的不斷開發(fā)和利用,強(qiáng)調(diào)實現(xiàn)組織價值和員工個人價值的雙贏目標(biāo);而后者強(qiáng)調(diào)的只是組織目標(biāo)的實現(xiàn)。現(xiàn)階段我國國有公立醫(yī)院的人事管理很大程度上影響了醫(yī)院的發(fā)展和整個醫(yī)療衛(wèi)生隊伍素質(zhì)的提高,客觀上制約了醫(yī)學(xué)事業(yè)的發(fā)展和人民群眾對優(yōu)質(zhì)醫(yī)療服務(wù)的需求。醫(yī)院要想在激烈的市場競爭中站穩(wěn)腳跟,不斷擴(kuò)展自己的醫(yī)療市場,必須樹立現(xiàn)代人力資源管理的新意識,分析3"-前國有醫(yī)院人事管理的現(xiàn)狀。采取九個方面的措施加大人力資源管理和開發(fā)的力度,有效地從傳統(tǒng)人事管理轉(zhuǎn)變?yōu)楝F(xiàn)代人力資源開發(fā),以獲取人力競爭優(yōu)勢。走可持續(xù)發(fā)展的道路。
人力資源作為各種資源中的第一資源,其配置是否科學(xué)、合理,管理模式是否科學(xué)、先進(jìn)和具有時代特色,不僅直接關(guān)系到人力資源效能的正常發(fā)揮,也關(guān)系到其他資源的開發(fā)利用、合理配置和科學(xué)管理,醫(yī)療機(jī)構(gòu)的人力資源管理也不例外。醫(yī)院要想在激烈的市場競爭中站穩(wěn)腳跟,不斷擴(kuò)展自己的醫(yī)療市場,必須樹立現(xiàn)代人力資源管理的新意識,進(jìn)一步加大人力資源管理和開發(fā)的力度,以獲取人力競爭優(yōu)勢,走可持續(xù)發(fā)展的道路”。
1現(xiàn)代人力資源管理與傳統(tǒng)人事管理的概念和區(qū)別
醫(yī)院現(xiàn)代人力資源管理與傳統(tǒng)人事管理有著本質(zhì)的區(qū)別。有人形象地說傳統(tǒng)人事管理是把人看作蠟燭,不停地燃燒直至告別職業(yè)生涯,強(qiáng)調(diào)的是組織目標(biāo)的實現(xiàn);現(xiàn)代人力資源管理是把人看作蓄電池,可以不斷地放電、充電,強(qiáng)調(diào)的是人的潛能的不斷開發(fā)和利用,強(qiáng)調(diào)實現(xiàn)組織價值和員工個人價值的雙贏目標(biāo)。概括來說,它們的主要區(qū)別如下:
1.1人事管理
主要采用嚴(yán)格的制度、命令式和簡單式的監(jiān)督。精力放在員工考勤,檔案、合同管理,職稱評定和發(fā)放工資福利等事務(wù)性工作上,是一種反應(yīng)性的管理。它忽視員工的主觀能動性和自我實現(xiàn)的需要。一般在單位中被定位于行政服務(wù)部門。目前國有公立醫(yī)院基本上都是這種模式。即使一些醫(yī)院將人事管理門更名為“人力資源部”,但從醫(yī)院管理體制上可看出,對人員的管理基本上仍是傳統(tǒng)的人事管理,這是組織歷史以及組織格局和體制的必然。由于其不是基于以人為本的價值理念,沒有足夠認(rèn)識到人是“資源”的戰(zhàn)略管理意義,加之缺乏足夠的公平、競爭的運作環(huán)境,所以調(diào)整和維系人員對組織獻(xiàn)身的精神的,多是組織權(quán)力和行政感召,缺乏對個人持續(xù)培養(yǎng)、開發(fā)從而達(dá)到自我實現(xiàn)價值的根本動力。
1.2現(xiàn)代人力資源管理
醫(yī)院現(xiàn)代人力資源管理是建立在全新的理論與管理思維之上的,它是運用現(xiàn)代化的科學(xué)方法,對與一定物力相結(jié)合的人力進(jìn)行合理的培訓(xùn)、組織和調(diào)配,使人力、物力經(jīng)常保持最佳比例,同時對人的思想、心理和行為進(jìn)行恰當(dāng)?shù)恼T導(dǎo)、控制和協(xié)調(diào),發(fā)揮人的主觀能動性。它帶來的是醫(yī)院人事管理理論和時間觀念的全面更新,它是要獲取與開發(fā)醫(yī)院服務(wù)工作需要的各類、各層次人才,建立醫(yī)院與醫(yī)務(wù)人員之間良好的合作關(guān)系,以人力資源滿足社會及公眾對醫(yī)院的要求,滿足醫(yī)院經(jīng)營管理的發(fā)展的目標(biāo),也滿足醫(yī)務(wù)人員個人成長和發(fā)展的要求。在用人機(jī)制、運營機(jī)制方面均比較靈活,有較強(qiáng)的市場應(yīng)變能力和市場競爭能力。另外,比較注重以人為本,提倡“人性化”管理,在薪酬分配、績效評估、員工激勵和未來的職業(yè)生涯規(guī)劃等方面更加符合現(xiàn)代醫(yī)院管理的要求。
2目前國有公立醫(yī)院人力資源管理的現(xiàn)狀
2.1對人力資源和人力資源管理的重要性認(rèn)識不夠,沒有樹立正確的觀念
醫(yī)療衛(wèi)生行業(yè)長期處于行政壟斷地位,醫(yī)院沒有在市場競爭中實現(xiàn)優(yōu)勝劣汰,外部環(huán)境不需要對人力資源有較高的要求。這是目前公立醫(yī)院不重視人力資源管理的主要原因。
2.2人力資源管理體制僵化,人才流動機(jī)制不完善
目前,許多醫(yī)院還未真正成為市場的主體,其運行仍由行政部門干預(yù),醫(yī)院不具有完全的用人自。雖然人才的評估在近年來有所規(guī)范,但不同醫(yī)院的同樣職稱人才,尤其是高級人才缺乏同質(zhì)性,真正的自由流動和彈性機(jī)制沒有建立。醫(yī)院想要的人進(jìn)不來,不要的人出不去,想走的人走不了,想來的人來不了,專業(yè)人員和管理人員缺乏積極性。其主要有四方面的原因:一是行政管理部門干預(yù)過多;二是醫(yī)院內(nèi)部人力資源管理機(jī)制不健全;三是人力資源的市場機(jī)制不完善;四是原來遺留問題的后遺效應(yīng)。
2.3缺乏科學(xué)的績效評估體系
目前大多數(shù)公立醫(yī)院仍為事業(yè)單位,績效考核沿用行政機(jī)關(guān)、事業(yè)單位工作人員年度考核制度,醫(yī)院各種專業(yè)、層次的人員,風(fēng)險、技能要求不同,卻都在使用統(tǒng)一的考核標(biāo)準(zhǔn),所考核的內(nèi)容也很籠統(tǒng)和形式化,難以反映不同崗位不同人員的業(yè)績奉獻(xiàn)。
2.4薪酬分配缺乏競爭性和激勵作用
近年來,盡管一些醫(yī)院對拉開收入差距采取了一定的措施,但絕大多數(shù)醫(yī)院仍然在沿用過去的等級工資體系。沒有進(jìn)行工作分析、制定崗位說明書、做薪酬市場調(diào)查、績效考核以及薪酬激勵等規(guī)范化的人力資源管理。
2.5未重視醫(yī)院與員工的共同發(fā)展
有些醫(yī)院招聘并錄用員工后,沒有對其進(jìn)行醫(yī)院的價值觀教育,醫(yī)院缺乏良好的文化氛圍,使員工難以產(chǎn)生認(rèn)同感和歸屬感,團(tuán)隊協(xié)作能力不強(qiáng)。
3加強(qiáng)國有公立醫(yī)院現(xiàn)代人力資源管理的建議
現(xiàn)代醫(yī)院管理是以人力資源為核心的管理。人力資源管理就是在醫(yī)院管理中要堅持和貫徹“以人為本”,使“人”與“工作”和諧地融合起來,實現(xiàn)醫(yī)院和員工“雙贏”,達(dá)到利益最大化。為加強(qiáng)公立醫(yī)院的現(xiàn)代人力資源管理,提出以下幾個方面的建議。
3.1要樹立正確的人力資源觀念和現(xiàn)代人力資源管理新意識
人力資源是醫(yī)院的戰(zhàn)略性資源,是具有高增值性的重要資產(chǎn)。因此,人力資源管理者要打破傳統(tǒng)的人事管理觀念,從單純的人員行政管理中走出來,主動地去開發(fā)人力資源、挖掘潛能,使職工最大限度地釋放才能,滿足自我實現(xiàn)的需求。在醫(yī)療市場競爭中人才就是財富、人才就是效益、人才就是競爭力、人才就是發(fā)展后勁,人才是一種無法估量的資本,是一種能給醫(yī)院帶來巨大效益的資本。如果把醫(yī)院的人才帶走,醫(yī)院會垮掉;相反如果你拿走資金、病房及設(shè)備,而留下人才,幾年后可重建一個醫(yī)院。在人力資源中,特別是受到過良好教育和具有創(chuàng)新協(xié)作能力的高素質(zhì)人才,在某種程度上講,對經(jīng)濟(jì)和高科技發(fā)展起到?jīng)Q定性作用?!白顑?yōu)秀的人才是免費的”,因為他們?yōu)獒t(yī)院創(chuàng)造的價值遠(yuǎn)遠(yuǎn)大于了醫(yī)院付給他們的報酬。因此,人力資源管理者,要堅持“以人為本”的思想,尊重人才、愛惜人才,想方設(shè)法做到“用事業(yè)凝聚人才、用精神激勵人才、用感情關(guān)心人才、用適當(dāng)待遇留住人才”。
3.2建立競爭機(jī)制
堅持公開、平等、競爭、擇優(yōu)的選人用人制度。選人用人是搞好醫(yī)院人力資源管理的第一關(guān),只有建立公開、平等、競爭、擇優(yōu)的選人用人制度,選拔和使用與所需要崗位相匹配的優(yōu)秀人才,才能為諸如薪酬待遇,培訓(xùn)發(fā)展等其他人力資源管理工作奠定良好的基礎(chǔ)。要善于公開選拔任用人才,拓寬用人渠道,增加透明度,為各類不同的人才提供和創(chuàng)造發(fā)展機(jī)遇。中國有句古話叫“英雄不問出處”,只要符合招聘的崗位要求,具備基本的學(xué)歷、資歷和工作經(jīng)驗,就都應(yīng)該讓其應(yīng)聘,通過優(yōu)勝劣汰來選拔崗位最佳人選。做好工作分析,崗位評價,制定崗位說明書和崗位規(guī)范等基礎(chǔ)工作,同時在選拔人才時要嚴(yán)格按照程序運作,這樣才能夠確保招聘到高素質(zhì)的優(yōu)秀人才。
3.3建立職責(zé)明確的崗位責(zé)任制
醫(yī)院要想有一個高效的運作機(jī)制,必須要相應(yīng)地建立一套適合本醫(yī)院特點的組織體系和崗位設(shè)置,就是要堅持按需設(shè)崗,做到崗位職責(zé)明確、任職條件清楚,員工的能力與崗位要求相匹配。同時使該崗位的職責(zé)能夠充分履行而與上下配合協(xié)調(diào),使醫(yī)院整體獲得最大效益。
3.4建立科學(xué)、公正、公開的績效考核制度
績效考核是對醫(yī)院員工勞動付出的一種反饋,同時也是支付薪酬的重要依據(jù)。在實施考核中必須要有一套能夠反映崗位特點和本人(或科室)實績的科學(xué)的考核標(biāo)準(zhǔn),將不同崗位的責(zé)任、技術(shù)復(fù)雜性、承擔(dān)風(fēng)險的程度、工作量大小、科研、教學(xué)等不同情況一并納入考核要素,同時在實施考核中做到公正操作,對事不對人,并將考核結(jié)果公開,及時做好反饋工作。
3.5建立公正、公平、合理的薪酬分配體系
薪酬是醫(yī)院進(jìn)行人力資源管理的一個非常重要的工具。創(chuàng)新分配機(jī)制,建立公正、公平、合理的薪酬體系,對調(diào)動員工的積極性,提高醫(yī)院效益顯得尤為重要。薪酬的設(shè)計與結(jié)構(gòu)以及水平必須建立在科學(xué)的工作分析、工作評價以及績效考核等基礎(chǔ)之上,真正體現(xiàn)按勞分配與兼顧公平的原則。在實際的薪酬分配中,要根據(jù)不同的工作態(tài)度,工作能力和工作業(yè)績拉開分配檔次,向關(guān)鍵崗位與優(yōu)秀人才傾斜。對臨床醫(yī)技科室醫(yī)務(wù)人員勞務(wù)費分配實施崗位量化考核。各科室實行二次分配,把工作績效作為崗位薪酬、多元分配的主要尺度。對積極開展新技術(shù)、新項目和臨床科研成績突出者實行重獎。這樣做的目的,一方面是對員工勞動價值的肯定,同時也是穩(wěn)定和吸引優(yōu)秀人才的主要措施。薪酬體系合理,使醫(yī)院的薪酬對內(nèi)具有公平性,對外具有競爭性。
3.6建立有效的人力資源激勵機(jī)制和約束機(jī)制
激勵可分為物質(zhì)激勵與精神激勵。有效的激勵機(jī)制不僅可以調(diào)動員工的積極性,激發(fā)他們的創(chuàng)造力,而且可以增強(qiáng)醫(yī)院的凝聚力和競爭力,進(jìn)而促進(jìn)醫(yī)院的不斷發(fā)展和效益增長。制約機(jī)制也稱約束機(jī)制,就是要求醫(yī)院員工在醫(yī)療服務(wù)工作中的行為要符合職業(yè)道德規(guī)范和醫(yī)院規(guī)章制度,使其行為具有合法性和道德性。只有制約機(jī)制與激勵機(jī)制的相互配套與應(yīng)合,才有可能獲得預(yù)想的管理效果。
3.7作好員工職業(yè)生涯規(guī)劃。為員工提供良好的發(fā)展空間
職業(yè)生涯是一個人在一生中所有的工作經(jīng)歷,特別是指職業(yè)、職位的變動以及個人職業(yè)理想的實現(xiàn)過程。職業(yè)生涯規(guī)劃,就是根據(jù)個人的興趣、愛好和所具備的知識與技能以及相關(guān)的人際背景等各種因素來設(shè)計個人的職業(yè)發(fā)展計劃。醫(yī)院作為員工職業(yè)生涯得以存在和發(fā)展的載體,必須為每位員工提供一個不斷成長和挖掘個人潛力和發(fā)揮特長的機(jī)會,醫(yī)院管理者不僅要關(guān)注醫(yī)院目標(biāo)的實現(xiàn),更要關(guān)注員工個人理想的實現(xiàn),讓他們獲得事業(yè)上的成功與滿足,只有員工的發(fā)展與成功,才能有醫(yī)院的發(fā)展與成功。醫(yī)院只有為員工作長遠(yuǎn)考慮,員工才能為醫(yī)院作長遠(yuǎn)考慮,這一點在現(xiàn)代醫(yī)院的人力資源管理中是必須明確的。超級秘書網(wǎng)
3.8建立完善的社會保障制度
完善的福利和社會保障制度僅僅在于滿足生理需要和安全需要這兩個低層次的需要。除我國現(xiàn)有的社會保障體系外,基于醫(yī)療行業(yè)的特殊性,對一些特殊崗位還要給予職業(yè)安全保護(hù),并按國家規(guī)定給予各種休假待遇,讓員工在為醫(yī)院的貢獻(xiàn)中享受到各種法定的保障。
3.9推行“人性管理”,培育良好的醫(yī)院文化
論文關(guān)鍵詞:編譯原理;能力培養(yǎng);教學(xué)
從當(dāng)前的就業(yè)情況看,計算機(jī)專業(yè)的學(xué)生在軟硬件知識和應(yīng)用能力上的優(yōu)勢逐漸弱化,在與具備特定行業(yè)、應(yīng)用領(lǐng)域和專業(yè)背景的學(xué)生競爭就業(yè)時,面臨的壓力越來越大,而在已就業(yè)的學(xué)生中又少有人從事編譯系統(tǒng)的研究和開發(fā)工作。所以,“編譯原理”作為計算機(jī)科學(xué)與技術(shù)專業(yè)的“經(jīng)典”核心課程的存在價值受到質(zhì)疑。其實,本科教育解決的是培養(yǎng)學(xué)生基本專業(yè)能力、可持續(xù)發(fā)展能力這些本質(zhì)性的問題,因此,我們要從如何結(jié)合專業(yè)課程完成學(xué)生專業(yè)能力的培養(yǎng)與素質(zhì)的提高這樣的角度來看問題。
在大學(xué)里,學(xué)習(xí)一門課程,不能簡單、膚淺地看成是對這門課程所含內(nèi)容的研究、設(shè)計和開發(fā),而是關(guān)注是否在有限的時間內(nèi)最有利于學(xué)生專業(yè)能力的培養(yǎng)。計算機(jī)是一門技術(shù)性、工程性和應(yīng)用性很強(qiáng)的學(xué)科,有其自身的基礎(chǔ)理論支撐體系。“編譯原理”課程本身以計算機(jī)專業(yè)基礎(chǔ)知識為載體,含有問題求解的典型思想、技術(shù)和方法,整個課程的內(nèi)容對培養(yǎng)學(xué)生的計算思維,程序設(shè)計與實現(xiàn),算法設(shè)計與分析,計算機(jī)系統(tǒng)的認(rèn)識、開發(fā)和利用等學(xué)科基本能力都非常重要。并且,編譯技術(shù)在計算機(jī)體系結(jié)構(gòu)設(shè)計、提高軟件開發(fā)效率與質(zhì)量的工具開發(fā)等方面有著重要的應(yīng)用。因此,“編譯原理”課程不但有存在的價值,而且對于計算機(jī)專業(yè)學(xué)生的能力培養(yǎng)和素質(zhì)提高有著極其重要的作用和意義。
作為計算機(jī)專業(yè)的教育工作者,應(yīng)該結(jié)合當(dāng)前計算機(jī)的發(fā)展?fàn)顩r,重新認(rèn)識“編譯原理”課程的重要性,并根據(jù)當(dāng)前的教育和就業(yè)形勢,積極研究、改進(jìn)“編譯原理”課程的教學(xué)和實驗方法,提高教學(xué)效果和質(zhì)量。
一、明確“編譯原理”課程對學(xué)生能力培養(yǎng)和素質(zhì)提高的重要性
從課程體系總體設(shè)計看,“編譯原理”課程的主要教學(xué)目標(biāo)之一是使學(xué)生在系統(tǒng)的級別上重新認(rèn)識算法和程序,提升學(xué)生的系統(tǒng)能力。它是計算機(jī)專業(yè)課程中最難學(xué)的課程,既涉及形式語言和自動機(jī)等抽象理論,又是數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計語言、算法和軟件設(shè)計等知識的綜合體現(xiàn),有效培養(yǎng)了計算機(jī)專業(yè)學(xué)生應(yīng)具有的計算思維,算法設(shè)計與分析,程序設(shè)計與實現(xiàn)(硬件和軟件實現(xiàn)),系統(tǒng)的認(rèn)知、分析、開發(fā)與應(yīng)用等四大基本能力。
計算學(xué)科問題求解的基本思路是“問題-形式化描述-計算機(jī)化”,以抽象、理論、設(shè)計為其學(xué)科形態(tài)?!熬幾g原理”課程中要求學(xué)生掌握的包括程序變換基本概念、問題描述和處理方法(自頂向下、自底向上、逐步求精、遞歸求解,目標(biāo)驅(qū)動,問題分析、問題的抽象與形式化描述,算法設(shè)計與實現(xiàn),系統(tǒng)構(gòu)建、模塊化)等知識、思想和方法,有利于學(xué)生養(yǎng)成“問題、形式化描述、計算機(jī)化”問題求解的習(xí)慣,實現(xiàn)從“實例計算”到“類計算”和“模型計算”的跨越。這其中既有明確的、便于抽象的問題,又有較成熟的理論,而且在限定規(guī)模下又容易實現(xiàn)(設(shè)計),涉及的是一個比較適當(dāng)?shù)某橄髮用嫔系臄?shù)據(jù)變換,所以該課程是計算機(jī)專業(yè)本科生的重要專業(yè)技術(shù)基礎(chǔ)課程。
二、“編譯原理”課程“教”與“學(xué)”的新思考
目前,在“編譯原理”課程教學(xué)中,“教”與“學(xué)”兩方面的問題都很突出:一些抽象的重要理論使學(xué)生學(xué)習(xí)的畏難情緒嚴(yán)重,加上有些人認(rèn)為畢業(yè)后很少有機(jī)會參與設(shè)計與實現(xiàn)編譯系統(tǒng),使得該課程的“教”與“學(xué)”的熱情偏低,而適用于新型體系結(jié)構(gòu)及新一代計算機(jī)系統(tǒng)的編譯器的需求和大量應(yīng)用,也給“編譯原理”課程內(nèi)容的充實與更新提出更高要求。
作為教師,要讓學(xué)生深刻認(rèn)識到:“編譯原理”是許多課程知識的集成與實踐,能進(jìn)一步加深對許多專業(yè)基礎(chǔ)課程知識的理解;編譯程序所使用的原理、方法和技術(shù)有利于領(lǐng)悟計算機(jī)理論的精髓,在非編譯系統(tǒng)的實際應(yīng)用中也發(fā)揮著很大作用;學(xué)習(xí)編譯對今后從事應(yīng)用軟件,語言開發(fā)平臺、編譯系統(tǒng)甚至操作系統(tǒng)的開發(fā)等工作非常有益。
實踐證明,如果首先讓學(xué)生認(rèn)識到課程內(nèi)容的重要性,再輔之以合適的教學(xué)方法和教學(xué)手段,是不難取得好的教學(xué)效果的。根據(jù)筆者的“編譯原理”課程教學(xué)經(jīng)驗,認(rèn)為對于該課程的設(shè)置和教學(xué)可以從以下幾個角度來開展。
1.科學(xué)設(shè)置課程
對于“編譯原理”課程的設(shè)置問題,可以根據(jù)本科院校自身辦學(xué)宗旨,從普通高校本科、重點高校本科和研究生階段教育三個層次來考慮教學(xué)目標(biāo)和培養(yǎng)要求等因素,在總學(xué)時的限制下,實現(xiàn)總目標(biāo)的最佳課程。因此,可以考慮以下2種模式。
(1)課程分解模式。分為:“編譯技術(shù)”(必修),介紹為滿足基本應(yīng)用而需要學(xué)生掌握的基礎(chǔ)知識、方法和技術(shù),以達(dá)到語言轉(zhuǎn)換和實現(xiàn)理論基礎(chǔ)介紹的目的;“編譯理論”(選修),主要偏重于介紹形式化等原理性的深層次內(nèi)容,方便有進(jìn)一步深造需要的學(xué)生學(xué)習(xí)。
(2)內(nèi)容分解模式。不單獨設(shè)置一門“編譯原理”課程,根據(jù)深淺和涉及到的具體問題,將與其他課程相關(guān)的內(nèi)容分解到不同的課程中去,使學(xué)生在相關(guān)課程的學(xué)習(xí)中逐步掌握相關(guān)知識。這和前者比有一定難度:一是課程難分解,課程內(nèi)容分解后與其他課程內(nèi)容的重新整合在短時期內(nèi)難做到科學(xué)分解與組織;二是增加了其他課程授課教師的工作量與難度。
2.優(yōu)化教學(xué)內(nèi)容
教師還要堅持教學(xué)與科研相結(jié)合,將最新的教改和科研成果引入教學(xué),將經(jīng)典編譯理論與現(xiàn)代編譯技術(shù)有機(jī)地結(jié)合起來。例如,可以將嵌入式編譯器、分布并行編譯器、多核編譯器以及適應(yīng)新體系結(jié)構(gòu)及新一代計算機(jī)系統(tǒng)編譯器的研究及其研究結(jié)果迅速充實到“編譯原理”課程中。此外,還可以向?qū)W生介紹編譯技術(shù)在人工智能、并行計算、自然語言處理等領(lǐng)域里的具體應(yīng)用,為后續(xù)課程做好鋪墊。
3.用實例演示來形象化抽象理論
學(xué)生學(xué)習(xí)“編譯原理”課程的最大困難是其較為抽象,要獲得好的教學(xué)效果,就要將抽象理論形象化。改革教學(xué)方法,提倡互動式、研討式和案例式等教學(xué)方法。一方面,可以通過實例類比,例如,用自然語言的翻譯過程來類比編譯程序執(zhí)行高級程序設(shè)計語言的翻譯過程。另一方面,教師可以借助多媒體手段,把抽象的原理用動畫、圖像等形象化的方式展示,便于學(xué)生的理解。同時,還可以向?qū)W生推薦網(wǎng)上優(yōu)秀的“編譯原理”課程教學(xué)網(wǎng)站、電子書等資源,拓寬學(xué)生視野,培養(yǎng)和激發(fā)學(xué)生學(xué)習(xí)興趣。
4.把握聯(lián)系,啟發(fā)學(xué)生積極思維
在教學(xué)過程中,充分考慮“編譯原理”課程與數(shù)據(jù)結(jié)構(gòu)、計算機(jī)組成原理、操作系統(tǒng)、算法分析與設(shè)計等先修課程之間的內(nèi)在聯(lián)系,不斷深入和強(qiáng)化,以加強(qiáng)課程的系統(tǒng)性,培養(yǎng)學(xué)生的全局觀。同時還要把握編譯過程各個功能階段的內(nèi)在聯(lián)系與規(guī)律,有目的地設(shè)計問題,有意義地提出問題,通過問題把編譯原理中的理論難點、抽象概念引導(dǎo)出來。
三、重視實驗,建立行之有效的實驗教學(xué)方法
設(shè)計和組織良好的實踐教學(xué)環(huán)節(jié)可以使“編譯原理”課程獲得良好的教學(xué)效果。現(xiàn)在很多高校都增加了實驗學(xué)時,并獨立計算實驗成績。我們在借鑒兄弟院校和國外經(jīng)驗的基礎(chǔ)上,摸索出驗證性實驗加綜合設(shè)計性實驗的2階段實驗教學(xué)模式,各高校可根據(jù)自己的教學(xué)目標(biāo)和培養(yǎng)要求來選擇實施。
1.驗證性實驗
這類實驗主要是為配合配合課堂授課內(nèi)容,由教師按編譯原理授課順序,提供同步的若干驗證性實驗題目,讓學(xué)生逐個完成相關(guān)子模塊,逐步擴(kuò)大完善整個編譯程序。這樣循序漸進(jìn)地完成實驗,不僅增加了學(xué)生的成就感和自信心,而且使他們養(yǎng)成扎實的作風(fēng),使學(xué)練互動,激發(fā)學(xué)生學(xué)習(xí)興趣和積極性。而作為教師,則要做好組織、監(jiān)督和解惑工作,幫助學(xué)生掌握編譯系統(tǒng)主要技術(shù)、算法的理解和設(shè)計,引導(dǎo)學(xué)生從整體上把握編譯系統(tǒng)的結(jié)構(gòu)和各子系統(tǒng)之間的協(xié)調(diào)工作。
2.綜合設(shè)計性實驗
一定規(guī)模的綜合設(shè)計性實驗訓(xùn)練是保證實踐教學(xué)效果必不可少的環(huán)節(jié)。我們可以讓學(xué)生以小組(由4~5名成員)為單位結(jié)合軟件工程課程實驗的環(huán)節(jié)完成一個規(guī)模適度的編譯程序開發(fā)。在實際操作時,可根據(jù)驗證性實驗階段的情況,把學(xué)生分成不同層次的小組,由他們選擇適合自己水平的不同的實驗題目。每組遵循完整的編譯器開發(fā)方式,融入軟件工程的思想,由大家推舉的組長分工、協(xié)調(diào)完成任務(wù)。這樣,不僅能讓每個學(xué)生體驗從分析設(shè)計、編碼測試到交付維護(hù)的軟件開發(fā)全過程,還提高了他們的工程和團(tuán)隊意識以及開發(fā)大型軟件的協(xié)調(diào)結(jié)構(gòu)設(shè)計能力。實驗結(jié)束時,教師要求學(xué)生以演示系統(tǒng)、答辯的方式公布實驗成果,以便公正評分。
四、結(jié)論
論文關(guān)鍵詞:Proteus,LPC2124,精確計數(shù)
1 引言
LPC2124是基于一個支持實時仿真和跟蹤的16/32位ARM7TDMI-S CPU的微處理器,并帶有256KB嵌入的高速Flash存儲器和16KB的RAM。LPC2124具有教小的64腳封裝,極低的功耗,多個32位定時器,4路10位ADC,PWM輸出,46個GPIO以及多達(dá)9個外部中斷,并且內(nèi)置了多種串行通信接口物理論文,支持JTAG、ISP、IAP等多種編程方式,使得LPC2124能夠適用于工業(yè)控制、訪問控制、醫(yī)療系統(tǒng)以及其他各種類型的應(yīng)用[1,2]。
Proteus軟件是由英國Labcenter Electronics公司開發(fā)的EDA工具軟件,是一款新型的嵌入式系統(tǒng)設(shè)計、分析與仿真軟件。Proteus軟件不僅能夠?qū)崿F(xiàn)數(shù)字電路和模擬電路的設(shè)計與分析,而且還能夠?qū)崿F(xiàn)微處理器與外設(shè)的混合電路設(shè)計,可以直接在原理圖的基礎(chǔ)上進(jìn)行微處理器的軟件協(xié)同仿真和功能驗證。Proteus軟件只帶匯編編譯器(不支持C語言),但可以將其與Keil集成開發(fā)環(huán)境進(jìn)行聯(lián)調(diào),達(dá)到很好的仿真效果[3,4]。
本文設(shè)計的精確計數(shù)系統(tǒng)功能為:當(dāng)按下按鈕時,數(shù)碼管的計數(shù)加1,當(dāng)放開按鈕時,數(shù)碼管的計數(shù)保持不變;開始時數(shù)碼管的計數(shù)為0,當(dāng)數(shù)碼管的計數(shù)達(dá)到15(即16進(jìn)制的F)時又重新從0開始計數(shù)。系統(tǒng)軟件的設(shè)計采用Keil軟件完成,編譯連接之后得到可執(zhí)行的hex文件;系統(tǒng)硬件的設(shè)計采用Proteus軟件完成;軟硬件的協(xié)同仿真是在Proteus中加載hex文件進(jìn)行精確計數(shù)的測試。
2 硬件系統(tǒng)的設(shè)計
精確計數(shù)系統(tǒng)采用LPC2124微處理器作為核心器件,并為其提供了兩組電源分別為3.3V和1.8V。硬件系統(tǒng)主要由以下四部分電路組成:XTAL1和XTAL2兩個端口連接晶體振蕩器組成時鐘電路,RST端口連接一個按鈕組成復(fù)位電路物理論文,P0.0-P0.6端口連接一個共陰極的7段數(shù)碼管組成輸出電路,P0.7端口連接一個按鈕組成輸入電路論文格式。在精確計數(shù)系統(tǒng)中,P0.0-P0.7共8個端口的功能都是GPIO,P0.0-P0.6共7個端口的方向都為輸出模式,P0.7端口的方向為輸入模式[5]。采用Proteus軟件設(shè)計的硬件系統(tǒng)原理圖,如圖1所示。
圖1 硬件系統(tǒng)原理圖
3 軟件系統(tǒng)的設(shè)計
精確計數(shù)系統(tǒng)軟件的設(shè)計主要在于對LPC2124微處理器相關(guān)寄存器的設(shè)置,從而控制數(shù)碼管計數(shù)的顯示。軟件系統(tǒng)的設(shè)計采用Keil軟件完成,并最終得到可執(zhí)行的hex文件。軟件系統(tǒng)的設(shè)計主要通過以下幾個步驟來實現(xiàn),程序流程圖,如圖2所示。
圖2 軟件系統(tǒng)流程圖
1.初始化系統(tǒng)時鐘并設(shè)置相應(yīng)的寄存器。晶體振蕩器的頻率為10MHz,LPC2124微處理器的時鐘頻率為60MHz,設(shè)置相應(yīng)的寄存器程序如下:
PLLCON=1; //使能PLL
PLLCFG=(60/10-1)|(1<<5); //M=5+1,P=1
2.初始化相應(yīng)端口的功能為GPIO,設(shè)置相應(yīng)的寄存器程序如下:
PINSEL0=PINSEL0|0xFFFF; //P0.0-P0.7共8個端口功能為GPIO
3.初始化相應(yīng)端口的方向為輸入或輸出模式,設(shè)置相應(yīng)的寄存器程序如下:
IO0DIR=0x7F; //P0.0-P0.6共7個端口為輸出,P0.7端口為輸入
4.開始計數(shù)數(shù)碼管顯示0物理論文,設(shè)置相應(yīng)的寄存器程序如下:
IO0SET=0x3F; //P0.0-P0.5共6個端口輸出高電平,P0.6端口輸出低電平
5.循環(huán)檢測按鈕是否被按下,并進(jìn)行相應(yīng)的處理,程序模塊如下:
void button_test( )
{
int i=0,key;
unsigned charledcode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,
0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; //顯示0-9,A-F的筆段代碼表
while(1)
{
key=IO0PIN&(1<<7); //獲取P0.7端口的電平,即檢測按鈕是否被按下
if(key==0) //按鈕被按下
{
i++;
if(i==16) //計數(shù)器加到16
{
i=0;
IO0CLR=ledcode[15]; //清除數(shù)碼管上次計數(shù)的顯示
}
else
IO0CLR=ledcode[i-1]; //清除數(shù)碼管上次計數(shù)的顯示
IO0SET=ledcode[i]; //數(shù)碼管顯示新的計數(shù)
while(1)
{
key=IO0PIN&(1<<7);
if(key!=0) //按鈕被放開
break;
}
}
}
}
4 仿真與結(jié)論
精確計數(shù)系統(tǒng)軟硬件的協(xié)同仿真是在Proteus中加載hex文件進(jìn)行計數(shù)的測試。經(jīng)仿真測試結(jié)果表明:本精確計數(shù)系統(tǒng)能夠根據(jù)按鈕的按下與否準(zhǔn)確進(jìn)行0到15(即16進(jìn)制的F)的計數(shù),并通過數(shù)碼管進(jìn)行準(zhǔn)確顯示,達(dá)到了設(shè)計的目標(biāo)要求。同時,在此基礎(chǔ)之上,可以對系統(tǒng)的軟硬件功能進(jìn)行擴(kuò)充,以適用于其他方面的應(yīng)用。
參考文獻(xiàn):
[1]韋文祥,朱志杰,車琳娜,郭寶泉.基于LPC2124的一個遠(yuǎn)程系統(tǒng)軟件升級方案[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006,5:46-49
[2]晏五一,朱志杰.基于LPC2124的遠(yuǎn)程配電變壓器監(jiān)測終端設(shè)計[J].電力系統(tǒng),2007, 26(7):31-34
[3]楊校輝.Proteus在ARM系統(tǒng)設(shè)計中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009,8:77-79
[4]張勇.基于Proteus平臺的32位單片機(jī)LPC2114虛擬串口通訊仿真[J]. 集成電路通訊,2008,26(1):8-12
[5]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程(第2版)[M].北京:北京航空航天大學(xué)出版社,2008:353-360
論文關(guān)鍵詞:操作系統(tǒng),內(nèi)核分析,Linux,跨平臺調(diào)試
0 引言
作為計算機(jī)科學(xué)與技術(shù)專業(yè)的一門重要專業(yè)基礎(chǔ)課程,操作系統(tǒng)的地位舉足輕重。但在高校本科教學(xué)過程中,學(xué)生普遍反映該課程難學(xué),教師在教學(xué)中也困難重重。究其原因,操作系統(tǒng)課程自身的知識結(jié)構(gòu)以及研究對象特有的復(fù)雜性使上述情況成為必然。而知識體系的復(fù)雜性直接導(dǎo)致該課程給人理論性強(qiáng)、抽象的印象。因此,如何有效開展操作系統(tǒng)課程的實驗教學(xué),加深學(xué)生對該課程的直觀理解和把握就顯得至關(guān)重要。傳統(tǒng)實驗方法以驗證和仿真為主,實驗很難發(fā)揮應(yīng)有的作用,且容易混淆系統(tǒng)級和應(yīng)用級的許多概念,反而使學(xué)生更難把握知識結(jié)構(gòu),難以對系統(tǒng)軟件形成宏觀認(rèn)識。結(jié)合多年教學(xué)實踐,我校在操作系統(tǒng)課程的本科教學(xué)過程中結(jié)合實驗平臺軟件的開發(fā)和應(yīng)用,探索出一種直觀有效的實驗教學(xué)模式,使得教學(xué)效果得到較顯著的提高。
1 操作系統(tǒng)實驗教學(xué)現(xiàn)狀
1.1 實驗比重
由于操作系統(tǒng)課程涉及的理論知識多雜志鋪,系統(tǒng)級的驗證和實驗難度較大,導(dǎo)致教學(xué)過程中容易出現(xiàn)避重就輕的情況,教師易偏重理論課而輕視實驗課教學(xué),實驗的課時設(shè)置在各高校中也不同程度地偏少。另一方面,學(xué)生受考試形式的引導(dǎo),也偏重理論學(xué)習(xí)而忽視實踐動手能力的培養(yǎng)。實踐證明,不注重實驗、驗證環(huán)節(jié),學(xué)生很難對該課程涉及的大量概念和方法形成直觀認(rèn)識,導(dǎo)致對許多知識點的認(rèn)識出現(xiàn)偏差,反而不利于理論課的學(xué)習(xí)。例如,目前選用的教材在行文時經(jīng)常變換研究的“角度”,一些知識點是面向應(yīng)用的,而一些是研究操作系統(tǒng)內(nèi)部實現(xiàn)的,但在講述中并未明確說明,比如:在“進(jìn)程同步與互斥”部分,大部分教材是從“應(yīng)用”的角度來描述P、V操作的,并附帶偽碼算法。但在學(xué)習(xí)過程中,許多同學(xué)搞不清這些算法用在何處,是在應(yīng)用程序?qū)哟芜€是在操作系統(tǒng)實現(xiàn)層次。如果結(jié)合Linux或Windows平臺設(shè)計實驗內(nèi)容,補(bǔ)充P、V操作對應(yīng)的系統(tǒng)調(diào)用和有關(guān)函數(shù)的用法,真正寫出可運行的程序,就可以大大加深對知識點的理解。
1.2 實驗方式
與大部分應(yīng)用類課程相比,操作系統(tǒng)課程的研究目標(biāo)是系統(tǒng)軟件,知識結(jié)構(gòu)偏重底層軟件,且往往涉及到硬件知識,開展實驗所需的軟硬件平臺復(fù)雜,傳統(tǒng)教學(xué)模式很難真正實施“系統(tǒng)級”的實驗項目,故常用模擬算法代替。這樣容易導(dǎo)致所學(xué)知識和方法比較抽象和“遙不可及”,很難形成對操作系統(tǒng)整體上的理解和把握。
1.3 現(xiàn)有的一些改革和嘗試
針對操作系統(tǒng)課程實驗教學(xué)中的問題雜志鋪,各高校進(jìn)行了許多有益的改革和嘗試。例如,使用逐漸被認(rèn)同的Linux實驗平臺[1],整理更加規(guī)范的實驗內(nèi)容[2],以及按照歸類和劃分層次的原則對實驗?zāi)繕?biāo)進(jìn)行細(xì)化等方法[3]。但操作系統(tǒng)實驗內(nèi)容自身的復(fù)雜性與實驗方式盡量簡單、有效的要求之間的矛盾依然存在。
2 基于內(nèi)核分析的實驗?zāi)J?/p>
針對上述問題,本校操作系統(tǒng)教研組在操作系統(tǒng)實驗教學(xué)中不斷探索和嘗試,總結(jié)出一種基于內(nèi)核分析的實驗教學(xué)方法。實施過程中,在保障36個實驗學(xué)時的前提下,直接面向具體的操作系統(tǒng)對所學(xué)的概念和算法進(jìn)行驗證、設(shè)計,配合跨平臺編譯和調(diào)試技術(shù),有效地降低了實驗實施的難度,且不增加學(xué)生的額外負(fù)擔(dān)。
2.1 內(nèi)核分析
內(nèi)核分析,就是選擇一個開源的操作系統(tǒng)作為對象,通過閱讀源代碼來分析其實現(xiàn)原理和必要細(xì)節(jié),并在特定的地方修改部分代碼以驗證自己的算法。但是,為了降低實驗的復(fù)雜度并適應(yīng)本科生的知識結(jié)構(gòu),實驗對象不應(yīng)太復(fù)雜。基于上述考慮,可以選擇Linux0.11版本作為實驗的目標(biāo)系統(tǒng)。Linux0.11版是Linux的早期版本,其總的代碼量只有1萬行左右,且結(jié)構(gòu)清晰,功能較完整(能夠覆蓋實驗教學(xué)中的知識點),幾乎包含了目前較新版本內(nèi)核的所有基本功能和原理[4],能夠較好的滿足實驗要求。
2.2 跨平臺編譯和調(diào)試
單純的代碼閱讀是枯燥無味的,特別是操作系統(tǒng)這種系統(tǒng)軟件。為了提高實驗的直觀性,可借助動態(tài)調(diào)試技術(shù)來實現(xiàn)內(nèi)核代碼的閱讀和分析工作。通過調(diào)試過程可以較輕松的跟蹤內(nèi)核執(zhí)行的流程、關(guān)鍵算法的運行效果以及關(guān)鍵變量和寄存器的取值情況。
但由于操作系統(tǒng)是系統(tǒng)軟件,其修改、編譯和調(diào)試過程遠(yuǎn)比一般的應(yīng)用程序復(fù)雜。目前常見的實驗環(huán)境是在微機(jī)上直接安裝Linux的發(fā)行版本或在Windows系統(tǒng)中通過虛擬機(jī)安裝Linux開展實驗。但這些方法都需要在修改內(nèi)核后重新編譯并重啟系統(tǒng),其過程繁瑣且需要掌握Linux的大量命令,從而加重了學(xué)生的負(fù)擔(dān)并容易導(dǎo)致其失去學(xué)習(xí)興趣。
得益于自由軟件基金組織GNU對Linux的支持,目前有許多Linux相關(guān)的工具軟件可以使用,并且有對應(yīng)的Windows版本。其中雜志鋪,著名的編譯器GCC和調(diào)試工具GDB可以巧妙解決實驗過程繁瑣的問題。其主要思路是:利于GCC、GDB、MAKE工具和虛擬機(jī)軟件,實現(xiàn)一種跨平臺的內(nèi)核編譯和調(diào)試方法,即在Windows平臺下編輯、編譯并調(diào)試運行Linux系統(tǒng)。這和用VC、VB等應(yīng)用程序開發(fā)工具編程調(diào)試的工作方式幾乎沒用區(qū)別。另外,通過開發(fā)一個集成實驗環(huán)境(Windows下的應(yīng)用程序),可將GCC、GDB、MAKE及虛擬機(jī)工具進(jìn)行集成,從而將命令行工作方式轉(zhuǎn)換為視窗工作方式,大大簡化實驗步驟,使學(xué)生更容易集中注意力到實驗內(nèi)容本身。
圖1描述了這種基于跨平臺編譯調(diào)試技術(shù)的工作流程。
圖1 跨平臺內(nèi)核編譯、調(diào)試流程
3 集成實驗環(huán)境的搭建
搭建集成實驗環(huán)境的目的是避免實驗時頻繁的執(zhí)行GNU工具集對應(yīng)的各種命令,使實驗步驟盡可能簡潔。其主要組成為:虛擬機(jī)BOCHS、Windows下的GNU工具集以及主控程序。集成實驗環(huán)境的開發(fā)過程本身涉及許多操作系統(tǒng)課程中的知識點,比如進(jìn)程間通訊、管道、共享存儲器等。對學(xué)有余力的學(xué)生,閱讀其實現(xiàn)代碼有助于編程能力和對操作系統(tǒng)整體認(rèn)識的提高。
3.1 虛擬機(jī)BOCHS
傳統(tǒng)的Linux內(nèi)核調(diào)試方法是使用KGDB進(jìn)行遠(yuǎn)程調(diào)試。這種方法必須要求有一臺目標(biāo)機(jī)和一臺調(diào)試機(jī),因此用于實驗有很多困難,難以實施。而利用虛擬機(jī)軟件,可以在一臺微機(jī)上虛擬另一微機(jī)并滿足實驗的要求。另外,選擇BOCHS而非其它軟件的主要原因在于它使用的是仿真技術(shù)而非虛擬技術(shù),從而更適合充當(dāng)調(diào)試服務(wù)器的角色。
3.2 Windows下的GNU工具集
為了實現(xiàn)跨平臺的內(nèi)核編譯和調(diào)試,實驗環(huán)境需要使用Windows下的GNU最小工具集(Minimalist GNU for Windows),主要包括的工具有:AS、LD、GCC、MAKE以及GDB。其主要作用是保證在Windows平臺下GNU開發(fā)環(huán)境仍然可用。但需要注意的是,基于該工具集生成的可執(zhí)行程序是PE格式的,即Windows下的可執(zhí)行程序格式,不能作為內(nèi)核鏡像執(zhí)行,因此需要一個簡單的轉(zhuǎn)換過程。但這種首先將內(nèi)核編譯為exe再轉(zhuǎn)換為內(nèi)核鏡像的過程恰好可以為GDB保留內(nèi)核符號表,從而使跨平臺調(diào)試成為可能。
3.3 集成實驗環(huán)境
這是一個用VC開發(fā)的Windows應(yīng)用程序,其功能包括內(nèi)核源碼的管理、編輯、編譯、內(nèi)核鏡像的生成、調(diào)試、MINIX根文件系統(tǒng)的維護(hù)以及實驗項目的管理。
(1)內(nèi)核源碼以及實驗項目的管理
該功能主要結(jié)合操作系統(tǒng)實驗教學(xué)中的系統(tǒng)引導(dǎo)、進(jìn)程管理、存儲管理、設(shè)備管理、文件系統(tǒng)等內(nèi)容,針對相應(yīng)的內(nèi)核源碼給出注釋、快速索引、實驗指導(dǎo)以及實驗步驟。它可以幫助學(xué)生通過真正的內(nèi)核代碼分析,更深刻理解相關(guān)知識點,且形式直觀、易于理解。
(2)內(nèi)核鏡像的生成、調(diào)試
該功能是實驗環(huán)境的核心部分。基于該功能可以快速對修改過的內(nèi)核生成新的鏡像,并通過調(diào)試器看到真正的運行情況,從而使內(nèi)核分析實時、動態(tài)進(jìn)行雜志鋪,并且像調(diào)試應(yīng)用程序一樣簡單。具體實現(xiàn)時,將GCC、GDB、BOCHS等作為子進(jìn)程執(zhí)行,并通過管道和I/O重定向等方法將繁瑣的控制臺工作方式轉(zhuǎn)變?yōu)橐暣肮ぷ鞣绞?。例如,進(jìn)行調(diào)試時,不再需要記憶GDB的調(diào)試命令和頻繁的控制臺輸入,只需點擊鼠標(biāo)設(shè)置斷點、單擊菜單項或按快捷鍵即可實現(xiàn)字符環(huán)境下幾十條命令才能實現(xiàn)的功能,操作簡單、界面更友好。
(3)根文件系統(tǒng)的維護(hù)
在Windows下維護(hù)根文件系統(tǒng)的目的是便于將可執(zhí)行程序加載到磁盤鏡像中。由于Linux0.11功能簡單,并且為了保證磁盤鏡像盡可能小,Linux0.11本身不包含GCC等編譯工具,因此,要在目標(biāo)系統(tǒng)中運行的程序必須在Windows系統(tǒng)中編輯、編譯,最后再加載到根文件系統(tǒng)中。
圖2為集成實驗環(huán)境運行的情況。
圖2 集成實驗環(huán)境
4 結(jié)語
操作系統(tǒng)課程實驗教學(xué)的必要性和重要性已被廣泛認(rèn)同,而對教學(xué)方法、手段的探索和改革還任重道遠(yuǎn)。這種基于內(nèi)核分析的實驗方法試圖讓學(xué)生真正接觸操作系統(tǒng)實現(xiàn)細(xì)節(jié)的同時,力爭簡化實驗步驟,使實驗環(huán)節(jié)易于實施。實踐證明,該教學(xué)模式容易被學(xué)生接受、取得了較好的教學(xué)效果。
參考文獻(xiàn)
[1]鐘少丹.“操作系統(tǒng)”課程實驗設(shè)計的思考[J]. 計算機(jī)教育,2008(12):120-121.
[2]張其亮,韓斌.操作系統(tǒng)課程實驗教學(xué)改革探析[J]. 計算機(jī)教育,2010(7):91-93.
[3]鄒恒明.操作系統(tǒng)課程實驗中的五重奏哲學(xué)[J]. 計算機(jī)教育,2009(20):109-112.
[4]趙炯.Linux內(nèi)核完全注釋.[M]. 北京:機(jī)械工業(yè)出版社,2004.9.
關(guān)鍵詞:操作系統(tǒng);實踐教學(xué);實驗設(shè)計
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
文章編號:1672-5913 (2007) 20-0008-03
1引言
操作系統(tǒng)是計算機(jī)科學(xué)與技術(shù)專業(yè)的一門重要基礎(chǔ)課程,其教學(xué)目的使學(xué)生通過學(xué)習(xí)各種資源管理的原理和機(jī)制,建立起關(guān)于操作系統(tǒng)如何工作的理論知識基礎(chǔ)。但操作系統(tǒng)同時也是學(xué)生們認(rèn)為比較難學(xué)的專業(yè)課程之一。其原因有二:一是操作系統(tǒng)課程講述的是計算機(jī)資源管理的原理和機(jī)制,其中包含了許多抽象的概念和算法;二是操作系統(tǒng)作為最底層的核心軟件,深藏于“用戶界面”之下,學(xué)生們難以找到學(xué)習(xí)內(nèi)容的參照對象。因此,操作系統(tǒng)實踐教學(xué)作為教學(xué)輔助環(huán)節(jié)十分重要,它的作用在于通過動手做實驗,幫助學(xué)生解決從抽象理論到具體對象的認(rèn)識問題,培養(yǎng)學(xué)生應(yīng)用知識解決問題的能力。
與程序設(shè)計、編譯原理和數(shù)據(jù)庫等軟件課程的實踐教學(xué)相比,操作系統(tǒng)課程的實踐教學(xué)有其特殊的地方。前者可以通過實現(xiàn)一個小型的應(yīng)用程序或簡化的編譯器、數(shù)據(jù)庫來完成實踐教學(xué),而后者不能這樣做。因為操作系統(tǒng)不僅與硬件平臺密切相關(guān),而且內(nèi)部結(jié)構(gòu)非常復(fù)雜,即使讓學(xué)生實現(xiàn)一個最簡單的操作系統(tǒng)也是不現(xiàn)實的。近年來,我們以開源的Linux操作系統(tǒng)和WMware虛擬機(jī)作為實踐平臺,針對不同的教學(xué)對象和教學(xué)要求,精心設(shè)計了多種方式的實驗項目,在操作系統(tǒng)實踐教學(xué)上做了一些有益的探索。本文首先分析操作系統(tǒng)實踐教學(xué)的目標(biāo),然后說明如何具體設(shè)計實驗項目。
2實踐教學(xué)目標(biāo)
我們認(rèn)為,操作系統(tǒng)實踐教學(xué)作為輔助教學(xué)環(huán)節(jié),有兩個主要目標(biāo)。
(1) 幫助學(xué)生理解操作系統(tǒng)的基本概念、原理和機(jī)制
操作系統(tǒng)包含了許多抽象的基本概念如進(jìn)程、線程和虛存,也包含了復(fù)雜的資源管理算法和機(jī)制,如進(jìn)程調(diào)度和頁式存儲管理。這些知識對于本科學(xué)生而言是比較難以理解的,因為他們平時使用的是操作系統(tǒng)的用戶界面,很少也很難窺視到操作系統(tǒng)的內(nèi)部。操作系統(tǒng)的實踐教學(xué)應(yīng)該讓學(xué)生了解一個真實操作系統(tǒng)的內(nèi)部實現(xiàn),從而幫助學(xué)生更好地理解操作系統(tǒng)的基本概念、原理和機(jī)制。
我們采用開源的Linux操作系統(tǒng)作為實踐教學(xué)的教材,指導(dǎo)學(xué)生閱讀和分析Linux的部分源碼,將學(xué)生帶入一個真實而復(fù)雜的操作系統(tǒng)內(nèi)部世界。在閱讀和分析源碼的過程中,學(xué)生能夠了解抽象的進(jìn)程和線程所對應(yīng)的具體數(shù)據(jù)結(jié)構(gòu),了解進(jìn)程調(diào)度算法的實現(xiàn)過程,并應(yīng)用所學(xué)的操作系統(tǒng)原理知識分析和討論Linux的調(diào)度策略。另外,我們要求學(xué)生在做每項實驗前自學(xué)Linux操作系統(tǒng)的相關(guān)知識,使學(xué)生清楚地看到操作系統(tǒng)的原理知識是如何體現(xiàn)在一個實際系統(tǒng)中的。
(2) 培養(yǎng)學(xué)生應(yīng)用操作系統(tǒng)知識的能力
操作系統(tǒng)是計算機(jī)系統(tǒng)的核心軟件,從事計算機(jī)行業(yè)的專業(yè)人員都需要操作系統(tǒng)的原理知識,但他們擔(dān)任的角色不同,面臨的問題就不同,因而所具備的操作系統(tǒng)知識的應(yīng)用能力也不同。系統(tǒng)管理員需要根據(jù)操作系統(tǒng)知識和用戶的需求,合理地配置系統(tǒng)資源,需要及時了解系統(tǒng)運行狀態(tài),調(diào)整資源管理策略,使系統(tǒng)性能達(dá)到最佳;系統(tǒng)程序員需要詳細(xì)了解操作系統(tǒng)的內(nèi)核結(jié)構(gòu)、資源管理機(jī)制和功能模塊接口,為操作系統(tǒng)添加新功能或編寫設(shè)備驅(qū)動程序;應(yīng)用程序員則需要正確理解操作系統(tǒng)的功能和資源管理策略,編寫出高效率且安全的應(yīng)用軟件。操作系統(tǒng)的實踐教學(xué)必須考慮到上述不同能力培養(yǎng)的特點,以滿足學(xué)生未來任職需要。
我們以開源的Linux操作系統(tǒng)和WMware虛擬機(jī)作為實踐平臺,精心設(shè)計實驗項目,從多個方面培養(yǎng)學(xué)生應(yīng)用操作系統(tǒng)知識的能力。例如,學(xué)習(xí)使用Linux的proc文件系統(tǒng),對內(nèi)核運行狀態(tài)、資源管理狀態(tài)和進(jìn)程運行狀態(tài)進(jìn)行動態(tài)查詢;學(xué)習(xí)Linux的系統(tǒng)調(diào)用機(jī)制和內(nèi)核模塊動態(tài)加載機(jī)制,掌握為操作系統(tǒng)添加新功能的方法和過程;編寫進(jìn)程通信應(yīng)用程序,掌握各種進(jìn)程通信、同步互斥機(jī)制的特點和使用方法。
3實驗項目設(shè)計
我們在上述的實踐教學(xué)目標(biāo)的指導(dǎo)下,設(shè)計了多個實驗項目,內(nèi)容涵蓋了操作系統(tǒng)的主要知識點,包括用戶界面、進(jìn)程通信、proc文件系統(tǒng)、系統(tǒng)調(diào)用機(jī)制、進(jìn)程調(diào)度、內(nèi)核同步互斥機(jī)制、驅(qū)動程序接口等。考慮到學(xué)生的知識和經(jīng)驗背景,實驗項目的安排從簡到難,從依靠指導(dǎo)到自主設(shè)計。除必做的實驗項目外,還設(shè)計了選做的實驗項目,為有能力的同學(xué)提供更多的學(xué)習(xí)空間。下面分別介紹我們設(shè)計的九個實驗項目。其中,前三個實驗項目是為應(yīng)用程序員和系統(tǒng)管理員設(shè)計的,使學(xué)生掌握如何使用操作系統(tǒng)的命令界面、進(jìn)程機(jī)制和系統(tǒng)性能管理工具;第4個實驗安排學(xué)生閱讀和分析源碼,理解操作系統(tǒng)原理在實際系統(tǒng)中的實現(xiàn)過程;后五個實驗項目是為系統(tǒng)程序員設(shè)計的,讓學(xué)生體驗操作系統(tǒng)內(nèi)核編程的全過程。
(1)Linux命令界面及shell編程
該項實驗的目的是學(xué)習(xí)使用操作系統(tǒng)的命令用戶界面。實驗內(nèi)容是:了解和使用Linux的常用命令,包括如何使用聯(lián)機(jī)幫助手冊和管道線命令;學(xué)習(xí)使用命令程序語言shell進(jìn)行簡單的編程,從而理解命令解釋程序的工作過程。由于學(xué)生平時使用的是windows的圖形用戶界面,面對Linux的命令界面感到很陌生。所以,我們先給學(xué)生一個shell例子程序,讓學(xué)生按照說明步驟上機(jī)運行該程序,然后要求學(xué)生參照此程序?qū)崿F(xiàn)一個應(yīng)用管道線的shell程序。
(2) 進(jìn)程間通信
該項實驗的目的是加強(qiáng)學(xué)生對進(jìn)程概念的理解,使學(xué)生掌握不同的進(jìn)程通信和同步互斥機(jī)制的特點和使用方法。實驗內(nèi)容是:設(shè)計應(yīng)用程序?qū)崿F(xiàn)父、子進(jìn)程之間的數(shù)據(jù)交換,可采用各種方法實現(xiàn)父子進(jìn)程之間的通信(共享區(qū)、文件、消息傳遞、管道文件)和同步互斥控制(信號量、信號)。
(3) 使用proc文件系統(tǒng)
該項實驗的目的是學(xué)習(xí)如何使用Linux的proc文件系統(tǒng),對內(nèi)核運行狀態(tài)、資源管理狀態(tài)和進(jìn)程運行狀態(tài)進(jìn)行動態(tài)查詢。實驗內(nèi)容有:先通過課堂講授讓學(xué)生了解proc文件系統(tǒng)的設(shè)計思想、工作原理和組織結(jié)構(gòu),然后要求學(xué)生利用proc文件系統(tǒng)中的數(shù)據(jù)來說明操作系統(tǒng)或進(jìn)程的某些特性。例如,利用/proc/stat中的數(shù)據(jù)顯示CPU的使用情況――系統(tǒng)利用率和用戶利用率;利用/proc/intr中的數(shù)據(jù)顯示內(nèi)存容量對缺頁異常次數(shù)的影響。
(4) 分析進(jìn)程調(diào)度算法和策略
該項實驗的目的是幫助學(xué)生深入理解進(jìn)程調(diào)度過程,培養(yǎng)學(xué)生分析和研究問題的能力。實驗內(nèi)容是:閱讀和理解Linux的進(jìn)程調(diào)度函數(shù)schedule()、進(jìn)程數(shù)據(jù)結(jié)構(gòu)task_struct等內(nèi)核源碼,分析和研究Linux的進(jìn)程調(diào)度算法和策略,寫出研究論文。要求學(xué)生在論文中討論以下問題:進(jìn)程調(diào)度隊列是如何組織的;如何實現(xiàn)三種調(diào)度類型(SCHED_FIFO, SCHED_RR, SCHED_OHTER);進(jìn)程的優(yōu)先級是如何定義和動態(tài)變化的;如何決定時間片的大小以及它與優(yōu)先級的關(guān)系;對實時進(jìn)程和多CPU的支持;評價Linux的調(diào)度策略并提出改進(jìn)意見。
(5)Linux內(nèi)核編譯
該項實驗的目的是學(xué)習(xí)如何生成新內(nèi)核,為后面進(jìn)行操作系統(tǒng)內(nèi)核編程的實驗做準(zhǔn)備。實驗內(nèi)容有:學(xué)習(xí)如何下載和解壓源碼,了解Linux內(nèi)核源碼的組織結(jié)構(gòu),學(xué)習(xí)配置、編譯、安裝和啟動Linux新內(nèi)核的全部過程。
(6) 添加系統(tǒng)調(diào)用
該項實驗的目的是讓學(xué)生理解操作系統(tǒng)的重要機(jī)制――系統(tǒng)調(diào)用機(jī)制的工作過程,學(xué)習(xí)如何添加系統(tǒng)調(diào)用。實驗內(nèi)容是:閱讀源碼文件,分析系統(tǒng)調(diào)用表等內(nèi)核數(shù)據(jù)結(jié)構(gòu);實現(xiàn)新的系統(tǒng)調(diào)用函數(shù),添加新的系統(tǒng)調(diào)用,編譯和生成新內(nèi)核;編寫應(yīng)用程序,驗證新系統(tǒng)調(diào)用的功能。
(7) 加載內(nèi)核模塊
該項實驗的目的是學(xué)習(xí)動態(tài)增加內(nèi)核功能的方法。內(nèi)核模塊動態(tài)加載/卸載是操作系統(tǒng)的另一重要機(jī)制,它使得用戶不僅能動態(tài)裁剪內(nèi)核功能,還能通過自己編寫內(nèi)核模塊或使用第三方軟件來動態(tài)增加內(nèi)核功能。實驗內(nèi)容有:首先通過課堂講授讓學(xué)生了解Linux模塊機(jī)制的工作原理、模塊的編程和編譯方法,然后要求學(xué)生采用內(nèi)核模塊編程方法,為proc文件系統(tǒng)添加一個新文件。在該項實驗中,學(xué)生不僅要學(xué)習(xí)內(nèi)核模塊的編程、編譯、加載和卸載全過程,還需要查找資料和閱讀源碼,搞清楚proc文件系統(tǒng)中關(guān)于創(chuàng)建文件、讀/寫文件和刪除文件的函數(shù)接口,以此鍛煉學(xué)生的自主動手的能力。
(8) 實現(xiàn)同步事件原語
該項實驗的目的是學(xué)習(xí)如何實現(xiàn)同步互斥機(jī)制。實驗內(nèi)容是,實現(xiàn)一組同步事件原語:能夠使多個進(jìn)程阻塞在某個特定的事件上,直到另一個進(jìn)程產(chǎn)生該事件,從而喚醒所有在此事件上阻塞的進(jìn)程。這是一項綜合的復(fù)雜實驗。實驗者需要分析清楚同步事件原語的語義以及進(jìn)程同步過程中的所有細(xì)節(jié)問題,正確設(shè)計同步事件的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)調(diào)用原型,分析Linux源碼中關(guān)于進(jìn)程等待隊列和內(nèi)核信號量的相關(guān)函數(shù),并利用這些函數(shù)實現(xiàn)同步事件原語的系統(tǒng)調(diào)用。然后,采用內(nèi)核模塊方法將新的系統(tǒng)調(diào)用添加到Linux內(nèi)核中,并通過應(yīng)用程序驗證其正確性。
(9) 實現(xiàn)虛擬管道設(shè)備
該項實驗的目的是學(xué)習(xí)如何編寫驅(qū)動程序。實驗內(nèi)容是:使用內(nèi)存區(qū)(例如2048字節(jié))實現(xiàn)一個虛擬的字符管道設(shè)備:允許多個進(jìn)程向管道寫入數(shù)據(jù),也允許多個進(jìn)程從管道讀出數(shù)據(jù),保證數(shù)據(jù)的寫入順序與讀出順序是一致的。這也是一項綜合的復(fù)雜實驗,實驗者需要分析研究讀/寫管道設(shè)備過程中的同步互斥問題,利用內(nèi)核信號量函數(shù)和進(jìn)程阻塞/喚醒函數(shù)解決同步互斥問題;分析研究Linux的字符設(shè)備驅(qū)動程序接口,學(xué)習(xí)如何編寫和注冊驅(qū)動程序的接口函數(shù)以及如何建立Linux設(shè)備文件。然后,采用內(nèi)核模塊方法將新功能添加到Linux內(nèi)核中,并通過應(yīng)用程序驗證其正確性。
4結(jié)束語
操作系統(tǒng)實踐教學(xué)應(yīng)該為學(xué)生提供一個實驗環(huán)境,使學(xué)生能夠觸摸真實的操作系統(tǒng)內(nèi)核,從而更好地理解操作系統(tǒng)的基本概念、原理和機(jī)制;使學(xué)生能夠親身體驗操作系統(tǒng)功能的設(shè)計和實現(xiàn)過程,培養(yǎng)學(xué)生應(yīng)用操作系統(tǒng)知識的能力。我們在操作系統(tǒng)實踐教學(xué)中做了一些有益的工作,教學(xué)效果也不錯,但還存在一些問題有待于進(jìn)一步研究和探索。例如,如何與課堂教學(xué)互補(bǔ),進(jìn)一步激發(fā)學(xué)生學(xué)習(xí)操作系統(tǒng)的興趣;如何通過構(gòu)建實驗平臺將操作系統(tǒng)中更多的內(nèi)核機(jī)制(中斷機(jī)制、內(nèi)存管理機(jī)制等)呈現(xiàn)給學(xué)生;如何設(shè)計更為實用的、學(xué)生自主性更強(qiáng)的實驗項目,等等。
參考文獻(xiàn)
[1] 羅宇. 操作系統(tǒng)課程設(shè)計[M]. 北京:機(jī)械工業(yè)出版社,2004.
[2] 陳莉君. 深入理解Linux內(nèi)核[M]. 北京:中國電力出版社,2004.
[3] 李善平. 邊學(xué)邊干―Linux內(nèi)核指導(dǎo)[M]. 浙江大學(xué)出版社,2002.
作者簡介