国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)-進(jìn)程調(diào)度模擬算法

這篇具有很好參考價(jià)值的文章主要介紹了計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)-進(jìn)程調(diào)度模擬算法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、實(shí)驗(yàn)?zāi)康?/h3>

進(jìn)程調(diào)度是處理機(jī)管理的核心內(nèi)容。本實(shí)驗(yàn)要求用高級(jí)語(yǔ)言編寫(xiě)模擬進(jìn)程調(diào)度程序,以 便加深理解有關(guān)進(jìn)程控制快、進(jìn)程隊(duì)列等概念,并體會(huì)和了解優(yōu)先數(shù)算法和時(shí)間片輪轉(zhuǎn)算法 的具體實(shí)施辦法。

二、實(shí)驗(yàn)要求

1.設(shè)計(jì)進(jìn)程控制塊 PCB 的結(jié)構(gòu),通常應(yīng)包括如下信息:

進(jìn)程名、進(jìn)程優(yōu)先數(shù)(或輪轉(zhuǎn)時(shí)間片數(shù))、進(jìn)程已占用的 CPU 時(shí)間、進(jìn)程到完成還需要的時(shí)間、進(jìn)程的狀態(tài)、當(dāng)前隊(duì)列指針等。

2.編寫(xiě)兩種調(diào)度算法程序:

優(yōu)先數(shù)調(diào)度算法程序

循環(huán)輪轉(zhuǎn)調(diào)度算法程序

3.按要求輸出結(jié)果。

三、實(shí)驗(yàn)過(guò)程

分別用兩種調(diào)度算法對(duì)伍個(gè)進(jìn)程進(jìn)行調(diào)度。每個(gè)進(jìn)程可有三種狀態(tài);執(zhí)行狀態(tài)(RUN)、

就緒狀態(tài)(READY,包括等待狀態(tài))和完成狀態(tài)(FINISH),并假定初始狀態(tài)為就緒狀態(tài)。

?(一)進(jìn)程控制塊結(jié)構(gòu)如下:

?NAME——進(jìn)程標(biāo)示符

?PRIO/ROUND——進(jìn)程優(yōu)先數(shù)/進(jìn)程每次輪轉(zhuǎn)的時(shí)間片數(shù)(設(shè)為常數(shù) 2)

?CPUTIME——進(jìn)程累計(jì)占用 CPU 的時(shí)間片數(shù)

?NEEDTIME——進(jìn)程到完成還需要的時(shí)間片數(shù)

?STATE——進(jìn)程狀態(tài)

?NEXT——鏈指針

?注:

?1.為了便于處理,程序中進(jìn)程的的運(yùn)行時(shí)間以時(shí)間片為單位進(jìn)行計(jì)算;

?2.各進(jìn)程的優(yōu)先數(shù)或輪轉(zhuǎn)時(shí)間片數(shù),以及進(jìn)程運(yùn)行時(shí)間片數(shù)的初值,均由用戶在程序運(yùn)行時(shí)給定。

(二)進(jìn)程的就緒態(tài)和等待態(tài)均為鏈表結(jié)構(gòu),共有四個(gè)指針如下:

?RUN——當(dāng)前運(yùn)行進(jìn)程指針

?READY——就需隊(duì)列頭指針

?TAIL—— 就需隊(duì)列尾指針

?FINISH—— 完成隊(duì)列頭指針

(三)程序說(shuō)明

?1. 在優(yōu)先數(shù)算法中,進(jìn)程優(yōu)先數(shù)的初值設(shè)為:

?50-NEEDTIME

每執(zhí)行一次,優(yōu)先數(shù)減 1,CPU 時(shí)間片數(shù)加 1,進(jìn)程還需要的時(shí)間片數(shù)減 1。在輪轉(zhuǎn)法中,采用固定時(shí)間片單位(兩個(gè)時(shí)間片為一個(gè)單位),進(jìn)程每輪轉(zhuǎn)一次,CPU時(shí)間片數(shù)加 2,進(jìn)程還需要的時(shí)間片數(shù)減 2,并退出 CPU,排到就緒隊(duì)列尾,等待下一次調(diào)度。

