摘要:
内核抢占 无论在抢占还是非抢占内核中,运行在内核态的进程都可以自动放弃CPU.称为计划性进程切换.但是,抢占式内核在相应引起进程切换的异步事件的方式上有差异,称为强制性进程切换.抢占式内核的特点: 一个在内核态运行的进程,可能在执行内核函数期间被另一个进程取代.可抢占式的目的是减少用户态进程的分派延迟(即从进程变为可执行状态到它实际开始运行之间的间隔).但是它会引起不容忽视的开销.只有当内核正在执行异常处理程序,且内核抢占没有被显示禁止时,才可能抢占内核.同时本地CPU必须打开本地中断.需要同步的情况: 当计算的结果依赖于两个或以上的交叉内核控制路径的嵌套方式时,可能出现竞争条件.临界区是一段 阅读全文
摘要:
中断信号的作用. 使CPU转而去运行正常控制流之外的代码.为了它.就要在内核态堆栈保存程序计数器的当前值(eip和cs寄存器).并把与中断类型相关的一个地址放在程序计数器.中断处理与进程切换的差异:由中断或异常处理程序执行的代码不是一个进程,而是内核控制路径.代表中断发生时正在运行的进程执行.其比进程"轻".中断和异常 中断: 可屏蔽中断(maskable): I/O设备发出的中断请求(irq)都属于.可处于两种状态:屏蔽的/非屏蔽的.非屏蔽中断(nonmaskable): 只有几个危急事件才引起.总是由CPU辨认.异常: 处理器探测异常:当CPU执行指令时探测到一个反常条 阅读全文
摘要:
进程:程序执行的一个实例,充分描述程序已经执行到何种程度的数据结构的集合.目的:担当资源分配的实体.每个线程是进程的一个执行流,可以由内核独立调度.标示一个进程 进程和进程描述符一一对应.并且一个线程组公用一个PID.进程描述符处理: Linux吧内核态的进程堆栈和紧挨进程描述符的小数据结构thread_info,紧凑地存放在一个单独为进程分配的存储区内.其Size=8K.即两个页框.且为了效率,第一个页框的起始地址=2(13)倍.其中,thread_info的size=52B.位于存储区的开始处.堆栈起始于末端,并朝内存区开始的方向增长.用户态刚切换到内核态时,栈为空.esp寄存器指向栈顶. 阅读全文
摘要:
操作系統基本概念 操作系统的基本概念 OS要完成的两个目标:1)与硬件部分交互;2)为应用程序提供执行环境 OS将PC物理组织的低层细节对用户隐藏.该特性依靠特殊的硬件特性来禁止用户APP直接与低层硬件进行交互,或者禁止直接访问任意的物理地址 硬件为CPU引入了两种执行模式:特权模式(内核态)/非特权(用户态) 多用户系统: 1)并发(concurrently):... 阅读全文
摘要:
内存地址 三种内存地址:1)逻辑地址(机器指令中操作数或指令的地址) 分段单元 2)线性地址(虚拟地址)分页单元 3)物理地址(用于内存芯片级内存单元寻址多CPU时,共享同一内存,RAM芯片由独立的CPU并发访问; 由内存仲裁器保证RAM的读写的串行执行 Linux中的分段 80X86才使用分段(把程序划分为逻辑相关的实体),Linux更喜欢使用分页(当所有进程使用相同的段Register值时,它们共享同样的一组线性地址,这样内存管理简单; RISC对分段的支持有限.).两者都划分进程的物理地址空间:分段可以给每一个进程分配不同的线性地址空间,而分页可以把同一线性地址空间映... 阅读全文