• 大小: 585KB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: 其他
  • 标签: csapp  proxylab  lab  

资源简介

这是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


评论

共有 条评论