自定义博客皮肤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)
  • 收藏
  • 关注

原创 虚拟化技术分析Linux系统的一般执行过程

用户可以启动各种进程和应用程序,这些进程在虚拟机中执行,与物理机上的其他虚拟机和进程相互隔离。通过本门课程的学习,我对linux操作系统的认知进一步加深,从内核的组成,进程的创建和切换过程,内核如何管理设备驱动程序,文件系统的组成等掌握了操作系统的工作原理。它可以提供虚拟机的迁移、快照、资源调整和故障恢复等功能,以确保虚拟机的稳定和高可用性。5.初始化内核:Linux内核启动后,它会进行一系列初始化步骤,包括初始化设备驱动程序、设置内存管理、建立系统调用接口、创建进程管理结构等。

2023-05-15 16:51:38 705 1

原创 windwos11wsl使用mysql报错:System has not been booted with systemd as init system (PID 1). Can‘t operate.

windwos11wsl使用mysql报错:System has not been booted with systemd as init system (PID 1). Can‘t operate.

2022-07-18 17:48:00 848

原创 ERROR 1449 (HY000): The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist

ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

2022-07-18 17:38:20 1088 1

原创 ubuntu20.04安装go1.18

ubuntu20.04安装go1.18

2022-06-28 10:57:45 3844

原创 ubuntu安装g++报错Failed to fetch http://mirrors.tencentyun.com/ubuntu/pool/main/l/linux

ubuntu安装g++报错,更改镜像源

2022-06-28 09:16:03 2351 2

转载 使用 Typora+Gitee 设置图床功能

gitee获取token:提交生成token:点击提交后,会出现token,记住只出现一次,只出现一次,只出现一次,复制好后记住它创建gitee仓库:下载picgo:下载地址下载完成后,下载需要插件1.如果在picgo插件下载失败,可以手动离线安装,前提是电脑必须安装了node,要有node环境才行。2.在C:\Users\用户名\AppData\Roaming\picgo文件夹下输入cmd(也可以在管理员身份打开)打开执行npm config set registry https

2022-01-14 16:50:02 226

原创 01简单工厂模式(c++实现)

简单工厂模式主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的 virtual 函数得到不同的结果。优点:适用于不同情况创建不同的类时缺点:客户端必须要知道基类和工厂类,耦合性差Opeartion.h#ifndef CHAPTER1_OPERATION_H#define CHAPTER1_OPERATION_H#pragma once#include <iostream>class Operation

2021-08-12 22:24:37 192

原创 Linux的进程调度算法简介

