自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 操作系统的五种IO模型

操作系统的五种IO模型有:阻塞IO,非阻塞IO,信号驱动IO,IO多路转接,异步IO。理解IO多路转接的概念已经熟悉常见的多路转接技术:select、poll、epoll

2023-10-07 21:29:35 147

原创 MySQL基础与库的基本操作

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。因此:数据库本质->对数据内容存储的一套解决方案,用户给数据库字段或者要求,数据库直接给结果就行。一般的文件确实提供了数据的存储能力,但并没有提供很好的数据管理能力(用户(程序员)角度)对数据库的修改主要是修改数据库的字符集,校验规则。存数据和取数据时,编码集必须是统一的。

2023-09-09 21:19:21 431

原创 常见的八种排序算法

八种排序算法以及它们的实现

2023-09-06 10:55:46 654

原创 std::bind 创建函数对象的绑定器,将函数的参数绑定到特定值从而创建一个新的可调用对象

使用C++标准库中的函数模板std::bind,创建函数对象(函数指针或成员函数指针)的绑定器。将函数的参数绑定到特定的值,从而创建一个新的可调用对象。

2023-08-06 12:19:52 185

原创 【树】 二叉树 堆与堆排序 平衡(AVL)树 红黑(RB)树

什么是树,二叉树,堆,平衡树,红黑树。创建,遍历,检验,应用。

2023-08-04 18:42:00 1894

原创 网络层&&IP协议的基本原理 数据链路层&&ARP协议 域名解析以及一些重要技术

网络层的作用,系统理解TCP/IP协议。数据链路层链路层的作用,ARP协议。DNS域名解析,NET技术详析,DHCP,CIDR:基于子网掩码的划分方式,网络编程小结。

2023-07-26 18:28:26 1713

原创 传输层协议 TCP与UDP

udp是无连接的。tcp要经过三次握手建立连接,四次挥手断开连接。

2023-07-21 17:10:23 860 1

原创 应用层协议:http&&https,如何进行安全握手?

什么是http?http有什么特点?https又是什么?如何安全地进行网络通信?

2023-07-20 01:10:47 717

原创 网络编程 socket

IP地址+端口号称为套接字(SRC_IP+SRC_PORT -> 套接字),因此称为套接字编程。

2023-07-15 16:19:12 1106

原创 网络基础一:网络协议初识与网络传输基本流程

计算机生产厂商有很多,计算机操作系统、计算机网络硬件设备也有很多,为了让这些不同厂商之间生产的计算机能够相互顺畅的通信,约定一个共同的标准大家都来遵守,就是网络协议。

2023-06-27 23:18:37 731

原创 线程安全与互斥锁(访问控制)

因为一个线程的操作问题,给其他线程造成了不可控,或者引起崩溃,异常,逻辑不正确等这种现象:线程安全。线程安全问题由访问控制解决,其中互斥锁就是访问控制方法之一。

2023-05-31 23:39:49 530

原创 多线程 —— 线程控制

我们查看到的线程id是pthread库的线程id,不是Linux内核中的LWP,pthread库的线程id是一个内存地址!

2023-05-31 23:31:26 860

原创 System V方案 — 共享内存

System V是一个由人们定制的,在**同一个主机内的进程间通信方案**(System V方案)。

2023-05-20 16:54:37 1380

原创 进程通信 — 管道

一个进程要把自己的数据交付给另一个进程,让其进行出来处理。而一个进程把自己的数据交付给另一个进程的动作,就叫做进程通信。管道是Unix中最古老的进程间通信的形式。我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”。

2023-05-17 22:52:24 1232

原创 进程程序替换

进程不变,仅仅替换当前进程的代码和数据的技术,叫做进程的程序替换。进程程序替换并不创建新的进程。

2023-05-14 16:26:54 386

原创 进程状态以及两种特殊进程

进程状态、僵尸进程、孤儿进程

2023-04-26 20:48:24 341

原创 Linux小程序 — 进度条

