神楽坂雪紀的投研笔记

呐、现在可以和你见面吗?我、等着你哟......

0%

C 标准库中对内存拷贝的操作位于头文件 <string.h>,其中涉及到内存拷贝的函数有:

  1. memcpy:内存拷贝,存在内存重叠的风险,源地址空间与目的地址空间的数据安全皆无法保障
  2. memmove:内存拷贝,可以保证目的地址空间数据的安全(不越界的情况下),但仍可能破坏源地址空间的数据
  3. mempcpy:内存拷贝,返回目的地址空间拷贝末尾后一个地址
    阅读全文 »

【CodeCraft 2019 华为软件精英挑战赛】城市交通动态系统最优配流问题

问题简述

问题定义

  • 在模拟的道路图上为每一辆车规划行驶路线,系统会自动根据规划路线运行。
  • 在路线合法的前提下,最终所有车辆按照规划的路线到达目的地。
  • 系统调度时间短者胜出。系统调度时间指,从系统调度开始时间,至所有车辆全部到达目的地的时间,两者之差作为系统调度时间。
阅读全文 »

故事是这样的,看到一个知乎专栏名为一段鬼畜的代码的分析文章,超想要感受一下,所以顺着作者的思路来梳理一遍。

第一段代码:输出当前时间

根据原作者的描述,这段代码来自国际 C 语言混乱代码大赛,即 IOCCC,找了一番却并没有找到,以下是源代码。

阅读全文 »

量化交易作为一种投资方法,以大量先进的数学模型替代人为的主观判断,依托计算机强大的计算能力,从庞大的数据中计算出能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。交易系统则是指在市场中能实现稳定赢利的一套规则,包括科学的资金管理,有效的分析技术,良好的风险控制。交易系统的最终目的是实现稳定赢利。

阅读全文 »

描述

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

阅读全文 »

描述

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

阅读全文 »

抄一段学术定义开篇:

  • 个人管理学是系统研究个人管理活动的基本规律和一般方法的科学。
  • 核心问题是个人的生存和均衡发展。
  • 最终目标是个人的全面自由发展和自我实现。
  • 个人管理学可以用于指导对个人的人生目标、思想、行为、资源等进行规划、组织和调控,以实现个人的人生目标和人生价值。
  • 个人管理方法:目标管理、任务管理、时间管理、计划管理、实施管理、成果管理、风险管理
  • 个人管理实务:学业管理、职业管理、婚恋和家庭管理、个人知识管理、个人财务管理、个人信息管理、社会关系管理、健康管理、总体管理
阅读全文 »

本文是一篇类似于文献综述的东西,做点前期调研。

随着区块链项目的火热,很多传统技术结合区块链技术都取得了一定程度上的成功。2014 年 Juan Benet 成立了 Protocol Labs 并在开源社区的帮助下发展出了 IPFS[1]:一个去中心化的分布式文件系统。IPFS 的下层构建于对等网络交换协议,其核心是用于索引数据的分布式哈希表(DHT)。

阅读全文 »

8102 年捣鼓着寻思着就过去了,陆续看了网易云音乐、哔哩哔哩以及支付宝出的个人年终报告,尤其是网易云的报告,激起了漫漫回忆。从18年初一直到18年6月,这段时间一直处于持续的高压状态,期间一直循环着 yousa 的歌,一边生疏地用着调试工具调试着内核,感觉没多久前的事情,现在都感觉有点陌生了。时间冲淡了点点滴滴,再次一一回忆起来,这一年做了什么、有什么遗憾、成绩与不足、经验与教训、计划完成情况、新一年的计划....,整理归档一番还是很有必要的。那么接下来就照着下面的顺序来顺一顺。

阅读全文 »

IPFS(InterPlanetary File System,星际文件系统),是一个面向整个互联网、基于点对点传输的去中心化分布式文件系统。通过对网络通信、数据处理方法和传输协议等过程的封装,IPFS 能够将运行在多种异构网络上的节点存储资源组织起来,同时向每个节点提供整个 IPFS 网络的存取服务。白皮书中列出了如下几个特点:

阅读全文 »

故事是这样的,原导师离职,所以更换了导师,加入了一个搞分布式文件系统的课题组。暂时给的课题是先学习 ceph 和 ipfs,并把环境搭建起来分析源码。导师留下了几台电脑没人用,所有就拿过来重整了一下。

本学期校园网打击个人 WiFi 的行为可谓到了极端的地步,根据脚本日志显示,路由器通过 drcom.py 连接的方式平均每天要掉 8 次以上,而且还会每隔十几分钟就中断连接数十秒,真是非常难受了。于是暂时的解决方案是这样的:

阅读全文 »

核心数据结构分析

fios 队列结构:

1
2
3
4
5
6
struct fios_queue {
pid_t pid; // 进程的pid
struct rb_node fiosq_node; // 将fios queue插入到fios rb-tree,主要用于在dispatch阶段,快速的取出下一个要被处理的fios queue
struct rb_node pid_node; // 将fios queue插入到pid rb-tree,主要用于在插入请求add request阶段,能够快速的通过进程pid找到要插入的fios queue
struct rb_root rq_list; // 组织请求
struct list_head fifo; // 为了确保不会出现请求饥饿

阅读全文 »

内核版本:Linux-4.19

Lightnvm 与 pblk

Lightnvm 与 pblk 的关系,类似于 linux 块层与 IO 调度器之间的关系。即在 lightnvm 中可以有多种 FTL 的实现,这里 pblk 就是一种 FTL 的实现。Lightnvm 子系统在支持PPA接口的块设备的基础上进行初始化。该模块使内核能够通过内部 nvm_dev 数据结构和 sysfs 等来暴露设备的几何结构信息。通过这种方式,FTL 和用户空间的应用程序可以在使用前就了解到设备的底层信息。此外 Lightnvm 子系统还有一个最重要的功能——管理 target 的划分以及指定用于管理 target 的 FTL。

阅读全文 »

时间片管理

CFQ的时间片管理

CFQ 的时间片管理如下图。每个请求队列 cfq queue 的时间片用完后,都要通过【选择 cfq group -> 选择 service tree -> 选择 cfq queue】的流程,从其自身维护的数据结构中找出下一个要被调度的请求队列,整个选择相当于根据一个优先级顺序不断地遍历这个数据结构。当一个 cfq queue 的时间片用尽,就要等到下一轮遍历回来才能被调度。

阅读全文 »