自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 死锁产生和预防

死锁的产生1、资源是互斥的资源在同一时刻只有一个进程才能够使用和访问2、持有并等待一个进程持有一份资源阻塞等待其它进程释放资源3、资源不可抢占只有一个进程使用完资源之后其它进程才能够占有使用4、循环等待在等待资源的进程集合中请求和占有关系存在一个循环等待死锁的预防预防就是限制程序不满足死锁的必要条件1、互斥我们把需要互斥访问的资源封...

2018-03-15 22:21:24 319

原创 处理机调度

调度算法:第一类就绪队列怎么排第二类是每一次执行时间的长短的控制第三类关于多种算法如何综合到一起先来先服务算法按着到就绪队列里的先后顺序来排队的在找就绪进程的时候也是按照这个先后顺序来。 按先来后到没有考虑到进程的特征缺点: 1、平均等待时间波动非常大 2、资源的利用效率比较低 CPU密集型的进程会导致I/O设备闲置时,I/O密集型的进程也...

2018-03-12 15:02:14 261

原创 系统调用

系统调用:操作系统对上提供服务的接口。通过软中断触发中断INT和IRET指令用于系统调用,系统调用时,堆栈切换和特权级的切换。开销 1、引导机制 2、建立内核堆栈 3、验证参数 4、内核态映射到用户态的地址空间,更新页面映射权限 5、内核态独立地址空间TLB普通的函数调用与系统调用不同的是没有堆...

2018-03-09 22:36:36 4322

原创 计算机启动过程

BIOS:BIOS做了底层的一些初始化的工作。BIOS的初始化过程: 在计算机电源刚打开的时候,首先会: 1、硬件自检。 2、检查系统中的内存和显卡等关键部件的存在和工作状态。 3、查找并执行显卡等接口卡BIOS,进行设备初始化。 4、执行系统BIOS,进行系统检测。在这之后会寻找启动盘,如果选择是从软盘启动,计算机会检查软盘的0面0道1扇区,如果扇区...

2018-03-09 20:13:08 1676

原创 leetcode 442. Find All Duplicates in an Array 剑指offer第一题

leetcode 442. Find All Duplicates in an Array 剑指offer第一题1、题目描述:找出数组中所有重复出现的数字,数组的大小为n,1<=nums[i]<=n例如:Input: [4,3,2,7,8,2,3,1] Output: [2,3]题目链接:https://leetcode.com/probl

2018-02-01 17:23:45 157

原创 leetcode 410 split-array-largest-sum

leetcode 410 split-array-largest-sum1、题目描述: 给出一个数组,例如: [7,2,5,10,8],在给出一个整数m = 2,将这个数组切成m个非空连续的小数组,写出一个算法使得其中各个小数组的和的最大值尽可能的小。题目链接:https://leetcode.com/problems/split-array-largest-sum/de

2018-02-01 12:13:50 268

原创 leetcode 151 reverse word in string

leetcode 151 reverse word in string1、题目描述:将字符串中的所有单词的位置反转。例如:hello world ----> world hello题目链接:https://leetcode.com/problems/reverse-words-in-a-string/description/2、题目思路描述: 在这个题之前有

2018-02-01 11:00:20 198

原创 git版本回退

先使用git log查看以往commit的IDgit logcommit 178f87029a09f579822397031397acc76872fa51Author: yangning <distancening@gmail.com>Date: Wed Dec 6 20:04:40 2017 +0800 set get delete quit successfulcommit b0

2017-12-06 20:18:42 203

原创 map的insert和[]重载下标

std::pair<iterator,bool> insert( const value_type& value );insert会判断以K为键的是否存在,如果不存在,则进行正常的插入。如果存在,则插入失败。可以利用返回值来判断插入是否成功,代码如下:auto ite=test_map.insert(std::make_pair(K,V));if(ite.second) cout<<"插

2017-11-29 20:56:54 551

原创 git忽略本地的已经push过的提交

先使用如下命令:git rm --cached filename在更新.gitignore文件忽略相关文件。 在进行个git coommit就可以。

2017-11-29 20:46:42 692

原创 函数调用反汇编

windows堆栈:向低地址扩展。 堆栈平衡: windows堆栈就是一块普通的内存,主要用来存储一些临时数据和参数等,可以想象成一个公共的箱子,大家都会用,每个人用完都要使它和用之前一样。main函数中的调用:0100176E 6A 02 push 2 01001770 6A 01 push 1

2017-10-28 22:16:22 446

原创 Linux缓冲区

所有的磁盘I/O都要进过内核的快缓冲区(内核缓冲区高速缓冲),既然read和write都要被内核缓冲,那么“不带缓冲的IO”指的是在用户的进程中对这两个函数不会进行缓冲,每次read和write都要进行一次系统调用。。 标准IO库提供缓冲的目的是尽可能的减少调用read和write的次数。flush:冲洗,说明标准缓冲区的写操作。缓冲区可以调用fflush冲洗,也可由标准IO例程自动清洗。

2017-10-28 22:09:30 1270

原创 GDB改变程序的执行

1、修改变量值:set var var_name=num;(最佳)print var_name=num;2、跳转执行gdb提供了乱序执行的功能。 jump linespec linespec可以是文件的行号,也可以是+num这偏移的形式。 jump addr;jump不会改变当前程序栈中的内容,所以,当一个函数调到另一个函数时,当函数运行完返回进行出栈操作时,必然会发生错误。3、产生信号量si

2017-10-28 22:05:01 745

原创 GDB基本使用

断点:BreakPointer:break lineNum;info Break【n】:查看断点信息;n表示断点号。break func:在某个函数的入口处打断点;bread +- offset:在当前行号的前面或后面的offset行处停住;设置监视:watch var:var为某一变量;rwatch var:当var被读时,停住程序。awatch var:当var被读或被写时,停住

2017-10-28 22:02:03 317

原创 Linux 文件目录

Linux下所有的内容都是以文件的形式保存的。目录是一种用来保存节点号和其它文件名字的特殊文件。 一个文件除了本身包含的内容之外,还有一个名称和其属性,这些属性都保存在一种inode(结点)的数据结构里。Linux下不依靠扩展名来判断文件类型。 Linux所有的存储设备都必须挂载之后用户才能使用,包括硬盘,光盘、U盘。Linux 文件目录:命令保存目录:带有bin的目录 /bin : 【bi

2017-10-28 21:57:00 328

原创 c++ std::function bind

c++ std::function bind//// Created by yangning on 17-10-26.//// Descriprion : test std::function bind//// Copyright (c) yangning All rights reserved.//#include <random>#include <iostream>#inclu

2017-10-26 18:07:14 231

空空如也

空空如也

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

TA关注的人

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