文章目录一、调度算法的原理和分类1.进程调度简介2.按不同需求对调度的进程分类3.调度算法分类二、使用步骤1.引入库1.引入库总结一、调度算法的原理和分类1.进程调度简介  进程调度的研究是整个操作系统理论的核心,在多进程的操作系统中,进程调度是一个全局性的、关键性的问题,它对系统的总体设计、系统的实现、功能设置以及各方面的性能都有着决定性的影响。进程运行需要各种各样的系统资源,如内存、文件、打印机和最宝贵的CPU等,所以说,调度的实质就是资源的分配。系统通过不同的调度算法(Scheduling A

2021-07-16 16:58:22 7153 3

原创 centos7安装telnet

1.检查是否安装telnet进入root模式,检查是否安装telnet,输入:rpm -qa | grep telnet在虚拟机上刚装完centos7是没有安装telnet和xinetd(下文要用到)。现在进行安装telnet,输入:yum -y install telnet*2.检查是否安装xinetd还是在root模式下,本文都是在root下进行的。检查是否安装xinetd,输入:rpm -qa | grep xinetd未安装则进行安装,输入:yum -y install

2021-05-27 22:07:05 3061 1

原创 windows10/centos7上vscodeC++配置

文章目录前言一、系统:Windows101.c_cpp_properties.json2.launch.json3.settings.json4.tasks.json二、系统:centos71.c_cpp_properties.json2.launch.json3.tasks.json前言vscode中的C++开发环境有点难配,在查阅了一些资料后,终于将其配好了,这里我记录了在Windows10和centos7下vscode中c++的环境配置。一、系统:Windows10Windows10下在vs

2021-05-25 21:59:54 636

转载 Nginx中保持长连接的配置

哎,老转载王了,原博客地址:https://www.cnblogs.com/kevingrace/p/9364404.html在Nginx中,对于http1.0与http1.1是支持长连接的。http请求是基于TCP协议之上的,那么当客户端在发起请求前,需要先与服务端建立TCP连接,而每一次的TCP连接是需要三次握手来确定的,如果客户端与服务端之间网络差一点,这三次交互消费的时间会比较多,而且三次交互也会带来网络流量。当然,当连接断开后,也会有四次的交互,当然对用户体验来说就不重要了。而http请求是请求

2021-05-22 21:50:55 3984 2

转载 C++:实现socket通信

原博客地址,嗯~~,感觉别人已经写得很好了,这里还是尊重别人劳动成果,大家可以看一下原博客,我这里只把代码贴出来了。原博客地址:https://blog.csdn.net/qq_27923041/article/details/83857964我是在VS2019下跑的,能跑通server端代码#include "pch.h"#include<iostream>#include<winsock.h>#pragma comment(lib,"ws2_32.lib")usi

2021-05-17 19:25:17 601

转载 windows10上Nginx的配置

这篇文章也是转载的,以方便自己查看。大家也可以去看原博客:https://www.cnblogs.com/taiyonghai/p/9402734.html一、Nginx简介Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru 站点(俄文:Рамблер)开发的.它也是一种轻量级的Web服务器,可以作为独立的服务器部署网站(类似Tomcat)。它高性能和低消耗内存的

2021-05-17 19:10:03 585

原创 启动nginx访问页面报错An error occurred.

可能的原因之一是:后台的nginx启动的太多了!因为我之前一直改配置文件,每次改了又reload,后来一看后台的nginx启动的太多了,全部关闭然后重启nginx就好了。这是我遇到的原因,有时候也因为配置文件配置的有问题也会导致An error occurred....

2021-05-17 19:01:12 6804

转载 Window 10上VS2019编译并配置C++libcurl开发环境

这是转载的一篇文章,记录在博客里方便查阅。原文请参考:https://blog.csdn.net/DaSo_CSDN/article/details/77587916————————————————版权声明:本文为CSDN博主「null.space」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/DaSo_CSDN/article/details/77587916正文【警告】请确保电脑上没有安装2017/

2021-05-17 18:53:23 507

原创 VirtualBox Installation failed! Error :安装时发生严重错误

我的电脑——右击——管理——服务和应用程序——服务——在服务里启动:1,Device Install Service.2, Device Setup Manager.注意!如果是安装前就把这两个服务启动,安装过程中很有可能还会失败(我就是这样的结果),因为这两个服务会终止。所以请在进度条卡住时!!!(应该是在安装驱动…),赶快重启以上服务(疯狂重启这两个服务),这样可以确保安装成功...

2021-04-23 15:35:01 4110 2

转载 IPv6的地址格式

IPv6的地址格式IPv4地址是类似 A.B.C.D 的格式,它是32位,用"."分成四段,用10进制表示IPv6地址类似XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX的格式,它是128位的,用":"分成8段,每个X是一个16进制数(16 = 2^4);可见,IPv6地址空间相对于IPv4地址有了极大的扩充IPv6 地址的各个部分IPv6 地址的长度为 128 位,由八个 16 位字段组成,相邻字段用冒号分隔。IPv6 地址中的每个字段都必须包含一个十六进制数

2021-03-06 11:01:01 1690

转载 IP地址0.0.0.0

RFC文档:0.0.0.0/8 - Addresses in this block refer to source hosts on “this”network. Address 0.0.0.0/32 may be used as a source address for thishost on this network; other addresses within 0.0.0.0/8 may be used torefer to specified hosts on this network根

2021-03-06 10:24:08 471

转载 Window系统下C/C++程序毫秒级和微秒级执行时间获取方法(转载)

转载链接:https://blog.csdn.net/zhouxianen1987/article/details/53883684一、使用clock()函数,获取毫秒级(ms)时间#include <time.h>//clock()头文件time_t start = clock();{statement section}//测试代码段time_t end = clock();printf(“the running time is:%fs\n”, double(end -start)

2021-02-24 10:23:04 3547

原创 笔记总结:网络是怎样连接的(chapter2)

之前的我们讲过收发数据大致分为四个阶段:(1) 创建套接字(创建套接字阶段)(2) 将管道连接到服务器端的套接字上(连接阶段)(3) 收发数据(通信阶段)(4) 断开管道并删除套接字(断开阶段)  数据收发操作的第一步是创建套接字。一般来说,服务器一方的应用程序在启动时就会创建好套接字并进人等待连接的状态。客户端则一般是在用户触发特定动作,需要访问服务器的时候创建套接字。在这个阶段,还没有开始传输网络包。  创建套接字之后,客户端会向服务器发起连接操作。首先,客户端会生成一个SYN为1的TCP包

2021-01-19 21:17:39 507

原创 笔记总结:网络是怎样连接的(chapter1)

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport p

2021-01-19 10:54:43 583

原创 操作系统-用信号量解决过独木桥问题

题:请用信号量解决以下的“过独木桥”问题:同一方向的行人可连续过桥,当某一方向有人过桥时,另一方向的行人必须等待;当某一方向无人过桥时,另一方向的行人可以过桥。解答:信号量brigde表示独木桥互斥访问,初值为1;变量eastcount和westcount分别表示从东西方上独木桥的行人数量,初值为0,信号量eastmutex和westmutex是对变量eastcount和westcount数据读写的保护,初值为1。东方:while(true){ P(eastMutex); eastCount+

2021-01-15 10:48:50 16510 8

原创 操作系统-用信号量解决小和尚打水老和尚喝水问题

题目:某寺庙,有小和尚、老和尚若干。庙内有一水缸,由小和尚提水入缸,供老和尚饮用。水缸可容纳 30 桶水,每次入水、取水仅为1桶,不可同时进行。水取自同一井中,水井径窄,每次只能容纳一个水桶取水。设水桶个数为5个,试用信号灯和P、V操作给出老和尚和小和尚的活动。解答:n个小和尚从井里面提水进程之间互斥,用 信号量mutex1 来表示;n个小和尚将水倒在缸里、n个老和尚从缸里面取水,这些进程互斥,用信号量 mutex2 来表示;不管是谁要使用水桶都要确认空闲水桶的数量,用 信号量amount 来表示;信号

2021-01-15 10:45:33 3194 5

原创 模拟设计MS-DOS操作系统中磁盘文件的存储结构、模拟便于直接存取的索引文件结构

文章目录一、模拟设计MS-DOS操作系统中磁盘文件的存储结构二、模拟便于直接存取的索引文件结构三、具体实现四、实验结果一、模拟设计MS-DOS操作系统中磁盘文件的存储结构  链接文件可以存放在不连续的物理块中,使用链接字(又称指针)来指出文件中各个物理块之间的关联。在一般情况下,链接文件的第一个物理块号登记在文件目录中,每一块中设置一个链接字,指出链接文件的下一个物理块号,最后一块中的链接字内容为“0”,表示文件结束。如图所示:  采用上述的链接文件结构,只有读出一个物理块信息后才能从链接字中得知下

2021-01-15 10:40:14 2019

原创 在分页式管理方式下采用位示图来表示主存分配情况,实现主存空间的分配和回收

文章目录一、基本思想二、程序所用数据结构和符号说明三、具体实现四、运行结果一、基本思想  分页式存储器把主存分成大小相等的若干块,作业的信息也按块的大小分页,作业装入主存时可把作业的信息按页分散存放在主存的空闲块中,为了说明主存中哪些块已经被占用,哪些块是尚未分配的空闲块,可用一张位示图来指出。位示图可由若干存储单元来构成,其中每一位与一个物理块对应,用0/1表示对应块为空闲/已占用。  假设某系统的主存被分成大小相等的64块,则位示图可用8个字节来构成,另用一单元记录当前空闲块数。如果已有第0,1,

2021-01-15 10:20:41 5938 4

原创 在可变分区管理方式下采用最先适应算法实现主存分配和实现主存回收

文章目录一、算法基本思想二、程序所用的数据结构和符号说明三、具体实现四、实验结果一、算法基本思想  可变分区方式是按作业需要的主存空间大小来分割分区的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入。随着作业的装入、撤离,主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。为了说明哪些区是空闲的,可以用来装入新作业,必须要有一张空闲区说明表。当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大

2021-01-15 10:12:04 7122 1

原创 LRU算法实现

文章目录前言1. LRU设计要求2. 源程序使用的数据结构和符号说明3.具体实现4.示例前言最近最久未使用(LRU)置换算法原理就是当需要淘汰某页面时,选择当前一段时间内最久未使用过的页先淘汰,即淘汰距当前最远的上次使用的页。1. LRU设计要求假定分配给该进程的页块数为3,页面访问序列长度为20,首先随机产生页面序列,当发生请求调页时,若内存已满,则需要利用LRU算法,将当前一段时间内最久未使用过的页替换出去。2. 源程序使用的数据结构和符号说明通过一个结构体LRU包含整个LRU的具体实现,设

2021-01-15 10:01:13 1461 1

原创 生产者-消费者问题实现(Ubuntu环境)

文章目录一、实验要求二、实现(Ubuntu环境)三、执行结果一、实验要求在Linux操作系统下用C实现经典同步问题:生产者—消费者,具体要求如下:(1)一个大小为10的缓冲区,初始状态为空。(2)2个生产者,随机等待一段时间,往缓冲区中添加数据,若缓冲区已满,等待消费者取走数据之后再添加,重复10次。(3)2个生产者,随机等待一段时间,往缓冲区中读取数据,若缓冲区为空,等待生产者添加数据之后再读取,重复10次。(4)当前只能有一个进程对这个缓冲区进行操作 。(5)缓冲区采用循环队列表示,利用头

2021-01-15 09:52:48 2342

原创 银行家算法

文章目录一、算法介绍二、算法原理三、伪码描述四、 相关说明五、具体实现六、实验示例一、算法介绍银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法,它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。为了了解系统的资源分配情况,假定系统的任何一种资源在任意时刻只能被一个进程使用,任何进程已经占用的资源只能由进程自己释放,而不能由其他进程抢占,当进程申请的资源不能满足时,必须等待。因此只要资源分配算法能保证进程的资源请求,且不出现循环等待,则系统不会出现死

2021-01-15 09:44:32 12575

原创 CSAPP第八、九章家庭作业(原书第二版)

答:到达第一个Fork()函数时,创建一个子进程,此时由于还没有调用过exit函数,故此时atexit函数此时还不会被调用,等待exit函数调用才打印2。第二个Fork()由创建一个子进程,此时有4个进程,其中2个打印0,2个打印1,当第一个Fork创建的子进程创建的子进程中每有一个子进程调用exit时,atexit函数就被调用打印2。如下图,所以每打印2之前都要先打印一个0或者一个1,故在5个选项中只有ACE符合可能输出的结果。8.23答:父进程接收并捕获第一个信号,当处理程序还在处理第一个信号时.

2021-01-14 21:01:02 1302

原创 CSAPP第七章家庭作业(原书第二版)

7.6buf前加了extern是外部符号,由main.c定义,故定义符号的模块是main.o,是int型变量,属于.data节;bufp0和swap函数前未加extern和static,故是全局符号,都在swap.c中定义,故定义符号的模块是swap.o,变量bufp0属于.data节,swap函数属于.text节;bufp1、incr、count前均有static,是本地符号,都在模块swap.o定义,swap、count属于.data节,incr是函数属于.text节;buf、bufp0、bufp1、

2021-01-14 20:55:17 1360

原创 CSAPP第六章家庭作业(原书第二版)

6.32A:地址格式因为地址宽13位且题目所给地址为0x0718,转换成二进制表示为 0 0111 0001 1000,填下表:B:存储器引用由题S=8,E=4,B=4,m=13所以s=3,b=2,t=m-(s+b)=8,0-1位是块偏移,2-4位是组索引,5-12是标记位,故根据题A中二进制地址表示可知,CO为00,CI为110,CT为00111000,由题中所给高速缓存表查看索引为0x6、标记位为0x38、块偏移量为0x0的数据为FA,命中。填下表:6.33A:地址格式因为地址宽1

2021-01-14 20:52:08 1952

原创 CSAPP第五章家庭作业(原书第二版)

5.15A.关键路径是%xmm1更新路径上的加法。B.CPE下界是浮点加法的延迟。C. 两个load操作的吞吐量界限。D.乘法不在关键路径上,是通过流水线实现的,两个版本的CPE都为3.00,其限制因素都是浮点数加法的延迟。5.17void inner4(vec_ptr u, vec_ptr v, data_t *dest){ long int i; int length = vec_length(u); data_t *udata = get_vec_start(u

2021-01-14 20:47:20 1363 3

原创 CSAPP第 3 章家庭作业(原书第二版)

3.54等价于汇编代码的 decode2 的 C 代码:int decode2(int x,int y,int z) { int temp1=z; temp1-=y; int temp2=temp1; temp2=temp2<<15; temp2=temp2>>15; temp1=temp1^x; return temp1*temp2;}3.56A: %esi保存x,%ebx保存n,%edi保存result,%edx保存maskB:result初始

2021-01-14 20:38:20 856 1

原创 CSAPP第五次讨论课:参照汇编代码将 c 语言程序补充完整

文章目录题目解答题目解答f:pushl %ebp //保存old %ebp movl %esp, %ebp //%ebp=%espmovl 8(%ebp), %eax //%eax值变为xmovl %eax, %edx //%edx值变为ximull 8(%ebp), %edx //%edx和x做有符号乘,结果x*x保存在%edx中movl 12(%ebp), %ecx //%ecx值变为ymovl $0, %eax subl %ecx,

2021-01-14 20:20:04 1248 1

原创 CSAPP第七次讨论课选题四:静态库和动态库

文章目录一、题目描述二、静态库和动态库三、结合题目进行相关函数设计四、编译静态库和动态库五、静态库和共享库对最终可执行文件的影响一、题目描述选题四:  在 Linux 里用 C 语言进行代码设计,能对一个班级、某一门课程、或者某一名学生的分数进行分析,比如分数段、最高分、最低分、排名、优势课程等,具体涉及分析内容尽量丰富,请各位同学根据个人对学校系统实际体验来完成。请将这些功能根据在第 7 章的学习,在 linux 下分别编译成相应的静态库和共享库(动态库);并在组内或组间进行库调用以评测所设计的库;

2021-01-14 20:08:09 1790

原创 CSAPP第六次讨论课:尝试给所给程序提升性能

文章目录一、题一(1)利用反汇编技术,与 gcc 汇编器优化进行比较;(2)比较循环展开次数对性能的影响,如展开 2 次和 3 次,展开次数越多越好吗?(3)其他可能优化的方法二、题二一、题一有如下代码: sum = 0; for (i = 0; i < length; i++) sum += x[i] * y[i]; 利用在第 5 章学习的相关技术,分析可能影响性能的部分,并尝试进行性能提升。要求:(1)利用反汇编技术,与 gcc 汇编器优化进行比较;

2021-01-14 19:53:20 1709

原创 CSAPP讨论课:switch与跳转表

文章目录选题五题目(1)通过跳转表来完成switch功能(2)调整case分支顺序后观察跳转表变化(3)编译器何时采用跳转表实现switch?选题五题目对于以下c程序:#include <stdio.h> int main() { int i=0; int j=0; switch(i) { case 1: j+=1; break; case 2: j+=2; b

2021-01-12 19:10:33 4127 1

原创 CSAPP实验buflab

文章目录前言level0:level1:level2:level3:level4:实验结果前言  buflab-handout文件夹下有需要我们进行攻击的可执行程序bufbomb,有可用于生成userid的makecookie,有进行字符间转化的hex2raw文件,我们需要自己设定一个ID,通过makecookie生成专属的cookie,这个cookie会在下面的几个阶段会用到。这里我的userid 是qjl,cookie是0x556c3121.level0:  在level0中要求我们当te

2021-01-12 13:04:31 1732 1

原创 建立 .ini 文件

建立ini文件的具体方法:1 先建立一个记事本文件。2 查看 - “文件的扩展名”前面的√。这样一来,你建立的那个记事本的扩展名就显示出来了“*.txt”。然后,你把这个.txt扩展名更改为.ini就可以了。...

2021-01-12 12:31:14 19057 1

空空如也

空空如也

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

TA关注的人

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