自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【操作系统】MIT 6.S081 LAB8

重新设计代码以提高并行性性能

2022-02-22 15:29:53 665

原创 【操作系统】MIT 6.S081 LAB7

实验目的:学习进程间切换流程,实现用户线程切换,学习使用pthread。

2022-02-19 11:29:09 487

原创 【操作系统】MIT 6.s081 LAB6

在本次实验中需要实现cow(copy-on-write),当创建子进程时,并不实际对父进程进行拷贝,而是将页表项改为只读,在父/子进程第一次对页面进行写操作时才进行内存的拷贝,从而节约实际使用内存空间。

2022-02-04 14:58:03 1535 1

原创 【操作系统】MIT 6.s081 LAB5

实现延迟分配用户空间堆内存,在调用`sbrk()`的时候,不立即分配内存,而是当内存页面真正被访问时才进行实际的物理内存分配。

2022-02-02 13:56:18 5039

原创 【操作系统】MIT 6.s081 LAB4

LAB 4: Traps原文地址:YSBLOG参考:[mit6.s081] 笔记 Lab4: Traps | 中断陷阱实验目的:探索如何通过trap实现系统调用。RISC-V assembly (easy)阅读call.asm函数代码,回答一下问题:1、哪些寄存器保存函数的参数?例如,在main对printf的调用中,哪个寄存器保存13?在risc-v中a0-a7寄存器保存函数参数,如果函数参数超过8个,则保存在内存中,函数调用的默认第一个参数为函数本身名字,存放在a0寄存器,所以13作为pr

2022-01-11 13:01:16 1305 6

原创 【操作系统】MIT 6.s081 LAB3

LAB 3: Page tables原文地址:YSBLOG参考:[mit6.s081] 笔记 Lab3: Page tables | 页表 | Miigon’s blog​实验目的:学习页表的实现机制,简化用户态拷贝数据到内核态的方法。在xv6原本的设计中,用户进程在用户态使用各自的用户态页表,当需要进入内核态时(例如执行系统调用),则切换到内核页表(修改SATP寄存器的值),这个内核页表是全局共享的,在xv6源码中的定义在vm.c中。本次实验中,将其称之为全局内核页表。// vm.cpage

2021-12-30 19:02:55 1855 1

原创 【操作系统】MIT 6.s081 LAB1

原文地址:YSBLOGsleepsleep 延迟times时间(在xv6中 10 times 为 1s)在user/user.h中定义了sleep函数,只需将参数转为int类型直接传入即可#include "kernel/types.h"#include "user/user.h"int main(int argc, char* argv[]) { int i; if (argc < 2) { printf("sleep : tick number is not sp

2021-11-22 21:14:48 595

原创 【MySQL】【Cpp】Cpp访问MySQL数据库

原文地址:YSBLOG程序环境阿里云轻量应用服务器 1核2G阿里云关系型数据库 MySQL 8.0 1核1G初始化 MYSQL mysql; //构建一个mysql句柄对象 mysql_init(&mysql); //对句柄对象进行初始化连接MySQLAPI:mysql_real_connect();返回值: 连接成功返回连接句柄,与第一个输入参数相同 连接失败返回NULL参数: mysql:mysql结构句柄 host:主机名或者

2021-09-01 19:39:50 639

原创 KMP-字符串匹配问题

原文地址:https://www.ysblog.cc/archives/%E7%AE%97%E6%B3%95%E7%AC%94%E8%AE%B0kmp-%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8C%B9%E9%85%8D%E9%97%AE%E9%A2%98算法目标解决字符串匹配问题,查找模式串p在主串s中第一次出现的位置,实现strstr()函数。例子主串 s : aabaabaaf主串长度 m模式串 p : aabaaf模式串长度 n{:

2021-07-31 23:57:33 172

转载 【C++】解决no member named ‘get_io_service’

由于boost库在1.7以后的版本移除了get_io_service。所以对代码作如下修改://保证兼容性#if BOOST_VERSION >= 107000#define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context())#else#define GET_IO_SERVICE(s) ((s).get_io_service())#endifboost::asio::io_

2021-03-01 21:24:26 3696 1

原创 【C++】detach和join的区别

首先看一下join的简单示例://joinTest.cc#include<iostream>#include<thread>class Obj{ public: Obj() {std::cout << "hello ";} ~Obj() {std::cout << "world\n";}};void joinWorker(){ Obj obj; std::this_thread::sleep

2021-02-18 16:35:07 788

原创 【C++】多线程中调用函数的方法

在多线程中调用函数的方法:以函数名和函数参数作为输入对象来构造线程对象:t2 t4 t6 t7通过lambda表达式调用函数,将函数作为lambda表达式的内容: t1 t3 t5#include <iostream>#include <thread>#include <string>void printAll(int a, int b, int c){ std::cout << a << " " << b &l

