#include // 调度程序头文件,定义了任务结构task_struct、初始任务0 的数据,// 还有一些有关描述符参数设置和获取的嵌入式汇编函数宏语句。8 #include // 内核头文件。含有一些内核常用函数的原形定义。9 #include // 段操作头文件。定义了有关段寄存器操作的嵌入式汇编函数。1011 #include // 信号头文件。定义信号符号常量,信号结构以及信号操作函...
分类:
系统相关 时间:
2015-04-21 13:04:27
阅读次数:
194
一、我们先来看下信号的所设计的数据结构:struct task_struct {
int sigpending;
int exit_code, exit_signal;
/* Protects signal and blocked */
struct signal_struct *sig;
sigset_t blocked;
struct sigpending pending;...
分类:
系统相关 时间:
2015-04-21 09:37:03
阅读次数:
231
一、简述进程是加载到内存中的指令集,进程有进程ID加以标示。在Linux内核中,进程是由task_struct结构表示和管理的。每执行一个程序都会调用父进程init的fork系统调用创建一个子进程。1,进程分类:(1)不同模式运行内核模式(ring0)用户模式(ring3)进程有时会访问外部的硬..
分类:
系统相关 时间:
2015-04-20 09:44:42
阅读次数:
289
linux的第一个进程——进程0。
Linux 0.11 是一个支持多进程的现代操作系统,所以我们需要进程管理信息数据结构:task_struct、task[64]、GDT等的支撑。...
分类:
系统相关 时间:
2015-04-18 22:03:42
阅读次数:
129
进程内核栈、用户栈1.进程的堆栈 内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存 在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cp...
分类:
系统相关 时间:
2015-04-16 23:30:35
阅读次数:
236
Linux进程管理知识整理1、进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些?TASK_RUNNING(可运行状态)TASK_INTERRUPTIBLE(可中断等待状态)TASK_UNINTERRUPTIBLE(不可中断...
分类:
系统相关 时间:
2015-04-16 23:20:22
阅读次数:
289
linux进程的地址空间,核心栈,用户栈,内核线程 地址空间:32位linux系统上,进程的地址空间为4G,包括1G的内核地址空间,和3G的用户地址空间。内核栈:进程控制块task_struct中保存了2个page大小的信息。为什么每一个进程都是用各自的内核栈呢?引用(http://hi.baidu...
分类:
编程语言 时间:
2015-04-16 23:17:50
阅读次数:
287
一.基于时间片轮转调度代码的解读 代码结构主要由三个文件组成: 1.mypcb.h 2.myinterrupt.c 3.mymain.c1.进程控制块(mypcb.h)/* CPU-specific state of this task */struct Thread{ unsigned...
分类:
系统相关 时间:
2015-04-15 23:10:11
阅读次数:
178
进程内核栈、用户栈
1.进程的堆栈
内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。
2.进程用户栈和内核栈的切...
分类:
系统相关 时间:
2015-04-15 17:17:16
阅读次数:
150
一、实验过程新版 MenuOS 中添加了 fork 功能。接下来用 gdb 跟踪调试了 fork 等工作过程。二、实验分析1. 预备知识首先我们分析下 task_struct 结构,其中主要有:进程状态( 记录进程等待、运行或死锁三种状态 )调度信息标识符进程间的通讯情况进程链接信息( 进程链表的插...
分类:
其他好文 时间:
2015-04-12 22:32:49
阅读次数:
105