?2. 程序的模塊結(jié)構(gòu)如下:

?整個(gè)程序可由主程序和如下 7 個(gè)過(guò)程組成:

?2

?(1)INSERT1——在優(yōu)先數(shù)算法中,將尚未完成的 PCB 按優(yōu)先數(shù)順序插入到就緒隊(duì)列中;

?(2)INSERT2——在輪轉(zhuǎn)法中,將執(zhí)行了一個(gè)時(shí)間片單位(為 2),但尚未完成的進(jìn)程

的 PCB,插到就緒隊(duì)列的隊(duì)尾;

?(3)FIRSTIN——調(diào)度就緒隊(duì)列的第一個(gè)進(jìn)程投入運(yùn)行;

?(4)PRINT——顯示每執(zhí)行一次后所有進(jìn)程的狀態(tài)及有關(guān)信息。

?(5)CREATE——?jiǎng)?chuàng)建新進(jìn)程,并將它的 PCB 插入就緒隊(duì)列;

?(6)PRISCH——按優(yōu)先數(shù)算法調(diào)度進(jìn)程;

?(7)ROUNDSCH——按時(shí)間片輪轉(zhuǎn)法調(diào)度進(jìn)程。

?主程序定義 PCB 結(jié)構(gòu)和其他有關(guān)變量。

代碼:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-744848.html

