zoukankan      html  css  js  c++  java
  • 实验二

    实验二、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进程管理反复试验,才能完成。

  • 相关阅读:
    ReSharper License Server
    QGEditors.WinForms WinForms下使用的部分扩展控件
    .net 项目生成时自动更新版本号
    IntelliJ运行下载的Servlet时报错 Error running Tomcat 8.5.8: Unable to open debugger port (127.0.0.1:49551): java.net.SocketException
    在Mac系统中安装及配置Apache Tomcat
    继承
    对象和封装
    事务、视图、索引、备份、还原
    高级查询
    影院售票系统
  • 原文地址:https://www.cnblogs.com/amzinghui/p/5389194.html
Copyright © 2011-2022 走看看