999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Round-Robin方法的多進程電子證件操作系統設計與實現

2018-03-27 06:04:54崔鵬飛郭小波王開林肖輝遠葛利軍
警察技術 2018年2期
關鍵詞:進程單片機資源

崔鵬飛 郭小波 王開林 肖輝遠 葛利軍

1.公安部第一研究所 2. 北京市微技術研究所

一、電子證件操作系統應用現狀

當前,電子證件芯片操作系統(COS)幾乎全部采用應答式單線程模式,該模式在主函數中構建一個死循環,當芯片從天線獲取能量啟動后,進入該死循環,在循環內部構建相應的專用業務流程。

業務流程中一般會涉及加解密計算、對芯片EEPROM的讀寫和無線接口的收發等工作,這些業務都是通過主程序的死循環進行順序執行,并完成一個交互。此種單進程業務流程使單片機的運行效率較低。

本系統在電子證件芯片中構建多進程,使芯片在獲取命令后把相互獨立的步驟進行并發運行。這種運行模式會提高芯片的執行效率和資源使用率,為電子證件芯片未來發展提供新模式,滿足電子證件未來發展需求。

二、芯片實現時間片輪轉法需要具備的功能

時間片輪轉(Round-Robin)方法是讓先來先服務(FCFS)的進程就緒隊列中的進程都得到處理器一個時間片來運行,在時間片使用完畢后,如果進程任務執行完畢,則進程結束;否則系統把該進程移動至就緒隊列的隊尾,依此循環,直到所有進程都執行完畢。有一種特殊情況是:當一個進程在合法時間片運行過程中發生I/O請求,系統會把該進程放入系統阻塞隊列,當I/O請求工作完成后,系統自動把該進程放入進程就緒隊列中。圖2簡單示意Round-Robin對一個進程的調度運行過程。

以上過程圖要正常運行,則需要對時間片進行控制,這就需要芯片有定時器來控制時間片的大小;時間片運行完畢需要對進程進行調度,則需要芯片有中斷機制,中斷服務程序完成對進程的調度。

(一)中斷機制

這里的中斷是指異常或者事件的一種響應,該響應會自動保存系統當前狀態以便恢復并自動進入中斷服務程序。

具體到本系統,定時器到達預定時間發出中斷請求給中斷控制器,中斷控制器把該請求通過仲裁之后發送給CPU,請求運行時鐘中斷服務程序。圖3示意中斷機制過程。

(二)定時器

在計算機控制中定時器是一個常用的模塊,一般可以通過軟件、不可編程硬件或可編程硬件實現。

STC89C52RC單片機定時器屬于可編程定時器,達到預定時間后以中斷方式請求CPU響應,定時準確,不浪費CPU時間。

51系列單片機定時器結構圖如圖4所示:

在STC89C52RC增強型單片機中,本例選用定時器2,通過寄存器T2CON、T2MOD、RCAP2H和RCAP2L,并通過ET2位和TR2位配合控制運行。

三、基于單片機的時間片輪轉法設計

本系統通過STC89C52RC單片機模擬運行,采用時間片輪轉法,并使用UART口為輸出口顯示系統運行信息,即UART口模擬進程共享設備(即:臨界資源)。因此,進程在并發運行時,首先需要通過互斥關系去獲得資源,然后輸出自己的信息,最后再釋放資源給其他進程使用。該過程需要使用信號量和P、V操作實現進程間互斥。

(一)進程互斥與臨界區設計

臨界區是指各個進程在對臨界資源進行操作的程序段。利用P、V操作解決臨界區問題時,首先設置S為進程互斥的公用信號量并賦予初值,然后把臨界區程序段放置于P(S)操作和V(S)操作之間即可,圖5以兩個進程為例示意:

本系統中S信號量是全局變量 volatile unsigned char Cr_Count,這里volatile關鍵字不能缺,確保系統在獲取該參數時都需要重新讀取,從而獲得實時值。

·進入臨界區函數結合STC89C52RC單片機設計如下:

