基础
distanceNing
c++
展开
-
函数调用反汇编
windows堆栈:向低地址扩展。 堆栈平衡: windows堆栈就是一块普通的内存,主要用来存储一些临时数据和参数等,可以想象成一个公共的箱子,大家都会用,每个人用完都要使它和用之前一样。main函数中的调用:0100176E 6A 02 push 2 01001770 6A 01 push 1原创 2017-10-28 22:16:22 · 423 阅读 · 0 评论 -
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 · 531 阅读 · 0 评论 -
死锁产生和预防
死锁的产生 1、资源是互斥的 资源在同一时刻只有一个进程才能够使用和访问 2、持有并等待 一个进程持有一份资源阻塞等待其它进程释放资源 3、资源不可抢占 只有一个进程使用完资源之后其它进程才能够占有使用 4、循环等待 在等待资源的进程集合中请求和占有关系存在一个循环等待 死锁的预防 预防就是限制程序不满足死锁的必要条件 1、互斥 我们把需要互斥访问的资源封...原创 2018-03-15 22:21:24 · 290 阅读 · 0 评论 -
计算机启动过程
BIOS: BIOS做了底层的一些初始化的工作。 BIOS的初始化过程: 在计算机电源刚打开的时候,首先会: 1、硬件自检。 2、检查系统中的内存和显卡等关键部件的存在和工作状态。 3、查找并执行显卡等接口卡BIOS,进行设备初始化。 4、执行系统BIOS,进行系统检测。 在这之后会寻找启动盘,如果选择是从软盘启动,计算机会检查软盘的0面0道1扇区,如果扇区...原创 2018-03-09 20:13:08 · 1645 阅读 · 0 评论 -
系统调用
系统调用: 操作系统对上提供服务的接口。 通过软中断触发中断 INT和IRET指令用于系统调用,系统调用时,堆栈切换和特权级的切换。 开销 1、引导机制 2、建立内核堆栈 3、验证参数 4、内核态映射到用户态的地址空间,更新页面映射权限 5、内核态独立地址空间TLB 普通的函数调用与系统调用不同的是没有堆...原创 2018-03-09 22:36:36 · 4292 阅读 · 0 评论 -
处理机调度
调度算法: 第一类就绪队列怎么排 第二类是每一次执行时间的长短的控制 第三类关于多种算法如何综合到一起 先来先服务算法 按着到就绪队列里的先后顺序来排队的在找就绪进程的时候也是按照这个先后顺序来。 按先来后到没有考虑到进程的特征 缺点: 1、平均等待时间波动非常大 2、资源的利用效率比较低 CPU密集型的进程会导致I/O设备闲置时,I/O密集型的进程也...原创 2018-03-12 15:02:14 · 221 阅读 · 0 评论