- 博客(32)
- 资源 (3)
- 收藏
- 关注
转载 UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的
2015-01-31 23:07:32 1012
原创 nginx的hash表结构
前言ngx中的hash表有两种,一种是常规的hash表,另外一种是带有通配符的hash表(其中包含前缀通配符和后经通配符)。而带通配符的hash表是基于常规hash表建立的。ngx_hash_t是nginx中的hash表的实现,定义和实现位于src/core/ngx_hash.c和src/core/ngx_hash.h文件中。ngx_hash_t的实现与一般的hash表实现大同小异。对于常
2015-01-31 21:00:56 659
转载 http协议
简介 超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。HTTP 请求报文 HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成,如下图所示:
2015-01-28 22:36:35 803
原创 nginx中的数组结构ngx_array_t
nginx中的ngx_array_t类似于c语言中的数组,其是基于内存池动态分配的。主要包含在文件src/core/ngx_array.h和/src/core/ngx_array.c两个文件中。1、ngx_array_t的数组结构typedef struct { void *elts; //数组的首地址 ngx_uint_t nelts; //数组中的
2015-01-25 17:06:05 1029
转载 UML关系(泛化,实现,依赖,关联(聚合,组合))
UML的构造快包含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物(2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系(3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,协作图事物是对模型中最具代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。 (2) 关系(4种)UML 中类与类, 类
2015-01-24 21:52:51 640
原创 nginx的内存池及内存管理
nginx对内存的管理是由自己实现的内存池结构ngx_pool_t来完成,本文主要讲nginx的内存管理。nginx对内存管理涉及到四个文件:src/core/ngx_palloc.h、src/core/ngx_palloc.c、src/os/unix/ngx_alloc.c、src/os/unix/ngx_alloc.hngx_alloc.h和ngx_alloc.c文件主要是对mallo
2015-01-24 21:37:15 2004
原创 DLX算法介绍
在介绍DLX算法前,先说下X算法,通过比较才 知道DLX算法的好。X算法是一种常规的回溯算法,我们可以用一个递归过程求精确覆盖问题。递归过程描述为:选择一个没有被删除的列,然后枚举该列为1的行,将该行作为解的一部分,删除所选择的行中为1的列(在删除列时,将对应的行也删除)。用伪代码表示如下,其中A表示覆盖时的矩阵if A is empty, the problem is solved;
2015-01-23 22:14:16 11706
原创 nginx的master和worker进程间的通信
本文 主要分析master进程和worker进程之间是如何使用channel来完成通信的。这部分实现的代码主要分布在src/os/unix/ngx_channel.c文件中。master进程将数据传给worker进程,用socketpair创建的通道channel[0]将命令发送给worker进程,告诉worker进程要做什么。而worker进程不需要告诉master进程做什么,是一个单向的通道。
2015-01-23 00:02:22 3852
原创 nginx进程管理之worker进程
主要分析一下worker进程的情况。首先找到worker进程的入口-ngx_worker_process_cycle。这个函数不仅是worker进程的入口函数,而且是worker进程 循环工作的主要函数。首先将全局变量ngx_process设置为worker进程的标志,然后调用ngx_worker_process_init,对worker进程作初始化操作。先看看worker进程的初始化过程。
2015-01-21 23:36:51 2647
原创 window下运行linux程序
首先下载cygwin,然后在安装目录下找到cygwin.bat文件,添加:@echo offC:set CYGWIN=tty notitle globset PATH=%PATH%;c:\cygwin64\bin;c:\cygwin64\sbin;c:\cygwin64\usr\bin;c:\cygwin64\usr\sbin;c:\cygwin64\usr
2015-01-20 18:36:44 637
原创 window和linux下遍历目录的比较
window下,遍历目录主要是用FindFirstFile和FindNextFile,而linux下是用opendir和readdir实现void scanFile(char *szDir){ WIN32_FIND_DATA FindFileData; char szFilePath[MAX_PATH]; strncpy(szFilePath, szDir, strlen(szDir
2015-01-19 22:54:00 3721
原创 fork的总结
1、文件共享fork时,创建的文件描述符,父子进程共享。在父子进程都对文件操作时,如果没有作同步处理,会出现相互干扰问题。现在说下fork后处理文件描述符的常用情况(1)父进程等待子进程完成。在这种情况下,父进程无需对其描述符亻任何处理,当子进程终止后,它曾进行的读写操作的任一共享描述符的偏移量已进行了相应更新。(2)父、子进程各自执行不同的程序段。在这种情况下,fork后,父、子进程
2015-01-17 21:14:16 790
原创 nginx进程管理之master进程
nginx分为single和 master两种进程模型。master模型为一个master模型和n个worker进程的工作方式 。本文分析nginx的 master进程做了哪些事情,它是如何管理好各个worker进程的。在main函数中完成了nginx启动初始化过程,启动初始化过程中的一个重要环节就是解析配置文件,回调各个配置指令的回调函数,因此完成了各个模块的配置相互关联。在完成初始化后,就
2015-01-17 20:38:39 4859
原创 sigsuspend的使用
sigsupend是设置信号掩码,等待信号发生,调用 信号处理函数,恢复先前的信号掩码。先阻塞SIGINT信号,然后用sigsuspend设置信号掩码为0(即可以处理任何信号 ),但是按组合键Ctrl+C时,根本就没有捕捉到,但 是在另一台虚拟机上是可以的,后来又试了在终端上输入kill -信号名 pid,这样也是可以触发信号,代码如下:#include #include #inc
2015-01-16 21:40:42 745
原创 nginx启动初始化过程(二)
前面提到nginx启动过程中,关键部分是ngx_init_cycle。ngx_init_cycle()函数究竟做了哪些工作。ngx_cycle_t结构定义在src/core/ngx_core.h文件中。ngx_timezone_update(); /* force localtime update with a new timezone */ tp = ngx_timeof
2015-01-15 21:40:58 674
原创 TCP/IP协议:链路层
1、引言在TCP/IP协议簇中,链路层的目的有三个:(1)为IP模块 发送和接收IP数据 报(2)为ARP模块发送ARP请求和接收ARP应答(3) 为RARP模块发送RARP请求和接收RARP应答TCP/IP支持多种不同的链路层协议,取决于网络所使用的硬件,如以太网、令牌环网、FDDI(光纤分布式数据接口)及RS-232串行线路等。2、以太网和IEEE802封装帧格式采
2015-01-15 00:21:53 755
原创 nginx的启动初始化过程(一)
nginx的启动初始化在src/core/nginx.c的main函数中完成,也是整个nginx的入口。nginx的初始化主要围绕一个类型为ngx_cycle_t的全局变量ngx_cycle展开。main函数做的第一件事是对参数选项进行处理,如下if (ngx_get_options(argc, argv) != NGX_OK) { return 1; }
2015-01-13 21:00:24 1056
转载 编程经典书籍
编程经典书籍1、Java Java编程语言(第三版)---Java四大名著----James Gosling(Java之父) Java编程思想(第2版)----Java四大名著----Bruce Eckel Java编程思想(第3版)----Java四大名著----------------Bruce Eckel JAVA 2核心技术 卷I:基础知识(原书第7版)
2015-01-13 09:35:40 629
原创 nginx的安装
nginx依赖以下模块:1、gzip模块需要zlib库2、rewrite模块需要pcre库(正则表达式)3、ssl功能需要openssl库安装pcre1、获取pcre编译安装包,在http://www.pcre.org/上可以获得当前最新的版本2、解压缩pcre-xx.tar.gz包3、进入解压缩目录,执行./configure4、make 和make in
2015-01-12 19:10:54 591
原创 TCP/IP协议:概述
1、分层 TCP/IP分为四层协议系统每一层负责的功能如下:(1)链路层:也称为数据链路层或网络接口层,通常包含操作系统中的设备驱动程序和计算机中对应的网络接口卡。(2)网络层:处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层包括IP协议(网际协议),ICMP(Internet互联网控制报文协议),IGMP(Internet组管理协议)(3)运输层
2015-01-11 21:50:58 609
转载 Oracle学习网站
Oracle学习网站http://www.oracle-base.com 能弄懂这里面的文章,那oracle的基本功就非常扎实。(英)http://asktom.oracle.com/pls/apex/f?p=100:1:0 ; 主要是高手答疑的网站,偏向提高类(英)http://www.qujon.com/ ; 一大堆视频教程,仅供参考,偶尔听听别人的声音是很有必要的。(中)
2015-01-11 19:44:18 738
原创 网络编程学习笔记(获取所有网络接口)
主要是用ioctl函数,同时需要头文件/* net/if.h -- declarations for inquiring about network interfaces Copyright (C) 1997-2014 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU
2015-01-10 21:51:02 1179
原创 oracle11g安装中的问题
1、缷载时oci.dll文件删除不了?删除注册表中oracle相关的项,环境变量中的oracle路径去掉,重启后即可删除2、安装进提示有指定的sid已经存在?删除注册表中oracle相关的项
2015-01-09 20:19:17 1768
原创 题目1507:不用加减乘除做加法
题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。输入:输入可能包含多个测试样例。对于每个测试案例,输入为两个整数m和n(1输出:对应每个测试案例,输出m+n的值。样例输入:3 47 9样例输出:716思路:两个数a,b相加,a ^ b表示不
2015-01-07 23:33:44 526
转载 ext2文件系统
注意:节点号有相对于整个文件系统来说的inode号,我们暂时叫他fsinode号,有相对于块组来说的inode号,我们暂时叫他block inode,同理,块号也有相对于文件系统来说的fsblock,和相对于块组来说的block,inode表项里的block[0]~block[12]里的32位数值,指的是fsbolock,而目录文件的block里的记录,他的节点号指的是fsinode,他们的换算关
2015-01-07 21:20:39 470
原创 windows下获取柱面、扇区数,扇区大小
物理硬盘命名为\\.\PhysicalDrive0用CreateFile打开物理硬盘,然后用DeviceIoControl的参数IOCTL_DISK_GET_DRIVE_GEOMETRY,代码如下#include #include #include #define wszDrive L"\\\\.\\PhysicalDrive0"BOOL GetDriveGeometry(LP
2015-01-07 20:39:55 3861
原创 网络编程(原始套接字)
原始套接字提供如下功能:1、读写ICMPv4,IGMPv4及ICMPv6分组。如ping程序,就是使用原始套接口中发送ICMP回显请求,并接受ICMP回显应答2、读写特殊的IPv4数据报。大多数内核处理值为1(ICMP),2(IGMP)、6(TCP)和17(UDP)的数据报。协议字段还可能为其他值3、使用IP_HDRINCL套接口选项可以构造自己的IPv4头部。原始套接口的
2015-01-06 23:25:31 1508
原创 nginx中的event模块
event中将事件驱动模块,由于支持跨平台,抽象出了event模块。它支持的event类型有:1、AIO(异步I/O)2、/dev/poll(solaris和unix特有)3、epoll(linux特有)4、eventport(solaris 10特有)5、kqueue(BSD特有)6、poll7、rtsig(实时信号)8、selectevent模块的主要功能就
2015-01-05 20:35:09 2347
原创 UVa11264 - Coin Collector(贪心)
Our dear Sultan is visiting acountry where there are n different types of coin. He wants to collectas many different types of coin as you can. Now if he wants to withdrawXamount of money from a Bank
2015-01-03 18:27:17 910
原创 2014年总结
今天是2014年的最后天,回顾这一年,有得也有失。只是希望在2015年所有的一切会变好,同时也对2015年作些规划:1、看一些文学方面的书籍(10篇+)2、加强网络编程及数据库方面的学习,同时也不忘算法这方面的学习(UVa上再刷150+),但是重点还是在网络及数据库3、学习设计模式
2015-01-01 09:48:19 441
Ubuntu Linux实用学习教程.pdf
2009-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人