Announcement

Collapse
No announcement yet.

Giúp đỡ thực hành Hệ Điều Hành

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Giúp đỡ thực hành Hệ Điều Hành

    Mong mọi người giúp đỡ bài thực hành Lab4 này ,thanks nhiều ạ....
    3. Chạy thử chương trình mô phỏng giải thuật FCFS sau:
    Yêu cầu:
    - Thực thi đoạn chương trình trên : Nhập dữ liệu input và xuất các giải trị ouput ra màn hình.
    - Vẽ sơ đồ giải thuật và giải thích ý nghĩa đoạn code
    - Thêm vào đoạn code trên để tính Average waiting time và Aveage Turn Around time
    #include<stdio.h>
    #include<conio.h>
    void main()
    {
    char pn[10][10]; //process name
    int arr[10], //arrival time
    bur[10], //burst time
    star[10], //start time
    finish[10], //finish time
    tat[10] //turn around time
    ,wt[10],i,n; //waiting time
    int totwt=0, // total of waiting times
    tottat=0; // total of turn around times
    clrscr();
    printf("Enter the number of processes:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
    printf("Enter the Process Name, Arrival Time & Burst Time:");
    scanf("%s %d %d",&pn[i],&arr[i],&bur[i]);
    }
    for(i=0;i<n;i++)
    {
    if(i==0)
    star[i]=arr[i];
    else
    star[i]=finish[i-1];
    wt[i]=star[i]-arr[i];
    finish[i]=star[i]+bur[i];
    tat[i]=finish[i]-arr[i];
    }
    printf("\nPName Arrtime Burtime Start TAT Finish");
    for(i=0;i<n;i++)
    {
    printf("\n%s\t%6d\t\t%6d\t%6d\t%6d\t%6d",pn[i],arr[i],bur[i],star[i],tat[i],finish[i]);
    totwt+=wt[i];
    tottat+=tat[i];
    }

    4. Viết chương trình mô phỏng giải thuật định thời còn lại với các yêu cầu input và output sau:
    - Với giải thuật SJF, Priority :
    Input:
    Nhập: Số Process
    Nhập: Process Name, Arrival Time & Burst Time
    Output:
    Process Name, Arrival time, Execution time, Waitingtime, Tatime
    Average Waiting Time
    Average Turn Around Time
    - Với giải thuật RR:
    Input:
    Nhập: Số Process
    Nhập: Thời gian quantum
    Nhập: Tên process & estimated time
    Output:
    Estimated Time


    // SJF.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include<stdio.h>
    #include<conio.h>

    void main()
    {
    int bt[20],p[20],wt[20],tat[20],i,j,n,total=0,pos,temp;
    float avg_wt,avg_tat;
    printf("Enter number of process:");
    scanf_s("%d",&n);

    printf("nEnter Burst Time:n");
    for(i=0;i<n;i++)
    {
    printf("p%d:",i+1);
    scanf_s("%d",&bt[i]);
    p[i]=i+1; //contains process number
    }

    //sorting burst time in ascending order using selection sort
    for(i=0;i<n;i++)
    {
    pos=i;
    for(j=i+1;j<n;j++)
    {
    if(bt[j]<bt[pos])
    pos=j;
    }

    temp=bt[i];
    bt[i]=bt[pos];
    bt[pos]=temp;

    temp=p[i];
    p[i]=p[pos];
    p[pos]=temp;
    }

    wt[0]=0; //waiting time for first process will be zero

    //calculate waiting time
    for(i=1;i<n;i++)
    {
    wt[i]=0;
    for(j=0;j<i;j++)
    wt[i]+=bt[j];

    total+=wt[i];
    }

    avg_wt=(float)total/n; //average waiting time
    total=0;

    printf("\nProcess\tBurst Time\tWaiting Time\tTurnaround Time");
    for(i=0;i<n;i++)
    {
    tat[i]=bt[i]+wt[i]; //calculate turnaround time
    total+=tat[i];
    printf("\np%d\t%d\t%d\t%d\n",p[i],bt[i],wt[i],tat[i]);
    }

    avg_tat=(float)total/n; //average turnaround time
    printf("Average Waiting Time=%f\n",avg_wt);
    printf("Average Turnaround Time=%f\n",avg_tat);
    _getch();
    }

    #include<stdio.h>
    #include<conio.h>
    #include<process.h>
    #include<string.h>
    void main()
    {
    char p[10][5];
    int et[10],wt[10],timer=3,count,pt[10],rt,i,j,totwt=0,t,n=5,found=0,m;
    float avgwt;
    clrscr();
    for(i=0;i<n;i++)
    {
    printf("enter the process name : ");
    scanf("%s",&p[i]);
    printf("enter the processing time : ");
    scanf("%d",&pt[i]);
    }
    m=n;
    wt[0]=0;
    i=0;
    do
    {
    if(pt[i]>timer)
    {
    rt=pt[i]-timer;
    strcpy(p[n],p[i]);
    pt[n]=rt;
    et[i]=timer;
    n++;
    }
    else
    {
    et[i]=pt[i];
    }
    i++;
    wt[i]=wt[i-1]+et[i-1];
    }while(i<n);

    count=0;
    for(i=0;i<m;i++)
    {
    for(j=i+1;j<=n;j++)
    {
    if(strcmp(p[i],p[j])==0)
    {
    count++;
    found=j;
    }
    }
    if(found!=0)
    {

    wt[i]=wt[found]-(count*timer);
    count=0;
    found=0;
    }
    }
    for(i=0;i<m;i++)
    {
    totwt+=wt[i];
    }
    avgwt=(float)totwt/m;
    for(i=0;i<m;i++)
    {
    printf("\n%s\t%d\t%d",p[i],pt[i],wt[i]);
    }
    printf("\ntotal waiting time %d\n",totwt);
    printf("total avgtime %f",avgwt);
    }

  • #2
    giúp đỡ là sao bạn?

    Comment


    • #3
      Originally posted by 14520769 View Post
      giúp đỡ là sao bạn?
      Ý là giải giùm mình á b @@

      Comment


      • #4
        ủa cái này chỉ copy paste vô rồi chạy trên ubuntu thôi mà bạn

        Comment


        • #5
          Originally posted by 14520683 View Post
          Ý là giải giùm mình á b @@
          Bạn đóng tiền đi học, thầy cô dạy các bạn để nhận lương dạy học / hướng dẫn. Vậy cớ sao bạn không gặp hay gửi mail trực tiếp cho thầy cô phụ trách thực hành của bạn nhỉ. Giáo dục thì cũng chỉ là một dịch vụ thôi mà.
          Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

          Comment


          • #6
            máy bài này chỉ cần học lý thuyết là làm dc thôi mà.
            Đặng Ngọc Quyên

            Comment


            • #7
              Originally posted by 11520320 View Post
              máy bài này chỉ cần học lý thuyết là làm dc thôi mà.
              Mày học chưa chán hay sao mà còn muốn học tiếp hả.
              Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

              Comment


              • #8
                Originally posted by 11520537 View Post
                Mày học chưa chán hay sao mà còn muốn học tiếp hả.
                Anh qua Hệ điều hành rồi mày.
                Máy bài này dễ òm thôi, do thớt không đọc lý thuyết nên không biết làm thôi. Tao giúp chủ thớt mà m ý kiến gì ??
                Đặng Ngọc Quyên

                Comment

                LHQC

                Collapse
                Working...
                X