實驗一進程的創建與撤銷_第1頁
實驗一進程的創建與撤銷_第2頁
實驗一進程的創建與撤銷_第3頁
實驗一進程的創建與撤銷_第4頁
實驗一進程的創建與撤銷_第5頁
免費預覽已結束,剩余6頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.下載可編輯實驗一:進程創建與撤消一、 實驗目的1、 加深對進程概念的理解和進程創建與撤消算法;2、 進一步認識并發執行的實質。二、 實驗內容本實驗完成如下三個層次的任務:(1)系統級一以普通用戶身份認識windows的進程管理。通過windows的 “任務管理器”觀察進程的狀態,進行進程的創建、切換和撤銷。(2)語言級一以普通程序員身份認識高級語言Java的進程創建與撤銷工具。(3)模擬級一以OS設計師身份編程模擬實現進程創建與撤銷功能,并在屏 幕上觀察進程活動的結果。三、 實驗步驟1、windows的進程管理(1)按ctrl+alt+delete鍵,彈出windows任務管理器窗口(2)選

2、擇相應操作序號,可以創建一個新的進程(3)在創建完一個新的進程后,可以顯示出所有已創建進程的詳細信息(4)選擇相應操作序號,可以通過輸入pcbld或pcbGrade來撤銷一個進程2、進程創建與撤銷工具(1)進程的創建Process p=R un time.getR un time().exec(” no tepad);(2)進程的撤銷p.destroy();3、進程創建與撤銷的模擬實現(1)總體設計:1數據結構定義:.下載可編輯結構體PCB進程編號,進程名稱,進程優先級和進程創建時間,隊列按進 程創建時間排序。PCB空 間就緒隊列指針空隊列指針2函數進程創建:從PCB空間申請一個空PCB填入進

3、程參數,插入就緒隊列; 進程終止:將指定的就緒進程移出就緒隊列,插入空隊列;就緒隊列輸出:輸出就緒隊列中的進程信息,以便觀察創建或撤消活動的結 果;主函數:調用創建函數、調用終止函數、輸出就緒隊列;3主界面設計:進程創建、進程撤銷、退出程序圖1操作主界面4功能測試:從顯示出的就緒隊列狀態,查看操作的正確與否。(2)詳細設計:數據結構定義:結構體PCB表1 PCB結構體表屬性類型pcbldint.下載可編輯pcbNameStri ngpcbGradeintcreateTimeDatePCB空間:是一個能存放十個PCM象的數組就緒隊列指針:定義一整型變量初始值為零空隊列指針:定義一整型變量初始值為

4、零,當有進程創建時,加入函數設計進程創建示例圖圖2創建新進程創建多個進程后,可以查看到所有已創建的進程的詳細信息,如圖圖3查看所有進程.下載可編輯用戶可以根據pcbld或者pcbGrade來撤銷某一個進程,并在撤銷成功后, 可以看到撤銷后剩余的所有進程信息,如圖。.下載可編輯圖4根據pcbld撤銷某個進程圖5根據pcbGrade撤銷某個進程在操作主界面中選擇操作3時,可以退出該程序,如圖進程削腱與撤消愛倉11f聿環j吾XMtKXK:KXMtKXK:K廉貳良豪貳賈. 終止像 語*晴輸入您墓進行的操作序號:0ress any key to continue圖6退出程序.下載可編輯四、該程序的主要任

5、務為對windows的進程管理進行相應的模擬和認識。通過對于進行的創建,切換和撤銷,已完成我們對于win dows進行的初步了解和認識。在編制程序的過程中,我確實遇見了不少的問題,發現其實自己并不強。但 是當一個個問題的出現,自己努力并最后解決的時候,心里卻悠然產生了一種非 常舒服和愜意的感念。因為是自己努力得來的東西,所以無論怎么樣都會看著非 常開心,非常激動。通過此次試驗,我更加了解了關于進程方面的認識。我今后會更加努力,努力學好自己的專業水平。五、附錄/實體類#include #include #include #define SIZE 10typedef char QEIemType;