回车和换行其实是两个概念。回车是回到当前行的最开始。换行是新起一行,列不变。

2023-04-19 23:47:00 183

原创 Linux项目自动化构建工具 - make/Makefile

make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。

2023-04-17 21:50:52 211 2

原创 编译过程、Linux编译器-gcc/g++使用、Linux调试器 - gdb使用

因为采用静态链接方式是将所需库拷贝到自己的可执行程序中,所以生成的可执行程序会比动态链接方式生成的大许多。链接器同时也会引入标准C函数库中任何被该程序所用到的函数,而且它可以搜索程序员个人的程序库,将其需要的函数也链接到程序中。因为加入了debug信息,所以对于同一程序,debug模式发布的体积会大于release模式。(语言也是有库的,对于c语言,一套头文件+一套库文件[libc.a,libc.so])如果一个程序是可以被调试的,该程序的二进制文件一定加入了一些debug信息。

2023-04-16 11:42:55 122

原创 Linux || 环境变量以及其自定义、文件上传下载、压缩解压命令

环境变量PATH这个项目里面记录了系统执行命令的搜索路径。这些搜索路径我们也可以自行添加到PATH中去。在当前HOME目录内创建文件夹, myenv,在文件夹内创建文件mkhaha通过vim编辑器,在mkhaha文件内填入: echo 哈哈哈哈哈完成上述操作后,随意切换工作目录,执行mkhaha命令尝试一下,会发现无法执行修改PATH的值临时修改PATH:,再次执行mkhaha,无论在哪里都能执行了或将,填入用户环境变量文件或系统环境变量文件中去。

2023-04-06 19:49:58 678

原创 Linux || 网络请求、进程、主机状态监控

IP地址相当于小区地址,在小区内可以有许多住户(程序),而门牌号就是各个住户(程序)的联系地址。如图中,计算机A的微信连接计算机B的微信,A使用的50001即动态端口,临时找一个端口作为出口。为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程。进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID。本质上是发起HTTP请求,可以指定请求的方式,并以指定的某种格式传参数。计算机B的微信使用端口5678,即注册端口,长期绑定此端口等待别人连接。

2023-04-05 14:57:21 2502

原创 Linux软链接命令、虚拟机时间同步、IP与主机名、Linux配置固定IP

为了确定网络区域,分开主机和路由器的每个接口,从而产生了若干个分离的网络岛,接口端连接了这些独立网络的端点。IP地址是以网络号和主机号来表示网络上的主机的,只有在一个网络号下的计算机之间才能“直接”互通,不同网络号的计算机要通过网关(Gateway)才能互通。

2023-04-02 22:39:07 2236 1

原创 Linux的软件安装以及控制_yum_apt_systemctl_Ubutu22_04&CentOS7

CentOS系统和Ubuntu是使用不同的包管理器。

2023-03-30 13:36:20 610

原创 linux实用快捷键

ctrl+d不能用于退出vi/vim。

2023-03-27 15:39:37 184

原创 Linux用户和权限

root用户与普通用户,su与sudo,用户,用户组,getent,权限掩码umask,粘滞位

2023-03-26 22:42:20 383

原创 基于Floyd的校园导航小程序

使用了邻接表和Floyd,将schoolmap.png的路径改为自己的图的路径即可用。

2023-03-26 10:59:05 1155 4

原创 vi编辑器

vi/vim是visual interface的简称,是Linux中最经典的文本编辑器。同图形化界面中的文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同 颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。

2023-03-25 21:02:28 201 1

原创 【Linux基本命令】

注:创建文件夹需要修改权限,确保操作均在Home目录内,在Home目录外涉及到权限问题,直接操作无法成功。我们可以通过pwd命令,来查看当前所在的工作目录。当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前目录下的内容。当使用参数,ls命令的参数表示:指定一个Linux路径,列出指定路径的内容。我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里。选项,表示:all的意思 ,即列出全部文件(包含隐藏的文件/文件夹)选项,表示以易于阅读的形式,列出文件大小,如K、M、G。

2023-03-21 23:49:53 963

