资源简介
icarnegie ssd6 exercise6 答案
代码片段和文件信息
/*
test.cpp
A test program for the timestamp library.
*/
#include
using namespace std;
#include
#include
#include
#include
#include
#include se.h>
#include “tsc.h“
/*
void spin( int thread_number int iteration_count
int report_mode int threshold )
Create a table of readings from the timestamp counter
and print a report to stdout.
report_mode should be either REP_DUMP in which case all
the entries should be output or REP_SWITCH in which case
only the switches should be noted. In the latter case
threshold will be used as a threshold for what constitutes
a switch unless it‘s 0 in which case the minimum threshold
will be calculated.
*/
void spin( int process_number
int iteration_count
int report_mode
int report_count
int threshold );
/*
int make_thread( ... )
Create a thread to run spin() passing it the given arguments
and return 0. Or fail and return 1.
*/
int make_thread( int process_number
int iteration_count
int report_mode
int report_count
int threshold );
/*
Cruft needed to get threads working
*/
#ifdef _MSC_VER
#include
#include se.h>
#include
/*
semaphore synchronization primitive.
*/
typedef HANDLE sem_t;
CRITICAL_SECTION output_lock;
/*
Initialise a semaphore.
*/
void sem_init( sem_t *sem int init int max ) {
*sem = CreateSemaphore( NULL init max NULL );
}
/*
Wait for a semaphore (the P() operation).
*/
void sem_wait( sem_t *sem ) {
WaitForSingleobject( *sem INFINITE );
}
/*
Release a semaphore (the V() operation ).
*/
void sem_release( sem_t *sem ) {
ReleaseSemaphore( *sem 1 0 );
}
/*
The semaphore for threads returning.
*/
sem_t semaphore;
signed __int64 gstart;
struct spin_args {
spin_args( int p int i int d int r int t ) {
process_number = p;
iteration_count = i;
report_type = d;
report_count = r;
threshold = t;
}
int process_number;
int iteration_count;
int report_type;
int report_count;
int threshold;
};
/*
This is the function we want _beginthread to spawn at.
*/
void __cdecl _msc_spin( void *param ) {
spin_args args = *((spin_args *) param);
delete (spin_args *) param;
spin( args.process_number args.iteration_count
args.report_type args.report_count args.threshold );
sem_release( &semaphore );
}
/*
Create the thread.
*/
int make_thread( int p int i int o int r int t ) {
spin_args *s = new spin_args( p i o r t );
sem_wait( &semaphore );
if (_beginthread( &_msc_spin 0 s ) == -1) {
sem_release( &semaphore );
cerr << “...failed: “ << errno << endl;
return 1;
}
return 0;
}
#endif
void calc(void * param) {
// Old algorithm fails under certain OS‘s on mobile processors
// becaus
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 475 2010-01-26 11:12 ex6\part1\graph\answers.txt
文件 3163 2002-10-11 11:49 ex6\part1\graph\clsData.cls
文件 1586 2002-10-11 09:09 ex6\part1\graph\clsThread.cls
文件 14243 2002-10-29 09:55 ex6\part1\graph\frmGraph.frm
文件 49152 2002-10-29 09:57 ex6\part1\graph\graph.exe
文件 802 2002-10-29 09:56 ex6\part1\graph\graph.vbp
文件 2061 2010-01-26 01:47 ex6\part1\graph\output.out
文件 20543 2010-01-16 11:45 ex6\part1\graph.zip
文件 125 2010-01-26 01:44 ex6\part1\Timestamp\run.cmd
文件 32 2010-01-16 14:50 ex6\part1\Timestamp\simplerun.cmd
文件 10388 2008-05-02 21:24 ex6\part1\Timestamp\test.cpp
文件 184320 2005-08-17 11:31 ex6\part1\Timestamp\Timestamp.exe
文件 4069 2008-05-02 21:27 ex6\part1\Timestamp\Timestamp.vcproj
文件 2126 2002-10-04 14:12 ex6\part1\Timestamp\tsc.c
文件 1158 2002-08-03 19:19 ex6\part1\Timestamp\tsc.h
文件 92755 2010-01-16 11:45 ex6\part1\Timestamp.zip
文件 6244 2010-01-26 12:55 ex6\part2\threadedclient\Debug\BuildLog.htm
文件 67 2010-01-26 12:55 ex6\part2\threadedclient\Debug\mt.dep
文件 3 2010-01-26 12:41 ex6\part2\threadedclient\Debug\run.cmd
文件 60416 2010-01-26 12:55 ex6\part2\threadedclient\Debug\tclient.exe
文件 621 2010-01-26 12:55 ex6\part2\threadedclient\Debug\tclient.exe.intermediate.manifest
文件 437960 2010-01-26 12:55 ex6\part2\threadedclient\Debug\tclient.ilk
文件 601088 2010-01-26 12:55 ex6\part2\threadedclient\Debug\tclient.pdb
文件 66217 2010-01-26 12:55 ex6\part2\threadedclient\Debug\ThreadedClient.obj
文件 461824 2010-01-26 12:55 ex6\part2\threadedclient\Debug\vc90.idb
文件 266240 2010-01-26 12:55 ex6\part2\threadedclient\Debug\vc90.pdb
文件 59904 2008-05-02 21:02 ex6\part2\threadedclient\sclient.exe
文件 1241 2005-03-25 18:09 ex6\part2\threadedclient\servers.h
文件 100221 2008-05-02 20:36 ex6\part2\threadedclient\servers.obj
文件 59904 2008-05-02 21:02 ex6\part2\threadedclient\tclient.exe
............此处省略16个文件信息
相关资源
- 矩阵分析课后答案,作者魏丰,史荣
- 《编译程序设计原理》(金英 金成植
- WCF 面试题及答案
- 数值分析课后习题答案
- 计算机组成原理第二版-唐朔飞著课后
- 数字信号处理教程习题分析与解答(
- 《模拟电子技术基础》详细答案 华成
- 线性代数 课后答案 胡觉亮 全
- 算法设计与分析基础课后答案Anany L
- 东华大学 姚砺 编译原理作业答案
- 电磁场与电磁波第二版答案
- 数据库管理系统原理与设计第三版答
- 操作系统第五版课后习题答案
- 信息安全数学基础习题答案(陈恭亮
- 电力系统分析课后习题答案.pdf
- 矩阵论第四版 程云鹏版答案
- 电力系统分析课后答案
- 哈工程2008年《信号与系统》复试真题
- 哈工程2012年《通信原理、信号与系统
- 高等代数课后答案第三版
- CHowtoProgram源码习题答案.zip
- 数据结构习题集——目前最完整的数
- 模式识别第四版答案pattern recognition
- 2017年上半年软件设计师下午案例分析
- 信号与系统课后习题答案
- 西工大 信号与系统期末考试历年考题
- 操作系统-精髓与设计8e 课后答案及配
- 数据结构试题库集及答案
- 统计学 贾俊平第二版完整答案
- 《应用时间序列分析》 王燕 课后习题
评论
共有 条评论