第八周学习总结
文件与硬盘I/O
文件以块为单位进行存储,每块4K 。
Linux inode文件控制块
12(块)+256(一级索引)+256256(二级索引)+256256*256(三级索引)
一个文件最大70G内容.
提高文件的读写速度,使用阵列
每块硬盘使用寿命一年.
Raid 0 数据分块备份。
Raid 1数据备份在多块硬盘。
Raid 10 数据分块+多块硬盘备份.
Raid 5,最后一块磁盘存储校验位(异或算法),任何一块磁盘坏了,通过校验形象校验出来数据。将校验位,螺旋式的分摊到各个盘里。缺点,如果两块硬盘坏了,就无法工作了。
Raid 6,记录两个校验信息
时间复杂度
并不是计算程序具体运行的时间,而是算法执行语句的次数。
队列可以解决最短路径。出队列前,记录一下前一个节点就行。
平衡二叉树,左右紫薯深度只差的绝对值不超过1.通过左右旋转保证平衡。
红黑树最多只需要3次旋转就能重新达红黑平衡,时间复杂度为o(1)
递归算法之快排时间复杂度:n*log(n)
贪心算法是局部最优解
很多动态规划可以展开成一个二维表格来分析。最优解的比较。可以达到全局最优。
并不是每次请求都需要域名解析,大概每半小时搞一次域名解析。
链路层是mac地址
网络层是ip地址。
Tcp三次握手建立连接,四次挥手关闭连接。
非阻塞的网络编程
阻塞:为每个socket链接,建立一个线程来处理。可以利用线程池来提高线程利用率。
非阻塞:线程不会被网络的超时而被阻塞掉。有限的线程处理更多的链接。事件监听。
select需要遍历所有socket
Epoll socket将事件放到eventpoll里面,所以只需要遍历eventpoll就可以了。效率要高很多。
多路复用,多个channel可以共用一个selector。
评论