這里首先需要關閉STC89C52RC單片機系統中斷,在進程進入臨界區后系統不能響應任何中斷,不然會導致臨界區代碼執行異常,或者可以認為臨界區必須是原子操作。

·離開臨界區函數結合STC89C52RC單片機設計如下:

這里首先判斷Cr_Count大于1,這表明有多少個進程需要進臨界區,也可以讓系統判斷是否要真的退出臨界區,如果Cr_Count等于0,這時表示沒有進程需要再進入臨界區,這時打開系統中斷,系統恢復響應中斷。

(二)共享設備訪問設計

共享設備即臨界資源,對臨界資源的訪問,我們使用一種稱為“鎖”的機制。這種方法是用一個全局變量Z,把變量Z稱為“鎖”。它有兩種狀態:0和X(非0正數),0表示鎖打開、X表示鎖關閉。還有一個加鎖操作LOCK(Z)和一個解鎖操作UNLOCK(Z),LOCK就是將Z置為X,UNLOCK是將Z置為0。

本系統Z變量對應于全局變量unsigned char uart_used,并在UART初始化時賦值為0,表示設備沒有被占用。

·基于鎖機制的獲取設備函數偽代碼如下設計:

在獲取UART時使用了Enter_Critical()和Exit_Critical()函數,主要是因為uart_used變量的賦值操作也必須是原子操作。不難看出上面流程主要功能是將uart_used變量置為X的過程。

·基于鎖機制的釋放設備函數偽代碼如下設計:

這里主要功能就是將uart_used變量值置為0,表示臨界資源處于可使用狀態。

(三)中斷及保護設計

本系統主要用到了STC89C52RC單片機的定時器中斷,在中斷服務程序中編寫了進程調度代碼,該段代碼有以下要求:

·必須關閉系統中斷,進程在調度時不能被中斷,否則進程就會運行錯亂;進程結束后再打開系統中斷。

·必須在進入中斷時保護CPU上下文,離開中斷時恢復CPU上下文。

·必須清除定時器中斷,離開中斷時不需要設置它,因為硬件會自動設置。

·對以上三種操作,在進入中斷服務程序時,最好先關閉系統中斷,然后保護CPU上下文,最后清定時器中斷標志;離開中斷服務程序時,先恢復CPU上下文,最后打開系統中斷。

基于STC89C52RC單片機的定時器中斷服務程序偽代碼如下:

保護CPU上下文沒有出現ACC、PSW、B寄存器,這是因為STC89C52RC單片機會自動對它們進行壓棧保護;保護CPU上下文出現的PUSH X對應恢復CPU上下文出現的POP X匯編指令,表示對X號寄存器進行壓棧和出棧。

8051系列單片機在片內RAM中有4個不同的工作寄存器組,每個寄存器組包含8個工作寄存器R0-R7。

四、多進程功能在單片機上的實現

本節主要是在第4節功能的基礎上完成對進程的運行操作,這樣就達到了該系統最終設計目標。進程的運行操作主要有三種:進程創建、進程調度和進程刪除。

(一)進程創建

進程在系統中是分配資源的單位,本系統通過二維數組unsigned char idata Task_Stack[MAX_TASK][S_DEPTH]給每個進程分配相應資源。從這里可看出,系統可以最多創建MAX_TASK個進程,每個進程最多占用S_DEPTH片內RAM資源,這里關鍵字idata也可以換成xdata,但是建議用片內資源。進程創建函數偽代碼如下:

參數Task_P、Task和Msg分別表示進程優先級、進程入口程序和進程消息。

(二)進程調度

進程調度主要完成進程使用完預定時間片后對另外一個進程進行調度運行的功能,該代碼段編寫在定時器中斷服務程序中。其偽代碼如下:任務

(三)進程刪除

進程刪除即把一個不再有價值的進程刪除,空出資源供其它進程利用。進程刪除主要是在任務列表上清除任務標志,并清除進程控制塊和其占用的資源。其偽代碼如下:

(四)系統運行

當前系統通過STC89C52RC單片機模擬運行,運行操作流程如下:

1. 在系統主函數中創建相應的任務,代碼截圖如圖6。

