| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 668 人关注过本帖
标题:求助~关于操作系统模拟的编程
只看楼主 加入收藏
winyeahz
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-12-29
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
求助~关于操作系统模拟的编程
才刚学编程,老师就来了5个作业。还准备要交了,现在求一下各位大大帮帮忙
例如:
2.    进程调度实验
    目的
掌握进程的调度方法。
    内容
将进程的基本状态分为三种:运行、就绪、等待。
选用C语言编写程序,构造就绪和等待两个队列,根据不同的情况分别对就绪和等待两个队列进行出队和排队处理,并在计算机屏幕上给出相应的提示,如:“进程进入等待”、“进程进入就绪”、“进程开始运行”。
    方法
1.    先构造若干简单进程的PCB,其中应包含进程名称、队列指针;
2.    利用PCB构造就绪和等待两个队列;
3.    在main()中,可利用产生随机数函数random(int x)产生三个不同范围的数,它们分别对应进程的三种状态;当随机数落在某个范围时,便激活进程的相应状态和处理工作。

求救啊
作业.rar (8.57 KB)
搜索更多相关主题的帖子: 计算机 操作系统 C语言 老师 
2010-12-29 16:07
winyeahz
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-12-29
收藏
得分:0 
有人可以帮我看看么,1,2个也好啊
2010-12-29 20:03
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:20 
帮忙是要付出代价的

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-12-29 21:32
youdanj
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-5-26
收藏
得分:0 
哈哈,我也是要做这个作业的
2011-05-26 16:49
youdanj
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-5-26
收藏
得分:0 
#include "iostream"
#include "stdio.h"
#include "stdlib.h"
using namespace std;
typedef int ElemType;
typedef struct LNode
{
    ElemType date;
    struct LNode *next;
}
linklist,*link;
void IinitList(link &L)
{
    if(L)delete L;
    L= (link)malloc(sizeof(LNode)) ;
    if (!L) exit(1);
    L->next=NULL;
    cout<<"链表已经建立\n";
}
int listdelete(link &L,int i,ElemType &e)
{
    link p,q; int j;
    p=L;j=0;
    while(p->next&&j<i-1)
    {
        p=p->next;++j;
    }
    q=p->next;
    p->next=q->next;
    e=q->date;free(q);
    cout<<"链表已经删除\n";
    return 1;
}
int listinsert(link &L,int i,ElemType e)
{
    link p,q;
    int j;
    p=L;j=0;
    while(p&&j<i-1)
    {
        p=p->next;++j;
    }
    q= (link)malloc(sizeof(LNode));
    q->date=e;
    q->next=p->next;
    p->next=q; cout<<"链表已经插入\n";
    return 1;
}
void show(link l)
{
    link p; int j;
    p=l;j=0;
    cout<<"链表的值为:\n";
    while(p->next)
    {
        cout<<p->next->date<<endl;
        p=p->next;
    }
}
void destorylinst(link &L)
{
    while(L)
    {
        link p=L;
        L=L->next;
        free(p) ;
    }
    L=NULL;
}
void print()
{
    cout<<"------------------------\n";
    cout<<"------------------------\n";
}
void lookfor(link l,int e)
{
   if(l==NULL)
   cout<<"链表未建立,请先构造链表\n" ;
   else
   {
       link p; int i=0,j=0;
       p=l->next;
       cout<<"你查找值的位置是:\n " ;
       while(p)
       {
           if(p->date==e)
           {
               j++;
               cout<<i+1<<endl;
           }
           p=p->next; i++;
       }
       cout<<"查找完毕\n";
       if(j==0)
           cout<<"你查找的值不在链表中\n";
   }
}
void main()
{
    link L=NULL;
    int k;
    while(1)
    {
        cout<<"按0退出\n"<<"按1建立\n"<<"按2插入\n"<<"按3删除\n"
            <<"按4清空链表\n"<<"按5查找\n" ;
        print();
        int a,i,j;
        cin>>a;
        switch(a)
        {
        case 0: if(L!=NULL)
                    destorylinst(L);
            exit(1);
        case 1:
            IinitList(L);
            k=0;
            print();
            show(L) ;
            cout<<"空的链表\n";
            cout<<"链表长度为: "<<k<<endl;
            print();
            cout<<"请输入值!按回车键后输入下一个,结束输入0再按回车\n";
            int bb;
            cin>>bb;
            while(bb!=0)
            {
                k++;
                listinsert(L,k,bb) ;
                cin>>bb;
            }
            print();
            show(L);
            cout<<"链表长度为: "<<k<<endl;
            print();
            break;
        case 2:
            if(L!=NULL)
            {
                cout<<"输入位置:\n";
                cin>>i;
                while(i>k+1 || i<1)
                {
                    cout<<"位置错误,重新输入插入位置\n" ;
                    cin>>i;
                }
                cout<<"输入植;\n";
                cin>>j;
                listinsert(L,i,j) ;
                k++;
                print();
                show(L);
                cout<<"链表长度为:"<<k<<endl;
                print();
            }
            else
            {
                cout<<"链表不存在,请先建链表\n";
                print();
            }
            break;
        case 3:
            if(L!=NULL)
            {
                cout<<"输入位置:\n";
                cin>>i;
                while(i>k || i<1)
                {
                    cout<<"位置错误,重新输入删除位置\n" ;
                    cin>>i;
                }
                listdelete (L,i,j);
                cout<<"你删除的是:\n";
                cout<<j<<endl ;
                k--;
                print();
                show(L);
                cout<<"链表长度为:"<<k<<endl;
                print();
            }
            else
            {
                cout<<"链表不存在,请先建链表\n";
                print();
            }
            break;
        case 4:
            destorylinst(L) ;
            cout<<"链表已经清空\n";
            print();
            break;
        case 5:
            print();
            cout<<"输入要查找的值;\n";
            int z;
            cin>>z;
            lookfor(L,z);
            print();
            break;
        default:
            break;
        }
    }
delete L;
}
2011-05-26 16:50
youdanj
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-5-26
收藏
得分:0 
第一个的,其他就还没搞定先啦
2011-05-26 16:52
快速回复:求助~关于操作系统模拟的编程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023977 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved