首页 > 数据库 > Oracle > [20210828]如何实现2.txt
[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博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2789968/ ,如需转载,请注明出处,否则将追究法律责任。