- 博客(21)
- 收藏
- 关注
原创 linux文件系统
Linux 的文件与目录现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用。在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件,而 Linux 保持了这一特性。为了便于文件的管理...
2018-09-18 21:46:06 145
原创 linux socket 优化提升网络速度
在开发 socket 应用程序时,首要任务通常是确保可靠性并满足一些特定的需求。利用本文中给出的 4 个提示,您就可以从头开始为实现最佳性能来设计并开发 socket 程序。本文内容包括对于 Sockets API 的使用、两个可以提高性能的 socket 选项以及 GNU/Linux 优化。为了能够开发性能卓越的应用程序,请遵循以下技巧:最小化报文传输的延时。 最小化系统调用的负载。...
2018-07-26 22:07:36 3818
原创 计算机大小端存储方式
1.大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端模式相反 2.为什么有大小端之分??? 因为在计算机系统中,存储是以字节为单位的,每个地址单元都对应着一个字节,一个字节=8bit。在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器)。对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器...
2018-05-30 21:34:23 326
转载 MYSQL数据库基本操作
主要内容:一、cmd命令行的常用命令二、数据定义语言(DDL)三、数据操纵语言(DML)四、数据查询语言(DRL)五、事务控制语言(TCL)一、cmd命令行的常用命令:当我们使用MySQL 5.5 Command Line Client这个客户端登陆时,只能登陆root用户。如果今后创建了别的用户,就很麻烦了,所以我们不用MySQL 5.5 Command Line Client这个客户端,而是直...
2018-05-12 19:17:32 178
原创 Linux I/O复用——select()
1、Linux I/O多路复用 之前:我们的处理是,每到来一个客户端,都为其开辟一个新的进/线程,对其进行一对一的服务,这是VIP的模式;在高并发情况下,将造成资源消耗过大。 现在,对应高并发:一个线程为多个客户服务; 同一个时刻,只能为一个客户服务(作用排队);模型分析此时就会产生select()、poll()、epoll()模式2、select()模式 API函数: int sele...
2018-03-18 14:49:12 153
原创 c/c++知识点总结
1.面向对象的特性 封装、继承、多态。 封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。(优点:可以隐藏实现细节,使得代码模块化) 继承:可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。(优点:可以扩展已存在的代码模块(类)) 多态:一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内...
2018-03-16 17:26:28 197
原创 操作系统知识点
有那么一些零碎的小知识点,偶尔很迷惑,偶尔被忽略,偶然却发现它们很重要,也是各大笔试和面试高频出现考点。这段时间正好在温习这些,就整理在这里,一起学习一起提高!后面还会继续补充。——前言1.进程和线程 线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间(也有少量自己的地址...
2018-03-14 21:18:23 351
原创 进程间通信——消息队列
1、消息队列的简介 消息队列就是在进程之间架设起通信的通道,信息在通道中传递(具有时间先后的),从宏观逻辑上来讲与管道是一致的。即就是消息队列也同样是:(1)、具有入口和出口;(2)、消息从入口到出口,是FIFO的;(3)、所以消息在其中是队列的存储形式。 消息队列与管道不同的地方在于:管道中的数据并没有分割为一个一个的数据独立单位,在字节流上是连续的。然而,消息队列却将数据分成了一个一个独立...
2018-03-05 19:49:35 264
原创 进程间通信——信号量
1、内核对进程访问的管理 (1)、进程在访问共享资源是存在冲突的,必须的有一种强制手段说明这些共享资源的访问规则。 访问规则的原理:当有一个进程在访问这些共享资源的时候,需要明确的向其他的进程表示:该资源已经被占用。 (2)、访问规则 现代操作系统一定是多进程的(多任务),多进程的环境一定存在共享资源的访问冲突问题。操作系统提供了一种机制对"访问规则的原理"进行的实现。 i>、用一...
2018-02-15 15:43:55 164
原创 进程间通信——共享内存
1、IPC资源简介 除了管道、文件、以及信号以外,还有IPC这样一种进程间的通信手段。IPC的含义即就是进程间通信资源,它包含三种资源类型。 (1)、共享内存; (2)、信号量; (3)、消息队列; 使用ipcs可以查看当前系统中IPC资源的情况。2、共享内存简介 共享内存简而言之就是一句话:各个进程都能够共同访问的共享的内存区域。 进程的特征:高度的独立性和封闭性,它能够直接访问的...
2018-02-14 12:03:42 275
原创 进程间通信——管道深入
1、有名管道怎么实现C/S模型? 此时我要做的就是服务器端,跟客户端进行通信,必须的打开2个终端进行不同进程间的通信。 思路分析: i>、首先必须的有2个管道文件;服务器端创建一个管道文件,客户端创建一个管道文件。 ii>、服务器端的管道文件首先进行发送,客户端的对应该管道文件进行接收;客户端创建的管道文件,服务器端对应该管道文件进行接收。 iii>、因为管道具有阻塞的...
2018-02-13 21:08:05 158
原创 进程间通信——管道
1、管道 管道通信——只能在一台电脑上面运行。 管道:一定是半双工的通信,只能流向一个方向(规定流向); 管道是一个进程间通信的概念,在要通信的进程间构建一个单向的数据流动的通道。数据通过该通道从一个进程流向另一个进程时是具有时间先后顺序的。就像是在进程间架起了一个"管道"。模型分析管道的实现:在Linux(Posix标准)的操作系统下,管道是通过文件来实现的。在后来的操作系统的发展中,依然...
2018-02-13 15:54:27 402
原创 线程池网络服务
1、线程池网络服务 :针对多线程网络服务模式的一些不足之处而提出的改进模式。 池是一个很重要的概念,其基本理念是:先创建一批资源,当有用户到来时,直接分配以创建好的资源,它的主要目的是减少系统在频繁创建资源时的开销。 实现原理:主服务线程创建既定数量的服务线程,当有客户端到来时,则从线程池中找出空闲的服务线程,为其服务,服务完毕后,线程不进行释放,重新放回线程池;若当前线程池已满,则将当前的...
2018-02-12 20:18:10 152
原创 生产者与消费者
1、生产者与消费者问题 空间满:生产者不能生产数据; 空间空:消费者不能取出数据; 在这种模型下,将会有(生产者:消费者)为:一对一、一对多、多对一、多对多。 为了简化问题,在这里就只实现一个生产者和一个消费者的问题。模型如下注意: (1)、线程阻塞时,用条件变量来解决。唤醒并运行其后的语句是在遇到阻塞之后; (2)、临界区模式; pthread_mutex_lock(&mu...
2018-02-12 10:23:39 206
原创 互斥量和条件变量
1、如何利用2个条件变量实现线程同步? 思路:就是来回的利用pthread_cond_signal()函数,当一方被阻塞时,唤醒函数可以唤醒pthread_cond_wait()函数,只不过pthread_cond_wait()这个方法要执行其后的语句,必须遇到下一个阻塞(也就是pthread_cond_wait()方法时),才执行唤醒后的其后语句。代码如下:123456789101112131...
2018-02-11 20:14:45 321
原创 读写锁
1、读写锁 互斥锁:试图进入临界区的所有其他进程都阻塞住。 读写锁:获取读写锁用于读和获取读写锁用于写作区分。 读写锁分配规则: (1)、读锁:共享锁,此时可以有多个读锁,但是没有写锁。 (2)、写锁:独占锁,此时在也没有任何的写/读锁。 (3)、读写锁中,写锁优先抢占资源。2、编程实现 需要使用:pthread_rwlock_t rwlock //定义了一个读写锁变量; 使用...
2018-02-11 15:36:30 776
原创 多线程网络服务
1、多线程网络服务 :多线程网络模式类似于多进程网络模式;不同的是:新客户端到来时,启动的是一个线程(每来一个客户,将创建一个线程)。模型分析2、代码实现同样用处理整数运算来模拟多线程的并发处理(1)、utili.h12345678910111213141516171819202122#include<unistd.h>#include<stdio.h>#include&...
2018-02-10 21:48:59 223
原创 多进程网络服务
1、高性能网络服务程序 Linux的一个应用优势是可用于设计各种高性能网络服务程序,高性能的一个特点就是实现并发访问处理,及同时为多个在线用户提供服务;多进程网络服务、多线程网络服务、线程池网络服务;2、多进程网络服务 :利用Linux系统中的父子进程关系为多用户提供并发服务,是一种比较流行的并发服务技术,其基本理念是:来一个用户,启动一个服务进程。若有新连接到来,则启动子进程与其交互,服务结...
2018-02-10 13:20:38 160
原创 socket网络编程
1、什么是计算机网络? 多个计算机进行通信--->计算机网络。2、计算机通信的复杂度 (1)、传输信息的复杂度(种类、内容); (2)、信息的数量 (3)、传输距离(干扰...) (4)、信息的安全问题 (5)、计算机体系的完整性和封闭性。 既要保证计算机的封闭性,又要达成计算机的通信。3、ip地址 (
2018-02-06 20:36:46 161
转载 epoll系列函数使用
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
2017-11-25 22:16:38 220
转载 linux中文件操作函数
1. open()函数功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。所需头文件:#include ,#include ,#include 函数原型:int open(const char *pathname,int flags,int perms)参数:pathname:被打开的文件名(可包括路径名如"dev/tt
2017-11-05 14:59:29 433
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人