
进程调度
Tynew
Linux basic concept
展开
-
系统寄存器和数据结构
以下这张图包含了内存管理,进程调度和中断精髓,如果完全理解好了这张图,那么对你来说,操作系统无任何神秘感。在以后的文章,我会经常引用此图。PS: 这张图是来自Intel Volume 3A: System Programming Guide, Part 12-3 fiugre 2-1, 按照我的理解我做了一些颜色的添加,便于理解原创 2012-04-15 15:32:35 · 538 阅读 · 0 评论 -
switch_to(n)函数
这篇文章我们来分析switch_to()函数, 分析的代码取自linux kernel 0.11 sched.h文件, 我们只为说明原理, 所以尽量简单. 其中代码注释参考了赵炯老师一书, 言归正传,下面来看switch_to()函数.switch_to(n)将切换当前任务到任务n.首先检测任务n是不是当前任务,是则直接退出.输入: %0 – 指向_tmp原创 2012-05-20 20:23:15 · 2638 阅读 · 0 评论 -
进程-1: 进程定义及其结构
1. 定义进程是处于执行期的程序以及它所包含资源的总称。2.组成部分进程可分为两个部分:进程执行空间和任务状态段TSS。进程执行空间包含代码段,堆栈段和数据段,还有为各个特权级所需的独立的堆栈空间。其中Stack0中分配了task_struct 数据结构,包含了进程随需的资源:如打开的文件,进程的地址空间,挂起的信号,进程的状态,还有tss等。TSS指定原创 2012-04-21 21:53:47 · 578 阅读 · 0 评论 -
进程-2:进程上下文和中断上下文
1. CPU的状态CPU总是处于以下3种状态的一种:a) 内核态,运行于进程上下文,内核代表进程运行于内核空间;b) 内核态,运行于中断上下文,内核代表硬件运行于内核空间;c) 用户态,运行于用户空间。2. 进程上下文它是一种内核所处的操作模式,此时内核代表进程执行系统调用或运行内核线程。既然代表进程,那么就用原创 2012-11-10 20:56:35 · 1419 阅读 · 0 评论 -
进程-3:fork()函数
1. 示例程序#include ; #include ; main () { pid_t pid; pid=fork(); if (pid < 0) printf("error in fork!"); else if (pid == 0) printf("i am原创 2012-04-22 19:40:15 · 401 阅读 · 0 评论