2. 編譯工程。

3. 正確連接STC89C52RC單片機開發板,下載hex文件需要STC-ISP專用軟件,圖7所示已經完成下載hex文件。

4. 啟動STC89C52RC單片機,通過串口調試助手工具捕獲四個進程發出的信息,如圖8所示。

五、結束語

隨著公安業務的不斷前進與發展,對便攜式設備和安全證卡類有限資源的裝備材料需求越來越多,作者通過一個小資源單片機實現了一個小的并發系統,可以應用于便攜式設備和證卡等小芯片資源中,該系統是一個可以完成需要并發執行的多應用任務平臺。

該系統目前還有其局限性,但經過測試,在滿足目前公安的一些應用上是可行的。以后可以替換目前在應用的單線程應用模式,擴展了后期應用思路。

[1] William Stallings著.陳向群譯. 操作系統精髓與設計原理.電子工業出版社,2010.

[2] 徐愛鈞,彭秀華.著. Keil Cx51 單片機高級語言編程與uVision2. 電子工業出版社,2008.

[3] 楊學昭,王東云,著.單片機原理、接口及應用(含51).西安電子科技大學出版社,2009.

猜你喜歡
進程單片機資源
基礎教育資源展示
一樣的資源,不一樣的收獲
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
資源回收
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
Microchip推出兩個全新PIC單片機系列
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 亚洲高清无在码在线无弹窗| 午夜福利无码一区二区| 女人av社区男人的天堂| 成人综合久久综合| 欧美亚洲日韩中文| 日韩色图区| 精品亚洲国产成人AV| 国产91精选在线观看| 无码又爽又刺激的高潮视频| 午夜无码一区二区三区| 91在线视频福利| 久久精品免费国产大片| 久久久精品国产SM调教网站| 国产无码在线调教| 热热久久狠狠偷偷色男同| 最新加勒比隔壁人妻| 亚洲最大看欧美片网站地址| 美女国内精品自产拍在线播放| 日本高清有码人妻| 欧美国产精品拍自| 精品三级在线| 国产日韩欧美精品区性色| 国产一区二区免费播放| 欧美色丁香| 国产精品私拍99pans大尺度| 99r在线精品视频在线播放| 欧美全免费aaaaaa特黄在线| 色网站在线免费观看| 欧美色99| 亚洲午夜国产精品无卡| 男人天堂亚洲天堂| 看你懂的巨臀中文字幕一区二区| 国产激情无码一区二区三区免费| 国产色婷婷视频在线观看| 日韩午夜伦| 国产成人精品在线| 欧美天堂久久| 91年精品国产福利线观看久久| 精品国产欧美精品v| 内射人妻无套中出无码| 亚欧成人无码AV在线播放| 亚洲狠狠婷婷综合久久久久| 波多野结衣爽到高潮漏水大喷| 91精品久久久久久无码人妻| 欧美精品成人| 丁香亚洲综合五月天婷婷| 久久久久国产精品熟女影院| 亚洲第一成年网| 毛片卡一卡二| 在线观看国产网址你懂的| 无码免费视频| 9啪在线视频| 好吊妞欧美视频免费| 亚洲无限乱码| 五月综合色婷婷| 国产午夜福利亚洲第一| 国产色爱av资源综合区| 欧美一级高清免费a| 国产自无码视频在线观看| 欧美啪啪网| 亚洲毛片在线看| 亚洲中字无码AV电影在线观看| 囯产av无码片毛片一级| 国产精品无码作爱| 国模在线视频一区二区三区| 国产欧美在线视频免费| 国产成人精品一区二区不卡| 四虎成人免费毛片| 一本大道无码日韩精品影视| 国产精品污视频| 在线观看免费AV网| 日韩天堂视频| 91伊人国产| 国产精品久久久久婷婷五月| 91精品啪在线观看国产91| 国产福利2021最新在线观看| 色亚洲成人| 国产亚洲现在一区二区中文| 国产女同自拍视频| 色婷婷视频在线| 欧美视频在线不卡| 国产杨幂丝袜av在线播放|