自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

邓博学习笔记

合抱之木,生于毫末。

  • 博客(75)
  • 收藏
  • 关注

原创 linux进程通信———Posix消息队列简介及基础库函数

linux进程通信———Posix消息队列简介及基础库函数引言:消息队列可认为是一个消息链表,有足够写权限的线程可向队列中放置消息,有足够读权限的线程可从队列中取走消息。本篇笔记将简要介绍Posix消息队列特性、基本库函数调用。linux进程通信———Posix消息队列简介及基础库函数一、Posix消息队列简介1.1、与管道、FIFO差异1.2、Posix消息队列与Syst...

2018-04-02 15:23:40 2204 1

原创 linux进程通信———有名管道FIFO

linux进程通信———有名管道FIFO引言:无名管道的一个重大限制是它没有名字,通信范围限定在具有血缘关系的进程间。有名管道以FIFO文件形式存在于文件系统中。这样即使与FIFO创建进程不存在血缘关系的进程,只要访问该路径,就能够通过FIFO通信。本篇笔记包括FIFO介绍、代码实例、内核实现。linux进程通信———有名管道FIFO一、FIFO简介1.1、“有名”管道:1...

2018-04-01 15:42:34 2019

原创 linux进程通信———无名管道

linux进程通信———无名管道引言:打算认认真真实践一下进程间通信的几种方式,本篇笔记介绍了管道局限性、创建方式、代码实例、内核实现。建议感兴趣的同学,以书籍为主,建立系统知识,书本远远比博客深邃。一、无名管道简介1.1、局限性:  管道是最初的unix IPC(interprocess communication)形式,其本身存在两个局限性:首先管道没有名字,他们只...

2018-03-31 22:50:59 641

原创 TCP套接字编程核心API浅析

TCP套接字编程核心API浅析引言:学习了计算机网络基础协议,是不是跃跃欲试,那开始计算机网络编程之旅吧。本篇笔记介绍了TCP客户端与服务器通信使用的底层API,并分析了其与TCP三次握手,四次挥手的关联,希望对大家有所帮助。TCP套接字编程核心API浅析一、TCP编程核心API1.1、socket()1.2、bind()1.3、listen()1.4、accept()...

2018-03-25 11:22:25 872

原创 Socket编程中常见的数据结构及转换函数

Socket编程中常见的数据结构及转换函数引言:本篇笔记第一部分介绍socket套接字编程中常见的数据结构,第二部分介绍网络字节顺序、主机与网络字节顺序转换函数、IP地址转换函数。一、Socket编程中常见的网络数据结构  下面介绍到的函数,都定义在netinet/in.h中,在ubuntu14.04下,其存储位置为/usr/include/netinet/in.h,可以cat打印...

2018-03-24 12:06:54 1732 1

转载 技术往事:改变世界的TCP/IP协议(转载)

原文地址:http://www.52im.net/thread-520-1-1.html1、前言作为应用层开发人员,接触最多的网络协议通常都是传输层的TCP(与之同处一层的另一个重要协议是UDP协议),但对于IP协议,对于应用程序员来说更多的印象还是IP地址这个东西,再往深一点也就很难说的清楚。本文将简要回故TCP/IP协议的过去、简单介绍TCP/IP协议族的关系,并与大家一起直观地分享由TCP/...

2018-03-22 23:04:52 981

转载 linux下进程的进程最大数、最大线程数、进程打开的文件数和ulimit命令修改硬件资源限制(转载)

原文排版整洁美观,转载会丢失信息: http://blog.csdn.net/gatieme/article/details/51058797一、ulimit命令查看和更改系统限制ulimit命令详解ulimit用于shell启动进程所占用的资源,可以用来设置系统的限制语法格式ulimit [-acdfHlmnpsStvw] [size]在/etc/security/limits.conf文件中定...

2018-03-21 10:06:05 728

原创 进程管理笔记三、完全公平调度算法CFS

进程管理笔记三、CFS调度算法引言:CFS是英文Completely Fair Scheduler的缩写,即完全公平调度器,负责进程调度。在Linux Kernel 2.6.23之后采用,它负责将CPU资源,分配给正在执行的进程,目标在于最大化程式互动效能,最小化整体CPU的运用。使用红黑树来实现,算法效率为O(log(n))。一、CFS调度算法原理  调度算法最核心的两点即为...

2018-03-20 11:28:16 5827 4

原创 Linux nice及renice命令使用

