第一天
进程与线程内核原理与开发基础 |
Linux进程调度原理 |
- Linux进程生命周期
- Linux进程调度时机
- Linux 进程调度算法
- Linux进程调度机制
- Linux内核线程
|
Linux线程的内核实现原理
|
- Linux线程模型:LinuxThreads和NPTL
- 内核如何用进程模拟线程
- 实时线程创建与抢占
- 硬实时Linux
- 深化:从操作系统本质看进程与线程
|
Linux多进程应用开发 |
- 进程的属性和状态
- 进程的创建、执行、消亡
- 进程相关系统调用
- 守护进程
|
进程间通信 |
- 进程间通信基本概念
- 管道的实现及应用
- 信号的实现与应用
- 消息队列的实现与应用
- 共享内存的实现与应用
- 信号量
|
Linux多线程应用开发 |
- Linux线程模型
- 线程创建、等待、退出
- 线程属性
- 实时线程
- 线程间通信
- pthread_once
- 线程级全局变量:Thread-Specific Data
- 应用与开发实践
|
第二天
多线程开发的高级技术和调试
|
Linux多线程与信号 |
- Linux内核信号处理流程
- Linux信号的分类
- 进程的信号处理
- 多线程情况下的信号处理
- 信号处理函数的要求
- errno与信号
- 应用与开发实践
|
可重入函数、线程安全与异步信号安全
|
- 可重入函数的概念
- 可重入函数与线程安全函数
- 可重入与异步信号安全
- 使函数可重入的经验
- 异步信号安全的库函数
- 信号处理器与线程通信
- 应用与开发实践
|
C/C++库函数和STL的线程安全
|
- POSIX标准的要求
- 线程安全的库函数
- 线程不安全的库函数
- STL容器的线程安全
- 应用与开发实践
|
线程的堆栈与栈溢出
|
- Linux线程堆栈的分配原理
- 查看和设置线程的栈空间
- 线程栈溢出
- 栈溢出保护区
- 应用与开发实践
|
多线程编程模型
|
- 典型的单线程编程模型
- 多线程编程模型
- 流水线模型
- 工作组模型
- 客户端/服务器模型
- 线程池
- 多线程分解的思路
- 并行编程的一些研究课题
- 应用与开发实践
|
多线程与I/O
|
- 阻塞、非阻塞、异步I/O与多线程
- select还是多线程
- 应用与开发实践
|
调试手段与技巧
|
- gdb调试多线程的技巧
- 系统级调试
- 线程级调试
- core dump与gcore
- 内存泄露
- 死锁的判断和调试
- 常见多线程编程错误分析
- 应用与开发实践
|