自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++面试必备之虚函数

(本文首发于微信公众号--西二旗学徒,https://mp.weixin.qq.com/s?__biz=MzIzNjk2NjUxOQ==&mid=2247483655&idx=1&sn=5b29918a121006d14a09e75d2dcb0a8b&chksm=e8ce861fdfb90f09aaa9a5f3c3bbf38b342f73fdfbe37c111c39937e7baa931fc0ac

2017-08-15 12:11:15 3338

原创 C++ 对象的内存布局

主要有三个因素对对象的内存布局有较大影响:类成员类型(static成员变量,virtual成员函数);继承方式;内存对齐。以下分别详细说明了具体的影响。一、static与virtual对内存布局的影响对象的内存分布与类的成员有关,static成员变量与非static成员变量会造成不同的内存分布,virtual成员函数与非virtual成员函数会造成不同的内存分布。具体而言,对象的内存只

2016-05-27 17:25:07 280

原创 三、虚拟内存 页面置换

现代需要运行的程序往往大到内存无法容纳,而且必须能够支持多个程序同时运行,及时内存可以满足其中一个单独的程序的要求,但总体来看仍然超出了内存大小。而交换技术由于磁盘速度的限制,也不是一个非常好的方法。在早起计算时代(20世纪60年代)采用的方法:把程序分割成许多片段,称为覆盖。程序开始时,将覆盖管理模块装入内存,该模块负责在运行时动态地调入覆盖0、1、2……并决定是获取空闲区还是占用已使用的区

2016-05-12 22:48:50 779

原创 三、存储器抽象:地址空间

要保证多个进程同时处于内存中并且不相互影响,需要解决两个问题:保护和重定位。上一篇中提到的IBM 360采用给内存块标记上保护键,并比较执行进程的键和其访问的内存字的保护键是否相同的方法来进行保护;而对于重定位的实现,IBM 360使用的静态重定位技术是一个缓慢且复杂的方法。一种更好的办法是创建一个新的内存抽象:地址空间。地址空间是一个进程可用于寻址内存的一套地址集合。每个进程都会有一个自己的

2016-05-12 15:51:32 815

原创 三、存储管理之无存储抽象

分层存储体系:在这个体系中,计算机有若干兆(MB)快速、昂贵、易失性的告诉缓存(cache),数千兆(GB)速度和价格适中且同样易失性的内存,以及几兆兆(TB)低速、廉价、非易失性的磁盘存储,还有USB等可移动存储装置。操作系统的工作就是将这个存储体系抽象为一个有用的模型并管理这个模型。操作系统中管理分层存储器体系的部分称为存储管理器。它的任务是有效地管理内存,即记录那些内存是正在使用的,那些

2016-05-10 17:01:17 990

原创 二、进程调度算法

2.4 调度同城会有多个进程或线程同时竞争CPU,如果只有一个CPU可用,就必须选择下一个要运行的进程。在操作系统中,完成选择工作的这一部分称为调度程序,该程序使用的算法称为调度算法。许多适用于进程调度的处理方法同样适用于线程。当内核管理线程的时候,与线程所属的进程基本没有关联。2.4.1 介绍为了选取正确的进程运行,调度程序还要考虑CPU的利用率,因为进程切换的代价是比较高的。首先用

2016-05-03 19:56:06 557

原创 二、进程间通信

2.3 进程间通信1)        一个进程如何把消息传递给另一个进程2)        确保两个或更多的进程在关键活动中不会出现交叉3)        进程间的正确执行顺序后两个问题对于线程来说同样适用。由于共享内存空间,线程间的消息传递比较容易。2.3.1 竞争条件协作的进程可能共享一些彼此都能读写的公用存储区,可能在内存中也可能是某个共享文件。两个或更多的进程读写某

2016-05-03 17:10:05 465

原创 二、进程与线程

进程、进程创建与终止、进程的状态与转换、多道程序设计模式;线程、用户空间与内核、

2016-05-03 09:51:26 206

原创 C++ Primer 11章泛型算法总结

范型算法,可以在多种容器类型上操作,一般是通过迭代器向函数传递需要操作的元素。#include#include1、find()函数:查找find(b,e,val)   在迭代器b,e标记的范围内(包括b,不包括e)查找值val,要求迭代器指向的元素能够与val值进行相等(==)操作。查找成功则返回指向相等元素的迭代器,否则返回e。若val及迭代器的元素不支持相等操作,则可以加一

2016-04-21 10:57:43 329

原创 C 中可调用的linux相关函数

一、进程相关 1.  进程ID头文件#include(c++文件,c源文件为#include)getpid( )      获取当前进程的 IDgetppid( )    获取当前进程的父进程IDgetpgrp( )    获取当前进程的进程组IDgetuid( )       获取当前进程的实际用户IDgetgid( )       获取当前进程的实际用户组I

2016-04-20 16:09:49 349

原创 C++ string类型的一些操作

整理自C++ Primer第四版一、定义和初始化string  str;    默认构造函数,str为空的字符串string  str(“abcdef”);   将str初始化为相应的字符串字面值string   str(n,‘a’);   将str初始化为n个‘a’的字符串string  str(cp);    其中cp为一个指向C风格字符串的指针  如   char *

2016-04-19 21:13:41 465

原创 vim编辑器设置自动缩进、高亮等功能

进入vim编辑器后,在命令模式下输入以下内容::set nu   显示行号:set ai    自动缩进(每行的缩进方式与上一行相同):set cindent   按C/C++方式缩进:set sm  匹配括号取消相应功能输入  :set nonu 取消显示行号   其他类似  在命令前加no即可以上操作都是在临时设置,即退出vim再次进入仍需再次设置可以编写.vimr

2016-04-14 15:02:04 585

原创 linux 安装g++出错

执行sudo apt-get install g++后显示如下:正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成       有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件包尚未被创建或是它们已被从新到(Incoming)目录移

2016-04-13 09:27:44 2430 1

空空如也

空空如也

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

TA关注的人

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