- 博客(76)
- 收藏
- 关注
原创 滴滴沙龙
第一位:王静静 滴滴的任务调度系统 Capricornus 1、数据的依关系:在HDFS上进行标记,同时在关键节点上配置监控指标,以保证任务可回溯执行 2、再调度服务(抛弃传统的每个woker线程一个任务队列): 1、采用一个中控进程: 1、产生一个任务后,由该进程根据任务所需的资源,来匹配资源处理能力最适合...
2018-04-02 19:49:53
475
原创 第四章--文件和目录
1、文件的属性信息:1. 属性结构体struct stat;struct stat { mode_t st_mode; //文件类型与访问权限位 ino_t st_ino; //文件i节点编号 dev_t st_dev; //文件所属的文件系统的设备号(包括主设备、次设
2017-11-25 18:41:50
590
原创 滴滴第一期技术沙龙
今天参加了滴滴的第一期技术沙龙,主题是大数据处理。了解到现在的Hadoop社区主要包括如下工具:HDFS(hdaoop文件系统)、MapReduce(一次性的任务计算框架)、Hive、Hbase(相当于数据库)、Spark(时间段内的实时处理)、strom(一行数据处理)、kafka(消息发送)、Flume(数据传送)、Yarn(任务调度系统)。首先是HDFS。HDFS是一种文件系统,假设要在10
2017-11-19 15:27:06
879
原创 Linux的CFS(完全公平调度)算法
1.几个重要的概念: 每个进程都有一个nice值, 表示其静态优先级, nice值和进程的权重存在如下关系: static const int prio_to_weight[40] = { /* -20 */ 88761, 71755, 56483, 46273, 36291, /* -15 */ 29154, 2325
2015-07-27 11:18:43
11397
原创 O(1)调度算法
1.进程有两个优先级,一个是静态优先级,一个是动态优先级.静态优先级是用来计算进程运行的时间片长度的,动态优先级是在调度器进行调度时用到的,调度器每次都选取动态优先级最高的进程运行.静态优先级的计算:nice值和静态优先级之间的关系是:静态优先级=100+nice+20而nice值的范围是-19~20,所以普通进程的静态优先级的范围是100~139进程运行的时间片长度的计算:静态优先级<120,
2015-07-22 22:08:58
6238
原创 内核抢占和schedule()函数的分析
1.线程描述符:struct thread_info { struct task_struct *task; struct exec_domain *exec_domain; __u32 flags; __u32 status; __u32 cpu;
2015-07-22 17:31:33
2748
原创 fork系统调用的执行过程
1.Linux提供了三个系统调用用于创建进程,分别是fork,vfork,clone:fork系统调用: 内核采用写时复制技术对传统的fork函数进行了下面的优化.即子进程创建后,父子进程以只读的方式共享父进程的资源(并不包括父进程的页表项).当子进程需要修改进程地址空间的某一页时,才为子进程复制该页.采用这样的技术可以避免对父进程中某些数据不必要的复制.vfork系统调用: 使用vfork函数创建
2015-07-21 21:14:15
3174
原创 内核中如何得到进程描述符的地址
1.几个重要的结构: <进程描述符>:struct task_struct 描述一个进程的所有信息的结构,包含众多描述进程属性的字段,以及指向其他与进程相关的结构体的指针从上图可以得知,struct task_struct结构中存在如下重要的字段:thread_info:struct thread_info,线程描述符,里面包含了指向进程描述符的指针mm: struct mm_struct,指
2015-07-21 17:55:25
1176
原创 Linux的虚拟文件系统
1.几个重要的数据结构: <超级块>: 一个已安装的文件系统对应一个超级块1318struct super_block {1319 struct list_head s_list; /* Keep this first */1320 dev_t s_dev; /* searc
2015-07-20 23:19:33
555
原创 Linux进程的虚拟地址空间
1.以32位系统为例,Linux系统中每个进程共有3GB的用户地址空间,当用户调用系统调用时,内核线程会代表进程运行,此时是在内核空间内运行的,故所有进程共享1GB的内核空间. 所以,总的来说,每个进程可用的地址空间共有4GB2.进程的3GB用户地址空间由下图所示: 可以看出,进程的用户地址空间从0x00000000--0xbfffffff(2^30+2^31),依次是代码段,数据段,堆,
2015-07-20 11:24:25
1773
原创 Linux进程的唤醒与睡眠
1.Linux系统的进程有几种状态:TASK_RUNNING(运行状态), TASK_INTERRUPTIBLE(可被信号中断的睡眠状态), TASK_UNINTERRUPTIBLE(不可被信号中断的睡眠状态). 其中处于TASK_RUNNING状态的进程由一颗红黑树组织在一起.俗称运行队列.处于TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE状态的进程由队列组织
2015-07-17 16:26:59
2522
原创 内核定时器的使用
#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <asm/uaccess.h>#include <linux/cdev.h>#include <linux/fs.h>#include <linux/slab.h>#include <linux/types.h>#incl
2015-07-16 17:24:15
416
原创 Linux的中断服务程序
1.几个重要的数据结构:///////////////////////////////////////////////1.struct irq_desc; 表示一个中断号31struct irq_desc;32typedef void (*irq_flow_handler_t)(unsigned int irq,33 struct irq
2015-07-16 16:11:32
1050
原创 Linux下的字符设备驱动程序
1.有如下几个重要的结构体:<include/linux/cdev.h>, 在内核中表示一个真正的字符设备结构struct cdev { struct kobject kobj; struct module *owner; //所属模块 const struct file_operations *ops; //文件操作结构,在写驱
2015-07-14 09:54:27
421
原创 最后的冲刺
还有50天左右的时间,校招就要开始了。从今天开始,记录下自己这段时间的点点滴滴。这段时间的任务,暂时的规划是,复习以前的内容,主要包括: 1.复习以下书籍: Linux内核设计与实现 C和指针 C++ Primer Unix环境高级编程 Unix网络编程 卷I 2.阅读以下书籍: 编程之
2015-07-02 18:36:32
388
原创 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-07-02 18:24:17
358
原创 《古风·三》 李白
秦王扫六合,虎视何雄哉。挥剑决浮云,诸侯尽西来。明断自天启,大略驾群才。收兵铸金人,函谷正东开。铭功会稽岭,聘望琅邪台。刑徒七十万,起土骊山隈。尚采不死药,茫然使心哀。连弩射海鱼,长鲸正崔嵬。额鼻象五岳,扬波喷云雷。鬐鬣蔽青山,何由睹蓬莱。徐市载秦女,楼船几时回。但见三泉下,金棺葬寒灰。
2014-09-04 11:47:51
491
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人