版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 目錄第一章 概述11.1 需求分析11.2背景設(shè)計(jì)1第二章 概要設(shè)計(jì)2第三章 詳細(xì)設(shè)計(jì)43.1高響應(yīng)比調(diào)度算法43.2時間片輪轉(zhuǎn)法53.3短進(jìn)程優(yōu)先法7第四章 調(diào)試分析與測試結(jié)果9第五章 總結(jié)13第六章 參考文獻(xiàn)14第七章 附錄15第一章 概述1.1 需求分析進(jìn)程是操作系統(tǒng)最重要的概念之一,進(jìn)程調(diào)度是操作系統(tǒng)內(nèi)核的重要功能,本實(shí)驗(yàn)要求用C語言編寫一個進(jìn)程調(diào)度模擬程序,使用短作業(yè)優(yōu)先調(diào)度算法,高響應(yīng)比調(diào)度算法,時間片輪轉(zhuǎn)調(diào)度算法實(shí)現(xiàn)進(jìn)程調(diào)度??梢允謩幼枞c喚醒。并用MFC實(shí)現(xiàn)圖形界面。本實(shí)驗(yàn)可加深對進(jìn)程調(diào)度算法的理解。1.2背景設(shè)計(jì)在OS中,調(diào)度的實(shí)質(zhì)是一種資源分配,調(diào)度算法即指:根據(jù)系統(tǒng)的資
2、源分配策略所規(guī)定的資源分配算法。對于不同的系統(tǒng)和系統(tǒng)目標(biāo),通常采用不同的調(diào)度算法,如在批處理系統(tǒng)中,為照顧為數(shù)眾多的短作業(yè),采用短作業(yè)有限調(diào)度算法;在分時系統(tǒng)中,為保證系統(tǒng)具有合理的響應(yīng)時間,采用輪轉(zhuǎn)法進(jìn)行調(diào)度。采用算法時,則要考慮多方面因素,以便達(dá)到最佳效果。第二章 概要設(shè)計(jì)設(shè)計(jì)一個有多個進(jìn)程共行的進(jìn)程調(diào)度程序。進(jìn)程調(diào)度算法:短作業(yè)優(yōu)先調(diào)度算法,高響應(yīng)比調(diào)度算法,時間片輪轉(zhuǎn)調(diào)度算法每個進(jìn)程有一個進(jìn)程控制塊( PCB)表示。進(jìn)程控制塊可以包含如下信息:進(jìn)程名、優(yōu)先數(shù)、到達(dá)時間、服務(wù)時間、進(jìn)程狀態(tài)等等。struct progressCString Name; /進(jìn)程名稱CString Start
3、;/創(chuàng)建時間int ServiceT;/服務(wù)時間int RunningT;/消逝時間int RemainT;/剩余時間int id;/進(jìn)程標(biāo)識符CProgressCtrl* pro;/指向進(jìn)度條的指針int Rp;/進(jìn)程成為就緒進(jìn)程的時間float prio;/進(jìn)程優(yōu)先權(quán);進(jìn)程的優(yōu)先權(quán)為:響應(yīng)時間/要求服務(wù)時間。進(jìn)程的運(yùn)行時間以時間片為單位進(jìn)行計(jì)算。每個進(jìn)程的狀態(tài)可以是就緒、執(zhí)行、阻塞、完成。就緒進(jìn)程獲得 CPU后都只能運(yùn)行一個時間片。用已占用CPU時間加1來表示。當(dāng)阻塞進(jìn)程時,將當(dāng)前運(yùn)行的進(jìn)程移動到阻塞隊(duì)列,并從就緒隊(duì)列將下個進(jìn)程移動到進(jìn)程執(zhí)行區(qū)(本程序中就緒隊(duì)列中第一個即為正在執(zhí)行進(jìn)程,后
4、文不再贅述)。當(dāng)添加或喚醒進(jìn)程時,將添加標(biāo)記m_bchange置為真,并將進(jìn)程添加進(jìn)就緒隊(duì)列。在運(yùn)行一個時間片中,檢查添加標(biāo)記m_bchange是否為真,若為真,則判斷單選框選中的算法,并按各自算法進(jìn)行模擬調(diào)度,詳見詳細(xì)設(shè)計(jì)。當(dāng)執(zhí)行區(qū)進(jìn)程完成時,將之移動到已完成的隊(duì)列,并判斷就緒隊(duì)列中是否有進(jìn)程:若有,則將下一個進(jìn)程添加進(jìn)就緒隊(duì)列;若無,則彈出提示窗口。重復(fù)以上流程,直到用戶退出。第三章 詳細(xì)設(shè)計(jì)3.1高響應(yīng)比調(diào)度算法該算法在添加標(biāo)記m_bchange為真且單選框選中“高響應(yīng)比優(yōu)先”時調(diào)用,分別通過每個進(jìn)程前的隊(duì)列中進(jìn)程RemainT之和除以該進(jìn)程的ServiceT,求出優(yōu)先級prio,并根據(jù)
5、prio重新為就緒隊(duì)列排序。最后將m_bchange置為假。if ( m_bchange )if(iRadioButton=IDC_RADIO1)/計(jì)算優(yōu)先級for (int i=1;iProNum;i+)float sum=0;for (int j=0;ji;j+)sum+=Proj.RemainT;Proi.prio=sum/Proi.ServiceT;/end for/根據(jù)優(yōu)先級排序progress Tem;for ( i=0;iProNum-1;i+)for (int j=0;jProNum-1-i;j+)if (Proj.prioProj+1.prio)Tem=Proj+1;Proj
6、+1=Proj;Proj=Tem;m_bchange=false;/end 排序3.2時間片輪轉(zhuǎn)法該算法在添加標(biāo)記m_bchange為真且單選框選中“輪轉(zhuǎn)調(diào)度”時調(diào)用,直接將就緒隊(duì)列相鄰2個進(jìn)程兩兩互換,最終達(dá)到將正在執(zhí)行進(jìn)程放置于就緒隊(duì)列后,并將下一個將要執(zhí)行的進(jìn)程開始執(zhí)行,輸出結(jié)果,并將m_bchange置為真,以便繼續(xù)輪轉(zhuǎn)。if(iRadioButton=IDC_RADIO2)progress Tem;for ( int i=0;iSetRange(0,Pro0.ServiceT);Pro0.RemainT-;Pro0.RunningT+;m_Zhixing.Format(標(biāo)識符:%d
7、進(jìn)程名稱:%s 創(chuàng)建時間:%s 需要時間:%d秒 剩余時間:%d秒 已運(yùn)行時間:%d秒 優(yōu)先權(quán):%frn, Pro0.id,Pro0.Name,Pro0.Start,Pro0.ServiceT,Pro0.RemainT,Pro0.RunningT,Pro0.prio);GetDlgItem(IDC_EDIT_Zhixing)-SetWindowText(m_Zhixing);P-SetPos(Pro0.RunningT);/end 排序3.3短進(jìn)程優(yōu)先法該算法在添加標(biāo)記m_bchange為真且單選框選中“短進(jìn)程優(yōu)先”時調(diào)用,按照進(jìn)程RemainT來重新排列隊(duì)列順序。最后將m_bc
8、hange置為假。if(iRadioButton=IDC_RADIO3)progress Tem;for (int i=0;iProNum-1;i+)for (int j=0;jProj+1.RemainT)Tem=Proj+1;Proj+1=Proj;Proj=Tem;rm_bchange=false;/end 排序第四章 調(diào)試分析與測試結(jié)果 高響應(yīng)比優(yōu)先算法 輪轉(zhuǎn)調(diào)度算法 短進(jìn)程優(yōu)先算法 進(jìn)程的阻塞與喚醒 差錯控制第五章 總結(jié)通過此次課程設(shè)計(jì),更深入的理解了各個進(jìn)程調(diào)度算法,及實(shí)現(xiàn)過程。熟悉了MFC環(huán)境的使用。增進(jìn)了VC編程的水平。對進(jìn)程或作業(yè)先來先服務(wù)、短作業(yè)優(yōu)先算法,最高響應(yīng)比算法,高
9、優(yōu)先權(quán)、按時間片輪轉(zhuǎn)調(diào)度算法以及進(jìn)程調(diào)度的概念和算法,有了更深入的認(rèn)識!初步理解了操作系統(tǒng)對于作業(yè)處理的基本思想!并加深了我對于操作系統(tǒng)理論的理解。在此過程中,遇到了困難,能及時請教同學(xué),查詢相關(guān)資料,及時解決了問題,但仍有不足之處,將會在今后學(xué)習(xí)中更加努力。第六章 參考文獻(xiàn)計(jì)算機(jī)操作系統(tǒng)(第三版)湯子瀛 西安電子科技大學(xué)出版社 操作系統(tǒng)教程方敏編 西安電子科技大學(xué)出版社 操作系統(tǒng)原理與實(shí)踐教程周湘貞、曾憲權(quán) 清華出版社 數(shù)據(jù)結(jié)構(gòu)(C語言版)嚴(yán)蔚敏 清華大學(xué)出版社深入淺出MFC(第2版)侯俊杰 華中科技大學(xué)出版社第七章 附錄pcb1.cpp:#include stdafx.h#include
10、pcb1.h#include pcb1Dlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifBEGIN_MESSAGE_MAP(CPcb1App, CWinApp)ON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()CPcb1App:CPcb1App()CPcb1App theApp;BOOL CPcb1App:InitInstance()AfxEnableControlContainer();#ifdef _AF
11、XDLLEnable3dControls();#elseEnable3dControlsStatic();#endifCPcb1Dlg dlg;m_pMainWnd = &dlg;int nResponse = dlg.DoModal();if (nResponse = IDOK)else if (nResponse = IDCANCEL)return FALSE;Pcb1.rc- IDD_PCB1_DIALOG:pcb1Dlg.cpp:#include stdafx.h#include pcb1.h#include pcb1Dlg.h#ifdef _DEBUG#define new DEBU
12、G_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifprogress Pro100; /就緒隊(duì)列progress Zusai100; /阻塞隊(duì)列static int ProNum=0; /用來表示第n就緒進(jìn)程static int ZusaiNum=0; /用來表示第n阻塞進(jìn)程static int id=0;int m_bchange;class CAboutDlg : public CDialogpublic:CAboutDlg();enum IDD = IDD_ABOUTBOX ;protected:virtual void D
13、oDataExchange(CDataExchange* pDX); protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()CPcb1Dlg:CPcb1Dlg(CWnd* pParent ): CDialog(CPcb1Dlg:IDD,
14、 pParent)m_Jincheng = _T();m_Jiuxu = _T();m_Wancheng = _T();m_Time = _T();m_Zhixing = _T();m_Zusai = _T();m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CPcb1Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Control(pDX, IDC_PROGRESS1, m_progress);DDX_Text(pDX, IDC_EDIT_Jinch
15、eng, m_Jincheng);DDX_Text(pDX, IDC_EDIT_Jiuxu, m_Jiuxu);DDX_Text(pDX, IDC_EDIT_Wancheng, m_Wancheng);DDX_Text(pDX, IDC_EDIT_Time, m_Time);DDX_Text(pDX, IDC_EDIT_Zhixing, m_Zhixing);DDX_Text(pDX, IDC_EDIT_Zusai, m_Zusai);BEGIN_MESSAGE_MAP(CPcb1Dlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDR
16、AGICON()ON_BN_CLICKED(IDC_BUTTON_Huanxiang, OnBUTTONHuanxiang)ON_BN_CLICKED(IDC_BUTTON_Qingkong, OnBUTTONQingkong)ON_BN_CLICKED(IDC_BUTTON_Tianjia, OnBUTTONTianjia)ON_BN_CLICKED(IDC_BUTTON_Zuisai, OnBUTTONZuisai)ON_WM_TIMER()END_MESSAGE_MAP()BOOL CPcb1Dlg:OnInitDialog()CDialog:OnInitDialog();ASSERT(
17、IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);SetIcon(m_hIcon, TRUE);SetIcon(m_hIcon, FALSE);(CButton * )GetDlgItem( IDC_RADIO1 )-SetCheck( TRUE );return TRUE; void CPcb1Dlg:OnSysCommand(UINT nID, LPARAM
18、 lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);void CPcb1Dlg:OnPaint() if (IsIconic()CPaintDC dc(this); SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMet
19、rics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;dc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();HCURSOR CPcb1Dlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;/喚醒按扭void CPcb1Dlg:OnBUTTONHuanxiang() if ( ZusaiNum=0 )Message
20、Box(阻塞隊(duì)列為空,沒有可喚醒的進(jìn)程,溫馨提示,MB_OK|MB_ICONINFORMATION);return; ProProNum=Zusai0;int atime=this-getArrTime();ProProNum.Rp=atime;ZusaiNum-; ProNum+;/阻塞的隊(duì)列元素都前移一位for (int i=0;iZusaiNum;i+)Zusaii=Zusaii+1;/顯示就緒m_Jiuxu.Empty();CString T;for (i=1;iSetWindowText(m_Jiuxu);/顯示阻塞m_Zusai.Empty();for (i=0;iSetWindo
21、wText(m_Zusai);m_bchange=true;SetTimer(1,1000,NULL);/清空按扭void CPcb1Dlg:OnBUTTONQingkong() m_Wancheng.Empty();UpdateData(false);/添加按扭 void CPcb1Dlg:OnBUTTONTianjia() UpdateData(true); if ( m_Jincheng.IsEmpty() )MessageBox(請輸入進(jìn)程名稱);GetDlgItem(IDC_EDIT_Jincheng)-SetFocus();return;if ( m_Time.IsEmpty()
22、)MessageBox(請輸入服務(wù)時間);GetDlgItem(IDC_EDIT_Time)-SetFocus();return; int atime=this-getArrTime();ProProNum.Name=m_Jincheng;ProProN=&m_progress;ProProNum.RemainT=atoi(m_Time);ProProNum.ServiceT=atoi(m_Time);ProProNum.RunningT=0;ProProNum.Start=(CTime:GetCurrentTime().Format(%H:%M:%S);ProProNum.Rp=
23、atime;ProProNum.id=id+1;m_Jincheng.Empty();m_Time.Empty();UpdateData(false);id+;ProNum+; if(ProNum1) CString Temple=;for ( int i=1;iSetWindowText(m_Jiuxu); SetTimer(1,1000,NULL);m_bchange=true;/阻塞按扭void CPcb1Dlg:OnBUTTONZuisai() int i;if ( ProNum=0 )KillTimer(1);MessageBox(當(dāng)前沒有進(jìn)程在執(zhí)行,請?zhí)砑踊騿拘堰M(jìn)程);return
24、;elseZusaiZusaiNum+=Pro0;m_Zusai.Empty();CString Temple=;/顯示阻塞for ( i=0;iSetWindowText(m_Zusai);/更新進(jìn)度條,將進(jìn)程條和運(yùn)行清空P-SetPos(0);GetDlgItem(IDC_EDIT_Zhixing)-SetWindowText(_T();ProNum-;if ( ProNumgetArrTime();/因?yàn)榈谝粋€元素空了,所以數(shù)組要前移double temp=0; double High; int highidex; for(i=1;i=temp)temp=High;high
25、idex=i;Pro0=Prohighidex;for ( i=highidex;iProNum;i+)Proi=Proi+1;for (i=highidex;iSetRange(0,Pro0.ServiceT);Pro0.RemainT-;Pro0.RunningT+;m_Zhixing.Format(標(biāo)識符:%d 進(jìn)程名稱:%s 創(chuàng)建時間:%s 需要時間:%d秒 剩余時間:%d秒 已運(yùn)行時間:%d秒 優(yōu)先權(quán):%frn, Pro0.id,Pro0.Name,Pro0.Start,Pro0.ServiceT,Pro0.RemainT,Pro0.RunningT,Pro0.prio);GetDl
26、gItem(IDC_EDIT_Zhixing)-SetWindowText(m_Zhixing);P-SetPos(Pro0.RunningT);/如果添加了新的成員,重新排序 if ( m_bchange )if(iRadioButton=IDC_RADIO1)/計(jì)算優(yōu)先級for (int i=1;iProNum;i+)float sum=0;for (int j=0;ji;j+)sum+=Proj.RemainT;Proi.prio=sum/Proi.ServiceT;/end for/根據(jù)優(yōu)先級排序progress Tem;for ( i=0;iProNum-1;i+)fo
27、r (int j=0;jProNum-1-i;j+)if (Proj.prioProj+1.prio)Tem=Proj+1;Proj+1=Proj;Proj=Tem;m_bchange=false;/end 排序if(iRadioButton=IDC_RADIO2)progress Tem;for ( int i=0;iSetRange(0,Pro0.ServiceT);Pro0.RemainT-;Pro0.RunningT+;m_Zhixing.Format(標(biāo)識符:%d 進(jìn)程名稱:%s 創(chuàng)建時間:%s 需要時間:%d秒 剩余時間:%d秒 已運(yùn)行時間:%d秒 優(yōu)先權(quán):%frn, Pro0.i
28、d,Pro0.Name,Pro0.Start,Pro0.ServiceT,Pro0.RemainT,Pro0.RunningT,Pro0.prio);GetDlgItem(IDC_EDIT_Zhixing)-SetWindowText(m_Zhixing);P-SetPos(Pro0.RunningT);/end 排序if(iRadioButton=IDC_RADIO3)progress Tem;for (int i=0;iProNum-1;i+)for (int j=0;jProj+1.RemainT)Tem=Proj+1;Proj+1=Proj;Proj=Tem;m_bcha
29、nge=false;/end 排序/如果已經(jīng)完成if ( Pro0.RemainTSetPos(0);UpdateData(false);GetDlgItem(IDC_EDIT_Wancheng)-SetWindowText(m_Wancheng);/如果沒有就緒的進(jìn)程if( ProNum=0 )KillTimer(1);GetDlgItem(IDC_EDIT_Zhixing)-SetWindowText(_T();MessageBox(當(dāng)前沒有進(jìn)程在執(zhí)行,請?zhí)砑踊騿拘堰M(jìn)程!);/還有就緒的進(jìn)程elseint i;int atime=this-getArrTime();/因?yàn)榈谝粋€元素空了,所
30、以數(shù)組要前移double temp=0; double High; int highidex; for(i=1;i=temp)temp=High;highidex=i;Pro0=Prohighidex;for ( i=highidex;iProNum;i+)Proi=Proi+1;CString Temple=;for ( i=1;iSetWindowText(m_Jiuxu);m_bchange=true;/end 完成m_Jiuxu=;CString Temple=;for ( int i=1;iSetWindowText(m_Jiuxu);CDialog:OnTimer(nIDEvent
31、);StdAfx.cpp:#include stdafx.hpcb1.h:#if !defined(AFX_PCB1_H_D0EC9916_5956_47D0_A87D_BF26EFBECAD7_INCLUDED_)#define AFX_PCB1_H_D0EC9916_5956_47D0_A87D_BF26EFBECAD7_INCLUDED_#if _MSC_VER 1000#pragma once#endif #ifndef _AFXWIN_H_#error include stdafx.h before including this file for PCH#endif#include
32、resource.hclass CPcb1App : public CWinApppublic:CPcb1App();public:virtual BOOL InitInstance();DECLARE_MESSAGE_MAP();#endifpcb1Dlg.h:#if !defined(AFX_PCB1DLG_H_85A9A06E_CC92_4F5B_B772_4E1D184B7433_INCLUDED_)#define AFX_PCB1DLG_H_85A9A06E_CC92_4F5B_B772_4E1D184B7433_INCLUDED_#if _MSC_VER 1000#pragma o
33、nce#endif struct progressCString Name; /進(jìn)程名稱CString Start;/創(chuàng)建時間int ServiceT;/服務(wù)時間int RunningT;/消逝時間int RemainT;/剩余時間int id;/進(jìn)程標(biāo)識符CProgressCtrl* pro;/指向進(jìn)度條的指針int Rp;/進(jìn)程成為就緒進(jìn)程的時間float prio;/進(jìn)程優(yōu)先權(quán);class CPcb1Dlg : public CDialogpublic:int getArrTime();CPcb1Dlg(CWnd* pParent = NULL);enum IDD = IDD_PCB1_
34、DIALOG ;CProgressCtrlm_progress;CStringm_Jincheng;CStringm_Jiuxu;CStringm_Wancheng;CStringm_Time;CStringm_Zhixing;CStringm_Zusai;protected:virtual void DoDataExchange(CDataExchange* pDX);protected:HICON m_hIcon;virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnBUTTONHuanxiang();afx_msg void OnBUTTONQingkong();afx_msg void OnBUTTONTianjia();afx_msg void OnBUTTONZuisai();afx_msg void OnTimer(UINT nIDEvent);DECLARE_MESSAGE_MAP();#endifResource.h:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年興業(yè)銀行海口分行秋季校園招聘備考題庫及一套答案詳解
- 大鼠脊髓-皮層神經(jīng)通路對痛覺與觸覺信息編碼機(jī)制的解析與洞察
- 2025年如皋市衛(wèi)健系統(tǒng)部分單位公開招聘事業(yè)編制工作人員49人備考題庫及答案詳解一套
- 大黃酸對2型糖尿病大鼠胰島素抵抗的改善作用及機(jī)制探究
- 結(jié)婚酒店簽協(xié)議書
- 2025年中國水利水電科學(xué)研究院水力學(xué)所科研助理招聘備考題庫及參考答案詳解
- 2025年達(dá)州銀行股份有限公司社會招聘備考題庫及答案詳解參考
- 護(hù)理實(shí)習(xí)生的老年護(hù)理與特殊需求
- 2025年寧波國有資本研究院有限公司招聘5人備考題庫及參考答案詳解
- 假裝對象協(xié)議書
- GB/T 14975-2025結(jié)構(gòu)用不銹鋼無縫鋼管
- 2025首屆電力低空經(jīng)濟(jì)發(fā)展大會:電力場景具身智能檢修機(jī)器人技術(shù)及應(yīng)用
- 冬季污水廠防凍知識培訓(xùn)
- 2025年度鋼管支架貝雷梁拆除施工方案
- 2025版吊裝費(fèi)合同范本
- 心理因素對創(chuàng)新行為的影響
- 脊髓損傷的膀胱護(hù)理
- 《醫(yī)學(xué)影像診斷報告書寫指南》(2025版)
- 高校物業(yè)安全培訓(xùn)內(nèi)容課件
- (正式版)DB33∕T 1430-2025 《海塘安全監(jiān)測技術(shù)規(guī)程》
- 信息技術(shù)產(chǎn)品供貨保障措施及質(zhì)量保證計(jì)劃
評論
0/150
提交評論