自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (10)
  • 收藏
  • 关注

原创 数据缓冲区高速缓冲

数据缓冲区高速缓冲缓冲头部一个缓冲区有两部分组成:一个含有磁盘上数据的存储数组和一个标识该缓冲区的缓冲头部。一个缓冲区的数据与文件系统上一个逻辑磁盘块中的数据相对应,并且通过考察缓冲头部中的标识字段来识别缓冲区内容。缓冲区是磁盘块在主存中的拷贝,磁盘块的内容映射到缓冲区中。但是同一时刻,一个磁盘块不能映射到多个缓冲区中。设备号字段和块号字

2015-09-26 15:19:36 2975 1

原创 内部网关协议RIP

内部网关协议RIPRIP协议的特点:1)仅和相邻路由器交换信息2)路由器交换的信息是当前本路由器所知道的全部信息,即是自己的路由表3)按固定的时间间隔交换路由信息路由表中最重要的信息:1)到某个网络的最短距离2)应经过的下一跳地址距离向量算法:目的是找出到每个网络的最短距离。对每个相邻路由器发过来的RIP报文,都进行如下操作:1)先修改报文中

2015-09-24 16:48:41 2005

原创 IP协议

IP 协议IP数据报首部的固定部分的各字段1)版本:占4位,指IP协议的版本2)首部长度:占4位,可表示最大数15,首部最大长度15*4字节=60字节,最小值5,因此首部最小值是5*4字节=20字节3)区分服务:占8位,前三位是优先权(现在已经被忽略),最后一位是未用位必须置0,中间4位分别是最小时延、最大吞吐量、最高可靠性、最小费用(4位只能选择一

2015-09-23 22:30:59 815

原创 集线器、交换机、路由器、网关

集线器(HUB)  集线器就是将网线集中到一起的机器,也就是多台主机和设备的连接器。集线器的主要功能是对接收到的信号进行同步整形放大。集线器在OSI/RM中的物理层。集线器的基本功能是信息分发,它把一个端口接收的所有信号向所有端口分发出去。  集线器的工作原理很简单,比如有一个具备8个端口的集线器,共连接了8台电脑。集线器处于网络的“中心”,通过集线器对信号进行转发,8台电脑之

2015-09-23 21:17:21 1052

原创 CSMA/CD 协议

CSMA/CD 协议(载波监听多点接入/碰撞检测)网络适配器的作用网络适配器里面装有处理器和存储器;适配器和局域网之间的通信是通过电缆或双绞线以串行的传输方式进行的,但是适配器和计算机之间的通信则是通过计算主板上的IO总线以并行传输的;适配器的一个重要功能就是进行数据串行传输和数据并行传输的转换。操作系统中安装有网络适配器的设备驱动程序来管理网络适配器。适配器接收和

2015-09-23 18:28:36 2588

原创 哈希表

哈希表哈希表是一种高效的数据结构。它的最大优点就是把数据存储和查找和所消耗的时间大大减少,几乎可以看成是O(1),而代价是消耗较多的内存。哈希表的基本原理哈希表的基本原理是使用一个下标范围比较大的数组A来存储元素,设计一个函数h,对于要存储的线性表的每个元素node,取一个关键字key,算出一个函数值h(key),把h(key)作为数组下标,用A[h(key)]来存

2015-09-22 13:38:25 424

原创 二叉排序树的相关操作

二叉排序树定义:1)若它的左子树非空,则左子树的所有节点都小于它的根节点;2)若它的右子树非空,则右子树的所有节点都小于它的根节点;3)它的左右字数也分别为二叉排序树。二叉排序树的创建和插入节点代码实现int BST_Insert(TreeNode **root, int data){ if(NULL == *root){ (*root) = (Tree

2015-09-21 23:46:38 505

原创 内核导言之进程概述

进程概述一个进程是一个程序的执行,它是有一序列有格式字节组成的,这些有格式字节被解释成机器指令(正文)、数据和栈区。可以有几个进程是一个程序的实例,一个进程遵循着一个严格的指令序列执行,这个指令序列是自包含的,不会跳转到其他进程的指令序列上。      UNIX系统上的进程都是被系统调用fork创建的实体。除了0进程以外,每个进程都是被另外一个进程执行系统调用fork时

2015-09-18 17:52:34 493

原创 内核导言之文件子系统概貌

文件子系统概貌索引节点(index node):描述了文件数据在磁盘上的布局,并且包含诸如文件所有者、文件存储许可权和存取时间等其他信息。每个文件都有一个索引节点,都是它可以有多个名字。索引节点被存储在文件系统上,当需要操作文件的时候,内核把他们读入内存的索引节点表中。文件表:是一个全局核心结构,每个表项保存着文件中的字节偏移量(下一次开始读或写的位置)和打

2015-09-18 11:28:23 495

原创 内核导言之操作系统体系结构

UNIX 操作系统的体系结构文件子系统使用一个缓冲机制存取文件数据,缓冲机制调节在内核与二级存储设备之间的数据流。缓冲机制同块IO设备驱动程序交互,以便启动往内核去的数据传送及从内核来的数据传送。设备驱动程序是用来控制外围设备操作的内核模块。文件子系统还可以在没有缓存机制的干预下直接与“原始”IO设备驱动程序交互。原始设备,有时被称为字符设备,包括所有不是块

2015-09-18 11:07:06 635

转载 STL之set 的用法

set 容器的用法1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如

2015-09-11 16:57:55 949

原创 STL之list 用法

List 容器的使用list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素。使用list容器之前必须加上头文件:#include;list属于std命名域的内容,因此需要通过命名限定:using std::list;也可以直接使用全局的命名空间方式:using n

2015-09-11 15:33:45 514

原创 STL之vector用法

vector 用法vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的

2015-09-11 14:31:00 521

原创 二叉树的镜像(非递归)

二叉树的镜像代码实现int tree_mirror(TreeNode *bt){ if(NULL == bt){ cout<<"tree is empty\n"; } TreeNode *temp; stack st; while(1){ temp = bt->lchild; bt->lchild = bt->rchild; bt->rchild = tem

2015-09-11 11:02:46 439

原创 二叉树的节点个数和深度(非递归)

二叉树的节点个数代码实现int count_tree(TreeNode *bt){ int count = 0; if(NULL == bt){ //cout<<"tree is empty\n"; return 0; } queue que; que.push(bt); while(!que.empty()){ bt = que.front(); que.p

2015-09-11 10:50:19 1343 1

原创 二叉树的四种遍历方式(非递归和递归)

二叉树的四种遍历方式二叉树的创建--先序非递归创建#include#include#include#includeconst int OK = 1;const int ERROR = 0;using namespace std;typedef struct TreeNode{ int data; struct TreeNode *lchild,*rchild;}Tr

2015-09-11 10:45:08 479

原创 创建守护进程的步骤

守护进程编程步骤1. 创建子进程,父进程退出    所有工作在子进程中进行  形式上脱离了控制终端2. 在子进程中创建新会话 setsid()函数 使子进程完全独立出来,脱离控制3. 改变当前目录为根目录 chdir()函数 防止占用可卸载的文件系统 也可以换成其它路径4. 重设文件权限掩码 umask()函数 防止继承的文件创建屏蔽字拒

2015-09-08 11:26:31 564

原创 经典同步问题--读者和写者问题

读者--写者问题读者--写者问题是互斥问题的一个概括。一组并发的线程要访问一个共享的对象,例如一个主存中的数据结构,或者是磁盘上的数据库。有些线程只读对象,其他线程只修改对象。只读对象的线程叫做读者,修改对象的线程的对象叫做写者。写者必须拥有对对象的独占的访问,而读者可以和其他读者共享对象。按照读者和写者的优先级分为两类问题:一、读者优先读者优先,要求不要读者等待,

2015-09-03 20:23:31 2654 1

原创 经典同步问题--生产者和消费者

生产者--消费者问题      生产者和消费者线程共享一个有n个槽的有限缓冲区。生产者生产的新项目不断插入有限缓冲区,消费者不停地从缓冲区取出项目。这里涉及操作共享变量的同步问题 还有有限缓冲区的问题,操作共享缓冲区时,需要设置互斥变量让线程同步;缓冲区满的时候生产者停止生产,等待缓冲区有空间;缓冲区空的时候,消费者不能忘缓冲区取,等待缓冲区有产品。图文示例

2015-09-03 17:33:16 781

打通Linux脉络系列:进程、线程和调度.pdf

打通Linux脉络系列:进程、线程和调度 1. 第一部分大纲 1.1 Linux进程生命周期 1.2 进程控制块 1.3 僵尸进程 1.4 停止状态与作业控制 1.5 内存泄漏的真实含义 1.6 cpulimit 原理 2. 第二部分大纲 2.1 fork 和 vfork 区别 2.2 写时拷贝技术 2.3 Linux线程的实现本质 2.4 孤儿进程的托孤,SUBREAPER 练习题 第三部分大纲 练习题 第四部分大纲 练习题

2020-01-05

跟我一起写Makefile

什 么是 makefile?或许很多 Winodws 的程序员都不知道这个东西,因为那些 Windows 的 IDE 都为你做了这个工作,但我觉得要作一个好的和 professional 的程序员, makefile 还是要懂。这就好像现在有这么多的 HTML 的编辑器,但如果你想成为一个专 业人士,你还是要了解 HTML 的标识的含义。特别在 Unix 下的软件编译,你就不能不 自己写 makefile 了,会不会写 makefile,从一个侧面说明了一个人是否具备完成大型工 程的能力。

2015-07-10

socket编程原理

TCP/IP 协议被集成到 UNIX 内核中时,相当于在 UNIX 系统引入了一种新型的 I/O 操作。 UNIX 用户进程与网络协议的交互作用比用户进程与传统的 I/O 设备相互作用复杂得多。首先,进行网络操 作的两个进程在不同机器上,如何建立它们之间的联系?其次,网络协议存在多种,如何建立一种通 用机制以支持多种协议?这些都是网络应用编程界面所要解决的问题。

2015-07-10

C++编程思想卷一练习题答案

这本书是C++领域的一本权威著作,书中的内容、讲授方法、选用例子和跟随练习既适合课堂教学,又适合读者自学。

2015-03-21

Linux与Unix Shell编程指南pdf

本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。

2015-03-19

The C++ 标准库

c++标准库 chm格式 深入学习C++必看书

2015-03-08

C语言程序设计

学习C语言的经典之书,非扫描版,有中英文版加课后习题答案。

2015-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除