操作系统
菜鸡小王子
这个作者很懒,什么都没留下…
展开
-
死锁的四个必要条件
死锁的定义、产生原因、四个必要条件原创 2017-07-16 21:26:49 · 311 阅读 · 0 评论 -
进程与线程的区别
进程:进程是系统进行资源分配和调度的一个独立单位。 线程:是进程的一个实体,是CPU调度和分派的基本单位。 区别: (1)拥有资源:进程是系统拥有资源的基本单位,线程仅拥有能保证独立运行的资源:用于PC、保留局部变量、少数状态参数和返回地址等的一组寄存器和栈。 (2)独立性:每个进程都拥有独立的地址空间和其他资源。除了共享全局变量以外,不允许其他进程访问。线程拥有栈等,同一进程的线原创 2017-07-16 22:22:23 · 195 阅读 · 0 评论 -
进程间通信方式
(1)管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 (2)有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 (3)信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在原创 2017-09-04 15:17:41 · 161 阅读 · 0 评论 -
缓存淘汰算法--LRU算法
1. LRU 1.1. 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 1.2. 实现 最常见的实现是使用一个链表保存缓存数据,详细算法实现如下: 1. 新数据插入到链表头部; 2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部; 3. 当链转载 2017-08-28 20:32:06 · 299 阅读 · 0 评论 -
流水线
前言:看过关于流水线写的最好的一篇,没有之一,特转载。 流水线: 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。概念我们说那么多,我们现在深入去理解,光有概念都是一些比较抽象的东西,我们看图:我们有三个步骤。 然后我们来看一转载 2017-09-09 22:46:02 · 1751 阅读 · 2 评论 -
linux 同步IO: sync、fsync与fdatasync
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayed write)(Bach ...转载 2018-05-05 16:26:22 · 274 阅读 · 0 评论