每章的小结
第一章:linux 简介
第二章:从内核出发
make oldconfig make menuconfig
make>../somefile make>/dev/null
make -j4
unlikely(); 宏
第三章:进程管理
进程描述符 及 任务结构
task_struct
thread_info
进程状态
进程上下文 进程创建 vfork clone
第四章:进程调度
时间片 调度算法 抢占和上下文切换 睡眠
第五章:系统调用
api 系统调用 内核 参数传递 系统调用上下文 系统调用实现
第六章:中断及中断处理
中断 request_irq() dev_id /proc/interrupts
中断上下文
第七章:下半部 推后的工作(本章不那么容易理解)
任务队列
tasklet
工作队列
软中断
第八章:内核同步
1.并发与死锁 避免并发和防止竞争条件称为并发。
2.到底是什么造成了并发执行。
1.。。。
2.。。
并发:两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生,并且有一点的相互关系
在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
在关系数据库中,允许多个用户同时访问和更改共享数据的进程。SQL Server 使用锁定以允许多个用户同时访问和更改共享数据而彼此之间不发生冲突。
操作系统并发程序执行的特点:
并发环境下,由于程序的封闭性被打破,出现了新的特点:
①程序与计算不再一一对应,一个程序副本可以有多个计算
②并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争某一资源,如处理机、缓冲区等。
③并发程序在执行中是走走停停,断续推进的。
编辑本段并发和并行的区别和联系
并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。
第九章:同步方法
原子操作 原子位操作 atomic_t 32位=24+8位锁
自旋锁 不能休眠
信号量可以休眠 不能用中断上下文 因为中断上下文不休眠。
完成变量 : 一个任务发现信号给需要这个信号的任务 。
顺序和屏障。
第十章:定时器和时间管理
节拍率 hz 一般为100
一秒jiffies = hz
32 的机器上 32位无符号长整形
64的机器上 64位无符号长整形
第十一章 内存管理
kmolloc vmolloc 前者是虚拟地址是连续的 物理地址也连续 后者虚拟地址是连续的 但物理地址未必是连续的
slab层
每个cpu的分配
第十二章 虚拟文件系统
第十三章 块I/O操作
缓冲区头 大于扇区小于页面
bio结构体
请求合并和排序
第十四章 进程地址空间
返回段错误,是因为不正确的访问内存或访问的不是有效内存。
代码段
数据段(全局变量)
bss段(未初始化的全局变量)
是否共享内存是linux 线程和进程的唯一区别。
第十五章 页高速缓存和页回写
pdflush 线程 回写磁盘
第十六章 模块
make -C /kernel/source/location SUBDIRS=$PWD modules