實(shí)驗(yàn)一進(jìn)程的創(chuàng)建與撤銷_第1頁
實(shí)驗(yàn)一進(jìn)程的創(chuàng)建與撤銷_第2頁
實(shí)驗(yàn)一進(jìn)程的創(chuàng)建與撤銷_第3頁
實(shí)驗(yàn)一進(jìn)程的創(chuàng)建與撤銷_第4頁
實(shí)驗(yàn)一進(jìn)程的創(chuàng)建與撤銷_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、.下載可編輯實(shí)驗(yàn)一:進(jìn)程創(chuàng)建與撤消一、 實(shí)驗(yàn)?zāi)康?、 加深對進(jìn)程概念的理解和進(jìn)程創(chuàng)建與撤消算法;2、 進(jìn)一步認(rèn)識(shí)并發(fā)執(zhí)行的實(shí)質(zhì)。二、 實(shí)驗(yàn)內(nèi)容本實(shí)驗(yàn)完成如下三個(gè)層次的任務(wù):(1)系統(tǒng)級(jí)一以普通用戶身份認(rèn)識(shí)windows的進(jìn)程管理。通過windows的 “任務(wù)管理器”觀察進(jìn)程的狀態(tài),進(jìn)行進(jìn)程的創(chuàng)建、切換和撤銷。(2)語言級(jí)一以普通程序員身份認(rèn)識(shí)高級(jí)語言Java的進(jìn)程創(chuàng)建與撤銷工具。(3)模擬級(jí)一以O(shè)S設(shè)計(jì)師身份編程模擬實(shí)現(xiàn)進(jìn)程創(chuàng)建與撤銷功能,并在屏 幕上觀察進(jìn)程活動(dòng)的結(jié)果。三、 實(shí)驗(yàn)步驟1、windows的進(jìn)程管理(1)按ctrl+alt+delete鍵,彈出windows任務(wù)管理器窗口(2)選

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

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

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

5、務(wù)為對windows的進(jìn)程管理進(jìn)行相應(yīng)的模擬和認(rèn)識(shí)。通過對于進(jìn)行的創(chuàng)建,切換和撤銷,已完成我們對于win dows進(jìn)行的初步了解和認(rèn)識(shí)。在編制程序的過程中,我確實(shí)遇見了不少的問題,發(fā)現(xiàn)其實(shí)自己并不強(qiáng)。但 是當(dāng)一個(gè)個(gè)問題的出現(xiàn),自己努力并最后解決的時(shí)候,心里卻悠然產(chǎn)生了一種非 常舒服和愜意的感念。因?yàn)槭亲约号Φ脕淼臇|西,所以無論怎么樣都會(huì)看著非 常開心,非常激動(dòng)。通過此次試驗(yàn),我更加了解了關(guān)于進(jìn)程方面的認(rèn)識(shí)。我今后會(huì)更加努力,努力學(xué)好自己的專業(yè)水平。五、附錄/實(shí)體類#include #include #include #define SIZE 10typedef char QEIemType;

6、typedef int IP;typedef int GRADE;typedef struct QNode / 創(chuàng)建 PCBQElemType name;IP id;QElemType time;GRADE grade;struct QNode *next;PCB,*PCBLink;實(shí)驗(yàn)總結(jié).下載可編輯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) / 初始化就緒隊(duì)列Q.front=Q.rear=(PCBLink) malloc(sizeof(QNode); Q.front-next=NULL;void EnQueue(LinkQueue &Q, QNode PCB) / 入隊(duì)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) / 空隊(duì)列出隊(duì) if(Q.front=Q.rear)coutvv空隊(duì)列空間已滿,不能分配空間 !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隊(duì)列是空的,不能讀出數(shù)據(jù)!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;選擇指定元素從就緒隊(duì)列岀隊(duì).下載可編輯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) /創(chuàng)建原語界面coutvv=vvendl; coutvvendl;coutvv進(jìn)程創(chuàng)建與撤消-創(chuàng)建進(jìn)程vvendl;coutvv- vvendl;coutvv 請您輸入您的 PCB 數(shù)據(jù):vvendl;coutvvPCBName ;cinPCB.name;coutvvPCBID :;cinPCB.id;coutvvPCB 優(yōu)先級(jí):;cinPCB.grade;coutvvPCB 創(chuàng)建時(shí)間:;cinPCB.time;CreatePCB(NQ,RQ,PCB); / 倉 U 建原語PCBShow(RQ); /讀就緒隊(duì)列v

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

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

溫馨提示

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

評論

0/150

提交評論