进程在创建它的时刻开始存活。在Linux系统中,这通常是fork()系统的结果,该系统调用通过复制一个现有的进程来创建一个全新的进程。只有在创建init进程时,是通过代码实现数据结构的填充。调用fork()的进程称为父进程,新生的进程称为子进程。在系统调用结束时,在返回点这个相同位置上,父进程恢复执...
分类:
系统相关 时间:
2015-04-12 22:33:42
阅读次数:
352
一、实验过程新版 MenuOS 中添加了 fork 功能。接下来用 gdb 跟踪调试了 fork 等工作过程。二、实验分析1. 预备知识首先我们分析下 task_struct 结构,其中主要有:进程状态( 记录进程等待、运行或死锁三种状态 )调度信息标识符进程间的通讯情况进程链接信息( 进程链表的插...
分类:
其他好文 时间:
2015-04-12 22:32:49
阅读次数:
105
本周在线学习了孟宁老师的《Linux内核分析》,本周的主要内容是进程的描述和创建,针对本次课程的实验现记录于本博文。我们学习过操作系统这么课程,知道PCB是进程在内核中的唯一标识,PCB结构中包括本进程的全部信息。具体到Linux操作系统,这个PCB结构就是Linux内核中的task_struct结...
分类:
系统相关 时间:
2015-04-12 20:41:31
阅读次数:
202
第三章 进程管理1. fork系统调用从内核返回两次: 一次返回到子进程,一次返回到父进程2. task_struct结构是用slab分配器分配的,2.6以前的是放在内核栈的栈底的;所有进程的task_struct连在一起组成了一个双向链表3. 2.6内核的内核栈底放的是thread_info结构,...
分类:
系统相关 时间:
2015-04-11 16:14:03
阅读次数:
257
Fork()函数1.所需头文件:#include#include2.函数定义pid_t fork( void );pid_t 是一个宏定义,其实质是int 被定义在#include中返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID; 否则,出错返回-13.函数说明:一个现有进...
分类:
系统相关 时间:
2015-04-11 06:30:18
阅读次数:
164
ext2 文件系统相关介绍:ext2文件系统,一个文件除了数据需要存储之外,一些描述信息也需要存储,例如文件类型(常规、目录、符号链接等),权限,文件大小,创建/修改/访问时间等,也就是ls -l命令看到的那些信息,这些信息存在inode中而不是数据块中。但是文件名存在哪里,首先文件名不是存在inode中的,那么文件名存在哪里?
这里我们可以看到目录大小都为4096,当你创建一个目录的时候操...
分类:
其他好文 时间:
2015-04-10 22:33:05
阅读次数:
365
在做mongodb分片时,当启用mongos路由服务,我们会指定一个日志的存放位置:mongos--configdb127.0.0.1:27019--logpath/var/log/mongodb/mongos.log--pidfilepath/var/run/mongodb/mongos.pid--logappend--logRotatereopen--fork以上我们指定了日志的存放位置在/var/log/mongod..
分类:
数据库 时间:
2015-04-10 20:25:05
阅读次数:
349
exec函数族函数族说明 fork() 函数用于创建一个新的子进程,该子进程几乎复制了父进程的全部内容,但是,这个新创建的子进程如何执行呢?exec 函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执...
分类:
其他好文 时间:
2015-04-10 17:30:19
阅读次数:
161
(1) fork系统调用说明fork系统调用用于从已存在进程中创建一个新进程,新进程称为子进程,而原进程称为父进程。fork调用一次,返回两次,这两个返回分别带回它们各自的返回值,其中在父进程中的返回值是子进程的进程号,而子进程中的返回值则返回 0。因此,可以通过返回值来判定该进程是父进程还是子进程...
分类:
其他好文 时间:
2015-04-10 15:05:16
阅读次数:
183