摘要: 动态链接、静态链接: 静态链接:就是在编译链接时直接将需要的执行代码拷贝到调用处,优点就是在程序发布的时候就不需要的依赖库,也就是不再需要带着库一块发布,程序可以独立执行,但是体积可能会相对大一些。动态链接:就是在编译的时候不直接拷贝可执行代码,而是通过记录一系列符号和参数,在程序运行或加载时将这些 阅读全文
posted @ 2017-07-14 23:15 静悟生慧 阅读(1088) 评论(0) 推荐(0) 编辑
摘要: 一、内存的概念 1. 物理内存:即插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。 但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存占用,甚至导致物理内存消耗殆尽。 2. 虚拟内存:虚拟内存就是在硬盘上划分一块页面文件,充当内存。 当程序在运行 阅读全文
posted @ 2017-07-14 23:03 静悟生慧 阅读(2615) 评论(0) 推荐(0) 编辑
摘要: 首先介绍一个概念“池化技术 ”。池化技术 一言以蔽之就是:提前保存大量的资源,以备不时之需以及重复使用。 池化技术应用广泛,如内存池,线程池,连接池等等。内存池相关的内容,建议看看Apache、Nginx等开源web服务器的内存池实现。 起因:由于在实际应用当中,分配内存、创建进程、线程都会设计到一 阅读全文
posted @ 2017-07-14 22:34 静悟生慧 阅读(1204) 评论(0) 推荐(0) 编辑
摘要: 1. 操作系统中,每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。 2. 当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。 3. 内核栈是内存中属于操作系统空 阅读全文
posted @ 2017-07-14 22:29 静悟生慧 阅读(1720) 评论(0) 推荐(0) 编辑
摘要: 线程同步的方式主要有: 临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)。 他们的主要区别和特点如下: 1)临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问, 阅读全文
posted @ 2017-07-14 22:22 静悟生慧 阅读(9326) 评论(0) 推荐(0) 编辑
摘要: 1、信号量 用于进程间传递信号的一个整数值。在信号量上只有三种操作可以进行:初始化,P操作和V操作,这三种操作都是原子操作。 P操作(递减操作)可以用于阻塞一个进程,V操作(增加操作)可以用于解除阻塞一个进程。 基本原理是两个或多个进程可以通过简单的信号进行合作,一个进程可以被迫在某一位置停止,直到 阅读全文
posted @ 2017-07-14 22:16 静悟生慧 阅读(14609) 评论(0) 推荐(0) 编辑
摘要: 一、进程的并发执行 1. 并发是所有问题产生的基础。 2. 进程的特征: 并发:进程执行时间断性的,执行速度是不可预测的; 共享:进程/线程之间的制约性; 不确定性:进程执行的结果和执行的相对速度有关,所以是不确定的; 3. 举例: 1) 银行业务系统:进程的关键活动出现交叉; 2) get-->c 阅读全文
posted @ 2017-07-14 17:22 静悟生慧 阅读(6099) 评论(1) 推荐(0) 编辑
摘要: 1.操作系统需要两种CPU状态: 内核态(Kernel Mode):运行操作系统程序 用户态(User Mode):运行用户程序 2.指令划分: 特权指令:只能由操作系统使用、用户程序不能使用的指令。 举例:启动I/O 内存清零 修改程序状态字 设置时钟 允许/禁止终端 停机 非特权指令:用户程序可 阅读全文
posted @ 2017-07-14 16:19 静悟生慧 阅读(14822) 评论(0) 推荐(3) 编辑
摘要: 一、操作系统的四个特性 1)并发(concurrence) 并发:指处理多个同时性活动的能力。 并行性与并发性这两个概念是既相似又区别的两个概念。 并行性是指两个或者多个事件在同一时刻发生,这是一个具有微观意义的概念,即在物理上这些事件是同时发生的;不同程序在多台机器上同时执行; 而并发性是指两个或 阅读全文
posted @ 2017-07-14 15:28 静悟生慧 阅读(4879) 评论(0) 推荐(0) 编辑
摘要: 深度优先遍历 1.深度优先遍历的递归定义 假设给定图G的初态是所有顶点均未曾访问过。在G中任选一顶点v为初始出发点(源点),则深度优先遍历可定义如下:首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的每个邻接点w。若w未曾访问过,则以w为新的出发点继续进行深度优先遍历,直至图中所有和源 阅读全文
posted @ 2017-07-14 11:04 静悟生慧 阅读(564) 评论(0) 推荐(0) 编辑
摘要: Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼 阅读全文
posted @ 2017-07-14 10:55 静悟生慧 阅读(391) 评论(0) 推荐(0) 编辑
摘要: Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构, 阅读全文
posted @ 2017-07-14 10:22 静悟生慧 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 基础篇:操作系统、计算机网络、设计模式一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件。 2. 进程与线程的区别。 3. 进程通信的几种方式。 4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解) 5. 线程的实现方式. (也就是用户线程与内核线程的区别) 6. 阅读全文
posted @ 2017-07-14 09:37 静悟生慧 阅读(251) 评论(0) 推荐(0) 编辑