资源简介
这是csapp最后一个lab, proxylab。填补了代码实现了一个网络代理,总的来说不是很难,希望对大家有帮助
代码片段和文件信息
#include
typedef struct
{
char send_message[MAXLINE];
char back_message[MAX_object_SIZE];
unsigned int lru;
char *back_bufp;
}cache_t;
cache_t cache[CACHE_NUM];
sem_t mutex_t;
void cache_init();
int find_cache(char *);
int find_replacement();
void replace_cache(char * char * int int);
void update_lru(int);
static unsigned int req_time = 0;
void cache_init()
{
int i;
for(i = 0 ; i < CACHE_NUM ; ++i)
{
memset(cache[i].back_message ‘\0‘ sizeof(cache[i].back_message));
memset(cache[i].send_message ‘\0‘ sizeof(cache[i].send_message));
cache[i].lru = 0;
cache[i].back_bufp = NULL;
}
return;
}
/* check cache hit */
int find_cache(char * send_message)
{
int i;
for(i = 0 ; i < CACHE_NUM ; ++i)
if(strncasecmp(send_message cache[i].send_message MAXLINE) == 0)
break;
return i;
}
/* find the replace cache */
int find_replacement()
{
int t = INF ret = -1 i;
for(i = 0 ; i < CACHE_NUM ; ++i)
{
if(cache[i].lru < t)
{
t = cache[i].lru;
ret = i;
}
}
return ret;
}
/* update access time of each cache block*/
void update_lru(int index)
{
/* the time is a global variable so we have to protect it*/
P(&mutex_t);
++req_time;
cache[index].lru = req_time;
V(&mutex_t);
}
/* do replacement*/
void replace_cache(char * send_message char * back_message int bias int index)
{
int i;
for(i = 0 ; i < MAXLINE ; ++i)
cache[index].send_message[i] = send_message[i];
for(i = 0 ; i < MAX_object_SIZE ; ++i)
cache[index].back_message[i] = back_message[i];
cache[index].back_bufp = cache[index].back_message + bias;
/* the time is a global variable so we have to protect it*/
P(&mutex_t);
++req_time;
cache[index].lru = req_time;
V(&mutex_t);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1732 2013-12-29 22:41 proxyhandin\cache.c
文件 17716 2013-12-29 22:41 proxyhandin\csapp.c
文件 5581 2013-12-29 22:41 proxyhandin\csapp.h
文件 427 2013-12-29 22:41 proxyhandin\Makefile
文件 595 2013-12-29 22:41 proxyhandin\port_for_user.pl
文件 9195 2013-12-29 23:21 proxyhandin\proxy.c
文件 1001 2013-12-29 22:41 proxyhandin\README
目录 0 2013-12-29 22:50 proxyhandin
文件 633150 2015-01-14 10:25 proxylab测试报告.docx
----------- --------- ---------- ----- ----
669397 9
- 上一篇:csapp lab archlab 解答
- 下一篇:AD5933资料
相关资源
- csapp lab archlab 解答
- 傅里叶特征描述子图像匹配
- 光伏三相逆变的有功无功调节锁相环
- CVI对普通USB摄像头的控制代码
- labview读取键盘
- labview条形码识别
- 光流图像配准
- 基于labview的步进电机控制
- SL257lab实验答案
- QRS起点终点检测
- 基于LabVIEW的交通灯设计259684
- labview设置共享变量以使其可以在两台
- SVM with mosek for banana
- 应用牛顿法求方程cos(x)cosh(x)-
- USB4711采集卡采集程序
- labview 自动售货机
- 用信号发生器控件和示波器控件设计
- LabVIEW创建波形,回放波形,TDMS存储
- labview的modbus通讯方式
- 一个mantlab写的该程序完成16个脉冲信
- 电动汽车有序充放电.rar
- 二自由度机械臂模糊PID控制.zip
- labview读取声音文件
- 基于Labview的用户登录程序
- Labview界面切换
- labview密码清除软件.rar
- ldpc完整的系统编译仿真
- 深入理解计算机系统原书第三版中文
- 基于labview的音乐播放器.rar
- LabVIEW读取TDMS文件
评论
共有 条评论