<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bysoulwarden的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bysoulwarden</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bysoulwarden]]></copyright><item><title><![CDATA[2018.7.4 la-rpc心跳与断线重连部分记录]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/80912014</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/80912014</guid><author>bysoulwarden</author><pubDate>Thu, 05 Jul 2018 14:49:07 +0800</pubDate><description><![CDATA[心跳与断线重连主要解决客户端连接时出现的三种问题：（1）client初次连接失败，需要重连（2）server进程关闭，client检测tcp断开重连（3）server断电，client通过心跳检测重连（注：所有情况都默认是在单一server的情况下实现的，即暂时不考虑多服务器多channel的负载均衡实现）一、client初次连接失败，需要重连使用ConnectionListenerb.conne...]]></description><category></category></item><item><title><![CDATA[记录一次非常典型的可见性引起的多线程BUG，用volatile解决]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/80841641</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/80841641</guid><author>bysoulwarden</author><pubDate>Thu, 05 Jul 2018 12:50:10 +0800</pubDate><description><![CDATA[在la-rpc consumer最初使用时，RpcProxy新建一个client，并调用send，使用channel发送信息。if(RpcClient.client==null){
            synchronized (RpcClient.class){
                if(RpcClient.client==null)
                    Rp...]]></description><category></category></item><item><title><![CDATA[shelllab笔记]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/80654537</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/80654537</guid><author>bysoulwarden</author><pubDate>Mon, 11 Jun 2018 17:31:52 +0800</pubDate><description><![CDATA[shlab的目的是完成几个函数，实现一个简单的shell。需要实现的函数如下：• eval: Main routine that parses and interprets the command line. [70 lines]• builtin_cmd: Recognizes and interprets the built-in commands: quit, fg, bg, and job...]]></description><category></category></item><item><title><![CDATA[attacklab笔记]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/80315057</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/80315057</guid><author>bysoulwarden</author><pubDate>Mon, 14 May 2018 21:22:35 +0800</pubDate><description><![CDATA[做完attacklab记点什么，防止以后什么都不记得了。phase1-3用getbuf读取字符串，但不检测栈溢出，正常的gets()在返回前会call一个check函数，检查栈溢出。在lab里通过栈溢出顶掉返回地址，把返回地址变成栈的地址，inject代码到getbuf的栈里或到上层的栈里。在这个过程中明显感受到代码和栈和数据都是在一个地址空间里。phase4-5中增加了两种防止栈溢出的机制：1....]]></description><category></category></item><item><title><![CDATA[寄存器的名称及作用]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/80205385</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/80205385</guid><author>bysoulwarden</author><pubDate>Sat, 05 May 2018 14:21:42 +0800</pubDate><description><![CDATA[在此记录下寄存器的名称及作用，方便查看。

不同体系下寄存器名称：

 

|63..32|31..16|15-8|7-0| 

　　　　　　　|AH..AL..| 

         |AX......|

　　　　|EAX...........| 

|RAX...................|

不同寄存器作用：

rax 作为函数返回值使用

rsp 栈指针寄存器，指向栈顶

rdi...]]></description><category></category></item><item><title><![CDATA[CS:APP:BombLab 4]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/80198982</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/80198982</guid><author>bysoulwarden</author><pubDate>Fri, 04 May 2018 19:33:10 +0800</pubDate><description><![CDATA[这篇文章意为记录下Bomb4中比较微妙的地方。之前经过分析，phase_4需要两个int值，第一个值&amp;lt;=14，第二个为0。又发现&amp;lt;fun4&amp;gt;传回的rax应为0。现在着重分析&amp;lt;fun4&amp;gt;如下：0000000000400fce &amp;lt;func4&amp;gt;:
400fce: 48 83 ec 08             sub    $0x8,%rsp
400fd2: 8...]]></description><category></category></item><item><title><![CDATA[GC机制总结]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/80150769</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/80150769</guid><author>bysoulwarden</author><pubDate>Mon, 30 Apr 2018 17:46:22 +0800</pubDate><description><![CDATA[if 放入堆的对象&amp;gt;edan    进行MinorGC前判断    if edan+s&amp;lt;oldremain||    历次平均进入老年代大小&amp;lt;oldremain        MinorGC    else FullGColdremain:老年代最大连续空闲空间|    ...]]></description><category></category></item><item><title><![CDATA[180419爱奇艺笔试分糖果问题：用Dp解决回溯？]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/80015734</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/80015734</guid><author>bysoulwarden</author><pubDate>Fri, 20 Apr 2018 10:58:49 +0800</pubDate><description><![CDATA[回溯解法如下：public class Main {
    static int count=0;
    public static void main(String[] args) {
        String s=&quot;aaa&quot;;
        int index=1;
        StringBuilder sb=new StringBuilder();
        sb.ap...]]></description><category></category></item><item><title><![CDATA[SICP 2.54 符号列表equal?]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/72972331</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/72972331</guid><author>bysoulwarden</author><pubDate>Fri, 09 Jun 2017 21:59:02 +0800</pubDate><description><![CDATA[(define (equal? x y)
  (cond((and (pair? x) (pair? y))
        (and(equal? (car x) (car y))))
       ((and (not (pair? x)) (not (pair? y)))
        (eq? x y))
       (else false)))
(equal? '(a b c d)]]></description><category></category></item><item><title><![CDATA[SICP 1.45 n次方根]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/70207790</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/70207790</guid><author>bysoulwarden</author><pubDate>Mon, 17 Apr 2017 09:50:50 +0800</pubDate><description><![CDATA[#lang scheme
(define (compose f g)
  (lambda(x)(f(g x))))
(define (repeated term n )
  (if(> n 1)
     (compose (repeated term (- n 1)) term)
     term ))
(define (average-damp f)
  (lambda(x) (averag]]></description><category></category></item><item><title><![CDATA[SICP 1.43]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/70195146</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/70195146</guid><author>bysoulwarden</author><pubDate>Sun, 16 Apr 2017 13:41:13 +0800</pubDate><description><![CDATA[#lang scheme
(define (compose f g)
  (lambda(x)(f(g x))))
(define (inc x)
  (+ x 1))
(define (square x)
  (* x x))
(define (repeated term n )
  (if(> n 0)
     (compose (repeated term (- n 1)) term)]]></description><category></category></item><item><title><![CDATA[SICP 1.41 lambda函数嵌套展开的思考]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/70194633</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/70194633</guid><author>bysoulwarden</author><pubDate>Sun, 16 Apr 2017 12:02:56 +0800</pubDate><description><![CDATA[#lang scheme
(define (double f)
  (lambda(x)(f(f x))))
(define (inc x)
  (+ x 1))
(((double (double double)) inc) 5)
结果为21，说明Inc被调用了16次。
在直觉上，double调用两次，（double double）调用4次，(double (double doub]]></description><category></category></item><item><title><![CDATA[SICP 1.28费马检查与Miller-Rabin检查的思考]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/69525384</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/69525384</guid><author>bysoulwarden</author><pubDate>Fri, 07 Apr 2017 11:51:12 +0800</pubDate><description><![CDATA[费马小定理有两种形式：
（p为不能整除a的素数）
1.a^p≡a(mod p)
2.a^(p-1)≡1(mod p)a
费马检查使用第一种形式，Miller-Rabin检查使用第二种形式。
能完全通过费马检查的数称为绝对假素数，即Carmichael数。而Carmichael数不能完全通过Miller-Rabin检查。
这是因为费马小定理的逆定理不成立，即存在a^p≡a(mod p)成]]></description><category></category></item><item><title><![CDATA[SICP 1.12]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/68491984</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/68491984</guid><author>bysoulwarden</author><pubDate>Thu, 30 Mar 2017 19:31:17 +0800</pubDate><description><![CDATA[(define (pt row col)
  (cond ((= row col) 1)
        ((= col 1) 1)
        (else (+ (pt (- row 1)(- col 1)) (pt (- row 1) col)))))]]></description><category></category></item><item><title><![CDATA[SICP 正则序与应用序]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/68177381</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/68177381</guid><author>bysoulwarden</author><pubDate>Wed, 29 Mar 2017 22:07:43 +0800</pubDate><description><![CDATA[正则序：表达式过程展开，直到只包含基本运算符的表达式。遇到特殊过程，先按特殊过程求值。
应用序：表达式中每个对象都进行代换，逐层进行。]]></description><category></category></item><item><title><![CDATA[SICP 1.11迭代计算方式实现]]></title><link>https://blog.youkuaiyun.com/bysoulwarden/article/details/68159203</link><guid>https://blog.youkuaiyun.com/bysoulwarden/article/details/68159203</guid><author>bysoulwarden</author><pubDate>Wed, 29 Mar 2017 21:51:46 +0800</pubDate><description><![CDATA[(define (three n)
  (three-iter 2 1 0 (- n 2)))
(define (three-iter b m s count)
  (if(= count 0)
     b
     (three-iter (+ b (* m 2)(* s 3)) b m (- count 1))))默认n>=3。]]></description><category></category></item></channel></rss>