-
大小: 3KB文件類(lèi)型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-01-01
- 語(yǔ)言: C/C++
- 標(biāo)簽:
資源簡(jiǎn)介
1.進(jìn)程調(diào)度算法:采用最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法(即把處理機(jī)分配給優(yōu)先數(shù)最高的進(jìn)程)。
2.每個(gè)進(jìn)程有一個(gè)進(jìn)程控制塊( PCB)表示。進(jìn)程控制塊可以包含如下信息:進(jìn)程名、優(yōu)先數(shù)、到達(dá)時(shí)間、需要運(yùn)行時(shí)間、已用CPU時(shí)間、進(jìn)程狀態(tài)等等。
3.進(jìn)程的優(yōu)先數(shù)及需要的運(yùn)行時(shí)間可以事先人為地指定(也可以由隨機(jī)數(shù)產(chǎn)生)。進(jìn)程的到達(dá)時(shí)間為進(jìn)程輸入的時(shí)間。
4.進(jìn)程的運(yùn)行時(shí)間以時(shí)間片為單位進(jìn)行計(jì)算。
5.每個(gè)進(jìn)程的狀態(tài)可以是就緒 W(Wait)、運(yùn)行R(Run)、或完成F(Finish)三種狀態(tài)之一。
6.就緒進(jìn)程獲得 CPU后都只能運(yùn)行一個(gè)時(shí)間片。用已占用CPU時(shí)間加1來(lái)表示。如果運(yùn)行一個(gè)
代碼片段和文件信息
#include?“stdio.h“?
#include??
#include??
#define?getpch(type)?(type*)malloc(sizeof(type))?
#define?NULL?0?
struct?pcb?{?/*?定義進(jìn)程控制塊PCB?*/?
char?name[10];?
char?state;?
int?super;?
int?ntime;?
int?rtime;?
struct?pcb*?link;?
}*ready=NULL*p;?
typedef?struct?pcb?PCB;?
??
??
void?sort()?/*?建立對(duì)進(jìn)程進(jìn)行優(yōu)先級(jí)排列函數(shù)*/?
{?
PCB?*first?*second;?
int?insert=0;?
if((ready==NULL)||((p->super)>(ready->super)))?/*優(yōu)先級(jí)最大者插入隊(duì)首*/?
{?
p->link=ready;?
ready=p;?
}?
else?/*?進(jìn)程比較優(yōu)先級(jí)插入適當(dāng)?shù)奈恢弥?/?
{?
first=ready;?
second=first->link;?
while(second!=NULL)?
{?
if((p->super)>(second->super))?/*若插入進(jìn)程比當(dāng)前進(jìn)程優(yōu)先數(shù)大*/?
{?/*插入到當(dāng)前進(jìn)程前面*/?
p->link=second;?
first->link=p;?
second=NULL;?
insert=1;?
}?
else?/
評(píng)論
共有 條評(píng)論