- 博客(42)
- 资源 (1)
- 收藏
- 关注
原创 学习go和docker
学习go和docker最近想搞下golang和docker,在github上搞了个练习的项目https://github.com/zhangshuai-neu/go_learnGo语言开发环境开发环境使用的linux,随便搞个发行版吧 : )先安装golang的开发包,然后加压即可,会出现 go 目录wget https://dl.google.com/go/go1.12.9.linu...
2019-09-02 09:12:50 279
原创 vim 简单配置文件
"解决中文乱码问题set fileencodings=utf-8,cp936,ucs-bomset fileencoding=utf-8set encoding=utf-8"显示行数set number"语法高亮set syntax=on"设置tab的宽度set ts=4"设置第81列提示set colorcolumn=81"设置自动对齐set ...
2019-03-31 10:04:01 370
原创 python3 刷题常用
进制转换:int("字符串",进制) 返回10进制数bin(数字) 返回0b开头的2进制字符串hex(数字) 返回0x开头的16进制字符串oct(数字) 返回0o开头的8进制字符串str(10进制数字) 返回10进制字符串字符列表合并成str:"".join(char_list) 长度:len(list)len(str)list操作:l1 = [] 创建list排...
2019-03-29 21:09:32 995 2
原创 Linux 信号的阻塞和未决
最近看了一下LInux信号的相关内容,一些博客说的不是很清楚,所以我又整理了一下。主要不清楚的点在于红色标注的地方,可以参考代码运行一下 测试4看看。信号的状态 到达:表示执行信号处理 未决:记录信号是否产生 阻塞:表示是否阻塞某个信号,相当于一个开关 信号在内核中的处理,用两个状态字{阻塞/读写,未决/只读} 信号 阻塞mask 未决m...
2019-03-18 20:33:38 268
转载 转载----从CPU cache一致性的角度看Linux spinlock的不可伸缩性(non-scalable)
转载一点说明正文开始之前,先给出本文讨论的各个场景基于的CPU布局图,本文中我们将描述很多的场景实验,因为是分析原理,我将其定义为思想实验,假设我们思想实验的系统拥有16核CPU,其中每一个CPU封装有2个物理核,每一个物理核有两个有独立cache的核心,其布局如下: 由于实现的可扩展性的原因,当前的大多数平台在实现CPU cache一致性协议时有两个选择,一个是snoopy,一个是点对点...
2019-03-05 00:00:47 396 1
转载 转载 -- linux内核分析——CFS(完全公平调度算法)
linux内核分析——CFS(完全公平调度算法) 1.1 CFS原理 cfs定义了一种新的模型,它给cfs_rq(cfs的run queue)中的每一个进程安排一个虚拟时钟,vruntime。如果一个进程得以执行,随着时间的增长(也就是一个个tick的到来),其vruntime将不断增大。没有...
2019-03-02 21:23:38 202
原创 1. Scala基础
1. 变量和类型变量类型声明:var VariableName : DataType [= Initial Value]常量声明:val VariableName : DataType [= Initial Value]DataType也可以不写,scala会进行类型的推断,但是此时必须给出初始值。scala的基本类型:序号类型说明1Byte8位有符...
2019-02-27 16:48:32 191
原创 leetcode 26 题
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 n...
2019-02-13 14:34:51 214
原创 时钟中断,调度器,任务切换
时钟中断,调度器,任务切换总的关系是硬件触发时钟中断,时钟中断调用调度器,调度器完成任务任务的选择和切换。1) 时钟中断计算机的处理是离散的,不是连续的。这涉及到计算精度、时钟的问题。现代的操作系统都是多任务分时系统,也就是以时间片为单位进行运转的。多任务的切换必然要判断涉及到时间信息,操作系统可以从时钟中断获取。另外,任务执行的时间片的数量也可以用来进行任务级别的划分。计算强度大的...
2019-01-25 20:42:20 1105
转载 Intel wireless 3165 网卡在linux上无法开启的问题
安装驱动,参考intel的官方说明和这个https://askubuntu.com/questions/672700/how-can-i-install-intel-dual-band-wireless-ac-3165-drivers查看这个,打开soft blockhttps://blog.csdn.net/cat_lover/article/details/7088873查看这...
2019-01-19 19:49:56 2982
原创 deepin 15.9 安装了vscode后 默认资源管理器变成 了vscode
deepin 15.9 安装了vscode后,出现了一些问题。比如,从chrome下载页面show folder,会直接打开vscode。通过一下命令可以得到解决。 gio mime inode/directory dde-file-manager.desktop旧版的deepin使用下面的命令。gvfs-mime –set inode/directory dde-file-m...
2019-01-19 18:45:17 1422 2
原创 leetcode 576题目
问题:具体的问题可以看:https://leetcode.com/problems/out-of-boundary-paths/ 解答:两种方法的思路其实是一样的,但是迭代比递归要快。从计算量的角度看:result_list[time][i][j] 表示,在i,j这个位置,能进行time次移动时的结果。result_list[N][i][j] 即为所求结果。迭代需要...
2018-12-17 23:34:06 320
原创 leetcode 687题
问题: Given a binary tree, find the length of the longest path where each node in the path has the same value. This path may or may not pass through the root.Note: The length of path between two no...
2018-12-10 13:27:29 228
原创 leetcode 198 题
问题:You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjace...
2018-12-02 16:39:08 221
原创 FreeRTOS内存管理
内存管理预览当任务或是信号量被创建时,内核需要进行动态的内存分配。FreeRTOS带有pvPortMalloc(),vPortFree()实现范例。小型嵌入式系统,通常是在启动调度之前的创建任务、队列和信号量。内存分配方案heap_1.c:确定性的内存管理,实现了基本的pvPortMalloc(),且没有实现vPortFree()使用configTOTAL_HEAP_SIZE定义大...
2018-11-23 15:27:31 193
原创 FreeRTOS资源管理
FreeRTOS资源管理概览在多任务环境中,资源访问可能不是原子操作,可能会导致资源的不一致常见情况:1.访问外设比如,不同优先级的任务同时进行LCD的打印,可能会出现乱码。2.读-写-改操作读内存到寄存器,写寄存器,写回内存。这种操作是非原子的,可能会被中断。类似数据库的脏数据。3.变量的非原子操作更新重要的结构体或者大于体系结构自然长度的变量。变量很大,可能会被中断,导...
2018-11-21 19:30:03 500
原创 FreeRTOS的Queue
FreeRTOS的Queue队列功能FreeRTOS的所有的通信和同步机制都通过队列来实现。队列可以保存有限长度的数据单元,通常情况下,作为FIFO使用。队列阻塞队列可以多任务访问。1.读取阻塞队列为空的阻塞,等到队列内有数据或者超过了阻塞时间,任务会切换到ready状态。2.写入阻塞队列为满的阻塞,3.哪个任务优先解除阻塞的任务?优先级最高,或者同优先级的等待时间最长的任务...
2018-11-19 14:49:37 1441
原创 FreeRTOS的Task
FreeRTOS的Task1. 任务任务状态:状态描述执行不解释就绪等待被调度阻塞对于调度器不可见,等待某事件完成,否则不能就绪挂起对于调度器不可见,只能使用程序主动恢复阻塞:可以用来实现阻塞延迟,而不是死循环占据调度资源(高优先级的死循环会导致低优先级的任务饿死)空闲任务:任务不能都处于阻塞状态。该状态下所有的任务都不可运行,也不...
2018-11-18 14:54:14 885
原创 FreeRTOS的仿真环境部署
FreeRTOS的仿真环境部署:软件版本操作系统Ubuntu 16.04工具链arm-none-eabi-*仿真平台qmeuFreeRTOS10.0使用qemu仿真lm3s811平台使用freertos的lm3s811 demo代码原版的freeRTOS的lm3s811 demo的链接文件有问题可以使用如下链接文件(standalone....
2018-11-18 14:46:56 2841
原创 leetcode 312 hard
问题如下:Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by array nums. You are asked to burst all the balloons. If the you burst balloon i you will get ...
2018-11-07 21:54:49 451
原创 在fedora中搭建zircon环境(我使用fedora28)
zircon环境搭建1.clone代码    git clone https://fuchsia.googlesource.com/zircon2.准备开发环境ubuntu环境    sudo apt-get install texinfo libglib2.0-dev autoconf libtool b...
2018-07-25 11:45:05 453
转载 转载:systemverilog新增的always_comb,always_ff,和always_latch语句
在Verilog中,设计组合逻辑和时序逻辑时,都要用到always:always @(*) //组合逻辑 if(a > b) out = 1; else out = 0;always @(posedge clk) //时序逻辑 flip-flop触发器 if(en) out <= in;仅从关键字上,看不出设计者想要一个什么样的电路。 Syst...
2018-07-04 10:35:55 11864 1
原创 LLVM1 - 安装
1.安装cmake(必须要安装高版本,下载的源码包文件)解压文件执行如下命令./bootstrap (如果安转失败了,再重新装的时候就会失败,make clean或者直接重新解压)make sudo make install2.安装ninja (http://blog.sina.com.cn/s/blog_6114e8c80101arpu.html)git clone git://github.c...
2018-06-26 14:16:19 603
原创 Google Code-Jam 2008 资格赛B题
问题: https://code.google.com/codejam/contest/32013/dashboard#s=p1解答思路: 由于车辆可以在A,B之间往返,所以时刻表中的车辆可能是返程车辆 如果返程车辆可以完成时刻表的任务,则尽量使用返程车辆 以题目给出的例子说明: case 1的数据如下 5 //周转时间 3 2 //A->B 和 B->A 的车次数量 //A-...
2018-06-24 16:00:54 283
原创 Google Code-Jam 2008 资格赛A题
问题:https://code.google.com/codejam/contest/32013/dashboard问题说明: 用户的搜索请求通过central system汇集,然后按照先到先处理的顺序发送到search engine 进行解决。 这里有几个要求: 1)central system 将会一直向当前search engine发送搜索请求, 2)search engine解决的问...
2018-06-24 15:59:17 176
原创 RISC-V指令集介绍 - 整数基本指令集
前段时间在修改 picorv32 核心(一个riscv-32的cpu核心),阅读了一下riscv指令集的手册。在此,做一下简单记录。RV32I:32位risc-v整数指令集1. 寄存器 32个x寄存器,RV32下x reg是32位宽 x0:硬连线 常数0 x1-x31:31个通用reg 返回地址:没有强制要求那一个x作为lr,但是一般用x1 pc:额外的用户可见寄存器3. 基本指令格式 四种基础指...
2018-06-17 14:35:20 50269 6
原创 PT-OS 一个玩具操作系统
ProtoType Operating System(PT-OS)This is a simple Operating System, Which implements some useful component. All componnet of PT-OS is just ProtoType, and that is origin of its name. When you have some...
2018-06-17 14:27:30 1980
原创 1. verilog 基础语法
1 模块结构 端口: module 模块名(端口1, 端口2, 端口3) 内容: I/O说明: input 端口名; output 端口名; 内部信号: reg [width-1:0] r变量1,r变量2; wire [width-1:0] w变量1,w...
2018-01-07 11:03:30 50889 5
原创 计算代码行数的shell脚本
用来统计代码行数的一个shell脚本不过只支持 ./ ./dir ./dir/dir 三级目录有需要的简单可以用一下#! /bin/bash#代码书行数统计脚本,只支持两级目录all_count=0; #全部行数统计file_count=0; #文件行数统计filename="";string="";path=`pwd`;for filename in
2018-01-02 22:57:23 778
原创 bochs和gdb联合使用调试程序_开始
0. 使用编译gdb调试支持的bochs1. bochs的配置文件添加: gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0; 2. bochs启动,会提示等待gdb连接3. 进入GDB 使用terget remote localhost:1234 命令,连接
2017-12-10 23:11:56 1684
原创 2.9 linux存储管理-页面的换入
线性地址-->物理地址若映射已经建立,但相应页表|页目录的P(present)位为0,表示相应的物理页面不再内存,从而无法访问内存。对于这种情况和未建立映射的情况,CPU的MMU硬件不对其进行区分,都进行“页面异常”处理在handle_page_fault函数中:说明: 首先区分的是pte_present,也就是检查表项的P标志位,查看物理页面
2017-07-23 23:53:22 1024
原创 2.命令类型 环境变量 缓存 时间
1.命令类型:查看命令类型1.shell内置命令2.外部命令,在某一目录下有一个和命令相应的可执行程序command:type+命令名type history显示命令类型,是内置还是外部2.环境变量:用于指定操作系统运行环境参数的一些变量PATH环境变量:当系统要执行一个程序而使用者没有给出完整路径时,系统不仅会在当前目录中寻
2017-07-23 23:45:22 703
原创 2.6 Linux存储管理-物理页面的使用和周转
说明一些概念:虚拟页面:指虚拟空间中,一段固定大小、边界与页面大小对齐的区间及其内容。物理页面:虚拟页面映射到的介质上,可以在内存上(内存页面),也可以在磁盘上(盘上页面)。页面的换进换出指的是页面内容页面的换进换出也需要一个数据结构内核定义了swap_infp_struct,用来描述用以管理页面交换的文件和设备49 struct
2017-07-23 23:43:55 382
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人