pku2340 Memory management,模拟操作系统catch页分配,最小堆

题意很简单,有一个高速缓存,系统每处理每个请求,如果某个块在使用之后超过10分钟再也没访问过,则清理出catch
可以在堆里丢入空闲的catch页,然后依次处理请求,每次处理前检查已分配的块,如果空闲时间大于10*60秒,则将该块释放(放入空闲堆中)
贴代码
 1# include <cstdio>
 2# include <cstring>
 3# include <queue>
 4# include <cstdlib>
 5# include <vector>
 6using namespace std;
 7priority_queue<int,vector<int>,greater<int> > refer;
 8struct node
 9{
10    int t,num;
11    char op;
12}
;
13vector<node> data;
14int main()
15{
16    char str[100];
17    for(int i=1;i<=30000;i++)
18       refer.push(i);
19    int c[30001];
20    memset(c,0,sizeof(c));
21    while(gets(str))
22    {
23       node tmp;
24       tmp.t=atoi(strtok(str," "));
25       tmp.op=*strtok(NULL," ");
26       if(tmp.op=='.')
27          tmp.num=atoi(strtok(NULL," "));
28       data.push_back(tmp);
29    }

30    int now=0,last=0;
31    for(now=0;now<data.size();now++)
32    {
33       while(data[now].t-data[last].t>=600)
34       {
35            if(c[data[last].num]&&data[now].t-c[data[last].num]>=600)
36            {
37                refer.push(data[last].num);
38                c[data[last].num]=0;
39            }

40            last++;
41       }

42       switch(data[now].op)
43       {
44           case '+':
45              c[refer.top()]=data[now].t;
46              printf("%d\n",refer.top());
47              data[now].num=refer.top();
48              refer.pop();
49              break;
50           case '.':
51              if(c[data[now].num])
52              {
53                 printf("+\n");
54                 c[data[now].num]=data[now].t;
55              }

56              else
57                 printf("-\n");
58              break;
59       }
;
60           
61    }

62    //system("pause");
63    return 0;
64}

65
66

posted on 2010-10-30 23:41 yzhw 阅读(72) 评论(0)  编辑 收藏 引用 所属分类: data struct


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年10月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

公告

统计系统

留言簿(1)

随笔分类(227)

文章分类(2)

OJ

最新随笔

搜索

积分与排名

最新评论

阅读排行榜