Linux nice及renice命令使用引言: linux内核是一个了不起的马戏表演者,它在进程和系统资源之间小心地玩着杂耍,并保持系统的正常运转。同时,内核也很公平,它将资源公平地分配给各个进程。但是,如果用户需要给一个重要进程提高优先级、或是降低优先级,该怎么办呢?答案是需要由用户来为内核制定进程的优先级。这里对nice及renice命令做一个基本的介绍。一、nice命令...

2018-03-19 23:03:17 7740

原创 echo N>/proc/sys/vm/drop_caches清理缓存

echo N>/proc/sys/vm/drop_caches清理缓存引言:在内核窗口—proc文件系统这篇笔记中,我们介绍了/proc主要体现进程及内核信息状态。与/proc下其它文件的“只读”属性不同的是,管理员可对/proc/sys子目录的许多文件内容进行修改,以更改内核的运行特性。写入操作一般类似于 echo DATA >/path/to/your/filename的格式进...

2018-03-19 10:25:15 16290 1

原创 内核窗口---proc文件系统

内核窗口—proc文件系统引言:在写进程调度笔记时,我特别好奇,想了解一下ubuntu 14.04到底采取的是什么调度策略,于是接触到proc文件系统,它内部包含很多内核数据信息。这里并不会分析每一个文件、每一条数据的含义。仅仅是介绍Proc文件系统产生背景,常见文件含义。以后遇到相关问题时,再深入学习。内核窗口—proc文件系统一、Proc文件系统简单介绍1.1、产生背景1....

2018-03-17 17:22:08 724

原创 进程管理笔记一、进程的概念及其产生的背景

进程管理笔记一、进程的概念及其产生的背景引言:计算机的根本特征是其本身为人造学科。进程从根本上说,是操作系统对CPU进行的抽象和装扮。关于进程的系列笔记,会由进程产生背景讲起,本篇是我们故事的起源。进程管理笔记一、进程的概念及其产生的背景一、进程产生的背景1.1、单道处理系统—效率低下1.2、改进策略—多道编程1.3、多道编程的好处1.4、I/O操作脱离CPU如何实现?...

2018-03-17 11:32:42 1645

原创 文件系统笔记九、Ext2文件系统布局及核心数据结构

文件系统笔记九、Ext2文件系统布局及核心数据结构引言:在之前的笔记中,我们依次介绍了磁盘的物理结构、文件系统设计需要考量的因素、文件系统性能及保障机制。这些是对文件系统泛泛的介绍,这篇笔记我们将简单剖析Ext2文件系统,重点介绍其系统布局及核心数据结构。文件系统笔记九、Ext2文件系统布局及核心数据结构一、Ext2文件系统布局1.1、固定部分1.2、Block Grou...

2018-03-15 22:06:53 855

原创 文件系统笔记八、文件系统的性能

文件系统笔记八、文件系统的性能引言:在之前的两篇笔记文件系统笔记六、文件系统布局及数据存储、文件系统笔记七、文件目录、属性、共享、挂载的实现方式,介绍了设计一个文件系统需要考量的因素及相关实现。本篇笔记将介绍文件系统的性能及其保障机制。文件系统笔记八、文件系统的性能一、访问控制能力1.1、访问控制能力需求1.2、主动控制:访问控制表1.3、被动控制:能力表1.4、保护...

2018-03-14 10:20:28 1126

原创 文件系统笔记七、文件目录、属性、共享、挂载的实现方式

文件系统笔记七、文件目录、属性、共享、挂载的实现方式引言:在上一篇笔记中,主要讲了文件系统布局及数据存储,这一篇笔记将记录一些相对边缘的问题,比如文件夹如何完成由文件名至文件地址的映射、文件属性的实现、长文件名如何实现、文件是如何共享的、文件系统挂载实现。这些是设计文件系统均需考虑的问题,本篇仅是一些通识性介绍。文件系统笔记七、文件目录、属性、共享、挂载的实现方式1、文件名至...

2018-03-13 16:51:52 931

原创 文件系统笔记六、文件系统布局及数据存储

文件系统笔记六、文件系统布局及数据存储引言:对于一般用户来说,直接驱动磁盘存取数据位置是极其困难的。操作系统为磁盘外面包裹一层易于使用的抽象,即为文件系统。用户直接与文件系统打交道,无需了解磁盘的技术细节。在本篇及之后的笔记中,我们会介绍文件系统的设计,即如何让完成磁盘物理特性与用户界面的连接。文件系统笔记六、文件系统布局及数据存储一、文件系统概述1.1、一段非常有趣的话...

2018-03-13 11:59:10 853

