• 实验二


    实验二、pcb进程

    专业 网络工程   姓名 方俊晖 学号 201406114309

    一、        实验目的

    通过本实验可以加深对有关进程控制块、进程队列的概念的进一步理解。

    二、        实验内容和要求

         1.进程PCB的结构体定义

         2.定义结构体

         3.输入进程序列

         4.排序(按到位时间)

         5.输出进程运行的结果

    三、        实验方法、步骤及结果测试

    #include<stdio.h>
    typedef struct PCB
    {
    int time;
    int member;
    int head;
    int end;
    }pcb;

    void main()
    {
    int a,b,c,flag=0;
    pcb i[10],j;
    printf("请输入进程个数:");
    scanf("%d",&a);
    for( b=0;b<a;b++){
    printf("请输入第%d个进程时间:",b+1);
    scanf("%d",&b[i].time);
    i[b].member=b+1;
    i[b].head=i[b].end=0;
    }
    for(b=0;b<a;b++)
    {
    for(c=0;c<a;c++)
    {
    if(i[c].time>i[b].time)
    {
    j=i[b];
    i[b]=i[c];
    i[c]=j;
    }

    }}

    for(b=0;b<a;b++)
    {
    for(c=0;c<=i[b].time;c++)
    {
    if(c==i[b].time)
    {
    i[b].head=flag;
    i[b].end=flag=flag+c;
    printf("进程名称:%d\n完成用时为:%d\n所需时间为:%d \n\n",i[b].member,c,flag);
    }
    }
    }
    for(b=0;b<a;b++)
    {
    printf("执行第%d个进程\n开始时间:%d\n结束时间:%d\n",i[b].member,i[b].head,i[b].end);
    }

    }

    2.原理分析

    主函数:实现对函数的运用

    void main()
    {
    int a,b,c,flag=0;
    pcb i[10],j;
    printf("请输入进程个数:");
    scanf("%d",&a);
    for( b=0;b<a;b++){
    printf("请输入第%d个进程时间:",b+1);
    scanf("%d",&b[i].time);
    i[b].member=b+1;
    i[b].head=i[b].end=0;
    }
    for(b=0;b<a;b++)
    {
    for(c=0;c<a;c++)
    {
    if(i[c].time>i[b].time)
    {
    j=i[b];
    i[b]=i[c];
    i[c]=j;
    }

    }}

    for(b=0;b<a;b++)
    {
    for(c=0;c<=i[b].time;c++)
    {
    if(c==i[b].time)
    {
    i[b].head=flag;
    i[b].end=flag=flag+c;
    printf("进程名称:%d\n完成用时为:%d\n所需时间为:%d \n\n",i[b].member,c,flag);
    }
    }
    }
    for(b=0;b<a;b++)
    {
    printf("执行第%d个进程\n开始时间:%d\n结束时间:%d\n",i[b].member,i[b].head,i[b].end);
    }

    }

    定义结构体:

    typedef struct PCB
    {
    int time;
    int member;
    int head;
    int end;
    }pcb;

    实验结果:

    实验总结

    遇到问题:

    长时间没有用过C++,对C++的运用不太灵活,对结构体的定义,因此在这过程中需要对PCB进程管理反复试验,才能完成。

  • 相关阅读:
    nodejs express搭建一个网站整理
    nodejs http post 请求带参数
    express respond.send 和 end的区别
    .net程序员做的第一个安卓APP
    angularjs ui-grid如何动态设置行高
    错误处理(Operation Result)方法
    jquery validation yyyy-MM-dd格式日期在ie中无法验证通过
    PAT (Basic Level) Practise (中文)- 1010. 一元多项式求导 (25)
    PAT (Basic Level) Practise (中文)- 1007. 素数对猜想 (20)
    PAT (Basic Level) Practise (中文)- 1012. 数字分类 (20)
  • 原文地址:https://www.cnblogs.com/amzinghui/p/5389194.html
Copyright © 2020-2023  润新知