[20210828]如何實現2.txt

lfree發表於2021-09-02

[20210828]如何實現2.txt

--//核心引數kernel.sem的探究,需要寫一個命令,看看processes,nsems,semaphores_used_arrays的關係,自己看看如何實現.

$ seq 196 1 204 | xargs -IQ echo "scale=0;Q;a=(Q+4)/4;scale=3;b=Q/(a-4);a;b" | bc | tr -d '\r' | paste - - -
196     50      4.260
197     50      4.282
198     50      4.304
199     50      4.326
200     51      4.255
201     51      4.276
202     51      4.297
203     51      4.319
204     52      4.250

--//以上按照2^2來分組的情況.最後一列輸出使用ceil,就是對應semaphores arrays的數量。
--//寫的更復雜一些,分析processes=196 ~ 204,分組 2^N (N=1,2,3,4)的情況。

$ seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=2^Q'"
$ seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'scale=0;a=(Z+4)/c;scale=3;b=Z/(a-4);Z;c;a;b;'"

$ paste -d";"  <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=2^Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'scale=0;a=(Z+4)/c;scale=3;b=Z/(a-4);Z;c;a;b;'") | bc | tr -d "\r" | paste - - - -
196     2       100     2.041
197     2       100     2.052
198     2       101     2.041
199     2       101     2.051
200     2       102     2.040
201     2       102     2.051
202     2       103     2.040
203     2       103     2.050
204     2       104     2.040
196     4       50      4.260
197     4       50      4.282
198     4       50      4.304
199     4       50      4.326
200     4       51      4.255
201     4       51      4.276
202     4       51      4.297
203     4       51      4.319
204     4       52      4.250
196     8       25      9.333
197     8       25      9.380
198     8       25      9.428
199     8       25      9.476
200     8       25      9.523
201     8       25      9.571
202     8       25      9.619
203     8       25      9.666
204     8       26      9.272
196     16      12      24.500
197     16      12      24.625
198     16      12      24.750
199     16      12      24.875
200     16      12      25.000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201     16      12      25.125
202     16      12      25.250
203     16      12      25.375
204     16      13      22.666
--//說明:輸出順序 processes group nsems semaphores_used_arrays.
--//隨手寫了一個類似的指令碼,結果不貼出了。

seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'"
seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'"

paste -d";" <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'")
paste -d";" <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'") | xargs -IY echo 'Ya=(d+4)/2^c;scale=3;b=d/(a-4);d;2^c;a;b;' | bc| tr -d '\r'| paste - - - -

paste -d";" <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'") | xargs -IY echo 'Ya=(d+4)/2^c;scale=3;b=d/(a-4);print d," ",c," ",a," ",b,"\n"' | bc
paste -d";" <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'") | xargs -IY echo 'Ya=(d+4)/2^c;scale=3;b=d/(a-4);print d,"\t",c,"\t",a,"\t",b,"\n"' | bc

paste -d";" <(seq 4 | sed -n "p;p;p;p;p;p;p;p;p"| xargs -IQ echo 'scale=0;c=Q'  ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'") | xargs -IY echo 'Ya=(d+4)/2^c;scale=3;b=d/(a-4);print d,"\t",c,"\t",a,"\t",b,"\n"' | bc

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2789968/,如需轉載,請註明出處,否則將追究法律責任。

相關文章