原创 内存管理笔记十二、内存管理三张大图

内存管理笔记十二、内存管理大图引言:学习没有止境,学习内存管理也是这样,现在勉强算是了解大体框架,对c语言与指针多了一些理解。当然还有许多知识待填充,如slab如何解决内存碎片、vmalloc、kmalloc与malloc的区别、高端内存非线性映射实现等等。这里先暂时告一段落,复习一下进程/线程 与网络编程一些内容。下面就是在论坛看到别人画内存管理的三张大图,贴在下面,督促自己去学习,去理解。...

2018-03-11 22:52:17 599

原创 内存管理笔记十一、CPU三级缓存、冷热页及自旋锁概念

内存管理笔记十一、CPU三级缓存、冷热页及自旋锁概念引言:在上一篇笔记中,介绍了buddy 伙伴系统其适用于大内存的物理地址分配,在查阅相关资料的过程中,看到了冷热页,进而接触到CPU三级缓存和自旋锁的概念。这里仅对其概念做一个简单的记录。一、CPU的三级缓存1.1、缓存简介:  CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小...

2018-03-11 22:36:17 998

原创 内存管理笔记十、buddy伙伴系统

内存管理笔记十、buddy伙伴系统引言:上一篇笔记中,我们介绍了段页式的内存管理方式其不仅获得分段和分页的好处,又规避了单纯分段和分页的缺陷。这看似是一个完美的解决方案。但每次申请内存,均要完成虚拟地址至物理地址的映射、要改写内核的页表项、刷新TLB,以页为单位降低了内存分配速度。因此linux在段页式内存管理基础上,增加伙伴系统分配机制,可以理解为以空间换取时间和性能的机制。...

2018-03-11 19:57:42 3834 1

原创 内存管理笔记九、段页式内存管理

内存管理笔记九、段页式内存管理引言:在前面几篇笔记中,我们介绍到内存管理的多种方式,包括单道编程下固定加载地址,多道编程下固定分区、非固定分区、分页式内存管理,这些是内存管理模式不断演进的过程,本篇笔记将介绍现今广泛使用的段页式内存管理模式。至此,内存管理模式的演进基本就结束了,后面关于内存管理的笔记,将重在实践实现,包括虚拟内存性能调整、slab分配机制、buddy算法等学习。一、分...

2018-03-10 11:08:12 956

原创 内存管理笔记八、页面置换算法

内存管理笔记八、页面更换算法引言:在第七篇内存管理笔记,有介绍到分页的内存管理。其克服了外部碎片、程序不能大于物理内存等缺点。本篇笔记将简单介绍常见的页面更换算法思想。内存管理笔记八、页面更换算法一、页面需更换的原因二、页面更换期待达到的目标三、常见算法的思想3.1、随机更换算法3.2、先进先出算法(FIFO)3.3、第二次机会算法3.4、时钟算法3.5、最优更...

2018-03-09 16:40:29 437

原创 内存管理笔记七、页式内存管理

内存管理笔记七、页式内存管理引言:内存管理就是要将各种媒介组建成一体,形成一个巨无霸似的虚拟存储系统。第六篇笔记,介绍了非固定分区内存管理方式,本篇笔记将分析其存在的问题,并就此引出页式内存管理。内存管理笔记七、页式内存管理一、Swap交换存在的问题1.1、大量的外部碎片1.2、地址空间增长困难二、分页内存管理引入2.1、Swap交换问题产生原因2.2、分页内存...

2018-03-09 11:53:53 530

原创 内存管理笔记六、非固定分区的内存管理

内存管理笔记六、非固定分区的内存管理引言:第五篇笔记,介绍了固定分区的内存管理方式。本篇笔记将介绍非固定分区的内存管理。内存管理笔记六、非固定分区的内存管理一、非固定分区的内存管理1.1、产生由来—对固定分区的改进1.2、核心思想–按需分配1.3、加载实例1.4、存在弊端1.5、解决弊端的两种方式一、非固定分区的内存管理1.1、...

2018-03-08 16:38:38 393

原创 内存管理笔记五、固定分区的内存管理

内存管理笔记五、固定分区的多道编程引言:多道编程可以克服单道编程的缺点,提高CPU和内存的利用效率,改善用户的响应时间。本文将介绍多道编程下固定分区的内存管理。后续文章会介绍非固定分区、分页、分段、段页式管理方式。内存管理笔记五、固定分区的多道编程一、固定分区的加载方式1.1、固定分区概念1.2、共享队列及分开队列1.3、固定分区的优点及缺点分析二、动态地址翻译...

