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