进程管理类的命令:pstree,ps,top,vmstat,htop,pmap pstree:查看进程树 ps:显示系统当前进程状态的命令 进程: 跟终端相关的进程 跟终端无关的进程 a:所有跟终端相关的进程 psa x:所有跟终端无关的进程 psx STAT: S:可中断睡眠 D:不..
分类:
系统相关 时间:
2015-04-12 06:54:39
阅读次数:
200
朱宇轲 +原创作品转载请注明出处+《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000今天,我们将通过阅读linux的内核代码来对linux系统中进程的创建过程进行简单的分析。大家都知道,linux通过进程控制块PCB来对...
分类:
系统相关 时间:
2015-04-12 06:35:13
阅读次数:
260
Fork()函数1.所需头文件:#include#include2.函数定义pid_t fork( void );pid_t 是一个宏定义,其实质是int 被定义在#include中返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID; 否则,出错返回-13.函数说明:一个现有进...
分类:
系统相关 时间:
2015-04-11 06:30:18
阅读次数:
164
1. Linux进程概述 进程是一个程序一次执行的过程,它和程序有本质区别。程序是静态的,它是一些保存在磁盘上的指令的有序集合;而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创建、调度和消亡的过程,是Linux的基本调度单位。那么从系统的角度看如何描述并表示它的变化呢?在这里,是通过...
分类:
系统相关 时间:
2015-04-09 23:45:39
阅读次数:
391
1. 进程间打开文件的继承 1.1. 用fork继承打开的文件 fork以后的子进程自动继承了父进程的打开的文件,继承以后,父进程关闭打开的文件不会对子进程造成影响。 示例: #include #include #include #include #include int main() { char...
分类:
系统相关 时间:
2015-04-09 23:20:09
阅读次数:
252
1. 进程的创建 Linux下有四类创建子进程的函数:system(),fork(),exec*(),popen() 1.1. system函数 原型: #include int system(const char *string); system函数通过调用shell程序/bin/sh –c来执行...
分类:
系统相关 时间:
2015-04-09 23:20:06
阅读次数:
312
概述
操作系统要实现多进程,进程调度必不可少。有人说,进程调度是操作系统中最为重要的一个部分。我觉得这种说法说得太绝对了一点,就像很多人动辄就说“某某函数比某某函数效率高XX倍”一样,脱离了实际环境,这些结论是比较片面的。
而进程调度究竟有多重要呢? 首先,我们需要明确一点:进程调度是对 TASK_RUNNING 状态的进程进行调度。如果进程不可执行(正在睡眠或其他),那么它跟进程调...
分类:
系统相关 时间:
2015-04-09 22:00:04
阅读次数:
274
进程的描述ulk那个大图 for task_struct提纲挈领,看代码前总览
序言 进程控制块PCB——task_struct为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。
struct task_struct数据结构很庞大Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,比如就绪状态和运行状态都是TASK_RUNNING,为什么呢...
分类:
系统相关 时间:
2015-04-07 23:33:39
阅读次数:
382
一、一个由C/C++编译到程序占用的内存分为以下几个部分:
1、栈区(stack)——由编译器自动分配释放,在不需要的时候自动清除。用于存放函数的参数、局部变量等。操作方式类似数据结构中的栈(后进先出)。
2、堆区(heap)——一般由程序员分配释放,若程序员分配后不释放,程序结束后可能由OS回收。不同于数据结构中的堆,分配方式有些类似链表。
3、全局区(静态区)——全局变量和静态变量存储在这里。程序结束后由系统释放。在以前到C语言中,全局变量又细分为初始化的(DATA段)和未初始化到(BSS段),在...
分类:
编程语言 时间:
2015-04-04 12:15:54
阅读次数:
185