xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 5KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-13
  • 語言: C/C++
  • 標簽: 進程調度??

資源簡介

進程調度 時間片輪轉調度算法源代碼(C語言)

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
?/*?狀態定義?*/
#define?START??????-1
#define?FINISHED????0
#define?RUNNING????1
#define?READY??????2
#define?BLOCKED????3
#define?RUNCOUNT?10000
#define?TCBNUM?????6
#define?LEN????????100
#define?GET_INDOS?0x34
#define?GET_CRIT_ERR?0x5d06
#define?INT_MIN????-32767
#define?WoKao??????1
/*?人性化一點?*/
int?TLE=6;
int?current=-1;
int?timecount=0;
int?tcb_num=6;
char?far?*indos_ptr=0;
char?far?*crit_err_ptr=0;
typedef?int?(far*?codeptr)();
int?DosBusy();
void?InitDos();
void?InitTCB();
void?InitView();
void?Begin();
void?Wait();
void?FUN();
void?over();
void?tcb_state();
void?interrupt?(*old_int8)();?/*?原來的時間中斷程序?*/
void?interrupt?new_int8();?/*?具有按時間片調度功能的新的時鐘中斷函數?*/
void?interrupt?swtch();?/*?因其它原因引起CPU調度?*/
void?create(char*codeptrintint);?/*?創建線程?*/
int?ALL_FINISHED();?/*?線程是否都已完成?*/
int?FIND();?/*?尋找優先權最高的READY線程?*/
void?thread_1();?/*線程集*/
void?thread_2();
void?thread_3();
void?thread_4();
void?thread_5();
/*?TCB?*/
struct?TCB
{
??????unsigned?char?*?stack;?/*?堆棧起始地址?*/
??????unsigned?ss;?/*?堆棧斷址?*/
??????unsigned?sp;?/*?進程指針?*/
??????char?state;?/*?進程狀態?*/
??????char?name[10];
??????int?value;
??????/*對TCB進行擴充*/
}tcb[TCBNUM];
?/*?現場保護和恢復的數據結構?*/
struct?int_regs
{
??????unsigned?DPDISIDSESDXCXBXAXIPCSFLAGSoffseg;
};
?/*InitInDos
*Funtion?to?get?the?addresses?of?INDOS?and?CRIT_ERR?flags
*/
int?Random()?
{int?mseed;?
?randomize();?
?seed=random(100)?;
if?(seed<0)?m=-seed;?
else?m=seed;
seed=(25173*seed+13849)%65536;
return?(m/32767.0);?
}
void?InitInDos()
{
??????union?REGS?regs;
??????struct?SREGS?segregs;

??????/*?get?the?address?of?INDOS?flag?*/
??????regs.h.ah=GET_INDOS;
??????intdosx(®s®s&segregs);
??????indos_ptr=MK_FP(segregs.esregs.x.bx);

??????/*?get?the?address?of?CRIT_ERR?flag?*/
??????if(_osmajor<3)?crit_err_ptr=indos_ptr+1;
??????else?if(_osmajor==3?&&?_osminor==0)?crit_err_ptr=indos_ptr-1;
??????else?
??????{
??????????regs.x.ax=GET_CRIT_ERR;
??????????intdosx(®s®s&segregs);
??????????crit_err_ptr=MK_FP(segregs.dsregs.x.si);
??????}
}
/*DosBusy
*Function?return?non_zero?if?DOS?is?busy
*/
int?DosBusy()
{
??????/*?IninInDos()?hasn‘t?been?called?*/
??????if(indos_ptr?&&?crit_err_ptr)?return?(*indos_ptr?||?*crit_err_ptr);
??????else?return?-1;
}
?/*?初始化TCB?*/
void?InitTCB()
{
??????int?i;
??????for(i=0;i??????{
??????????tcb[i].state=START;
??????}
}
/*?結束TCB?*/
void?over()
{
??????if(tcb[current].state==RUNNING)
??????{
??????????disable();
??????????tcb[current].state=FINISHED;
??????????free(tcb[current].stack);
??????????enable();
??????}
??????swtch();
}
void?tcb_state(int?flag)
{
??????int?i;
??????printf(“\n“);
??????if(!flag)printf(“The?Main?Thread?is?READY\n“);
??????for(i=1;i??????{
??????????if(tcb[i].state==START)continue;
??????????switch(tcb[i].state)
??????????{

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????9877??2008-06-12?19:04??新建文件夾\24\pp.c

?????目錄??????????0??2008-06-12?19:04??新建文件夾\24

?????文件???????4523??2008-06-12?18:48??新建文件夾\27\procee.c

?????目錄??????????0??2008-06-12?19:04??新建文件夾\27

?????文件??????????0??2008-06-12?18:38??新建文件夾\新建?Microsoft?Word?文檔.doc

?????目錄??????????0??2008-06-12?19:05??新建文件夾

-----------?---------??----------?-----??----

????????????????14400????????????????????6


評論

共有 條評論