上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 42 下一页

2015年11月24日

linux进程学习笔记

摘要: 学习了linux下的进程,觉得应该整理一下,忘得差不多了,顺便回顾一下。 学而时习之,不亦说乎~~ 进程笔记 1,什么是进程? The Single UNIX Specification, Version 2 (UNIX98) and its predecessor Version 1 (... 阅读全文

posted @ 2015-11-24 10:34 zyz913614263 阅读(192) 评论(0) 推荐(0)

linux 进程学习笔记-运行新进程

摘要: 我们知道,当用fork启动一个新进程以后,新进程会复制父进程的大部份内存空间并接着运行父进程中的代码,如果我们使新进程不运行原父进程的代码,转而运行另外一个程序集中的代码,这就相当于启动了一个新程序。 所以,要运行一个新程序,需要最基本的两步: Ÿ 创建一个可运行程序的环境,也就是进程。 Ÿ 将环境... 阅读全文

posted @ 2015-11-24 10:33 zyz913614263 阅读(266) 评论(0) 推荐(0)

linux进程学习-进程描述符的存储

摘要: 当进程被新建时,内核会给进程分配一个8K的空间作为进程的内核堆栈。同时我们知道task_struct结构体也会被创建,但有意思的是,内核不会给task_struct单独分别空间,而是直接将其扔到8k的内核堆栈中,与内核堆栈共享这8K内存。 假设我们用如下结构表示进程描述符和内核堆栈: struct ... 阅读全文

posted @ 2015-11-24 10:33 zyz913614263 阅读(1311) 评论(0) 推荐(0)

linux进程学习-进程描述符,控制块

摘要: 从数据结构的角度,进程用task_struct结构来描述,称为“进程描述符 (Process Descriptor)”或者“进程控制块(Process Control Block, PCB)”,其包含着一个进程的绝大部分关键信息。当新建一个进程时,系统会新建一个task_struct结构,结构中的一... 阅读全文

posted @ 2015-11-24 10:33 zyz913614263 阅读(530) 评论(0) 推荐(0)

linux 进程学习笔记-进程调度

摘要: 在分时系统中,系统将CPU时间划分成无数个时间片(quantum)分配给不同的进程,一个时间片只执行一个进程,并且不停地切换,以让用户感觉到各个进程是在“同时运行”,这中间所需要的策略和算法便是进程调度。 一个很好的例子是:假设目前系统只运行了两个进程,一个解压缩程序和一个文本编辑器。由于解压缩程序... 阅读全文

posted @ 2015-11-24 10:32 zyz913614263 阅读(304) 评论(0) 推荐(0)

linux 进程学习笔记-进程状态

摘要: task_struct的state字段记录的进程的状态,可分为如下几种: #define TASK_RUNNING 0 可运行状态。这是 “进程正在被CPU运行” 和 “进程正在可运行队列中等待被CPU运行” 统称。也可以将它们拆开成“RUNNING”和“READY”两种状... 阅读全文

posted @ 2015-11-24 10:32 zyz913614263 阅读(278) 评论(0) 推荐(0)

2015年11月23日

linux 进程学习笔记-进程退出/终止进程

摘要: Ÿ 退出/终止进程 void _exit(int status) 与 void exit(int status) 这两个函数都是让进程退出, 参数status表示进程将以何种状态退出,在中预定义了一些状态,比如EXIT_SUCCESS(值为0)表示以成功状态退出,EXIT_FAILURE(值为1)表... 阅读全文

posted @ 2015-11-23 14:32 zyz913614263 阅读(480) 评论(0) 推荐(0)

linux 进程学习笔记-等待子进程结束

摘要: Ÿ 等待子进程结束 pid_t waitpid(pid_t pid, int *stat_loc, int options) 另外有一个函数叫wait,其相当于 waitpid(-1, &status, 0) 大家经常看到的关于waitpid的经典例子是:你下载了某个软件的安装程序A,其在安装即将结... 阅读全文

posted @ 2015-11-23 14:31 zyz913614263 阅读(3983) 评论(0) 推荐(0)

linux 进程学习笔记-进程跟踪

摘要: 进程跟踪 long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); Linux用ptrace来进行进程跟踪,就跟我们平时用GDB debug一样,它允许一个进程去跟踪和控制另外一个进程。当被跟踪进程有信号发生时,被跟踪进程会被暂停下来,其内存空间变得可读写,跟踪它的进程可以选择是否忽略该信号... 阅读全文

posted @ 2015-11-23 14:31 zyz913614263 阅读(1175) 评论(0) 推荐(0)

linux 进程学习笔记-暂停进程

摘要: Ÿ 暂停进程 int pause() 其会挂起当前进程直到有信号来唤醒或者进程被结束。 随便提一下,如果你仅仅需要简单地暂停一下(press any key to continue...), 可以使用 system("pause")这个系统调用,甚至是getch()之类的。 下面这个demo有点晦... 阅读全文

posted @ 2015-11-23 14:31 zyz913614263 阅读(447) 评论(0) 推荐(0)

上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 42 下一页

导航