posted @ 2021-12-01 14:52
随笔分类 - 操作系统
摘要:一.线程共享的环境如下: 1)进程代码段,进程全局数据 2)进程打开的文件描述符 3)信号处理器 4)进程的当前目录,进程用户ID,进程组ID 二.线程不共享的环境如下: 1)线程ID 2)寄存器组的值 3)线程的堆栈 4)错误返回码 5)线程的信号屏蔽码 6)线程优先级
阅读全文
摘要:一个C++程序从源代码到执行文件,有四个过程: 一.预编译 (1)将所有#define删除,并且展开所有宏定义 (2)处理所有条件预编译命令,如#if, #ifndef (3)处理#include预编译命令,将被包含的文件插入到该预编译命令的位置 (4)过滤所有注释 (5)添加行号和文件名标识 二.
阅读全文
posted @ 2021-12-01 14:44
摘要:一.任务门、中断门、陷阱门和调用门的结构图 1.任务门结构图如下所示: 阴影部分表示空闲不用;P标志位,为1时表示在内存中;DPL描述优先级别;类型码101表示任务门。 2.中断门、陷阱门和调用门结构图如下所示: D标志位,1=32位,0=16位;类型码中,110:中断门,111:陷阱门,100,调
阅读全文
posted @ 2017-11-12 19:36
摘要:一、宏观实现 以前介绍过fork()和clone()的区别,下面介绍一下两者在程序接口上的不同: 系统调用__clone()的主要用途是创建一个线程,这个线程可以是内核线程,也可以是用户线程。创建用户空间线程时,可以给定子线程用户空间堆栈的位置,还可以指定子进程运行的起点。同时,也可以用__clon
阅读全文
posted @ 2017-11-07 20:27
摘要:在linux系统中,第一个进程是系统固有的,与生俱来的或者说是由内核的设计者安排好了的,内核在引导并完成了基本的初始化以后,就有了系统第一进程(实际上是内核线程)。除此之外,所有其他的进程和内核线程都有这个原始进程或其子孙进程所创建,都是这个原始进程的后代。 linux将进程的创建和执行分成两步。
阅读全文
posted @ 2017-11-04 13:44
摘要:一、构成进程的要素 在linux系统中,进程主要具备以下要素: 1)有一个程序供其运行。这段程序不一定是进程所专有,可以与其他进程一起使用; 2)有起码的“私有财产”,这就是进程专用的系统堆栈空间; 3)有“身份证”,也就是task_struct结构,也称之为“进程控制块”(PCB)。有了这个数据结
阅读全文
posted @ 2017-11-02 22:28
摘要:一、管道通信 父进程和子进程之间,或者两个兄弟进程之间,可以通过系统调用建立起一个单向的通信管道。但是这种管道只能由父进程开建立,对于子进程来说是静态的,与生俱来的。管道两端的进程各自都将该管道视作一个文件。一个进程写,另一个进程读。并且,通过管道传递的内容遵循“先入先出”(FIFO)的原则。每个管
阅读全文
posted @ 2017-10-31 19:33
浙公网安备 33010602011771号