Main.cpp
#include<iostream>
#include<string>
using namespace std;
typedef struct node
{
	char name[20];           //進(jìn)程名
	int prio;                      //進(jìn)程優(yōu)先級(jí)
	int round;                   //分配CPU的時(shí)間片
	int cputime;                //CPU執(zhí)行時(shí)間
	int needtime;              //進(jìn)程執(zhí)行所需時(shí)間
	char state;                   //進(jìn)程狀態(tài)
	int count;                    //記錄執(zhí)行次數(shù)
	struct node *next;       //鏈表指針
}PCB;
int num;
//定義三個(gè)隊(duì)列,就緒隊(duì)列,執(zhí)行隊(duì)列,完成隊(duì)列
PCB *ready = NULL;         //就緒隊(duì)列
PCB *run = NULL;             //執(zhí)行隊(duì)列
PCB *finish = NULL;          //完成隊(duì)列
//取得第一個(gè)就緒節(jié)點(diǎn)
void GetFirst()
{
	run = ready;
	if (ready != NULL)
	{
		run->state = 'R';
		ready = ready->next;
		run->next = NULL;
	}
}
//優(yōu)先級(jí)輸出隊(duì)列
void Output1()
{
	PCB *p;
	p = ready;
	while (p != NULL)
	{
		cout << p->name << "\t" << p->prio << "\t" << p->cputime << "\t" << p->needtime << "\t " << p->state << "  \t  " << p->count << endl;
		p = p->next;
	}
	p = finish;
	while (p != NULL)
	{
		cout << p->name << "\t" << p->prio << "\t" << p->cputime << "\t" << p->needtime << "\t " << p->state << "  \t  " << p->count << endl;
		p = p->next;
	}
	p = run;
	while (p != NULL)
	{
		cout << p->name << "\t" << p->prio << "\t" << p->cputime << "\t" << p->needtime << "\t " << p->state << "  \t  " << p->count << endl;
		p = p->next;
	}
}
//輪轉(zhuǎn)法輸出隊(duì)列
void Output2()
{
	PCB *p;
	p = ready;
	while (p != NULL)
	{
		cout << p->name << "\t" << p->round << "\t" << p->cputime << "\t" << p->needtime << "\t " << p->state << "\t  " << p->count << endl;
		p = p->next;
	}
	p = finish;
	while (p != NULL)
	{
		cout << p->name << "\t" << p->round << "\t" << p->cputime << "\t" << p->needtime << "\t " << p->state << "\t  " << p->count << endl;
		p = p->next;
	}
	p = run;
	while (p != NULL)
	{
		cout << p->name << "\t" << p->round << "\t" << p->cputime << "\t" << p->needtime << "\t " << p->state << "\t  " << p->count << endl;
		p = p->next;
	}
}
//創(chuàng)建優(yōu)先級(jí)隊(duì)列
//創(chuàng)建優(yōu)先級(jí)隊(duì)列,規(guī)定優(yōu)先數(shù)越小,優(yōu)先級(jí)越低 
void InsertPrio(PCB *in)
{
	PCB *fst, *nxt;
	fst = nxt = ready;
	if (ready == NULL)  //如果隊(duì)列為空,則為第一個(gè)元素 
	{
		in->next = ready;
		ready = in;
	}
	else     //查到合適的位置進(jìn)行插入 
	{
		if (in->prio >= fst->prio)  //比第一個(gè)還要大,則插入到隊(duì)頭
		{
			in->next = ready;
			ready = in;
		}
		else
		{
			while (fst->next != NULL)  //移動(dòng)指針查找第一個(gè)比它小的元素的位置進(jìn)行插入 
			{
				nxt = fst;
				fst = fst->next;
			}
			if (fst->next == NULL) //已經(jīng)搜索到隊(duì)尾,則其優(yōu)先級(jí)數(shù)最小,將其插入到隊(duì)尾即可 
			{
				in->next = fst->next;
				fst->next = in;
			}
			else     //插入到隊(duì)列中
			{
				nxt = in;
				in->next = fst;
			}
		}
	}
}
//將進(jìn)程插入到就緒隊(duì)列尾部
void InsertTime(PCB *in)
{
	PCB *fst;
	fst = ready;
	if (ready == NULL)
	{
		in->next = ready;
		ready = in;
	}
	else
	{
		while (fst->next != NULL)
		{
			fst = fst->next;
		}
		in->next = fst->next;
		fst->next = in;
	}
}
//將進(jìn)程插入到完成隊(duì)列尾部
void InsertFinish(PCB *in)
{
	PCB *fst;
	fst = finish;
	if (finish == NULL)
	{
		in->next = finish;
		finish = in;
	}
	else
	{
		while (fst->next != NULL)
		{
			fst = fst->next;
		}
		in->next = fst->next;
		fst->next = in;
	}
}
//優(yōu)先級(jí)調(diào)度輸入函數(shù) 
void PrioCreate()
{
	PCB *tmp;
	int i;
	cout << "Enter the name and needtime:" << endl;
	for (i = 0; i < num; i++)
	{
		if ((tmp = (PCB *)malloc(sizeof(PCB))) == NULL)
		{
			cerr << "malloc" << endl;
			exit(1);
		}
		cin >> tmp->name;
		getchar();
		cin >> tmp->needtime;
		tmp->cputime = 0;
		tmp->state = 'W';
		tmp->prio = 50 - tmp->needtime;  //設(shè)置其優(yōu)先級(jí),需要的時(shí)間越多,優(yōu)先級(jí)越低
		tmp->round = 0;
		tmp->count = 0;
		InsertPrio(tmp);      //按照優(yōu)先級(jí)從高到低,插入到就緒隊(duì)列 
	}
	cout << "進(jìn)程名\t優(yōu)先級(jí)\tcpu時(shí)間\t需要時(shí)間 進(jìn)程狀態(tài) 計(jì)數(shù)器" << endl;
}
//時(shí)間片輸入函數(shù) 
void TimeCreate()
{
	PCB *tmp;
	int i;
	cout << "輸入進(jìn)程名字和進(jìn)程時(shí)間片所需時(shí)間:" << endl;
	for (i = 0; i < num; i++)
	{
		if ((tmp = (PCB *)malloc(sizeof(PCB))) == NULL)
		{
			cerr << "malloc" << endl;
			exit(1);
		}
		cin >> tmp->name;
		getchar();
		cin >> tmp->needtime;
		tmp->cputime = 0;
		tmp->state = 'W';
		tmp->prio = 0;
		tmp->round = 2;
		tmp->count = 0;
		InsertTime(tmp);
	}
	cout << "進(jìn)程名\t輪數(shù)\tCPU時(shí)間\t需要時(shí)間 進(jìn)程狀態(tài) 計(jì)數(shù)器" << endl;
}
//按照優(yōu)先級(jí)調(diào)度,每次執(zhí)行一個(gè)時(shí)間片
void Priority()
{
	int flag = 1;
	GetFirst();
	while (run != NULL)
	{
		Output1();
		while (flag)
		{
			run->prio -= 3; //優(yōu)先級(jí)減去三 
			run->cputime++; //CPU時(shí)間片加一 
			run->needtime--;//進(jìn)程執(zhí)行完成的剩余時(shí)間減一 
			if (run->needtime == 0)//如果進(jìn)程執(zhí)行完畢,將進(jìn)程狀態(tài)置為F,將其插入到完成隊(duì)列 
			{
				run->state = 'F';
				run->count++;
				InsertFinish(run);
				flag = 0;
			}
			else   //將進(jìn)程狀態(tài)置為W,入就緒隊(duì)列
			{
				run->state = 'W';
				run->count++; //進(jìn)程執(zhí)行的次數(shù)加一
				InsertTime(run);
				flag = 0;
			}
		}
		flag = 1;
		GetFirst();    //繼續(xù)取就緒隊(duì)列隊(duì)頭進(jìn)程進(jìn)入執(zhí)行隊(duì)列 
	}
}
void RoundRun()    //時(shí)間片輪轉(zhuǎn)調(diào)度算法
{
	int flag = 1;
	GetFirst();
	while (run != NULL)
	{
		Output2();
		while (flag)
		{
			run->count++;
			run->cputime++;
			run->needtime--;
			if (run->needtime == 0) //進(jìn)程執(zhí)行完畢 
			{
				run->state = 'F';
				InsertFinish(run);
				flag = 0;
			}
			else if (run->count == run->round)//時(shí)間片用完 
			{
				run->state = 'W';
				run->count = 0;   //計(jì)數(shù)器清零,為下次做準(zhǔn)備 
				InsertTime(run);
				flag = 0;
			}
		}
		flag = 1;
		GetFirst();
	}
}
int main(void)
{
	int n;
	cout << "輸入進(jìn)程個(gè)數(shù):" << endl;
	cin >> num;
	getchar();
	cout << "-----------------進(jìn)程調(diào)度算法模擬----------------------" << endl;
	cout << "                   1、優(yōu)先級(jí)調(diào)度算法" << endl;
	cout << "                   2、循環(huán)輪轉(zhuǎn)調(diào)度算法  " << endl;
	cout << "-------------------------------------------------------" << endl;
	cout << "輸入選擇序號(hào):" << endl;
	cin >> n;
	switch (n)
	{
	case 1:
		cout << "優(yōu)先級(jí)調(diào)度:" << endl;
		PrioCreate();
		Priority();
		Output1();
		break;
	case 2:
		cout << "循環(huán)輪轉(zhuǎn)算法:" << endl;
		TimeCreate();
		RoundRun();
		Output2();
		break;
	case 0:
		exit(1);
		break;
	default:
		cout << "Enter error!" << endl;
		break;
	}
	cout << endl;
	return 0;
}

