版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)原理課程設(shè)計(jì)報告姓 名: 吳沛儒 班 級: BX0907 學(xué) 號: 9 指導(dǎo)老師: 胡靜 二一一年十二月十二日目錄一、操作系統(tǒng)原理課程設(shè)計(jì)的目的與要求31、目的32、要求3二、簡述課程設(shè)計(jì)內(nèi)容、主要功能和實(shí)現(xiàn)環(huán)境31.課程設(shè)計(jì)內(nèi)容3三、任務(wù)的分析、設(shè)計(jì)、實(shí)現(xiàn)和討論31、任務(wù)的分析32、任務(wù)的設(shè)計(jì)與實(shí)現(xiàn)5五、附錄11進(jìn)程調(diào)度優(yōu)先數(shù)法與簡單輪轉(zhuǎn)法一、 操作系統(tǒng)原理課程設(shè)計(jì)的目的與要求1、 目的進(jìn)程是操作系統(tǒng)最重要的概念之一,進(jìn)程調(diào)度又是操作系統(tǒng)核心的主要內(nèi)容。本實(shí)習(xí)要求學(xué)生獨(dú)立地用高級語言編寫和調(diào)試一個簡單的進(jìn)程調(diào)度程序。調(diào)度算法可任意選擇或自行設(shè)計(jì)。任務(wù)一采用簡單輪轉(zhuǎn)法,任務(wù)二采用優(yōu)先數(shù)
2、法等。本課題可以加深對進(jìn)程調(diào)度和各種調(diào)度算法的理解。2、 要求(1) 設(shè)計(jì)一個有n個進(jìn)程并發(fā)的進(jìn)程調(diào)度程序。每個進(jìn)程由一個進(jìn)程控制塊(PCB)表示。進(jìn)程控制塊一般應(yīng)該包含下述信息:進(jìn)程名、進(jìn)程優(yōu)先數(shù)、進(jìn)程需要運(yùn)行的時間、占用CPU的時間以及進(jìn)程的狀態(tài)等,且可按調(diào)度算法的不同而增刪。(2) 調(diào)度程序應(yīng)包含2種不同的調(diào)度算法,運(yùn)行時可任意選一種,以利于各種算法的分析比較。(3) 算法應(yīng)能顯示或打印各個進(jìn)程的PID、狀態(tài)(運(yùn)行狀態(tài)R、等待狀態(tài)W等)和參數(shù)(已運(yùn)行時間等)的變化情況,便于觀察諸進(jìn)程的調(diào)度過程進(jìn)程是操作系統(tǒng)最重要的概念之一,進(jìn)程調(diào)度又是操作系統(tǒng)核心的主要內(nèi)容。本實(shí)習(xí)要求學(xué)生獨(dú)立地用高級語
3、言編寫和調(diào)試一個簡單的進(jìn)程調(diào)度程序。調(diào)度算法可任意選擇或自行設(shè)計(jì)。任務(wù)一采用簡單輪轉(zhuǎn)法,任務(wù)二采用優(yōu)先數(shù)法等。本課題可以加深對進(jìn)程調(diào)度和各種調(diào)度算法的理解。二、 簡述課程設(shè)計(jì)內(nèi)容、主要功能和實(shí)現(xiàn)環(huán)境1. 課程設(shè)計(jì)內(nèi)容 進(jìn)程調(diào)度是處理機(jī)管理的核心內(nèi)容。本實(shí)驗(yàn)要求用C語言編寫和調(diào)試一個簡單的進(jìn)程調(diào)度程序。選用優(yōu)先數(shù)法或簡單輪轉(zhuǎn)法對五個進(jìn)程進(jìn)行調(diào)度。每個進(jìn)程處于運(yùn)行R(run)、就緒W(wait)和完成F(finish)三種狀態(tài)之一,并假設(shè)起始狀態(tài)都是就緒狀態(tài)W。為了便于處理,程序進(jìn)程的運(yùn)行時間以時間片為單位計(jì)算。各進(jìn)程的優(yōu)先數(shù)或輪轉(zhuǎn)時間片數(shù)、以及進(jìn)程需要運(yùn)行的時間片數(shù),均由偽隨機(jī)數(shù)發(fā)生器產(chǎn)生。通過
4、本實(shí)驗(yàn)可以加深理解有關(guān)進(jìn)程控制塊、進(jìn)程隊(duì)列的概念,并體會和了解優(yōu)先數(shù)和時間片輪轉(zhuǎn)調(diào)度算法的具體實(shí)施辦法。2. 主要功能本程序可選用優(yōu)先數(shù)法或簡單輪轉(zhuǎn)法對五個進(jìn)程進(jìn)行調(diào)度。每個進(jìn)程處于運(yùn)行R(run)、就緒W(wait)和完成F(finish)三種狀態(tài)之一,并假設(shè)起始狀態(tài)都是就緒狀態(tài)W。為了便于處理,程序進(jìn)程的運(yùn)行時間以時間片為單位計(jì)算。3. 實(shí)現(xiàn)環(huán)境本次課程設(shè)計(jì)結(jié)合算法的特點(diǎn),采用Windows操作系統(tǒng)平臺。開發(fā)工具為Microsoft Visual C+6.0。三、 任務(wù)的分析、設(shè)計(jì)、實(shí)現(xiàn)和討論1、 任務(wù)的分析本程序可選用優(yōu)先數(shù)法或簡單輪轉(zhuǎn)法對五個進(jìn)程進(jìn)行調(diào)度。每個進(jìn)程處于運(yùn)行R(run)、
5、就緒W(wait)和完成F(finish)三種狀態(tài)之一,并假設(shè)起始狀態(tài)都是就緒狀態(tài)W。為了便于處理,程序進(jìn)程的運(yùn)行時間以時間片為單位計(jì)算。各進(jìn)程的優(yōu)先數(shù)或輪轉(zhuǎn)時間片數(shù)、以及進(jìn)程需要運(yùn)行的時間片數(shù),均由偽隨機(jī)數(shù)發(fā)生器產(chǎn)生。下面介紹優(yōu)先數(shù)法和簡單輪轉(zhuǎn)法兩種進(jìn)程調(diào)度算法:(1) 優(yōu)先數(shù)法。進(jìn)程就緒鏈按優(yōu)先數(shù)大小從高到低排列,鏈?zhǔn)走M(jìn)程首先投入運(yùn)行。每過一個時間片,運(yùn)行進(jìn)程所需運(yùn)行的時間片數(shù)減1,說明它已運(yùn)行了一個時間片,優(yōu)先數(shù)也減3,理由是該進(jìn)程如果在一個時間片中完成不了,優(yōu)先級應(yīng)該降低一級。接著比較現(xiàn)行進(jìn)程和就緒鏈鏈?zhǔn)走M(jìn)程的優(yōu)先數(shù),如果仍是現(xiàn)行進(jìn)程高或者相同,就讓現(xiàn)行進(jìn)程繼續(xù)進(jìn)行,否則,調(diào)度就緒鏈鏈
6、首進(jìn)程投入運(yùn)行。原運(yùn)行進(jìn)程再按其優(yōu)先數(shù)大小插入就緒鏈,且改變它們對應(yīng)的進(jìn)程狀態(tài),直至所有進(jìn)程都運(yùn)行完各自的時間片數(shù)。(2) 簡單輪轉(zhuǎn)法。進(jìn)程就緒鏈按各進(jìn)程進(jìn)入的先后次序排列,進(jìn)程每次占用處理機(jī)的輪轉(zhuǎn)時間按其重要程度登入進(jìn)程控制塊中的輪轉(zhuǎn)時間片數(shù)記錄項(xiàng)(相當(dāng)于優(yōu)先數(shù)法的優(yōu)先數(shù)記錄項(xiàng)位置)。每過一個時間片,運(yùn)行進(jìn)程占用處理機(jī)的時間片數(shù)加1,然后比較占用處理機(jī)的時間片數(shù)是否與該進(jìn)程的輪轉(zhuǎn)時間片數(shù)相等,若相等說明已到達(dá)輪轉(zhuǎn)時間,應(yīng)將現(xiàn)運(yùn)行進(jìn)程排到就緒鏈末尾,調(diào)度鏈?zhǔn)走M(jìn)程占用處理機(jī),且改變它們的進(jìn)程狀態(tài),直至所有進(jìn)程完成各自的時間片。進(jìn)程控制塊結(jié)構(gòu)如下:進(jìn)程ID鏈指針優(yōu)先數(shù)/輪轉(zhuǎn)時間片數(shù)占用CPU時間片
7、數(shù)進(jìn)程所需時間片數(shù)進(jìn)程狀態(tài)進(jìn)程控制塊鏈結(jié)構(gòu)如下:TAILRUN1RHEAD3W5W2W其中:RUN當(dāng)前運(yùn)行進(jìn)程指針;HEAD進(jìn)程就緒鏈鏈?zhǔn)字羔槪籘AID進(jìn)程就緒鏈鏈尾指針。2、 任務(wù)的設(shè)計(jì)與實(shí)現(xiàn)算法流程圖:3、 操作過程和結(jié)果分析優(yōu)先數(shù)調(diào)度算法測試數(shù)據(jù):優(yōu)先數(shù)調(diào)度算法程序運(yùn)行結(jié)果截圖:圖1.1 結(jié)果截圖圖1.2 結(jié)果截圖簡單輪轉(zhuǎn)調(diào)度算法測試數(shù)據(jù):簡單輪轉(zhuǎn)調(diào)度算法程序運(yùn)行結(jié)果截圖:圖2.1 結(jié)果截圖圖2.2 結(jié)果截圖圖2.3 結(jié)果截圖4、 思考題的解答和討論通過以上的調(diào)度算法測試數(shù)據(jù),得出以下不同算法的不同調(diào)度性能結(jié)果: 算法比較項(xiàng)(時間輪轉(zhuǎn)法)RR(最高優(yōu)先數(shù))HRP調(diào)度方式搶占式(按時間片)
8、非搶占式響應(yīng)時間對于短進(jìn)程提供良好的響應(yīng)時間提供良好的響應(yīng)時間開銷低可能高對待進(jìn)程的作法公平對待良好的均衡(進(jìn)程)四、 操作系統(tǒng)課程設(shè)計(jì)小結(jié)當(dāng)我在回首這一個星期的時候,不因虛度光陰而悔恨,也不因碌碌無為而羞恥。我想,這可能是我一學(xué)期中最豐富而有意義的一個星期了。從大一開始我的理論知識就比實(shí)踐知識好的多,每門課都如此,實(shí)訓(xùn)是我最頭疼的一件事。課本上記得很牢的東西到了實(shí)際操作的時候感覺都用不上,做個實(shí)驗(yàn)就手忙腳亂的。所以我感覺,這個星期的課設(shè)不僅學(xué)到了在理論課上學(xué)不到的知識,更是讓我對自己的實(shí)踐操作有了信心。本次課程設(shè)計(jì)的題目之一是進(jìn)程調(diào)度優(yōu)先數(shù)法與簡單輪轉(zhuǎn)法。在多任務(wù)系統(tǒng)中,進(jìn)程調(diào)度是CPU管理
9、的一項(xiàng)核心工作。根據(jù)調(diào)度模式的不同,多任務(wù)系統(tǒng)有兩種類型,即非搶占式和搶占式。其中,優(yōu)先數(shù)法是非搶占式調(diào)度策略,而簡單輪轉(zhuǎn)法是搶占式調(diào)度策略。進(jìn)程調(diào)度算法是系統(tǒng)效率的關(guān)鍵,它確定了系統(tǒng)對資源,特別是對CPU資源的分配策略,因而直接決定著系統(tǒng)最本質(zhì)的性能指標(biāo),如相應(yīng)速度和吞吐量等。常用的調(diào)度算法有:先進(jìn)先出法,短進(jìn)程優(yōu)先法,時間片輪轉(zhuǎn)法(時間片輪轉(zhuǎn)法還分為可變時間片輪轉(zhuǎn)法和簡單循環(huán)輪轉(zhuǎn)法),優(yōu)先級調(diào)度法。簡單循環(huán)輪轉(zhuǎn)法中的時間片q是一個十分重要的因素,它的計(jì)算公式為q=t/n。q的選擇對進(jìn)程調(diào)度有很大的影響。q取的太大,輪轉(zhuǎn)法就會退化成先進(jìn)先出算法;而取的太小,則會導(dǎo)致系統(tǒng)開銷增加,將時間浪費(fèi)在
10、進(jìn)程切換上。所以q必須取值適中,使就緒隊(duì)列中的所有進(jìn)程都能得到同樣的服務(wù)。但我們這次的實(shí)驗(yàn)中暫時還沒有考慮到時間片q對算法的影響,只是測試了這個調(diào)度策略的算法。這次我們的實(shí)驗(yàn)測試并比較了簡單輪轉(zhuǎn)法和優(yōu)先數(shù)法這兩種調(diào)度策略的性能。不同的算法有它自己不同的長處,簡單輪轉(zhuǎn)法雖然能夠使每個進(jìn)程可以以相等的速度向前進(jìn)展,但對于緊急進(jìn)程的處理就顯然不及優(yōu)先數(shù)法。可是優(yōu)先數(shù)法的開銷較高,而且可能對于較短而且優(yōu)先級低的進(jìn)程會花較長的時間等待。不過它還是具有良好的均衡性。實(shí)際應(yīng)用中,經(jīng)常是多種策略結(jié)合使用。如時間片輪轉(zhuǎn)法中也可以適當(dāng)考慮優(yōu)先級因素,對于緊急的進(jìn)程可以分配一個長一點(diǎn)的時間片,或連續(xù)運(yùn)行多個時間片等
11、。這樣取長補(bǔ)短,合理利用各種不同算法的優(yōu)勢,讓CPU的運(yùn)行效率大大提高。人們總是在尋找更好的解決方案,讓算法的性能和開銷得到一個相對較好的平衡。我在尋找這樣的一個解決方案時,同學(xué)對我說雖然老師沒有在課上講過這個策略,但其實(shí)書上有關(guān)于更好的調(diào)度策略。也就是多級反饋隊(duì)列調(diào)度。這種算法可以先用較小的時間片處理完那些用時較短的進(jìn)程,而給那些用時較長的進(jìn)程分配較大的時間片,以免較長的進(jìn)程頻繁被中斷而影響處理機(jī)的效率。這也就是上面所提到的“多種策略結(jié)合使用,如時間片輪轉(zhuǎn)法中也可以適當(dāng)考慮優(yōu)先級因素”。 溫故而知新,可以為師矣。這次編程中所用到的C語言正是我們大一就學(xué)過的計(jì)算機(jī)語言。在平時的學(xué)習(xí)中和實(shí)訓(xùn)中我
12、們總能用到它。這樣反復(fù)的運(yùn)用和考核,讓我對C語言的認(rèn)識更進(jìn)了一步。路漫漫其修遠(yuǎn)兮,吾將上下而求索。我們對操作系統(tǒng)的學(xué)習(xí)還有很長的路要走,死鎖只是其中的一小部分。重要的是,我在實(shí)訓(xùn)的這種里學(xué)到了這樣的一種精神,一種知難而上,相信努力和付出能夠帶來好的結(jié)果的精神。這種精神比刻板的知識點(diǎn)更加重要,能夠指引我走向更寬闊的明天。五、 附錄#include "stdio.h"#include "stdlib.h"#include "string.h"typedef struct nodechar name10; /*進(jìn)程標(biāo)識符*/int prio
13、; /*進(jìn)程優(yōu)先數(shù)*/int round; /*進(jìn)程時間輪轉(zhuǎn)時間片*/int cputime; /*進(jìn)程占用CPU時間*/int needtime; /*進(jìn)程到完成還要的時間*/int count; /*計(jì)數(shù)器*/char state; /*進(jìn)程的狀態(tài)*/struct node *next; /*鏈指針*/PCB;PCB *finish,*ready=NULL,*tail,*run,*pfcfs,*pfcfs1; /*隊(duì)列指針*/int N; /*進(jìn)程數(shù)*/*將就緒隊(duì)列中的第一個進(jìn)程投入運(yùn)行*/void firstin()run=ready; /*就緒隊(duì)列頭指針賦值給運(yùn)行頭指針*/run-&g
14、t;state='R' /*進(jìn)程狀態(tài)變?yōu)檫\(yùn)行態(tài)*/ready=ready->next; /*就緒對列頭指針后移到下一進(jìn)程*/*標(biāo)題輸出函數(shù)*/void prt1(char a)if(toupper(a)='P') /*優(yōu)先數(shù)法*/printf(" name cputime needtime priority staten");else if(toupper(a)='R')printf(" name cputime needtime count round staten");/*進(jìn)程PCB輸出*/voi
15、d prt2(char a,PCB *q)if(toupper(a)='P') /*優(yōu)先數(shù)法的輸出*/printf("%-10s%-10d%-10d%-10d%cn",q->name,q->cputime,q->needtime,q->prio,q->state);else if(toupper(a)='R')/*輪轉(zhuǎn)法的輸出*/printf("%-10s%-10d%-10d%-10d%-10d%-cn",q->name,q->cputime,q->needtime,q-&g
16、t;count,q->round,q->state);/*輸出函數(shù)*/void prt(char algo)PCB *p;prt1(algo); /*輸出標(biāo)題*/if(run!=NULL) /*如果運(yùn)行指針不空*/prt2(algo,run); /*輸出當(dāng)前正在運(yùn)行的PCB*/p=ready; /*輸出就緒隊(duì)列PCB*/while(p!=NULL)prt2(algo,p);p=p->next;p=finish; /*輸出完成隊(duì)列的PCB*/while(p!=NULL)prt2(algo,p);p=p->next;getchar(); /*壓任意鍵繼續(xù)*/*優(yōu)先數(shù)的插入算
17、法*/void insert1(PCB *q)PCB *p1,*s,*r;int b;s=q; /*待插入的PCB指針*/p1=ready; /*就緒隊(duì)列頭指針*/r=p1; /*r做p1的前驅(qū)指針*/b=1;while(p1!=NULL)&&b) /*根據(jù)優(yōu)先數(shù)確定插入位置*/if(p1->prio>=s->prio)r=p1;p1=p1->next;elseb=0;if(r!=p1) /*如果條件成立說明插入在r與p1之間*/r->next=s;s->next=p1;elses->next=p1; /*否則插入在就緒隊(duì)列的頭*/re
18、ady=s;/*輪轉(zhuǎn)法插入函數(shù)*/void insert2(PCB *p2)tail->next=p2; /*將新的PCB插入在當(dāng)前就緒隊(duì)列的尾*/tail=p2;p2->next=NULL;void insert3()/*先來先服務(wù)*/if (ready=NULL) ready=pfcfs;ready->next=NULL;pfcfs1=pfcfs;elsepfcfs1->next=pfcfs;pfcfs1=pfcfs1->next;/*優(yōu)先數(shù)創(chuàng)建初始PCB信息*/void create1(char alg)PCB *p;int i,time;char na10
19、;ready=NULL; /*就緒隊(duì)列頭指針*/finish=NULL; /*完成隊(duì)列頭指針*/run=NULL; /*運(yùn)行隊(duì)列指針*/for(i=1;i<=N;i+)p=(struct node*)malloc(sizeof(PCB);printf("請輸入進(jìn)程名稱%dn",i);scanf("%s",na);printf("請輸入進(jìn)程運(yùn)行時間n");scanf("%d",&time);strcpy(p->name,na);p->cputime=0;p->needtime=time
20、;p->state='w'p->prio=50-time;if(ready!=NULL) /*就緒隊(duì)列不空調(diào)用插入函數(shù)插入*/insert1(p);elsep->next=ready; /*創(chuàng)建就緒隊(duì)列的第一個PCB*/ready=p;printf(" 最高優(yōu)先級進(jìn)程調(diào)度模擬:n");printf("*n");prt(alg); /*輸出進(jìn)程PCB信息*/printf("*n");run=ready; /*將就緒隊(duì)列的第一個進(jìn)程投入運(yùn)行*/ready=ready->next;run->st
21、ate='R'/*輪轉(zhuǎn)法創(chuàng)建進(jìn)程PCB*/void create2(char alg)PCB *p;int i,time;char na10;ready=NULL;finish=NULL;run=NULL;for(i=1;i<=N;i+)p=(struct node *)malloc(sizeof(PCB);printf("請輸入進(jìn)程名稱%dn",i);scanf("%s",na);printf("請輸入進(jìn)程運(yùn)行時間n");scanf("%d",&time);strcpy(p->
22、name,na);p->cputime=0;p->needtime=time;p->count=0; /*計(jì)數(shù)器*/p->state='w'p->round=2; /*時間片*/if(ready!=NULL)insert2(p);elsep->next=ready;ready=p;tail=p;printf(" 時間輪轉(zhuǎn)法進(jìn)程調(diào)度模擬n");printf("*n");prt(alg); /*輸出進(jìn)程PCB信息*/printf("*n");run=ready; /*將就緒隊(duì)列的第一個進(jìn)
23、程投入運(yùn)行*/ready=ready->next;run->state='R'/*優(yōu)先數(shù)調(diào)度算法*/void priority(char alg)while(run!=NULL) /*當(dāng)運(yùn)行隊(duì)列不空時,有進(jìn)程正在運(yùn)行*/run->cputime=run->cputime+1;run->needtime=run->needtime-1;run->prio=run->prio-3; /*每運(yùn)行一次優(yōu)先數(shù)降低3個單位*/if(run->needtime=0) /*如所需時間為0將其插入完成隊(duì)列*/run->next=fini
24、sh;finish=run;run->state='F' /*置狀態(tài)為完成態(tài)*/run=NULL; /*運(yùn)行隊(duì)列頭指針為空*/if(ready!=NULL) /*如就緒隊(duì)列不空*/firstin(); /*將就緒對列的第一個進(jìn)程投入運(yùn)行*/else /*沒有運(yùn)行完同時優(yōu)先數(shù)不是最大,則將其變?yōu)榫途w態(tài)插入到就緒列*/if(ready!=NULL)&&(run->prio<ready->prio)run->state='W'insert1(run);firstin(); /*將就緒隊(duì)列的第一個進(jìn)程投入運(yùn)行*/prt(al
25、g); /*輸出進(jìn)程PCB信息*/*時間片輪轉(zhuǎn)法*/void roundrun(char alg)while(run!=NULL)run->cputime=run->cputime+1;run->needtime=run->needtime-1;run->count=run->count+1;if(run->needtime=0)/*運(yùn)行完將其變?yōu)橥瓿蓱B(tài),插入完成隊(duì)列*/run->next=finish;finish=run;run->state='F'run=NULL;if(ready!=NULL)firstin(); /*就緒對列不空,將第一個進(jìn)程投入運(yùn)行*/elseif(run->count=run->round) /*如果時間片到*/run->count=0; /*計(jì)數(shù)器置0*/if(ready!=NULL) /*如就緒隊(duì)列不空*/run->state='W' /*將進(jìn)程插入到就緒隊(duì)列中等待輪轉(zhuǎn)*/insert2(run);firstin(); /
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度互聯(lián)網(wǎng)企業(yè)派遣員工網(wǎng)絡(luò)安全合同3篇
- 2025年全新公對公借款合同模板下載及服務(wù)支持10篇
- 二零二五年度體育館租賃合同附體育賽事推廣及贊助招商服務(wù)
- 2025版智能工廠生產(chǎn)線改造施工合同4篇
- 二零二五年度新能源產(chǎn)品銷售代理合作合同范本3篇
- Bobath技術(shù)閆秀麗講解
- 2025年度個人藝術(shù)品租賃借款合同范本及租賃期限約定
- 2025年室內(nèi)墻面批白工程售后服務(wù)合同
- 二零二五年度戶外廣告照明外接電源供應(yīng)合同
- 2025年度個人房屋抵押貸款擔(dān)保及養(yǎng)老保障服務(wù)合同
- 道路瀝青工程施工方案
- 2025年度正規(guī)離婚協(xié)議書電子版下載服務(wù)
- 《田口方法的導(dǎo)入》課件
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場營銷策略考核試卷
- 電力電纜工程施工組織設(shè)計(jì)
- 醫(yī)生給病人免責(zé)協(xié)議書(2篇)
- 票據(jù)業(yè)務(wù)居間合同模板
- 高中物理選擇性必修2教材習(xí)題答案
- 應(yīng)急預(yù)案評分標(biāo)準(zhǔn)表
- “網(wǎng)絡(luò)安全課件:高校教師網(wǎng)絡(luò)安全與信息化素養(yǎng)培訓(xùn)”
- 鋰離子電池健康評估及剩余使用壽命預(yù)測方法研究
評論
0/150
提交評論