6、typedef int IP;typedef int GRADE;typedef struct QNode / 創建 PCBQElemType name;IP id;QElemType time;GRADE grade;struct QNode *next;PCB,*PCBLink;實驗總結.下載可編輯typedef struct PCBLink front;PCBLink rear;LinkQueue;void lnitPCB(QNode PCB) PCB初始化PCB.grade=O;PCB.id=0;PCB.name=*;PCB.next=NULL;PCB.time=*;void Init

7、ReadyQueue(LinkQueue & Q) / 初始化就緒隊列Q.front=Q.rear=(PCBLink) malloc(sizeof(QNode); Q.front-next=NULL;void EnQueue(LinkQueue &Q, QNode PCB) / 入隊PCBLink p = (PCBLink) malloc(sizeof(QNode); p-id=PCB.id;p-name=PCB.name;p-grade=PCB.grade;p-time=PCB.time;p-next=PCB.next;Q.rear-next=p;Q.rear=p;void

8、DeNullQueue(LinkQueue & Q) / 空隊列出隊 if(Q.front=Q.rear)coutvv空隊列空間已滿,不能分配空間 !next=Q.front-next-next;if(Q.rear=Q.front-next)Q.rear=Q.front;void DeReadyQueue(LinkQueue &Q, QNode & PCB, int b) / if(Q.front=Q.rear)coutvv隊列是空的,不能讀出數據!next!=Q.rear-next)switch(b)case 1: if(p-next-id=PCB.id)PCB.na

9、me = p-next-name;PCB.id = p-next-id;PCB.time = p-next-time;PCB.grade = p-next-grade; p-next = p-next-next; if(Q.front=p)Q.front-next = p-next;if(Q.rear=Q.front)Q.rear=Q.front;elsep=p_next;break;選擇指定元素從就緒隊列岀隊.下載可編輯case 2: if(p-next-grade=PCB.grade)PCB.name = p-next-name;PCB.id = p-next-id;PCB.time =

10、p-next-time;PCB.grade = p-next-grade;p-next = p-next-next;if(Q.front=p)Q.front-next = p-next;if(Q.rear=Q.front)Q.rear=Q.front;elsep=p-next;break;coutvvendlvv您終止的 PCBName PCB.name; PCBID: PCB.idnext=NULL;for(int i=0;inext;while(q!=RQ.rear-next).下載可編輯coutvv vvq_n ameid gradenext; void Create(LinkQueue

11、 & NQ, LinkQueue &RQ, QNode PCB) /創建原語界面coutvv=vvendl; coutvvendl;coutvv進程創建與撤消-創建進程vvendl;coutvv- vvendl;coutvv 請您輸入您的 PCB 數據:vvendl;coutvvPCBName ;cinPCB.name;coutvvPCBID :;cinPCB.id;coutvvPCB 優先級:;cinPCB.grade;coutvvPCB 創建時間:;cinPCB.time;CreatePCB(NQ,RQ,PCB); / 倉 U 建原語PCBShow(RQ); /讀就緒隊列v

12、oid Delete(LinkQueue & NQ, LinkQueue &RQ, QNode PCB) /終止原語界面InitPCB(PCB);int b=0;coutvv=*=*=vvendl;coutvvendl;coutvv進程創建與撤消-終止進程vvendl;coutvv請您輸入終止依據(1.PCBID 2.PCB 優先級):vvendl; cinb;if(b=1)coutvv請您輸入 PCBID ;cinPCB.id;elsecoutvv請您輸入 PCB 優先級:;cinPCB.grade;DeletePCB(NQ,RQ,PCB,b); / 終止原語PCBShow(

13、RQ); /讀就緒隊列void main()LinkQueue NQ,RQ; /空隊列、就緒隊列InitNullQueue(NQ); / 初始化空隊列InitReadyQueue(RQ); /初始化就緒隊列QNode PCB;InitPCB(PCB);int n;coutvv=*=*=vve ndl;.下載可編輯coutvvendl;.下載可編輯coutvv進程創建與撤消vvendl;coutvvendl;coutn;while (n!=0)switch(n)case 1: Create(NQ,RQ,PCB); break; /創建原語界面case 2: Delete(NQ,RQ,PCB); break; /終止原語界面coutvvendl;coutv$vendl;coutvvendl;coutvv進程創建與撤消vvendl;coutvvendl;cou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論