精华内容
下载资源
问答
  • 操作系统实验之模拟进程调度,是本人自己用MFC做的,语言用的是C++。包括时间片轮转法 高响应比优先法和动态优先级法。大学实验课的成品,仅供大家参考和学习
  • 一个小程序,自己写的进程调度,采用时间片轮转法 调度进程,操作系统的实验作业。其中包括 源代码,可执行文件和 实验报告还有演示PPT
  • 实验一 模拟处理机调度的时间片轮转法一、实验目的:用c/c++模拟时间片轮转法二、实验内容:输入进程的个数,每个进程的名称及每个进程需要工作的时间,本实验中假定对CPU时间片设置为一个时间单位,首先输入进程的...

    实验一  模拟处理机调度的时间片轮转法

    一、实验目的:用c/c++模拟时间片轮转法

    二、实验内容:输入进程的个数,每个进程的名称及每个进程需要工作的时间,本实验中假定对CPU时间片设置为一个时间单位,首先输入进程的个数,然后输入进程名称,最后输入进程所需要的处理时间。然后通过模拟程序,显示以下信息:

    1)处理机对进程的调度过。

    2)计算每个进程的周转时间(假设N个进程在0时刻几乎同时达到,处理机对进程的调度顺序和输入进程的顺序一致)。

    三、示例:

    若输入:

    3

    A               2

    B               3

    C               4

    进程名称      每个进程需要工作的时间

    显示:

    CPU时刻:1

    正在运行的进程:A

    Name   run  req  status

    A      1    2     R  R:就绪E: 结束

    B      0    3     R

    C      0    4     R

    CPU时刻:2

    正在运行的进程:B

    Name   run  req  status

    A      1    2     R

    B      1    3     R

    C      0    4     R

    CPU时刻:3

    正在运行的进程:C

    Name   run  req  status

    A      1    2     R  R:就绪E: 结束

    B      1    3     R

    C      1    4     R

    CPU时刻:4

    正在运行的进程:A

    Name   run  req  status

    A      2    2     E

    B      1    3     R

    C      1    4     R

    CPU时刻:5

    正在运行的进程:B

    Name   run  req  status

    B      2    3     R

    C      1    4     R

    CPU时刻:6

    正在运行的进程:C

    Name   run  req  status

    B      2    3     R

    C      2    4     R

    CPU时刻:7

    正在运行的进程:B

    Name   run  req  status

    B      3    3     E

    C      2    4     R

    CPU时刻:8

    正在运行的进程:C

    Name   run  req  status

    C      3    4     R

    CPU时刻:9

    正在运行的进程:C

    Name   run  req  status

    C      4    4     E

    A的周转时间:4ms

    B的周转时间:7ms

    C的周转时间:9ms

    四、实验提示

    1)采用什么数据结构用来存放每个进程的信息?

    每个进程的信息包括:进程的名称和进程需要工作的时间

    2)怎么样控制进程轮转的循环和结束?

    解决思路:

    首先对进行遍历,每次遍历CPU时间+1,然后当前遍历到的时间片运行时间+1

    然后如果当前时间片的运行时间等于所需要的运行时间,那么状态就从R->E结束

    随后将该时间片进行弹出集合,同时记录弹出的时间片名和当前CPU时间(即为当前时间片的周转时间)

    package com.eternally.test;

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Scanner;

    class Process {

    public String name;// 进程名

    public int run;// 已经运行的时间

    public Process(String name, int run, int needtime) {

    this.name = name;

    this.run = run;

    this.needtime = needtime;

    }

    public int needtime;// 所需要的时间

    }

    public class Test1 {

    public static void main(String[] args) {

    List listname=new ArrayList<>();//记录淘汰的进程名

    List listtime=new ArrayList<>();//记录淘汰的进程的淘汰时间

    int cputime = 0;// CPU运行时间

    Scanner in = new Scanner(System.in);

    int n = in.nextInt();

    String name;

    int ttime;

    int needtime;

    List list = new ArrayList<>();

    for (int i = 0; i < n; i++) {

    name = in.next();

    needtime = in.nextInt();

    Process pcb = new Process(name, 0, needtime);// 运行时间初始化为0

    list.add(pcb);

    }

    for (int i = 0; i < list.size(); i++) {

    cputime++;

    System.out.println("CPU时刻:" + cputime);

    System.out.println("正在运行的进程:"+list.get(i).name);

    System.out.println("Name run req status");

    list.get(i).run++;//当前进程的运行时间+1

    for(int j = 0;j

    System.out.print(list.get(j).name+" "+list.get(j).run+" "+list.get(j).needtime+" ");

    System.out.println(list.get(j).run==list.get(j).needtime?"E":"R");

    }

    if(list.get(i).needtime==list.get(i).run) {

    listtime.add(cputime);

    listname.add(list.get(i).name);

    list.remove(i);

    i--;

    }else {

    if (i == (list.size() - 1)) {

    i = -1;

    }

    }

    }

    for(int i =0;i < n;i ++) {

    System.out.println(listname.get(i)+"的周转时间:"+listtime.get(i)+"ms");

    }

    }

    }

    展开全文
  • 这是我大二学操作系统时自己写的时间片轮转法和静态优先权调度算法程序。
  • 操作系统实验——基于时间片轮转法处理器调度(单链表实现) 包含源码。
  • 模拟时间片轮转法

    千次阅读 2012-06-16 19:01:15
    实验一 模拟时间片轮转法 一、实验目的:  用C或C++模拟时间片轮转法 二、实验内容:  随机输入进程的个数,每个进程的名称及每个进程需要工作的时间,随机CPU时间片,通过模拟程序显示出进程占用CPU的过程。...

                 实验一  模拟时间片轮转法

    一、实验目的:

           用C或C++模拟时间片轮转法

    二、实验内容:

             随机输入进程的个数,每个进程的名称及每个进程需要工作的时间,随机CPU时间片,通过模拟程序显示出进程占用CPU的过程。

    三、示例:

    A  B    C    (进程名称)

    2  3     4    (每个进程需要工作的时间)  

    CPU时间片设置为1

    第一次轮转 A   B   C

              1   2    3

    第二次轮转 A   B  C

              0   1   2

    第三次轮转 B   C

    0    1

    第四次轮转 C

              0

    通过模拟程序输出CPU对进程的处理过程为:ABCABCBCC

    //模拟时间片轮转法
    #include <iostream>
    #include <string>
    using namespace std;
    typedef struct Process {
        string processName;         //进程名
        double processTime;         //进程占用时间
    };
    void FIFS(Process p[],int n, double cpuTime)        //模拟优先调度算法
    {
        bool flag = true;                       //控制轮转
        while(flag)
        {
            for(int i = 1; i <= n; i++)         //一次进程调度
            {
                if(p[i].processTime > 0)
                {
                    cout<<p[i].processName<<" ";
                    p[i].processTime -= cpuTime;
                    //cout<<p[i].processTime<<" ";
                }
            }
            if(p[n].processTime <= 0)
            {
                flag = false;
            }
        }
    }
    int main()
    {
        int processNum;         //进程数
        double cpuTime;         //时间片
        cout << "输入进程数目pNum ( pNum > 0):"<< endl;
        cin>>processNum;
        Process *p = new Process[processNum+1];
        cout<<"输入时间片cpTime ( cpTime > 0):"<<endl;
        cin>>cpuTime;
        for(int i = 1; i <= processNum; i++)
        {
            cout<<"输入第"<<i<<"个进程的名字和时间"<<endl;
            cin>>p[i].processName;
            cin>>p[i].processTime;
        }
        cout<<"cpu对进程的处理过程为:"<<endl;
        if(processNum > 0 && cpuTime > 0)
        {
            FIFS(p,processNum,cpuTime);
        }
        delete[] p;
    }
    


    展开全文
  • 实验一 模拟处理机调度的时间片轮转法 一、实验目的:用c/c++模拟时间片轮转法 二、实验内容:输入进程的个数,每个进程的名称及每个进程需要工作的时间,本实验中假定对CPU时间片设置为一个时间单位,首先输入...

                                                          实验一  模拟处理机调度的时间片轮转法

    一、实验目的:用c/c++模拟时间片轮转法

    二、实验内容:输入进程的个数,每个进程的名称及每个进程需要工作的时间,本实验中假定对CPU时间片设置为一个时间单位,首先输入进程的个数,然后输入进程名称,最后输入进程所需要的处理时间。然后通过模拟程序,显示以下信息:

    1)处理机对进程的调度过。

    2)计算每个进程的周转时间(假设N个进程在0时刻几乎同时达到,处理机对进程的调度顺序和输入进程的顺序一致)。

    三、示例:

    若输入:

    3

      

    A               2

    B               3   

    C               4  

    进程名称      每个进程需要工作的时间

     

    显示:

    CPU时刻:1

    正在运行的进程:A

    Name   run  req  status

    A      1    2     R  R:就绪  E 结束

    B      0    3     R

    C      0    4     R

    CPU时刻:2

    正在运行的进程:B

    Name   run  req  status

    A      1    2     R

    B      1    3     R

    C      0    4     R

    CPU时刻:3

    正在运行的进程:C

    Name   run  req  status

    A      1    2     R  R:就绪  E 结束

    B      1    3     R

    C      1    4     R

    CPU时刻:4

    正在运行的进程:A

    Name   run  req  status

    A      2    2     E  

    B      1    3     R

    C      1    4     R

    CPU时刻:5

    正在运行的进程:B

    Name   run  req  status

    B      2    3     R

    C      1    4     R

    CPU时刻:6

    正在运行的进程:C

    Name   run  req  status

    B      2    3     R

    C      2    4     R

    CPU时刻:7

    正在运行的进程:B

    Name   run  req  status

    B      3    3     E

    C      2    4     R

    CPU时刻:8

    正在运行的进程:C

    Name   run  req  status

    C      3    4     R

    CPU时刻:9

    正在运行的进程:C

    Name   run  req  status

    C      4    4     E

     

    A的周转时间:4ms

    B的周转时间:7ms

    C的周转时间:9ms

     

     

    四、实验提示

    1)采用什么数据结构用来存放每个进程的信息?

      每个进程的信息包括:进程的名称和进程需要工作的时间

    2)怎么样控制进程轮转的循环和结束?

     

    解决思路:

    首先对进行遍历,每次遍历CPU时间+1,然后当前遍历到的时间片运行时间+1

    然后如果当前时间片的运行时间等于所需要的运行时间,那么状态就从R->E结束

    随后将该时间片进行弹出集合,同时记录弹出的时间片名和当前CPU时间(即为当前时间片的周转时间)

     

     

    package com.eternally.test;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    class Process {
        public String name;// 进程名
        public int run;// 已经运行的时间
    
        public Process(String name, int run, int needtime) {
    	this.name = name;
    	this.run = run;
    	this.needtime = needtime;
        }
    
        public int needtime;// 所需要的时间
    }
    
    public class Test1 {
    
        public static void main(String[] args) {
    	List<String> listname=new ArrayList<>();//记录淘汰的进程名
    	List<Integer> listtime=new ArrayList<>();//记录淘汰的进程的淘汰时间
    	int cputime = 0;// CPU运行时间
    
    	Scanner in = new Scanner(System.in);
    	int n = in.nextInt();
    	String name;
    	int ttime;
    	int needtime;
    	List<Process> list = new ArrayList<>();
    	for (int i = 0; i < n; i++) {
    	    name = in.next();
    	    needtime = in.nextInt();
    	    Process pcb = new Process(name, 0, needtime);// 运行时间初始化为0
    	    list.add(pcb);
    	}
    
    	for (int i = 0; i < list.size(); i++) {
    	    cputime++;
    	    System.out.println("CPU时刻:" + cputime);
    	    System.out.println("正在运行的进程:"+list.get(i).name);
    	    System.out.println("Name   run  req  status");
    	    list.get(i).run++;//当前进程的运行时间+1
    	    for(int j = 0;j <list.size();j ++) {
    		System.out.print(list.get(j).name+"   "+list.get(j).run+"   "+list.get(j).needtime+"   ");
    		System.out.println(list.get(j).run==list.get(j).needtime?"E":"R");
    	    }
    	    if(list.get(i).needtime==list.get(i).run) {
    		listtime.add(cputime);
    		listname.add(list.get(i).name);
    		list.remove(i);
    		i--;
    	    }else {
    		if (i == (list.size() - 1)) {
    			i = -1;
    		    }
    	    }
    	}
    	for(int i =0;i < n;i ++) {
    	    System.out.println(listname.get(i)+"的周转时间:"+listtime.get(i)+"ms");
    	}
    	
        }
    
    }
    

     

    展开全文
  • 设计一个按时间片轮转法实现处理器调度的程序。 二、实验内容 (1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。进程控制块的格式为: 进程名 指针 要求运行时间 已运行时间 状态 其中,进程名——...

    实验三
    一、实验题目
    设计一个按时间片轮转法实现处理器调度的程序。
    二、实验内容
    (1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。进程控制块的格式为:
    进程名
    指针
    要求运行时间
    已运行时间
    状态
    其中,进程名——作为进程的标识,假设五个进程的进程名分别为Q1,Q2,Q3,Q4,Q5。
    指针——进程按顺序排成循环队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程的指针指出第一个进程的进程控制块首地址。
    要求运行时间——假设进程需要运行的单位时间数。
    已运行时间——假设进程已经运行的单位时间数,初始值为“0”。
    状态——有两种状态,“就绪”和“结束”,初始状态都为“就绪”,用“R”表示。当一个进程运行结束后,它的状态为“结束”,用“E”表示。
    (2) 每次运行所设计的处理器调度程序前,为每个进程任意确定它的“要求运行时间”。
    (3) 把五个进程按顺序排成循环队列,用指针指出队列连接情况。另用一标志单元记录轮到运行的进程。例如,当前轮到P2执行,则有:
    标志单元
    在这里插入图片描述
    (4) 处理器调度总是选择标志单元指示的进程运行。由于本实验是模拟处理器调度的功能,所以,对被选中的进程并不实际的启动运行,而是执行:
    已运行时间+1
    来模拟进程的一次运行,表示进程已经运行过一个单位的时间。
    请同学注意:在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。在这时省去了这些工作,仅用“已运行时间+1”来表示进程已经运行满一个时间片。
    (5) 进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。同时,应判断该进程的要求运行时间与已运行时间,若该进程的要求运行时间已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应指导它的状态修改成“结束”(E)且退出队列。此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。
    (6) 若“就绪”状态的进程队列不为空,则重复上面的(4)和(5)的步骤,直到所有的进程都成为“结束”状态。
    (7) 在所设计的程序中应有显示或打印语句,能显示或打印每次选中进程的进程名以及运行一次后进程队列的变化。
    (8) 为五个进程任意确定一组“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中的进程名以及进程控制块的动态变化过程。
    三、实验过程
    1、实验原理
    在这里插入图片描述
    2、数据结构
    typedef struct PNode //PCB
    { struct PNode *next; //定义指向下一个节点的指针
    char name[10]; //定义进程名,并分配空间
    int All_time; //定义总运行时间
    int Runed_Time; //定义已运行时间
    char state; //定义进程状态Ready/End
    }
    *Proc; //指向该PCB的指针
    int ProcNum; //总进程数
    3、算法设计
    void SJP_Simulator(Proc &H)
    {
    cout << endl << “-------------START-----------------\n”;
    int flag = ProcNum; //记录剩余进程数
    int round = 0; //记录轮转数
    Proc p = H->next;
    while (p->All_time>p->Runed_Time)
    {
    round++;
    cout << endl << “Round” << round << “–正在运行” << p->name << “进程” << endl;
    p->Runed_Time++; //更改正在运行的进程的已运行的时间
    Displnfo(H); //输出此时为就绪状态的进程 的信息
    if (p->All_time = = p->Runed_Time)
    {
    //判断该进程是否结束
    p->state = ‘E’;
    flag–;
    cout << p->name << “进程已运行结束,进程被删除!\n”;
    }
    p = p->next;
    while (flag && p->All_time == p->Runed_Time)
    p = p->next; //跳过先前已结束的进程
    }
    cout << endl << “-------------------END-----------------\n”;
    }
    四、实验结果
    在这里插入图片描述
    五、体会与收获
    时间片轮转算法中,系统将所有的就绪程序按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片(一个较小的时间单元)。轮转法是一种剥夺式调度,当执行的时间片用完时,调度程序停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片,就这样一次又一次地执行,一次又一次地等待,直到该进程的任务完成。时间片轮转调度算法特别适合于分时系统中使用。该算法的难度和关键在于选择合理的时间片。如果时间片过长,时间片轮转法就变成了先来先服务调度算法,如果时间片过小,则系统会花费大部分时间用于上下文切换。

    六、源代码
    #include
    #include
    using namespace std;
    typedef struct PNode ///PCB
    {
    struct PNode *next; ///定义指向下一个节点的指针
    char name[10]; ///定义进程名,并分配空间
    int All_time; ///定义总运行时间
    int Runed_Time; ///定义已运行时间
    char state; ///定义进程状态Ready/End
    }
    *Proc; ///指向该PCB的指针
    int ProcNum; ///总进程数
    ///初始化就绪队列
    void lnitPCB(Proc &H)
    {
    cout << “请输入总进程个数:”;
    cin >> ProcNum; ///进程总个数
    int Num = ProcNum;
    H = (Proc)malloc(sizeof(PNode)); ///建立头结点
    H->next = NULL;
    Proc p = H; ///定义一个指针
    cout << “总进程个数为” << ProcNum << “个,请依次输入相应信息”<<endl;
    cout << endl;
    while (Num–)
    {
    p = p->next = (Proc)malloc(sizeof(PNode));
    cout << “进程名,总运行时间,已运行时间:”;
    cin >> p->name >> p->All_time >> p->Runed_Time;
    p->state = ‘R’;
    p->next = NULL;
    }
    p->next = H->next;
    }
    ///输入运行中的进程信息
    void Displnfo(Proc H)
    {
    Proc p = H->next;
    do
    {
    if (p->state != ‘E’) ///如果该进程的状态不是End 的话
    {
    cout << “进程名:” << p->name << “\t总运行时间:” << p->All_time << “\t已运行时间” << p->Runed_Time << “\t状态:” << p->state << endl;
    p = p->next;
    }
    else p = p->next;
    } while (p != H->next); ///整个进程链条始终完整,只是状态位有差异
    }
    ///时间片轮转法
    void SJP_Simulator(Proc &H)
    {
    cout << endl << “-------------START-----------------\n”;
    int flag = ProcNum; ///记录剩余进程数
    int round = 0; ///记录轮转数
    Proc p = H->next;
    while (p->All_time>p->Runed_Time)
    {
    round++;
    cout << endl << “Round” << round << “–正在运行” << p->name << “进程” << endl;
    p->Runed_Time++; ///更改正在运行的进程的已运行的时间
    Displnfo(H); ///输出此时为就绪状态的进程 的信息
    if (p->All_time = = p->Runed_Time)
    {
    //判断该进程是否结束
    p->state = ‘E’;
    flag–;
    cout << p->name << “进程已运行结束,进程被删除!\n”;
    }
    p = p->next;
    while (flag && p->All_time == p->Runed_Time)
    p = p->next; ///跳过先前已结束的进程
    }
    cout << endl << “-------------------END-----------------\n”;
    }
    int main()
    {
    Proc H;
    lnitPCB(H); ///数据初始化
    Displnfo(H); ///输出此刻的进程状态
    SJP_Simulator(H);///时间片轮转法
    system(“pause”);
    }

    展开全文
  • 时间片轮转法实现处理机调度的程序设计提示如下: (1)假设系统有n个进程,每个进程用一个进程控制块(PCB)来代表。进程控制块的格式如下表所示,且参数意义也相同。 进程名 链接指针 到达时间 估计运行...
  • 时间片轮转法模拟进程调度算法

    热门讨论 2011-11-11 10:45:50
    模拟时间片轮转法进程调度的小程序,程序简单明了,适合学生用来写实验报告
  • 这个是关于操作系统进程管理实验时间片轮转法的源程序
  • 设计一个按照时间片轮转法实现处理机调度的程序。 (1) 假设系统有n个进程,每个进程用一个进程控制块(PCB)来代表。进程控制块的格式如下表所示,且参数意义也相同。(2) 按照进程到达的先后顺序排成一个循环...
  • 用java实验时间片轮转法调度实验,基于MVC框架,界面简单,功能完好,代码简单易懂~
  • 请注意:在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。在这里省去了这些工作,仅用“已运行时间+1”...
  • 以下是本学期操作系统课程设计的题目,写这篇博客为了记录通过了紧张的向老师答辩,分享此实验编译后的程序,帮助其他人学习时间片轮转法,避免陷入理解的误区。本人自我感觉输出界面和相关信息已经很简明,功能相对...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼...public class 时间片轮转法 {public static void fresh(int p[],String Q[]){int w1,w2,m;String x;for(w1=0;w1for(w2=w1+1;w2if(p[w1]>p[w2]) {m=p[w1];p[w1...
  • 本片博文分享操作系统课程设计–使用多线程模拟时间片轮转法调度算法 实验环境:ubuntu18.04 ,VS Code 1、题目: 设计一个按照时间片轮转法实现处理机调度的程序,时间片轮转法实现处理机调度的程序设计提示如下: ...
  • import random class PCB: # 进程的优先权 pro_pri = [] # 进程名,定义为一个列表 ...') # 选择算法 s=int(input("请输入1选择优先权算法,输入其他任意数字选择时间片轮转法:")) if s==1: main() else: main1()
  • 设计一个按照时间片轮转法实现处理机调度的程序。 实验内容 (1) 假设系统有n个进程,每个进程用一个进程控制块(PCB)来代表。进程控制块的格式如下表所示,且参数意义也相同。 进程名 链接指针 到达...
  • @TOC加粗样式 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown...在创作中心设置你喜爱的代码高亮样式,Markdown 将代码显示选择的高亮样式 进行展
  • 设计一个按时间片轮转法实现处理器调度的程序 (1) 假定系统有5个进程,每个进程用一个PCB来代表。PCB的结构为: **·**进程名——如Q1~Q5。 **·**指针——把5个进程连成队列,用指针指出下一个进程PCB的首地址。 *...
  • /*小弟初出茅庐,菜鸟一个,各路大神请多指教。*/ /*这是实验课题目,上课时写的,不是很完整,仅当留着做.../*****时间片轮转法进行CPU调度算法********/ #include<stdio.h> #include<malloc.h> #incl...
  • 一、 实验目的 在采用多道程序设计的系统中,有若干个进程同时处于就绪状态。当就绪进程个数大于...3、 编制两个调度算法,进程数由用户从键盘输入 (1)时间片轮转法(时间片为2) (2)优先数算法 初始优先数 = 5.
  • 实验二 进程调度 一、 实验目的 1. 理解进程运行的并发性。  2. 理解处理器的三级调度。...5. 掌握时间片轮转的进程调度算法。  二、 实验设备 1. 安装windows或者linux操作系统的PC机 2. 
  • 操作系统课程设计:设计一个按照时间片轮转法实现处理机调度的程序 一:时间片轮转法实现处理机调度的程序设计提示如下: (1) 假设系统有n个进程,每个进程用一个进程控制块(PCB)来代表。进程控制块的格式如下表...
  • 1)本程序是由Dev-C++4.9.9.2编译通过,并生成.exe执行文件,不存在逻辑上的错误。...(3)进程调度算法模拟,用动态优先数及时间片轮转法 实现进程调度。采用数据结构单链表实现。 (4)最后祝各位学有所成。

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 129
精华内容 51
关键字:

时间片轮转法实验