2021-02-14 23:14:15 3392

原创 【C++】shared_ptr中循环引用问题

shared_ptr中循环引用问题测试代码如下:代码中含有两个类,Parent和Child。Parent类成员中有一个Child类的智能指针。Child类成员中有一个Parent类的智能指针。#include <iostream>#include <memory>​class Child;typedef std::shared_ptr<Child> ChildPtr;class Parent;typedef std::sha...

2021-02-08 11:46:21 510 1

原创 【820复试题】用Eratasthene筛选法求质数

Eratasthene筛选法原理是通过空间换时间,求N个数以内的质素,先申请N个空间大小的数组,通过不断对2,3,4…sqrt(N)的倍数进行删除,最后输出剩下数字。C代码如下:#include<stdio.h>#include<math.h>#define N 200int main() { //申请大小为N+1的数组空间,使数组下标与实际序号对应 //数组arr中值为1表示该数不为质数,值为0为质数 int arr[201] = {0}; for (int d

2020-08-28 20:48:15 457

原创 【Verilog】状态机(State Machine)

状态机(State Machine)状态机概念​  有限状态机(Finite State Machine,简称FSM):在有限个状态之间按一定规律转换的时序电路。状态机模型​  Mealy 状态机                     (图片来自正点原子PPT)​ Moore 状态机                     (图片来自正点原子PPT)​  Mealy状态机产生输出的组合逻辑与输入有关,而Moore状态机参数输出的组合逻辑与输入无关。状态机设计​  要写出完整的三段式

2020-08-21 10:56:33 2875

原创 【Verilog】高级语句

Verilog高级语句结构语句initial 和 always​  initial语句在模块中只执行一次。常用于测试文件的编写,用来产生仿真测试信号(激励信号),或者用于存储器变量赋初值。​  always语句一直不断重复,必须和一定的时间控制相结合。initial begin sys_clk <=1'b0; sys_rst_b <=1'b0; touch_key <=1'b1; #20 sys_rst_n <=1'b1;

2020-08-21 10:52:57 1765

原创 【Verilog】程序模块

Verilog程序框架模块的结构​  Verilog基本设计单元**“模块”(block)**​  模块由两部分组成,一部分描述接口,一部分描述逻辑功能​  每个Verilog程序主要包括4个部分:​ 端口定义、IO说明、内部信号声明、功能定义module block(a,b,c,d);// 模块名(端口定义) //端口描述 intput a,b; output c,d; //功能定义 assign c = a | b; assign d = a & b;

2020-08-21 10:46:54 823

原创 【Verilog】Verilog基础语法

Verilog基础语法逻辑值​  逻辑0: 表示低电平,对应电路GND​  逻辑1:表示高电平,对应电路VCC​  逻辑X:表示未知,输入端存在多种输入情况,可能是高电平,也可能是低电平​  逻辑Z: 表示高组态,外部没有激励信号,是一个悬空状态数字进制格式 一般常用二进制(b)、八进制(o)、十进制(d)和十六进制(h) 二进制:4’b0101->4位宽的二进制数值 0101 十进制:4’d2 ->4位宽十进制数值2(表示二进制0101) 十六进制:4’ha ->表

2020-08-21 10:44:08 7406 1

原创 【QT5学习笔记】 3--自定义信号

3–自定义信号目录1–给窗口添加button2–信号槽的实现以及自定义槽函数3.1 创建子窗口时隐藏MainWidget窗口​ 只需要在自定义槽函数 void MainWidget::createSubWindows()中添加this->hide();void MainWidget::createSubWindows(){ this->hide(); sub_windows.show();}此时,当我们在MainWidget窗口点击create the

2020-08-17 09:25:12 813 1

原创 【QT5学习笔记】2--信号槽的实现以及自定义槽函数

2–信号槽的实现以及自定义槽函数2.1 点击button关闭当前窗口//头文件中声明button_closeQPushButton button_close;//源文件中配置button_closebutton_close.setParent(this);button_close.setText("Close this Windows");button_close.move(100,100);//将button_close的信号QPushButton::clicked与this的槽函数QW

2020-08-16 10:39:32 3223

原创 【QT5学习笔记】1--给窗口添加button

1–给窗口添加button在窗口对应构造函数中添加button对象,可声明指针和非指针类型成员button//头文件声明private: QP![在这里插入图片描述](https://img-blog.csdnimg.cn/20200816090436359.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MDM2Mzgx,

2020-08-16 09:06:54 1879

空空如也

空空如也

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

TA关注的人

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