2018-03-08 15:48:55 1618

原创 内存管理笔记四、虚拟内存概念的引入

内存管理笔记四、虚拟内存概念的引入引言:虚拟内存是实际存储架构与程序员对内存要求之间的一座桥梁,是操作系统为用户提供的一种“幻象”,其构建在内存架构的顶端,给用户提供一个比物理主存空间大许多的地址空间。一、产生背景1.1、程序员对内存的要求   计算机的一个基本功能是计算,其计算除了需要硬件之外,还需要两种信息:数据和代码。它们是计算机硬件CPU的输入,没有这些,CPU也是“...

2018-03-08 12:13:00 534

原创 Linux cat命令使用

Linux cat命令使用摘要: cat命令用以将文件、标准输入内容打印至标准输出。常用于显示文件内容、创建文件、向文件中追加内容。本文第一部分介绍cat用以打印文件内容的格式及参数(源自linux man手册)、第二部分展示cat创建文件、追加内容等用法。一、cat命令及常用参数1.1、命令描述   cat 语法为 cat(选项)(文件列表参数) ,其功能是连接文件或标准输入

2018-01-30 13:24:14 16665

原创 Linux free命令使用

Linux free命令使用摘要: free命令用以显示当前系统内存使用情况,其数据取自/proc/meminfo文件。本文第一部分为free命令及参数(源自linux man手册)、第二部分展示常见命令free -m各字段含义,第三部分解释free命令数据来源。一、free命令及相关参数1.1、命令描述   free - 显示系统已用及空余物理内存量、交换分区使用情况(swa

2018-01-30 10:42:59 15044

原创 进程管理笔记二、进程调度概念及基本策略

进程调度概念及基本策略引言:多进程并发是逻辑并发,在单个CPU上,实际上任意时刻只能有一个进程处于执行状态,而其它进程处于非执行状态。那么进程是如何调度的呢?本篇笔记将依次介绍进程调度概念、调度目标、调度算法、算法评估。下一篇笔记将重点介绍CFS调度算法。进程调度概念及基本策略一、进程调度概念1.1、调度概念由来1.2、基本概念1.3、适用情形二、调度准则2.1、CP...

2018-01-27 17:34:31 1310

原创 网络层笔记八、IP数据报的格式

网络层笔记八、IP数据报的格式引言:了解IP数据报的格式,可以帮助我们理解IP协议具有的功能。一、IP数据报的概貌  完整的IP数据报由首部和数据两部分组成。首部第一部分20字节,是所有IP数据报必须具有的;首部第二部分是可选字段,其长度是可变的。其各字段如图1所示: 图1、IP数据报的格式二、首部固定部分各字段含义2.1、固定部分第一行 1)版本:占4位

2018-01-26 22:29:19 775

原创 网络层笔记七、地址解析协议ARP

网络层笔记七、地址解析协议ARP引言:在上一篇笔记中,我们介绍了硬件地址与IP地址的关系,以理解数据在协议栈的流动。本篇笔记将介绍地址解析协议ARP(IP地址->硬件地址),介绍其产生由来、实现原理、常用情景。一、地址解析协议ARP需求  在上一篇笔记中,我们介绍了数据在协议栈中的流动。我们知道,在网络层使用的是IP地址,但在实际网络的链路中传送数据帧时,最终还是必须使用...

2018-01-26 10:10:40 367

原创 网络层笔记六、硬件地址与IP地址

网络层笔记六、硬件地址与IP地址引言:前面三篇笔记中,我们介绍了IP地址的三种编址方式,依次是分类的IP编址、划分子网(改进分类编址)及无分类IP地址。本篇笔记我们将介绍硬件地址与IP地址的关系,真正理解“虚拟互连”的含义。一、IP地址与硬件地址1.1、使用层次不同   在学习IP地址时,很重要的一点就是清楚IP地址与硬件地址的区别,图一说明了这两种地址的区别。从层次的角度上

2018-01-25 16:24:49 2005

原创 网络层笔记五、无分类编址CIDR(构成超网)

网络层笔记五、无分类编址CIDR(构成超网)引言:本篇将介绍无分类编址CIDR的概念、最长前缀匹配、使用二叉线索查找路由表。读完本篇笔记,读者可以了解无分类编址方式提高网络利用率的原理?它的实现方式是什么?一、CIDR(Classless Inter-Domain Routing)无分类域间路由选择  划分子网在一定程度上缓解了因特网发展中遇到的困难,但其仅仅是对分类编址方式的