原创 Linux || 环境配置记录

Linux系统的组成如下内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等。系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放器等。可以看出,内核是Linux操作系统最核心的所在,系统级应用程序只是锦上添花。Linux内核是免费开源的,任何人都可以下载内核源码并查看且修改。可以通过去下载Linux内核。

2023-03-21 23:49:01 293

原创 【处理机调度、进程调度相关内容、调度算法的评价指标】

它包括四个部分:作业在外存后备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等待进程调度(低级调度)的时间、进程在CPU上执行的时间、进程等待I/O操作完成的时间。在多道程序系统中,进程的数量往往是多于处理机的个数的,这样不可能同时并行地处理各个进程。有的作业运行时间短,有的作业运行时间长,因此在周转时间相同的情况下,运行时间不同的作业,给用户的感觉肯定是不一样的。对无周转时间相同的两个作业,实际运行时间长的作业在相同时间内被服务的时间更多,带权周转时间更小,用户满意度更高。

2023-01-16 23:06:50 463

原创 【线程概念和多线程模型】

还没引入进程之前,系统中各个程序只能串行执行。有的进程可能需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了“线程”,来增加并发度。传统的进程是程序执行流的最小单位。而在引入线程后,线程成为了程序执行流的最小单位。可以把线程理解为“轻量级进程”。线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)

2023-01-16 21:47:52 163

原创 【什么是进程,进程的组成、组织方式、特征,进程控制,进程通信】

程序就是一个指令序列。早期的计算机只支持单道程序。引入多道程序技术之后,内存中同时放入多道程序,各个程序的代码、 运算数据存放的位置不同。操作系统要怎么才能找到各程序的存放位置呢?为了方便操作系统管理,完成各程序并发执行,引入了进程、进程实体的概念。系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置)。程序段数据段PCB三部分组成了进程实体进程映像一般情况下,我们把进程实体就简称为进程。例如,所谓创建进程,实质上是创建进程实体中的PCB;

2023-01-13 17:08:19 565

原创 【操作系统的运行机制与体系结构、中断和异常、系统调用】

操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。应用程序通过系统调用请求操作系统的服务。

2023-01-03 20:47:45 394

原创 【操作系统的功能、特征、发展以及分类】

(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享),进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

2022-12-17 23:25:15 117

原创 【C++提高编程完结篇 :STL算法大合集 】

> - 算法主要是由头文件`` `` ``组成。> - ``是所有STL头文件中最大的一个,范围涉及到比较、交换、查找、遍历操作、复制、修改等等> - ``体积很小,只包括几个在序列上面进行简单数学运算的模板函数> - ``定义了一些模板类,用以声明函数对象

2022-11-26 21:23:43 629

原创 【C++提高编程篇 STL中的函数对象】

函数对基本使用、一元谓词、二元谓词、内建函数对象

2022-11-23 20:40:39 92

原创 【C++ :STL常用容器合集】

由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器,不支持随机访问。功能描述:统计set容器大小以及交换set容器(因为set容器的特性,故其不提供重新指定set容器容量大小的接口)map容器默认排序规则为按照key值从小到大排序,掌握如何改变排序规则。栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。若为自定义数据类型,map必须要指定排序规则,同set容器。功能描述:成对出现的数据,利用对组可以返回两个数据。功能描述:栈容器常用的对外接口。

2022-11-20 21:27:11 698

原创 评委打分:一个案例学会vector容器与deque容器的灵活运用!

温故而知新,且行且珍惜。

2022-11-08 17:14:25 144

原创 【C++自学笔记 提高编程篇(三)STL常用容器 — deque】

deque容器与vector接口相似,区别在于deque为双端数组,且其内部实现与vector不同,快来看看吧啊啊啊啊啊啊

2022-11-06 22:13:38 219

原创 【C++自学笔记 提高编程篇(三)STL常用容器 — vector】

一些有关于vector提供的接口。

2022-11-05 22:05:43 368

空空如也

空空如也

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

TA关注的人

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