91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

CSAPP上的存儲山 可以在linux運行 但是不知道怎么弄成圖形的 只能在終端界面顯示一堆數字 tar vxf mountain tar cd mountain make mountain

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?“clock.h“


/*?Routines?for?using?cycle?counter?*/

/*?Detect?whether?running?on?Alpha?*/
#ifdef?__alpha
#define?IS_ALPHA?1
#else
#define?IS_ALPHA?0
#endif

/*?Detect?whether?running?on?x86?*/
#ifdef?__i386__
#define?IS_x86?1
#else
#define?IS_x86?0
#endif




/*?Keep?track?of?most?recent?reading?of?cycle?counter?*/
static?unsigned?cyc_hi?=?0;
static?unsigned?cyc_lo?=?0;

#if?IS_ALPHA
/*?Use?Alpha?cycle?timer?to?compute?cycles.??Then?use
???measured?clock?speed?to?compute?seconds?
*/

/*
?*?counterRoutine?is?an?array?of?Alpha?instructions?to?access?
?*?the?Alpha‘s?processor?cycle?counter.?It?uses?the?rpcc?
?*?instruction?to?access?the?counter.?This?64?bit?register?is?
?*?divided?into?two?parts.?The?lower?32?bits?are?the?cycles?
?*?used?by?the?current?process.?The?upper?32?bits?are?wall?
?*?clock?cycles.?These?instructions?read?the?counter?and?
?*?convert?the?lower?32?bits?into?an?unsigned?int?-?this?is?the?
?*?user?space?counter?value.
?*?NOTE:?The?counter?has?a?very?limited?time?span.?With?a?
?*?450MhZ?clock?the?counter?can?time?things?for?about?9?
?*?seconds.?*/
static?unsigned?int?counterRoutine[]?=
{
?0x601fc000u
?0x401f0000u
?0x6bfa8001u
};

/*?Cast?the?above?instructions?into?a?function.?*/
static?unsigned?int?(*counter)(void)=?(void?*)counterRoutine;


void?start_counter()
{
??/*?Get?cycle?counter?*/
??cyc_hi?=?0;
??cyc_lo?=?counter();
}

double?get_counter()
{
??unsigned?ncyc_hi?ncyc_lo;
??unsigned?hi?lo?borrow;
??double?result;
??ncyc_lo?=?counter();
??ncyc_hi?=?0;
??lo?=?ncyc_lo?-?cyc_lo;
??borrow?=?lo?>?ncyc_lo;
??hi?=?ncyc_hi?-?cyc_hi?-?borrow;
??result?=?(double)?hi?*?(1?<??if?(result?????fprintf(stderr?“Error:?Cycle?counter?returning?negative?value:?%.0f\n“?result);
??}
??return?result;
}
#endif?/*?Alpha?*/

#if?IS_x86
void?access_counter(unsigned?*hi?unsigned?*lo)
{
??/*?Get?cycle?counter?*/
??asm(“rdtsc;?movl?%%edx%0;?movl?%%eax%1“?
??????:?“=r“?(*hi)?“=r“?(*lo)
??????:?/*?No?input?*/?
??????:?“%edx“?“%eax“);
}

void?start_counter()
{
??access_counter(&cyc_hi?&cyc_lo);
}

double?get_counter()
{
??unsigned?ncyc_hi?ncyc_lo;
??unsigned?hi?lo?borrow;
??double?result;
??/*?Get?cycle?counter?*/
??access_counter(&ncyc_hi?&ncyc_lo);
??/*?Do?double?precision?subtraction?*/
??lo?=?ncyc_lo?-?cyc_lo;
??borrow?=?lo?>?ncyc_lo;
??hi?=?ncyc_hi?-?cyc_hi?-?borrow;
??result?=?(double)?hi?*?(1?<??if?(result?????fprintf(stderr?“Error:?Cycle?counter?returning?negative?value:?%.0f\n“?result);
??}
??return?result;
}
#endif?/*?x86?*/

double?ovhd()
{
??/*?Do?it?twice?to?eliminate?cache?effects?*/
??int?i;
??double?result;
??for?(i?=?0;?i?????start_counter();
????result?=?get_counter();
??}
??return?result;
}

/*?Determine?clock?rate?by?measuring?cycles
???elapsed?while?sleeping?for?sleeptime?seconds?*/
double?mhz_full(int?verbose?int?sleeptime)
{
??double?rate;
??start_counter();
??sleep(s

評論

共有 條評論