自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 redis入门指南(1)

##介绍   Redis是REmote DIctionary Server(远程字典服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。Redis字典中的键值除了可以是字符串,还可以是其他数据类型。到目前为止Redis支持的键值数据类型如下:字符串类型散列类型列表类型集合类型有序集合类型   Redis数据库中的所有数据都存储在内存中。由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于

2021-02-24 15:43:50 102

原创 c++实现单例模式

单例模式懒汉式(线程不安全)#include<iostream>using namespace std;class Singleton{ private: Singeleton(){} static Singleton *ptr; public: static Singleton * GetInstance(){ if(ptr==nu

2021-01-31 21:10:06 102

原创 Linux系统编程(第九章)笔记

内存管理进程地址空间   像所有的现代操作系统一样,Linux将它的物理地址虚拟化。进程并不能直接在物理内存上寻址,而是由Linux内核为每个进程维护一个特殊的虚拟地址空间,这个地址空间是线性的,从0开始,一直到某个最大值。页和页面调度   内存是由比特位组成,8个比特组成一个字节,字节又组成字,字组成页。对于内存管理,页是最重要的:页是内存管理单元可以管理的最小可访问内存单元。因此,虚拟空间是由许多页组成的。系统的体系结构以及机型决定了页

2021-01-31 16:30:54 179

原创 Linux系统编程(第八章)笔记

文件和目录管理文件及其元数据   所有文件对应一个inode(索引节点),它是由文件系统中唯一数值编址,该数值称为inode编号。inode既是位于UNIX式的文件系统的物理对象,也是在Linux内核数据结构描述的概念实体。inode存储了与文件有关的元数据,例如文件的访问权限、最后访问时间戳、所有者、用户组、大小以及文件数据的存储位置。   可以使用ls命令的-i选项来获取一个文件的inode编号。   un

2021-01-30 22:01:48 172

原创 Linux系统编程(第七章)笔记

线程   线程是指在单个进程内,多路并行执行的创建和管理单元。二进制程序、进程和线程   二进制程序是指保存在存储介质上的程序,以给定操作系统和计算机体系结构可访问的格式编译生成,可以运行但尚未开始。   进程是操作系统对运行的二进制程序的抽象,包括:加载的二进制程序、虚拟内存、内核资源如打开的文件、关联的用户等。   线程是进程内的执行单元,具体包括:虚拟处理器、堆栈、程序状态

2021-01-30 16:58:43 176

原创 Linux系统编程(第六章)笔记

高级进程管理进程调度   进程调度器是个内核子系统,其功能是把有限的处理器资源分配给系统中的各个进程。   协同式的多任务操作系统:进程会一直运行直到它自己结束。这种自发结束的行为称为“让出”。   抢占式的多任务操作系统;调度器决定某个进程何时停止运行,而由另一个进程运行。这种中止正在运行的进程而由另一个进程运行的行为称为“抢占”。进程在抢占前所能够运行的时间称为该进程的“时间片”。Linux实现了这种形式的

2021-01-28 14:49:14 85

原创 Linux系统编程(第五章)笔记

进程管理程序、进程和线程   程序是指编译过的、可执行的二进制代码,保存在存储介质如磁盘上,不运行。一个c程序的编译过程   进程是指正在运行的程序。包括二进制镜像,加载到内存中,还涉及很多其他方面:虚拟内存实例,内核资源如打开的文件,安全上下文如关联的用户,以及一个或多个线程。   线程是进程内的活动单元。每个线程包含自己的虚拟存储器包括栈,进程状态如寄存器,以及指令指针。运行新进程 &nbsp

2021-01-28 14:18:03 79

原创 预处理、编译、汇编、链接介绍

   对于一个c语言的源码编译成可执行文件的过程分为四步:预处理,编译,汇编,链接。下面根据gcc命令来剖析这四步。1)预处理   编译器将c源代码中的头文件展开、定义的宏进行替换、去掉注释、条件编译1. gcc -E hello.c -o hello.i2)编译   编译器检查预处理代码中的语法,并将其翻译成汇编代码。2. gcc -S hello.i -o hello.s3)汇编 &n

2021-01-28 11:38:44 316

原创 Linux系统编程(第四章)笔记

高级I/O分散/聚集I/O   分散/聚集I/O是一种可以在单次系统调用中对多个缓存区输入输出的方法,可以把多个缓冲区的数据写到单个数据流,也可以把单个数据流写到多个缓冲区。readv()和writev()#include<sys/uio.h>ssize_t readv(int fd,const struct iovec *iov,int count);#include<sys/uio.h>ssize_t writev(int fd,co

2021-01-17 19:49:19 161

原创 Linux系统编程(第三章)笔记

缓冲I/O   由于块是文件系统中最小存储单元的抽象,在内核中,所有文件系统操作都是基于块来执行。因此所有I/O操作都是在块大小或者块大小的整数倍上执行。   假设要读取1024个字节,每次读一个字节需要1024次调用,而如果一个读取1024字节的块则只需要调用一次。对于这种提升其性能的途径是“用户缓冲I/O”。用户缓冲I/O   用户缓冲I/O在用户空间完成,类似内核通过延迟写,合并相邻I/O请求以及预读等操

2021-01-13 15:32:54 162

原创 Linux系统编程(第二章)笔记

文件I/O   本章介绍了文件I/O的基本要素,详细阐述了最简单也是最常见的文件交互方式–系统调用。   内核会为每个进程维护一个打开文件的列表,称为文件表;是由一些非负整数进行索引,这些非负整数称为文件描述符;列表每一项是一个打开文件的信息(文件索引节点内存拷贝的指针,关联的元数据)。用户空间和内核空间都使用文件描述符作为唯一cookies;打开文件返回文件描述符,后续操作将文件描述符作为基本参数。   文件描

2021-01-13 13:50:39 120

原创 Linux系统编程(第一章)笔记

系统编程系统程序主要是与内核和系统库打交道,而应用程序还需要与更高层次的库进行交互,这些库把硬件和操作系统的细节抽象封装起来。这种抽象有以下几种目的:一是增强系统的可移植性,二是便于实现不同系统版本间的兼容,三是可以构建更易于使用、功能更强大或二者兼而有之的高级工具箱。系统调用系统调用(通常简称为syscall)是为了从操作系统请求一些服务或资源,是从用户空间如文本编辑器、游戏等向内核(系统的核心)发起的函数调用。系统调用范围很广,从大家都熟悉的如read()和write(),到罕见的如get_thr

2021-01-09 16:00:09 178

空空如也

空空如也

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

TA关注的人

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