摘要: 接着上一文,我们看一下do_fork()函数:long do_fork(unsigned long clone_flags, unsigned long stack_start, struct pt_regs *regs, uns... 阅读全文
posted @ 2015-06-16 20:55 陈洪波 阅读(191) 评论(0) 推荐(0) 编辑
摘要: (一):进程创建linux不同于其他操作系统,linux在进程的创建的时候,将进程的创建和执行程序分成了两个函数,fork()和exec()。进程在创建的过程中,首先通过fork()函数拷贝一份当前进程来创建一个子进程。子进程和父进程的区别仅仅在于PID,PPID(父进程的进程号,子... 阅读全文
posted @ 2015-06-16 20:49 陈洪波 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 使用结构定义一副扑克牌,并对变量赋值 扑克牌有四种花色:草花,方块,红心和黑桃,可将花色说明为枚举类型。扑克牌类型为结构类型,包含两个成分:分别存储牌的花色和牌的面值,其中面值为字符数组。下面是代码的实现部分:#include #include #include /** * 使用结构... 阅读全文
posted @ 2015-06-16 10:49 陈洪波 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 进程描述符中包含的数据能完整地描述一个正在执行的程序:他打开的文件,进程的地址空间,挂起的信号,进程的状态等。​1:分配进程描述符linux通过使用slab分配器分配task_struct结构,这样能够达到对象复用和缓存着色的目的。现在只需在栈底或栈顶创建一个新的结构struct t... 阅读全文
posted @ 2015-06-16 01:10 陈洪波 阅读(152) 评论(0) 推荐(0) 编辑
摘要: (一):进程的概念​线程,是在进程中活动的对象。每个线程都拥有一个独立的程序计数器,进程栈和一组进程寄存器。内核调度的是线程而不是进程。在Linux中,进程和线程的区别比较微妙,一会我们通过源码来查看其两个的区别。进程提供两种虚拟机制,虚拟处理器和虚拟内存。其中在线程之间可以共享虚拟... 阅读全文
posted @ 2015-06-16 01:00 陈洪波 阅读(99) 评论(0) 推荐(0) 编辑