




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、彳南丈禽操作系統(tǒng)實(shí)驗(yàn)報告姓名:福星專業(yè)班級: 軟件1006班201L1122進(jìn)程調(diào)度與存管理一、實(shí)驗(yàn)?zāi)康脑诓捎枚嗟莱绦蛟O(shè)訃的系統(tǒng)中,往往有若干個進(jìn)程同時處于就緒狀態(tài)。當(dāng)就續(xù)進(jìn)程個 數(shù)大于處理器數(shù)時,就必須依照某種策路來決左哪些進(jìn)程優(yōu)先占用處理器。實(shí)驗(yàn)?zāi)M實(shí)現(xiàn)處 理機(jī)調(diào)度,以加深了解處理機(jī)調(diào)度的工作,并體會優(yōu)先級和時間片輪轉(zhuǎn)調(diào)度算法的具體實(shí)施 方法。幫助了解在不同的存儲管理方式下,應(yīng)怎樣實(shí)現(xiàn)主存空間的分配和回收。二、實(shí)驗(yàn)要求1、可隨機(jī)輸入若干進(jìn)程,并按優(yōu)先權(quán)排序;2、從就緒隊(duì)首選進(jìn)程運(yùn)行:優(yōu)先權(quán)-1/要求運(yùn)行時間-1要求運(yùn)行時間=0時,撤銷該進(jìn)程3、重新排序,進(jìn)行下輪調(diào)度。4、可隨時增加進(jìn)程;5
2、、規(guī)泄道數(shù),設(shè)置后備隊(duì)列和掛起狀態(tài)。若存中進(jìn)程少于規(guī)泄道數(shù),可自動從后備隊(duì) 列調(diào)度一作業(yè)進(jìn)入。被掛起進(jìn)程入掛起隊(duì)列,設(shè)巻解掛功能用于將指立掛起進(jìn)程解 掛入就緒隊(duì)列。6、每次調(diào)度后,顯示各進(jìn)程狀態(tài)。7、自行假設(shè)主存空間大小,預(yù)設(shè)操作系統(tǒng)所占大小并構(gòu)造未分分區(qū)表;表目容:起址、長度、狀態(tài)(未分/空表目)8、結(jié)合以上實(shí)驗(yàn),PCB增加為:PID,要求運(yùn)行時間,優(yōu)先權(quán),狀態(tài),所需主存大小,主存起始位置,PCB指針9、采用最先適應(yīng)算法分配主存空間:10、進(jìn)程完成后,回收主存,并與相鄰空閑分區(qū)合并。11、采用圖形界而;三、實(shí)驗(yàn)容選擇一個調(diào)度算法,實(shí)現(xiàn)處理機(jī)調(diào)度。1、設(shè)訃一個按優(yōu)先權(quán)調(diào)度算法實(shí)現(xiàn)處理機(jī)調(diào)度的程
3、序:2、設(shè)汁按時間片輪轉(zhuǎn)實(shí)現(xiàn)處理機(jī)調(diào)度的程序。3、主存儲器空間的分配和回收。在可變分區(qū)管理方式下,采用最先適應(yīng)算法實(shí)現(xiàn)主存 空間的分配和回收。四、實(shí)驗(yàn)原理該模擬系統(tǒng)采用java語言實(shí)現(xiàn),要實(shí)現(xiàn)的功能有新建進(jìn)程、進(jìn)程調(diào)度、掛起進(jìn)程、解 掛進(jìn)程、刪除進(jìn)程,道數(shù)和時間片大小可以由用戶自己調(diào)整,有兩種調(diào)度策略:按優(yōu)先權(quán)調(diào) 度和按時間片輪轉(zhuǎn)調(diào)度。每個進(jìn)程可能有5種狀態(tài):新建(new)、就緒(ready)、運(yùn)行(running)、 阻塞(waiting).掛起(suspend).每個狀態(tài)都有一個隊(duì)列用來存放處于該狀態(tài)的進(jìn)程,不同的 調(diào)度策略采用不同的隊(duì)列實(shí)現(xiàn)。當(dāng)創(chuàng)建進(jìn)程時,如果存中的進(jìn)程數(shù)還沒達(dá)到規(guī)定道數(shù)
4、,則將 新建進(jìn)程插入就緒隊(duì)列,如果存中進(jìn)程數(shù)已經(jīng)達(dá)到規(guī)左道數(shù),則插到后備隊(duì)列,后備隊(duì)列中 的進(jìn)程的狀態(tài)為new。CPU每次調(diào)度時都從就緒隊(duì)列中取進(jìn)程,任進(jìn)程執(zhí)行過程中如果下 一個操作時IO操作,則將進(jìn)程插入到waiting隊(duì)列。在系統(tǒng)運(yùn)行過程中可以執(zhí)行進(jìn)程掛起 操作,但執(zhí)行的掛起操作時系統(tǒng)自動暫停運(yùn)行,在彈出窗口選擇要掛起的進(jìn)程后,將選中的 進(jìn)程從原來的隊(duì)列中刪除并插入到掛起隊(duì)列。進(jìn)行解掛操作時將選中的進(jìn)程從掛起隊(duì)列中刪 除并插入該進(jìn)程原來所處的隊(duì)列。按優(yōu)先級調(diào)度:當(dāng)選擇按優(yōu)先權(quán)調(diào)度時,所有隊(duì)列都采用優(yōu)先隊(duì)列,優(yōu)先隊(duì)列采用一個有序鏈表實(shí)現(xiàn), 進(jìn)程的優(yōu)先權(quán)值越大代表優(yōu)先級越高,優(yōu)先隊(duì)列中的進(jìn)程按
5、優(yōu)先權(quán)從大到小排列,當(dāng)新進(jìn)程 插入時根據(jù)該進(jìn)程的優(yōu)先權(quán)插入到隊(duì)列中的合適位置,插入后保持隊(duì)列按優(yōu)先權(quán)從大到小排 列,如果新進(jìn)程與隊(duì)列中某個進(jìn)程優(yōu)先權(quán)值相等,則該新進(jìn)程插到那個進(jìn)程后而,以遵循先 來先服務(wù)的規(guī)則。當(dāng)要從隊(duì)列中取出進(jìn)程時總是取隊(duì)列中第一個進(jìn)程,因?yàn)樵撨M(jìn)程的優(yōu)先級 最高。按時間片輪轉(zhuǎn)調(diào)度:當(dāng)選擇按時間片輪轉(zhuǎn)調(diào)度時,所有隊(duì)列都采用先進(jìn)先出隊(duì)列,先進(jìn)先出隊(duì)列采用一個 普通單向鏈表實(shí)現(xiàn),當(dāng)新進(jìn)程插入時插入到隊(duì)列的末尾,當(dāng)要取進(jìn)程時取隊(duì)首進(jìn)程,這樣就 實(shí)現(xiàn)了先進(jìn)先出。存管理該實(shí)驗(yàn)基于實(shí)驗(yàn)一完成,核心是存的分配和回收,在實(shí)驗(yàn)一的基礎(chǔ)上增加存管理部分, 在新建進(jìn)程的時候增加一個輸入存大小的輸入框
6、,在進(jìn)程進(jìn)入存時要分配存,在進(jìn)程銷毀時 要回收存,如果進(jìn)入存時存不足,則將進(jìn)程插入到后備隊(duì)列等待下次調(diào)度。系統(tǒng)維護(hù)一個存 表,每個表項(xiàng)代表一個空間,每個空間保存了該空間的起始地址和空間大小以及空間使用狀 態(tài)。初始時只有一個空間,當(dāng)CPU啟動時要分配存,存分配采用最先適應(yīng)算法?;厥沾鏁r 如果有相鄰空閑空間,則要進(jìn)行空閑空間合并。五、源代碼及截圖:l.divDTO:public class divDTOprivate int divBase;private int length;private int divFlag;public divDTO(int divBaseint length,int
7、divFlag)this.divBase = divBase;this.divFlag = divFlag;this1ength = length;public divDTO()public void setDivBase(int base)this.divBase = base;public int getDivBase()return this.divBase;public void setLength(int length)this1ength = length;public int getLength()return this1ength;public void setDivFlag(
8、int flag)this.divFlag = flag;public int getDivFalg()return this.divFlag;2.PcbOTO: public class PcbDTOstatic final intRunning = 1;static final int Ready = 2;staticfinal int siting = 3;private String processName;privateintrunTime;privateintprority;privateintprocessstate;privateintbase;privateintlimit;
9、privateintpcbFlag;limit)public PcbDTO(String name, int time,int pro,int cessName = name;thisunTime = time;rity = pro; cessState = 0; thislimit = limit;this.base = base;public PcbDTO()(this.pcbflag = 0;public void setProcessName(String name)this.pFOcessName = name;public
10、String getProcessName()return processName;public void setRunTime(int time)thisunTime = time;public int getRunTime()return this.runTime;public void setPrority(int prority)thisprority = prority;public int getPrority()return thisprority;public void setProcessState(int state)thisprocessstate = state;pub
11、lic String getProcessState()String s = new String。;if(cessstate = 1)s = Mrunning”;else if(cessstate = 2)s = MreadyM;else if(cessstate = 3)s = “waiting”;return s;public int getBase()return thisbase;public void setBase(int base)this.base = base;public void setLimit(int limit)th
12、islimit = limit;public int getLimit()return thislimit;3 import javax.swing*;import java.util*;import javaawt球;import j ava awt event *;import javax.swing.event*; public class MainFname private JList readyList;private 3List v/aitingList;private3List jobList;private3Button susButton;private 3Buttonrel
13、axButton;private 3ButtonstartButton;privateJButton nev/Button;privateDLabel nameLabel;privateDLabel prorityLabel;privateDLabel timeLabel;privateJLabel jobLabel;private DLabelreadyLabel;privateDLabel waitingLabel;private DLabelnunningLabel;privateDLabel spaceLabel;private DLabel divLabel; private JLa
14、bel allocLabel;private DTablereadyTable;private DTablenunningTable;private DTable divTable;privateDTable allocTable;private DTextField nameText;private DTextField timeText;private DTextField spaceText;private DComboBox prorityCom;private JPanel newPanel; private DPanel waitingPanel; private DPanel r
15、eadyPanel;Vector jobVectorName;Vector jobDtoVector;Vector waitingVectonName;Vector waitingDtoVector;PcbDTO readyDtoArray;PcbDTO newDtoArray;divDTO divDtoArray;PcbDTO newSort;Object readydata;Object runningdata;Object divdata;Objectallocdata;int first; int end;int point; PcbDTO a;public MainFrame() a
16、 = new PcbDTO();first = 0;end = 0;point = 0;0Frame jf = new 3Frame(進(jìn)程調(diào)度-ws); Container c = jfgetContentPane(); c setLayout(null);/ csetBackground(Colorpink);newPanel = new 3Panel(); newPanel setLayout(null); v/aitingPanel = new JPanel(); v/aitingPa nel setLayout (n ull); / waitingPanelsetBackground(
17、Color.pink); readyPanel = new JPanel();readyPanel setLayout(null);susButton = new 3Button(掛起”); relaxButton = nev/ JButton(釋放”); startButton = nev/ JButton(開始”); newButton = new 3Button(新建進(jìn)程”);nameLabel = new 3Label(進(jìn)程名); prorityLabel = new 3Label(11 優(yōu)先級); timeLabel = new 3Label(運(yùn)行時間”); jobLabel = n
18、ew JLabel(后備隊(duì)列); readyLabel = new 3Label(就緒隊(duì)列”); v/aitingLabel = new 3Label(M等待隊(duì)列); runningLabel = new 3Label(11 運(yùn)行進(jìn)程); spaceLabel = new JLabel(需要空間”); divLabel = new 3Label(未分分區(qū)7); allocLabel = new JLabel(存分配衣”);nameText = new 3TextField(); timeText = new 3TextField(); spaceText = new 3TextField();
19、 prorityCom = new JComboBox(); prorityCom. setToolTipText (優(yōu)先級);readyDtoArray = new PcbDT06; newSort = nev/ PcbDT06;for (int i = 0; i 6; i+) nev/Sorti = new PcbDTO();newDtoArray = new PcbDTO100; jobDtoVector = new Vector(); jobVectorName = new Vector(); v/aitingDtoVecto廠=new Vector(); v/aitingVector
20、Name = new Vector(); divDtoArray = new divDTO20; for (int i = 0; i 20; i+) divDtoArrayi = new divDTO();divDtoArrayi.setDivFlag(O);divDtoArray0.setDivFlag(l); divDtoArray0.setDivBa se(20); divDtoArray0.setLength(180); readydata = new Object64;廠unningdata = nev/ Object2 3; divdata = new Object203; all
21、ocdata = new Object203;String coll進(jìn)程,時間J“優(yōu)先級S “狀態(tài);String col2 = “進(jìn)程JString col3 = 起址String col4 = 起址,時間J “優(yōu)先級; “長度“,“狀態(tài)” ;長度S 占用進(jìn)程;readyTable = new 3Table(readydata, coll);/ readyTablesetEnabled(false);runningTable = new JTable(runningdata col2);nunningTable setRowHeight(22); runningTable setEnabled
22、(false);allocTable = new 3Table(allocdata, col4); allocTable setEnabled(false);divTable = new 3Table(divdata col3);divTable setEnabled(false);divTable.setValueAt(String.valueOf(20)0? 0);divTable.setValueAt(String.valueOf(180)0? 1);divTable.setValueAt(String.valueOf(l)0 2);DScrollPane runningSP = new
23、 3ScrollPane(); DScrollPane readySP2 = new 3ScrollPane(); OScrollPane divSP = new 3ScrollPane();DScrollPane allocSP = nev/ 3ScrollPane();runningSP getViev/port () add(runningTable); readySP2 getViewport() add(readyTable);divSP.getViev/port().add(divTable); allocSP getViewport() add(allocTable);/ int
24、 prorityArray = new int10; for (int i = 0; i 2); jobSP.setSize(180, 105);jobSP.setLocation(10, 25); v/aitingLabelsetSize(100, 20); v/ait in gLabel setLocati on (10, 129); v/aitingSP. setSize(180, 105);v/aitingSP. set Location (10, 150); divLabel.setSize(100 20); divLabel setLocation(20丿 253); divSP.
25、setSize(180, 113);divSP.setLocation(10, 273); relaxButton.setSize(80 20);relaxButton.setLocation(110 388);readyPanel.setSize(260, 410); readyPanel.setLocation(190 100);readyLabelsetSizeClOO, 22);readyLabelsetLocation(IO, 2); allocLabel.setSize(100,20); allocLabelsetLocation(10, 232); startButton.set
26、Size(80, 20); startButton.setLocation(177丿 388); susButton.setSize(80, 20); susButton setLocation(95, 388); readySP2.setSize(250, 117); readySP2.setLocation(10 25); runningLabel setLocation(10? 142); runningLabel setSize(200, 20); runningSP setSize(250, 65); runningSP.setLocation(10, 167); aHocSPset
27、Size(250 130); allocSP.setLocation(10 255);c.add(newPanel);newPanel add(nameLabel); newPanel add(nameText); newPanel add(prorityLabel); newPanel add(prorityCom); newPanel add(timeText); newPanel add(timeLabel); newPanel add(newButton); newPanel add(spaceLabel); newPanel add(spaceText);c add(waitingP
28、anel);v/ait in gPa nel add( jobLabel); v/ait in gPa nel add( jobSP);v/ait in gPa nel add(waiti ngLabel); v/ait in gPa nel add(waiti ngSP); v/aiti ngPa nel add(divLabel); v/aiti ngPa nel add(divSP); v/aitingPa nel add (relaxButton);c add(readyPanel);readyPanel add(readyLabel); readyPanel add(allocLab
29、el); readyPanel add(runningLabel); readyPanel add(startButton); readyPanel add(susButton); readyPanel add(allocSP);readyPanel add(runningSP);readyPanel add(readySP2);jf.setSize(470, 550);jf setDefaultCloseOperation(J F rame.DISPOSE_ON_CLOSE);jf setLocationRelativeTo(null);jf setVisible(true);startBu
30、ttonaddActionListener(new MyActionListenen(); newButtonaddActionListenGn(new MyActionListenen();susButtonaddActionListenenCnew MyActionListener(); relaxButtonaddActionListener(new MyActionListenen();public void sus() try Thread.sleep(1000); catch (Exception ex) class MyActionListenen implements Acti
31、onListenen public void actionPerformed(ActionEvent e) int count = 0;PcbDTO test = new PcbDTO();3Button jb = (DButton) e.getSource();int max = -1;if (jb = startButton) / while(true)/ int runAllocFlag = -1;if (String) runningTable.getVaiueAt(0 0) = null| | (String) runningTable.getValueAt(0 0) = *) tr
32、y Thread sleep(0); catch (Exception ex) / System.out.println(到 3“);for (int j = first; j != end;) if (!readyDtoArrayjgetProcessState()equals( waiting1*) max = j; break;j = (j + 1) % 6;for (int j = first; j % 6 != end;) if (!readyDtoArrayjgetProcessState()equals( waiting) if(readyDtoArrayjgetPrority(
33、)readyDtoArraymax.getPrority() max = j;j = (j + 1) % 6;if (max = 0) a = readyDtoArraymax;readyDtoArraymax = readyDtoArrayfirst; readyDtoArrayfirst = a;readyTable setValueAt( readyDtoArrayfmaxgetProcessName(), max 0);readyTable setValueAt(readyDtoArraymaxgetRunTime()?max 1);readyTable setValueAt(read
34、yDtoArraymaxgetPrority()? max 2);readyTable setValueAt(readyDtoArrayfmaxgetProcessState(), max, 3);firsts0);firsts1);firsts2);firsts3);readyT able. setValueAt (: readyTable. setValueAt (: readyTable. setValueAt (: readyTable. setValueAt (:nunningTablesetValueAt(agetProcessName()丿 0, 0);nunningTables
35、etValueAt(agetRunTime() 0, 1); runningTablesetValueAt(agetPrority()? 2);readyDtoArrayffirst setRunTime(readyDtoArrayfirst .getRunTime() - 1);if (0 != readyDtoArrayfirst.getPrority() readyDtoArrayfirst setPrority(readyDtoArrayfirst.getPrority() - 1);first = (first + 1) % 6; else System.out printin(cp
36、u 等待中); else /* try Thread sleep(2000); catch(IntemuptedException* el) System.out.printIn(el); */ System.out.println(到 2);runningTablesetValueAt(, 0, 0);runningTablesetValueAt(0, 1);runningTable.setValueAt(, 0, 2);/如果運(yùn)行時間為0則撤銷進(jìn)程,否則將進(jìn)程重新添加到就緒隊(duì)列中 if (a.getRunTime() = 0) /收回存空間for (int i = 0; i = a.get
37、Base() newSortfi = newSorti + 1;point-;/設(shè)置存分配衣的容for (int i = 0; i point; i+) allocTable setValueAt(String.valueOf(newSortigetBase()0);allocTable setValueAt(String valueOf(newSorti.getLimit(), i, 1);allocTable setValueAt(nev/Sort igetProcessName(),2);allocTable.setValueAt(point. 0);allocTable.setValu
38、eAt(, point 1);allocTable.setValueAt(, point 2);/把收回的存加入到記錄未分分區(qū)的數(shù)組int memoryEnd = 0;int location = 0;int up = -1;/int down =for (int i = 0; i = 0 & down = 0) divDtoArrayup setLength(diuDtoAnnayup getLength() + a.getLimit() + divDtoArraydown .getLength();divDtoArray dov/n. setDivFlag(O);for (int i =
39、(down + 1); i = 0 & down 0) divDtoArrayup setLength(dix/DtoArnayupgetLength() + a.getLimit(); else if (up = 0) divDtoArray dov/n setLength( (divDtoArray downgetLength() + a.getLimit(); divDtoArraydown setDivBase(a getBase(); else if (up 0 & down 0) for (int i = 0; i a.getBase() | divDtoArrayfi.getDi
40、vFalg() = 0) location = i;break;for (int i = 20; i location;if (divDtoArrayfi - 1.getDivFalg() = 1) divDtoArrayisetDivBase(divDtoArrayfi - 1.getDivBase();divDtoArrayi.setDivFlag(l); divDtoArrayi setLengthCdivDtoAnrayi -1.getLength();divDtoArraylocation setDivBase(a getBase(); divDtoArraylocation set
41、DivFlag(l);divDtoArraylocation setLength(a getLimit();/設(shè)置未分分區(qū)農(nóng)的容for (int i = 0; i 20; i+) if (divDtoArrayi.getDivFalg() = 1) divTable setValueAt(StryingvalueOf(divDtoArrayfi.getDivBase()i, 0);divTable setValueAtCStningvalueOf(divDtoArrayi.get Length() i, 1);divTable setValueAt(String.valueOf(divDtoA
42、rrayfi.getDivFalg()if (!jobDtoVector.isEmpty() int nunLength = 0;PcbDTO jobToReady = (PcbDTO) jobDtoVector.elementAt(O);for (int i = 0; i =jobToReady.getLimitO) nunAllocFlag = i;break;if (runAllocFlag = 0) jobDtoVector removeEleme ntAt(0); jobVectorName TGmove(jobVectonName indexOf(jobToReady getPro
43、cessName();jobList setListData(jobVectorName); jobToReady.setProcessState(PcbDTO.Ready); jobToReady setBase(divDtoArrayrunAllocFlag.getDivBase();runLength = divDtoArrayrunAllocFlaggetLength() - jobToReadygetLimit(); if (runLength = 0) int i = nunAllocFlag;divDtoArrayi.setDivFlag(O);for (; i 0) int c
44、2 = divDtoArrayrunAllocFlaggetDivBase()+ jobToReadygetLimit();divDtoArrayrunAllocFlag setDivBase(c2); divDtoArrayrunAllocFlag setLength(廠unLength);divTable setValueAt(String.valueOf(c2), runAllocFlag 0);divTable.setValueAt(String.valueOf(runLength) nunAllocFlag 1);divTable setValueAtCStning.valueOf(
45、divDtoArrayrunAllocFlag .getDivFalg(), nunAllocFlag 2);readyDtoArrayfend = jobToReady;readyTable setValueAt(jobToReadygetProcessName() end, 0);readyTable setValueAt(jobToReadygetRunTime(),end, 1);readyTable setValueAt(jobToReadygetPrority()?end, 2);readyTable setValueAt(jobToReady.getProcessState()
46、end, 3);end = (end + 1) % 6;int runi = 0;/用于記錄當(dāng)前新生成的PcbDTO對象應(yīng)該插入到newSort中的位置for (; runi point; “uni+) if (jobToReady.getBase() runi;nev/Sorti = newSorti - 1; allocTable setValueAt(StringvalueOf(newSortigetBase()? i, 0);allocTable setValueAt(String valueOf(newSorti getLimit(), i,1); allocTable setValueAt(nev/Sort igetProcessName() 2);/插入新生成的對象newSortruni = jobToReady; allocTable setValueAt(String.valueOf(jobToReadygetBase(), runi, 0);alloc
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西培賢國際職業(yè)學(xué)院《特殊兒童發(fā)展與學(xué)習(xí)》2023-2024學(xué)年第一學(xué)期期末試卷
- 宣城職業(yè)技術(shù)學(xué)院《數(shù)據(jù)挖掘與R語言》2023-2024學(xué)年第一學(xué)期期末試卷
- 甘肅省酒泉市肅北蒙古族自治縣2024-2025學(xué)年小升初總復(fù)習(xí)數(shù)學(xué)精練含解析
- 重慶工商大學(xué)派斯學(xué)院《建筑環(huán)境熱力學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西信息職業(yè)技術(shù)學(xué)院《空中領(lǐng)航學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京林業(yè)大學(xué)《英語閱讀V》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州省黔南布依族苗族自治州福泉市2025年五年級數(shù)學(xué)第二學(xué)期期末檢測試題含答案
- 海南省樂東縣2025年三下數(shù)學(xué)期末達(dá)標(biāo)檢測模擬試題含解析
- 青海交通職業(yè)技術(shù)學(xué)院《作家作品研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 供應(yīng)商質(zhì)量管理內(nèi)容
- Proteus系統(tǒng)仿真介紹課件
- 《中學(xué)語文課程標(biāo)準(zhǔn)與教材研究》教學(xué)大綱
- 子宮內(nèi)膜癌護(hù)理查房課件
- 測繪工程產(chǎn)品價格-國測財字20023號-測量費(fèi)
- 羅氏試劑盒說明書 T3 11810456001V18
- 果汁加工工藝
- 外協(xié)加工流程圖
- 六年級上冊語文課件-非連續(xù)性文本閱讀 人教部編版 (共21張PPT)
- 構(gòu)樹種植項(xiàng)目可行性分析報告
- 大數(shù)據(jù)考試試題(部分)
- 瀝青混凝土路面施工質(zhì)量通病防治措施
評論
0/150
提交評論