📄 run-fs-asym.tcl
字号:
#! /usr/sww/bin/tclshset burstsize 30set firstburstsize 0set pause 50set duration 99set redwt 0.002set window 32set qsize 30set rqsize 30set acksz 6set dir "."set tcptype newrenoset opt(bs) burstsizeset opt(fbs) firstburstsizeset opt(pause) pauseset opt(dur) durationset opt(redwt) redwtset opt(win) windowset opt(q) qsizeset opt(rq) rqsizeset opt(acksz) ackszset opt(dir) dirset opt(tt) tcptypeproc getopt {argc argv} { global opt for {set i 0} {$i < $argc} {incr i} { set arg [lindex $argv $i] if {[string range $arg 0 0] != "-"} continue set name [string range $arg 1 end] if {[info exists opt($name)]} { eval "global $opt($name)" eval "set $opt($name) [lindex $argv [incr i]]" } }}proc Asym2WayComputeResults { } { global pause burstStartTime fid errfid cmd iter j rqsize global tcptype_opt rgw_opt dir set thruputsum 0 set thruputs [exec gawk {BEGIN {s="";} {if (index($1,"0,") == 0) { sum += $7; s = sprintf("%s %d", s, $7);}} END {printf "%s %d", s, sum;}} thruput] set thruputsum [exec gawk {{if (match($1,"^0,") == 0) { sum += $7;}} END {printf "%g", sum;}} thruput] for {set src 0} {$src < 2} {incr src} { set responseTimeSum($src) 0 set responseTimeCount($src) 0 set responseTimeAvg($src) 0 } foreach burstfile [glob $dir/{burst*.out}] { set src [exec gawk {{if (NR == 1) print $1;}} $burstfile] set responseTime($src) [exec gawk -v start=[expr $burstStartTime+$pause] -v end=[expr $burstStartTime+$pause+1] {{if (($5 >= start) && ($5 <= end)) {flag = 1; print $6 - $5; }} END {if (flag==0) print -1;}} $burstfile] if {$responseTime($src) == -1} { puts $errfid "$cmd" flush $errfid set responseTimeAvg($src) -1 break } set responseTimeSum($src) [expr $responseTimeSum($src)+$responseTime($src)] incr responseTimeCount($src) } for {set src 0} {$src < 2} {incr src} { if {$responseTimeAvg($src) != -1 && $responseTimeCount($src) != 0} { set responseTimeAvg($src) [expr $responseTimeSum($src)/$responseTimeCount($src)] } } set outstr [format "%2s %11s %26s %3d %6s %2d %8s %8s" $iter [lindex $tcptype_opt $j] [lindex $rgw_opt $j] $rqsize - 1 $thruputsum $responseTimeAvg(0)] puts $fid "$outstr" flush $fid}set rgw_opt {-null -null -acksfirst -acksfirst}set tcptype_opt {-newreno -newrenofs -newreno -newrenofs}getopt $argc $argvset fid [open "$tcptype.res" w]set errfid [open "err-tcptype.res" w]for {set iter 0} {$iter < 30} {incr iter} { set seed [expr int([exec rand 0 1000])] set burstStartTime [exec rand 0 5] foreach rqsize {20 30} { for {set j 0} {$j < [llength $tcptype_opt]} {incr j} { set cmd "../../../../ns.solaris ../test1.tcl -fp -nonfifo -sred -topo asym -mb 4 -bs $burstsize -fbs $firstburstsize -pause $pause -dur $duration -redwt $redwt -win $window -seed $seed -overhead 0.001 -q $qsize -rq $rqsize -acksz $acksz -ton [expr $burstStartTime+$pause] -toff [expr $burstStartTime+$pause+5] -dir $dir [lindex $rgw_opt $j] -dn -burst [lindex $tcptype_opt $j] $burstStartTime -up -$tcptype 40 -up -$tcptype 41 -up -$tcptype 42 -up -$tcptype 43" eval "exec $cmd" Asym2WayComputeResults } }}close $fidclose $errfid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -