- 博客(45)
- 收藏
- 关注
原创 Ubuntu系列安装过程记录
一、安装Ubuntu系统在虚拟机里一路默认,连接上对应的镜像iso即可。二、安装VMtools在虚拟机 -> 安装VMtools中,安装完毕后,桌面上会出现VMware Tools的磁盘将其中的tar包,复制到一个其它路径下,解压得到。一直进到vmwares-tools-distribute里面,可以找到vmware-install.pl在这个路径下打开终端,./vmware-install.pl运行安装脚本,一路默认就安装好了。安装好VMwareTools之后就可以自动全屏 +
2021-10-10 17:43:25
423
原创 linux Shell学习(一)Shell脚本概述与执行方式
ShellShell概述Shell分类Shell脚本执行方式echo输出命令脚本的执行
2021-02-13 15:46:22
318
原创 linux学习笔记—网络命令
网络命令write指令名称:write指令所在路径:/usr/bin/write执行权限:所有用户语法:write <用户名>功能描述:给用户发信息,以Ctrl+D 保存结束例:$ write linzhiling tips:输入错误,control+delete 删除 网络命令wall指令名称:wall命令英文原意:write all指令所在路径:/u
2021-02-12 18:00:03
470
1
原创 linux学习笔记—用户管理命令
用户管理命令useradd命令名称:useradd命令所在路径:/usr/sbin/useradd执行权限:root语法:useradd 用户名功能描述:添加新用户’例:$ useradd yangmi 用户管理命令passwd命令名称:passwd命令所在路径:/usr/bin/passwd执行权限:所有用户语法:passwd 用户名功能描述:设置用户例:$ passwd yangmi 普通用户只能更改自己密码,root 用户可以更好所有人
2021-02-11 10:50:11
210
原创 linux学习笔记—帮助命令
帮助命令man命令名称:man命令英文原意:manual命令所在路径:/usr/bin/man执行权限:所有用户语法:man [命令或配置文件] (空格) 或f 翻页 (Enter) 换行
2021-02-10 15:41:19
113
原创 linux学习笔记—文件搜索命令
文件搜索命令find命令名称:find命令所在路径:/bin/find执行权限:所有用户语法:find [搜索范围] [匹配条件]功能描述:文件搜索例:$ find /etc -name init 在目录/etc 中查找文件init find查找的一些常用用法:$ find /etc -name init??? (?匹配一个字符)在目录/etc 中查找文件名init 开头并有3 个字符的文件$ find /etc -name init
2021-02-09 17:00:25
282
原创 linux学习笔记—权限管理命令
权限管理命令chmod命令名称:chmod命令英文原意:change the permissions mode of a file命令所在路径:/bin/chmod执行权限:root语法:chmod [{ugoa}{±=}{rwx}] [文件或目录] [mode=421 ] [文件或目录] &nb
2021-02-09 10:58:33
125
原创 linux学习笔记—链接命令
链接命令ln命令名称:ln命令英文原意:link命令所在路径:/bin/ln执行权限:所有用户语法:ln -s [原文件] [目标文件] -s 创建软链接功能描述:生成链接文件例:$ ln -s /etc/issue /tmp/issue.soft 创建文件/etc/issue 的软链接/tmp/issue.soft
2021-02-08 22:45:58
273
原创 linux学习笔记—文件处理命令
文件处理命令touch命令名称:touch命令所在路径:/bin/touch执行权限:所有用户语法:touch [文件名]功能描述:创建空文件例:$ touch Japanlovestory.list 在当前目录下创建一个名为Japanlovestory.list的文件PS:注意创建文件的路径中要避免空格(否则linux会识别为两个文件来别创建)如果非要创建一个带空格的文件,可以用" "把文件名引起来作为一个整体,但是及其不推荐,带空格的文件名对其他的命令会带来困难。  
2021-02-07 18:21:51
163
原创 Linux学习笔记—目录处理命令
目录处理命令 ls命令格式 :命令 [-选项] [参数]例 :ls -la /etc说明:1)个别命令使用不遵循此格式2)当有多个选项时,可以写在一起3)简化选项与完整选项-a 等于 --all
2021-02-07 09:36:16
243
原创 C++并发与多线程(十二)虚假唤醒、原子操作再谈、线程池
虚假唤醒notify_one或者notify_all唤醒wait()后,实际有些线程可能不满足唤醒的条件,就会造成虚假唤醒,可以在wait中再次进行判断解决虚假唤醒。解决:wait中要有第二个参数(lambda),并且这个lambda中要正确判断所处理的公共数据是否存在。m_cond.wait(myUnique, [this] { //一个lamda表达式就是一个可调用对象(函数) if (!msgRecvQueue.empty()) { return true; }
2021-02-02 15:57:11
575
原创 C++并发与多线程(十一)windows临界区、recursive_mutex、timed_mutex
windows临界区windows临界区是在windows编程中的内容,了解一下即可,效果几乎可以等同于c++11的mutex;windows编程仅能在windows操作系统中使用,其它环境(例如linux)是不能正常运行的。使用方法://包含头文件#include <Windows.h>CRITICAL_SECTION m_winsec; //windwos临界区定义InitializeCriticalSection(&m_winsec); //windows临界区使用
2021-02-02 12:28:10
457
原创 C++并发与多线程(十) async深入理解
std::async参数详叙async用来创建一个异步任务。async一般不认为是创建一个线程(虽然也是创建了线程),一般认为是创建了一个异步任务。延迟调用参数std::launch::deferred【延迟调用】std::launch::async【强制创建一个线程】1.如果用std::launch::deferred来调用async?延迟到调用 get() 或者 wait() 时执行,如果不调用就不会执行2.如果用std::launch::async来调用async?强制这个异
2021-02-01 18:44:10
1740
原创 C++并发与多线程(九)future_status、shared_future、atomic
文章目录future_statusstd::shared_futurestd::atomicfuture_statusstd::future_status status = result.wait_for(std::chrono::seconds(1)); //等待1s卡住当前流程,等待std::async()的异步任务运行一段时间,然后返回其状态std::future_status。如果std::async()的参数是std::launch::deferred(延迟执行),则不会卡住主流程。std
2021-02-01 16:33:23
439
原创 C++并发与多线程(八) async、future、packaged_task、promise
文章目录std::async、std::future创建后台任务并返回值std::asyncstd::futurestd::launchstd::packaged_taskstd::promisestd::async、std::future创建后台任务并返回值std::asyncstd::async是一个函数模板,用来启动一个异步任务,启动起来一个异步任务之后,它返回一个std::future对象,这个对象是个类模板。异步任务:自动创建一个线程,并开始 执行对应的线程入口函数,它返回一个std:
2021-01-31 19:40:36
339
原创 C++并发与多线程(七) condition_variable、wait、notify_one、notify_all
条件变量condition_variablecondition_variable是一个和条件相关的类,本质上就是等待一个条件达成。使用的时候必须和互斥量mutex配合使用。使用场景:增加效率//把消息从消息队列取出 void outMsgRecvQueue() { int command = 0; //指令为command; for (int i = 0; i < 10000; i++) { bool result = outMsgLULProc(command); //将所有对
2021-01-31 10:03:17
881
原创 C++并发与多线程(六) 单例设计模式、call_once
文章目录单例设计模式单例模式实现方法单例模式下的delete单例设计模式下的共享数据问题call_once()单例设计模式单例:整个项目中,有某个或者某些特殊的类,属于该类的对象,只能创建一个,不允许创建多个。单例模式实现方法//单例类class MyCAS {private: //构造函数私有化,就不可以实例化对象了 MyCAS() {};private: static MyCAS *m_instance; //静态成员变量,用于实例化单例类public: //提供的实例化对象接口
2021-01-30 17:20:22
261
原创 C++并发与多线程(四)互斥量的用法、死锁的处理
互斥量mutex互斥量就是个类对象,可以理解为一把锁,多个线程尝试用lock()成员函数来加锁,只有一个线程能锁定成功,如果没有锁成功,那么流程将卡在lock()这里不断尝试去锁定。互斥量使用要注意,保护数据不要多也不要少,少了达不到效果,多了影响效率。互斥量用法:#include < mutex > //包含头文件先lock(),操作共享数据;unlock()释放锁;lock()和unlock()必须成对使用;例子代码://包含头文件#include <mute
2021-01-28 15:18:59
311
原创 C++ 子类继承和调用父类的构造函数方法
子类的构造函数构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。子类构造函数的调用规则1. 如果子类没有定义构造方法,则调用父类的无参数的构造方法。2. 如果子类定义了构造方法,不论是无参数还是带参数,在创建子类
2021-01-19 11:01:00
1218
原创 C++ 深拷贝与浅拷贝
深拷贝与浅拷贝的区别深拷贝和浅拷贝本质的区别在于浅拷贝获取的是原对象的引用,深拷贝获取的是原对象的复制实体。浅拷贝:简单的赋值拷贝操作深拷贝:在堆区重新申请空间,进行拷贝操作为什么要使用深拷贝C++编译器默认的拷贝构造函数都是浅拷贝。浅拷贝在类中存在指针的时候,拷贝的是原对象的引用,这会带来一个问题:在对象退出的时候,会调用析构函数对申请的堆内存进行释放,如果是默认的浅拷贝,两次析构函数会对同一个空间进行释放,这会报错。为了避免浅拷贝的这个问题,必须使用深拷贝:拷贝构造函数重新申请一个内存
2021-01-18 18:54:31
187
原创 C++ 指针常量与常量指针
指针常量与常量指针指针常量指针本身是个常量,const紧跟着p,const修饰的是p,p的内容(也就是地址)不可修改。/*指针常量的例子*/int a,b; int * const p; p = &a; //正确 p = &b; //错误 *p = 20; //正确 常量指针指向常量的指针,const紧跟的是 *p,修饰的是 *p,也就是 *p的值不可修改/*常量指针的例子*/int a,b; int const *p; p = &a;//正确 p
2021-01-16 16:02:24
105
原创 Oranges - 进程调度
Minix进程调度MINIX的进程调度为什么采用这种16个优先队列的方式静态优先级与动态优先级调度算法代码MINIX的进程调度MINIX3中使用的是一种多级调度算法,进程被赋予一个相关的初始优先级,进程的优先级在执行的过程中可以动态改变。不同的系统进程(时钟、系统任务、驱动)具有不同的优先级,但是用户进程比所有的系统进程优先级都低,用户进程的初值相等。进程维护16个可运行进程队列,每个队列的索引代表优先级(数字越小,优先级越高)。队列的内部采用时间片轮转调度算法。如果一个运行的进程用完了时间片,移到队
2020-12-24 21:39:47
440
原创 Bochs2.6.11调试
Bochs调试bochsrc中添加一行:magic_break: enabled = 1汇编语言中添加作为断点xchg bx, bxC语言中作为断点asm volatile(“xchg %bx, %bx”)查看CPUinfo cpu查看寄存器reg查看段寄存器sreg查看指定内存地址内容u /32wx 0x100000(以双字格式查看0x100000后面32个内存地址内容)反汇编u /10 (反汇编接下来十条指令) u 0x1000 0x1010(反汇
2020-12-22 19:09:37
599
转载 [转载]——SMBus Host Controller not enabled(linux重启后黑屏)
这一篇文章解释的很清楚,这里转载记录下,就是最后一步的命令应该使用 update-initramfs -u -k all update 和 -initramfs之间没有空格,这个小问题困扰了半天 报错截图 解决方法:1、重启ubuntu,启动是按shift按键进入...
2020-03-21 19:49:26
2316
原创 OS——strace的简单实现
操作系统课上留了这样一个作业:用ptrace实现一下strace的功能。这里只做到了简单实现,功能不够全,而且不够完善,这里记录一下,留待将来解决。@OS——strace的简单实现strace简介...
2020-03-19 22:14:43
739
原创 【编译原理】计算器实现(C语言)
【编译原理】计算器实现(C语言)题目要求简单分析(1)读文件(2)词法分析(3)语法分析(4)后缀表达式求值总结这几天编译原理课留了个编写一个简单的计算器,要求能够检查错误并进行计算。其实也就是完成词法分析,语法分析,再完成一个后缀表达式的计算就好了。这里找到了一个比较简单的方法,这里记录一下。题目要求简单分析整个程序其实整体上大致分成四部分去做1.读文件存储内容(这里的文本是以字符...
2020-03-12 18:44:37
7016
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人