20165214 2018-2019-1 《信息安全系统设计基础》第八周学习总结
教材学习内容总结
1、 一个构造并发服务器的自然方法是,在父进程中接受客户端的连接请求,然后创建一个新的子进程来位每个新客户提供服务。 2、父进程在监听一个监听描述符的连接请求时,如果接受了某个客户端的请求,则派生一个子进程,这个子进程获得服务器描述符表的完整副本。子进程需要关闭它的副本中的监听描述符,父进程关闭它的已链接描述符的副本。 3、对于在父子进程间共享状态信息,进程有一个非常清晰的模型:共享文件表,但是不共享用户地址空间。一个进程不可能不小心覆盖另一个进程的虚拟内存。但是独立的地址空间使得共享状态信息变得困难:因为进程控制以及开销。 4、有时候服务器必须同时给响应两个相互独立的I/O时间,针对这个困境的一个解决方法就是I/O多路复用技术。 5、select函数处理类型为fd_set的集合,也叫做描述符集合。select有一个副作用:修改参数fd_set指向的fd_set,指明读集合的一个子集,称为准备好集合。这个集合是由读集合中准备好可以读了的描述符组成的。该函数返回的值指明了准备好集合的基数。因此,每次调用select时都更新读集合。 6、I/O多路复用可以用作并发事件驱动的 基础。 7、init_pool函数初始化客户端池。clientfd数组表示已链接描述符的集合,其中整数-1表示一个可用的槽位。初始时,已连接描述符集合是空的。 8、每个逻辑流都能访问该进程的全部地址空间,这使得在流之间共享数据变得很容易。 9、在一些重要的方面,线程执行是不同于进程的,因为一个线程的上下文要比一个进程的上下文小得多,线程的上下文切换要比进程的上下文切换要快得多。 10、主线程和其他线程的差别仅在它总是线程中第一个运行的线程。一个线程可以杀死它的任何对等线程,或者等待它的任意对等进程终止。 11、在任何一个时间点上,线程是可结合的或者是可分离的。
代码托管
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 63/63 | 1/1 | 7/7 |
第二周 | 100/163 | 1/2 | 15/22 |
第三周 | 2/4 | 16/38 | |
第四周 | 2/6 | 15/53 | |
第五周 | 1/7 | 17/70 | |
第六周 | 2/9 | 18/88 | |
第七周 | 1/10 | 15/103 | |
第八周 | 2/12 | 14/117 |
计划学习时间:16小时
实际学习时间:14小时