到了這里,關(guān)于計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)-進(jìn)程調(diào)度模擬算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn):頁(yè)面置換算法的實(shí)現(xiàn)

    計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn):頁(yè)面置換算法的實(shí)現(xiàn)

    本實(shí)驗(yàn)的目的是通過(guò)編程模擬不同的頁(yè)面置換算法,比較它們的缺頁(yè)率和命中率,加深對(duì)操作系統(tǒng)內(nèi)存管理的理解。本實(shí)驗(yàn)采用C語(yǔ)言編寫(xiě),實(shí)現(xiàn)了最佳置換算法(OPT)、先進(jìn)先出置換算法(FIFO)和最近最久未使用算法(LRU)。實(shí)驗(yàn)中,頁(yè)面號(hào)引用串從文本文件中讀取,輸出

    2024年02月02日
    瀏覽(24)
  • 計(jì)算機(jī)操作系統(tǒng)重點(diǎn)概念整理-第三章 進(jìn)程同步【期末復(fù)習(xí)|考研復(fù)習(xí)】

    計(jì)算機(jī)操作系統(tǒng)重點(diǎn)概念整理-第三章 進(jìn)程同步【期末復(fù)習(xí)|考研復(fù)習(xí)】

    計(jì)算機(jī)操作系統(tǒng)復(fù)習(xí)系列文章傳送門(mén): 第一章 計(jì)算機(jī)系統(tǒng)概述 第二章 進(jìn)程管理 第三章 進(jìn)程同步 第四章 內(nèi)存管理 第五章 文件管理 第六章 輸出輸出I/O管理 給大家整理了一下計(jì)算機(jī)操作系統(tǒng)中的重點(diǎn)概念,以供大家期末復(fù)習(xí)和考研復(fù)習(xí)的時(shí)候使用。 參考資料是王道的計(jì)算

    2024年02月08日
    瀏覽(28)
  • 計(jì)算機(jī)操作系統(tǒng)重點(diǎn)概念整理-第二章 進(jìn)程管理【期末復(fù)習(xí)|考研復(fù)習(xí)】

    計(jì)算機(jī)操作系統(tǒng)重點(diǎn)概念整理-第二章 進(jìn)程管理【期末復(fù)習(xí)|考研復(fù)習(xí)】

    計(jì)算機(jī)操作系統(tǒng)復(fù)習(xí)系列文章傳送門(mén): 第一章 計(jì)算機(jī)系統(tǒng)概述 第二章 進(jìn)程管理 第三章 進(jìn)程同步 第四章 內(nèi)存管理 第五章 文件管理 第六章 輸出輸出I/O管理 給大家整理了一下計(jì)算機(jī)操作系統(tǒng)中的重點(diǎn)概念,以供大家期末復(fù)習(xí)和考研復(fù)習(xí)的時(shí)候使用。 參考資料是王道的計(jì)算

    2024年02月08日
    瀏覽(35)
  • 計(jì)算機(jī)操作系統(tǒng)【慕課版】習(xí)題答案(第2章進(jìn)程的描述與控制)

    計(jì)算機(jī)操作系統(tǒng)【慕課版】習(xí)題答案(第2章進(jìn)程的描述與控制)

    一:簡(jiǎn)答題 (1).什么是前趨圖?試畫(huà)出下面四條語(yǔ)句的前趨圖. S1:a=x+y; S2:b=z+1; S3:c=a-b; S4:w=c+1; 答:前趨圖(Precedence Graph)是一個(gè)有向無(wú)循環(huán)圖,記為DAG(DirectedAcyclicGraph),用于描述進(jìn)程之間執(zhí)行的前后關(guān)系。 (2)什么是進(jìn)程? OS中為什么要引入進(jìn)程?它會(huì)產(chǎn)生什么樣的

    2024年04月13日
    瀏覽(19)
  • 操作系統(tǒng) --- 計(jì)算機(jī)系統(tǒng)引論

    操作系統(tǒng) --- 計(jì)算機(jī)系統(tǒng)引論

    ????????操作系統(tǒng) ( Operating System , OS )是指控制和 管理 整個(gè)計(jì)算機(jī)系統(tǒng)的 硬件和軟件 資源,并合理地組織調(diào)度計(jì)算機(jī)的工作和資源的分配;以 提供給用戶和其他軟件方便的接口和環(huán)境 ;它是計(jì)算機(jī)系統(tǒng)中最基本的 系統(tǒng)軟件。 ? ? ? ? ? ? ?———— 王道 ? ? ??

    2024年02月09日
    瀏覽(26)
  • 《操作系統(tǒng)》——計(jì)算機(jī)系統(tǒng)概述

    《操作系統(tǒng)》——計(jì)算機(jī)系統(tǒng)概述

    前言: 在之前的【Linux】學(xué)習(xí)中,我們已經(jīng)對(duì)常見(jiàn)指令已經(jīng)開(kāi)發(fā)工具等進(jìn)行了詳細(xì)的了解。緊接著,我們將要學(xué)習(xí)的便是關(guān)于【Linux進(jìn)程】的基本知識(shí)。但是為了幫助大家更好的理解相關(guān)的知識(shí)概念,我先帶領(lǐng)大家來(lái)學(xué)習(xí)關(guān)于《操作系統(tǒng)》這門(mén)課的基本知識(shí)?。?! 目錄 (一)

    2024年02月03日
    瀏覽(36)
  • 【操作系統(tǒng)】 1、計(jì)算機(jī)系統(tǒng)概述

    【操作系統(tǒng)】 1、計(jì)算機(jī)系統(tǒng)概述

    從操作系統(tǒng)的角度上來(lái)劃分計(jì)算機(jī)體系結(jié)構(gòu): 這里注意一點(diǎn): 編譯器屬于應(yīng)用程序。 操作系統(tǒng) :是指 控制 和 管理 計(jì)算機(jī)系統(tǒng)的 硬件 和 軟件 資源 ,合理的組織、調(diào)度計(jì)算機(jī)的工作與資源分配,進(jìn)而為用戶和其他軟件提供 方便接口與環(huán)境的程序集合。 操作系統(tǒng)是計(jì)算機(jī)

    2024年02月08日
    瀏覽(25)
  • 計(jì)算機(jī)操作系統(tǒng)安全

    操作系統(tǒng)安全是計(jì)算機(jī)系統(tǒng)安全的重要組成部分,目的是保護(hù)操作系統(tǒng)的機(jī)密性、完整性和可用性。在當(dāng)前的網(wǎng)絡(luò)環(huán)境下,操作系統(tǒng)面臨著許多威脅,如病毒、木馬、蠕蟲(chóng)、黑客攻擊等等。為了保護(hù)操作系統(tǒng)的安全,需要采取各種措施來(lái)防范這些威脅。本文將介紹一些常見(jiàn)的

    2024年02月02日
    瀏覽(25)
  • 計(jì)算機(jī)操作系統(tǒng)-筆記

    計(jì)算機(jī)操作系統(tǒng)-筆記

    第一章 引論 1. 操作系統(tǒng)定義 操作系統(tǒng)是運(yùn)行在內(nèi)核態(tài)的軟件,它執(zhí)行兩個(gè)基本上獨(dú)立的任務(wù)。 隱藏計(jì)算機(jī)底層硬件的實(shí)現(xiàn),為用戶及應(yīng)用程序提供一個(gè)資源集的清晰抽象。 管理計(jì)算機(jī)硬件資源。 任何操作系統(tǒng)的核心是它可處理的系統(tǒng)調(diào)用集。這些系統(tǒng)調(diào)用集真實(shí)地說(shuō)明了

    2024年02月20日
    瀏覽(23)
  • 計(jì)算機(jī)基礎(chǔ)——操作系統(tǒng)

    計(jì)算機(jī)基礎(chǔ)——操作系統(tǒng)

    作者簡(jiǎn)介:一名云計(jì)算網(wǎng)絡(luò)運(yùn)維人員、每天分享網(wǎng)絡(luò)與運(yùn)維的技術(shù)與干貨。? ?座右銘:低頭趕路,敬事如儀 個(gè)人主頁(yè):網(wǎng)絡(luò)豆的主頁(yè)?????? 目錄 ?前言 一.操作系統(tǒng) 1.操作系統(tǒng)簡(jiǎn)介 ?2.操作系統(tǒng)的主要功能 (1)資源管理 (2)人機(jī)交互 ?(3)程序控制 (4)進(jìn)程管理

    2024年01月23日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包