2018-01-23 16:59:55 4072

原创 文件系统笔记五、文件系统引入

文件系统笔记五、文件系统引入引言:在前面四篇笔记中,我们介绍了磁盘的物理结构、磁盘驱动器访问速度、磁盘块及磁盘调度算法。对于一般用户来说,使用磁盘是非常困难的,他们不知道如何驱动一个磁盘,如何计算数据在磁盘的存放位置。操作系统提供给用户的帮助就是在磁盘外面包裹一层容易使用的抽象,用户直接与这层抽象打交道,而不需了解磁盘的技术细节,这层易于使用的抽象即为文件系统。文件系统笔记五、文件系...

2018-01-22 17:10:22 511

原创 网络层笔记四、划分子网

网络层笔记四、划分子网引言:上一篇笔记中,有写到最基本的IP地址编址方式——分类IP。第四篇笔记将介绍其存在的弊端,改进思路(划分子网),最后介绍子网掩码如何实现子网划分。网络层笔记四、划分子网一、分类IP地址编址方式的弊端二、划分子网的基本思路三、子网划分的实现—子网掩码四、划分子网情况下路由器转发分组的算法一、分类IP地址编址方式的弊端...

2018-01-20 23:28:56 1400

原创 网络层笔记三、分类的IP地址

网络层笔记三、分类的IP地址引言:我们把整个因特网看成是一个单一的,抽象的网络。IP地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。IP地址的编址方法共经历了分类、改进分类、无分类三个历史阶段,本文将介绍基础的分类编址方式,以辅助后面第四、第五篇笔记介绍改进分类(子网划分)及无分类(超网构成)。网络层笔记三、分类的IP地址1、分类...

2018-01-19 13:40:36 928

原创 内存管理笔记三、单道编程的内存管理

内存管理笔记三、单道编程的内存管理引言:最简单的内存管理是单道程序下的内存管理。内存管理笔记三、单道编程的内存管理1、基本概念2、地址独立与地址保护实现3、固定地址的内存管理优缺点1、基本概念  在单道编程环境下,整个内存里面只有两个程序:一个是用户程序,另外一个是操作系统。由于只有一个用户程序,而操作系统所占用的内存空间是恒定的,我们可以...

2018-01-18 16:39:44 618

原创 网络层笔记二、虚拟互连网络概念

网络层笔记二、虚拟互连网络网络层笔记二、虚拟互连网络1、现实问题2、网络互连的中间设备3、TCP/IP虚拟互连方式4、一个实际例子引言:由于不同物理网络的异构性,存定了各自寻址方式、网络接入机制等存在差异性。如果要把全世界范围内数以百万计的网络都互联都互连起来,并且能够相互通信,那么这样的任务一定非常复杂。而虚拟互联网络,提供了解决思路。...

2018-01-18 11:39:09 5444 1

原创 网络层笔记一、网络层提供服务的方式

网络层笔记一、网络层提供服务的方式引言:在计算机网络领域。网络层应该向传输层提供怎样的服务(“面向连接”还是“无连接的”)曾引起长期的争论。争论的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?网络层笔记一网络层提供服务的方式1网络层提供可靠交付虚电路服务2网络层提供不可靠交付数据报服务3虚电路与数据报的主要区别1、网络层提供可

2018-01-15 11:02:06 1738

原创 内存管理笔记二、操作系统在内存中的位置

内存管理笔记二、操作系统在内存中的位置引言:从根本上说,计算机里面运转的程序有两种:管理计算机的程序和使用计算机的程序。而操作系统就是管理计算机的程序,其本身也需要使用资源,需要占用内存。那我们如何将内存空间在操作系统和用户程序之间进行分配呢?或者说,应该将哪一部分内存空间用来存放操作系统呢?内存管理笔记二、操作系统在内存中的位置1、操作系统在RAM底层,用户程序占用RAM的上层...

2018-01-13 15:06:38 3826

原创 内存管理笔记一、内存管理的需求

内存管理笔记一、内存管理的需求引言:清楚内存管理需求,会帮助我们更好的学习和理解内存管理相关的机制和策略。内存管理笔记一、内存管理的需求重定位:保护:共享:逻辑组织:物理组织:   在单道程序设计系统中,内存被划分成两部分:一部分供操作系统使用(驻留监控程序、内核),一部分供当前正在执行的程序使用。在多道程序设计系统中,必须在内存中进一步细分出“...

2018-01-13 11:08:17 948 1

空空如也

空空如也

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

TA关注的人

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