![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
————必看书籍————
文章平均质量分 63
那时风起
Fighting!!!~~~勿忘初心~~~
展开
-
第九章-----虚拟内存
第九章-----虚拟内存 为了更有效地管理内存并且少出错,现代系统提供了一种对主存的抽象概念,叫做虚拟内存(VM)。虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的俺没交互,它为每个进程提供了一个大的、一致的和私有的地址空间。通过一个很清晰的机制,虚拟地址内存提供了三个重要的能力: ● 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存原创 2018-02-07 16:17:48 · 351 阅读 · 0 评论 -
笔记一:进程间的通信
A与B虽然无法在用户空间通信,但是可以通过访问内核进行通信,访问内核中同一个对象(通过内核中的对象)内核对象: 进程间的通信方式2.有哪几种通信方式?管道通信:无名管道、有名管道(文件系统中有名)信号通信:信号(通知)通信包括:信号的发送、信号的接收和信号的处理。IPC(Inter-Process Communication)通信:共享内存、消息队列和信原创 2017-02-26 15:55:18 · 769 阅读 · 0 评论 -
shell脚本编程(一)
初识shell脚本编程 最近项目需求,需要了解下shell脚本编程,所以自己就必须玩玩了= = 初识shell脚本编程,找了几个简单的例子,做了几个测试。 楼主使用的是vim编辑器例1:主要就是在终端打印一些信息,代码如下 解释下#是文本注释的作用,#!位于解释器路径之前,/bin/bash是Bash的解释器路原创 2016-12-09 15:41:23 · 506 阅读 · 1 评论 -
笔记:C++学习之旅---面向对象程序设计2
笔记:C++学习之旅---面向对象程序设计2面向对象程序设计基于三个基本概念:数据抽象、继承和动态绑定。继承和动态绑定对程序的编写有两方面的影响:一是我们可以更容易的定义与其他类相似但不完全相同的新类:二是在使用这些彼此相似的类编写程序时,我们可以在一定程度上忽略掉它们的区别。继承通过继承联系在一起的类构成一种层次关系。通常在层次关系的根部有一个基类原创 2016-10-10 18:32:14 · 418 阅读 · 0 评论 -
笔记:C++学习之旅---关联容器
笔记:C++学习之旅---关联容器 关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的。与之相对,顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。 关联容器支持高效的关键字查找和访问。两个主要的关联容器类是map和set。map中的元素是一些关键字的-值(key-value)对:关键字起到索引的作用,值则表示与索引相关联的数原创 2016-10-10 18:31:29 · 307 阅读 · 0 评论 -
笔记:C++学习之旅---顺序容器
笔记:C++学习之旅---顺序容器STL = Standard Template Library 标准库模版容器可以使用范围for输出或者迭代器进行输出一个容器就是一些特定类型对象的集合。顺序容器为程序员提供了控制元素存储和访问顺序的能力。list和forward和vector 将两个容器的设计目的是令容器任何位置的添加和删除操作都很快速。作为代价这两个容器不支持元原创 2016-10-10 18:29:38 · 456 阅读 · 0 评论 -
笔记:C++学习之旅---IO库
笔记:C++学习之旅---IO库C++的输入输出分为三种:(1)基于控制台的I/O (2)基于文件的I/O (3)基于字符串的I/O 练习8.4 编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个独立的元素存原创 2016-10-10 18:27:09 · 294 阅读 · 0 评论 -
笔记:C++学习之旅---面向对象程序的设计1
笔记:C++学习之旅---面向对象程序的设计1面向对象的主要特征1.抽象2.封装3.继承4.多态抽象:将程序的每一部分都看作一个抽象的对象,即程序有一组抽象的对象组成的更复杂点,这些对象根据他们相同的特征有进一步组成了一个类。封装:将每个数据封装在各自的类中,有设置了多种访问权限,别的类可以在允许的情况下访问该类中的数据,不允许的情况下则无法访问该数据,原创 2016-10-10 18:25:01 · 250 阅读 · 0 评论 -
笔记:C++学习之旅---泛型算法
标准库并未给每个容器定义成员函数来实现这些操作,而是定义了一组泛型算法(generic algorithm):称他们为”算法“,是因为他们实现了一些经典算法的公共接口,如排序和搜索:称他们是“泛型的”,是因为它们可以用于不同类型的元素和多种容器类型(不仅包括标准库类型,如vector或list,还包括内置的数组类型),以及我们将看到的,还能用于其他类型的序列。练习10.3,10.4原创 2016-09-23 01:22:25 · 356 阅读 · 0 评论 -
笔记:C++学习之旅 ---string 类、vector和迭代器
string 类#include #include using namespace std;int main(){ string s1,s2; cin>>s1>>s2; cout return 0}如果相对string对象中的每个字符做点儿 什么操作,目前最好的办法是使用C++11新原创 2016-09-23 01:20:23 · 397 阅读 · 0 评论 -
笔记:C++学习之旅---try语句和异常处理
异常处理机制为程序中异常检测和异常处理这两部分的协作提供支持,在C++语言中,异常处理包括: *throw表达式(throw expression),异常检测部分使用throw表带是来表示它遇到的了无法处理的问题,我们说throw引发了异常。 *try语句块(try block),异常处理部分使用try语句处理异常。try语句块以关键字try开始,并以一个或多个catch自居结原创 2016-09-23 01:16:22 · 459 阅读 · 0 评论 -
笔记:C++学习之旅---指针
笔记:C++学习之旅---指针为什么要使用指针因为在操作大型数据和类时,由于指针可以通过内存地址直接访问数据,从而避免在程序中赋值大量的代码,因此指针的效率最高,一般来说,指针会有三大用途:1:处理堆中存放的大型数据。2:快速访问类的成员数据和函数。3:以别名的方式向函数传递参数。我们先来看内存中的几大区: 内存到底分几个区?一: 1、原创 2016-08-24 23:10:48 · 295 阅读 · 0 评论 -
笔记:C++学习之旅---引用
笔记:C++学习之旅---引用什么是引用?引用就是别名,引用并非对象,相反的,他只是为一个已经存在的对象所起的另外一个名字。/*引用就是别名*/#includeusingnamespacestd;intmain(){ intnum; int&mum = num;//m原创 2016-08-24 23:08:23 · 507 阅读 · 0 评论 -
笔记四:进程间的通信(信号)
通信对象:信号用户空间是不能发送信号必须通过内核,不像前面管道通信需要创建,而是信号已经存在于内核中linux内核总共可以发送64种信号查看内核可以发送多少种信号:kill -l1)A要发送信号给B,必须告诉内核要发送什么信号(信号的id号);2)告诉内核发送给谁;(pid号)三:信号 信号通信,其实就是内核向用户空间进程发送信号,只有内核才能发信号,用户空原创 2017-02-26 16:36:50 · 715 阅读 · 0 评论 -
笔记三:进程间的通信(管道)
1)内核空间的对象是不存在的;2)进程间的通信每一种通信方式都是基于文件IO思想;open函数,read函数,write函数,close函数等等;3)通过open函数打开或者创建一个文件(只能创建普通文件),当我们打开一个文件,就会在内核空间开辟一个缓存,通过write往内核写,以及用户空间从内核read;对象不一样意味着通信方式不一样2.有哪几种通信方式?管道通信:无原创 2017-02-26 16:28:08 · 630 阅读 · 0 评论 -
笔记二:进程间的通信(fork、孤儿进程,僵死进程等)
以下是以前学习《unix环境高级编程》时的一些笔记和测试代码,好久没看过了,没有再次验证,存在错误的话,希望见谅,分享下主要是!!!ps 查看系统中的进程 ps–axjA与B在用户空间是不能通信的,相当于封闭的房子,也没有窗户,所以在用户空间是无法通信的二:进程控制相关函数1.fork()功能:创建一个子进程参数:没有参数返回值:成功,返回二个值;0 -原创 2017-02-26 16:05:18 · 522 阅读 · 0 评论 -
第八章-------异常控制流
第八章-------异常控制流 比如,一个硬件定时器定期产生信号,这个时间必须得到处理。包括到达网络适配器后,必须存放在内存中。程序向磁盘请求数据,然后休眠,直到被通知说数据已就绪。当子进程终止时,创造这些子进程的父进程必须得到通知。现代系统通过控制流发生突变来对这些情况做出反应,一般而言,我们把这些突变称为异常控制流(Exceptional Control Flow, E原创 2018-02-07 16:09:21 · 308 阅读 · 0 评论 -
第四章------处理器体系结构
1.一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-Set Architecture, ISA).2.硬件寄存器如何工作的? 如下图所示,大多数时候,寄存器都保持在稳定状态(用x表示),产生的输出等于它的当前状态。信号沿着寄存器前面的组合逻辑传播,这时,产生了一个新的寄存器输入(用y表示),但只要时钟是低电位的,寄存器的输出就仍然保持不变。原创 2018-01-29 17:10:02 · 281 阅读 · 0 评论 -
第六章------存储器层次结构
第六章------存储器层次结构1.随机访问存储器 随机访问存储器(Random-Access Memory,RAM)分为两类:静态的和动态的。静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多。SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下。DRAM用来作为主存以及图形系统的帧缓冲区。典型地,一个桌面系统SRAM不会超过几兆字节,但是DRAM却有原创 2018-01-29 17:13:59 · 309 阅读 · 0 评论 -
第七章------链接
第七章------链接1.静态链接 为了构造可执行文件,链接器必须完成两个主要任务: ● 符号解析,目标文件定义和引用符号,每个符号对应于一个函数、一个全局变量或一个静态变量(即C语言中任何以static属性声明的变量)。符号解析的目的是将每个符号引用正好和一个符号定义关联起来。 ● 重定位,编译器和汇编器生成从地址0开始的代码和数据节。链接器通过把每个原创 2018-02-07 16:01:43 · 509 阅读 · 0 评论 -
第一章------计算机系统漫游
第一章------计算机系统漫游1.gcc -o hello hello.c, 在这里GCC编译器驱动程序读取源程序文件hello.c,并把它翻译成一个可执行目标文件hello。这个翻译过程可以分为四个阶段: 1)预处理阶段 2)编译阶段 3)汇编阶段 4)链接阶段2.系统的硬件组成1)总线 贯穿整个系统的是一组电子管道原创 2018-01-29 17:07:02 · 282 阅读 · 0 评论 -
linux高级编程之线程间的通信(pthread_cleanup_push和pthread_cleanup_pop)
linux高级编程之线程间的通信(pthread_cleanup_push和pthread_cleanup_pop) 线程可以安排他退出时需要调用的函数,这与进程可以用atexit函数安排进程退出时需要调用的函数是类似的。这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说他们的执行顺序与他们注册的顺序相反。 pthread...原创 2017-06-05 21:43:53 · 21129 阅读 · 16 评论 -
笔记十:线程间的通信(pthread_exit()和pthread_join())
linux高级编程之线程间的通信(pthread_exit()和pthread_join())1.线程终止 如果进程中的任一线程调用了exit、_Exit或者_exit,那么整个进程就会终止。与此类似,如果信号的默认动作是终止进程,那么,把该信号发送到线程会终止整个进程。 单个线程可以通过下列三种方式退出,在不终止整个进程的情况下停止它的控制流。原创 2017-03-09 11:35:56 · 854 阅读 · 0 评论 -
笔记九:线程间的通信(pthread_create()和pthread_self())
linux高级编程之线程间的通信:(pthread_create()、pthread_self())1.线程概念 线程包含了表示进程内执行环境必须得信息,其中包括进程中标识线程的线程ID、一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno变量以及线程私有数据。进程的所有信息对该进程的所有线程都是共享的,包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述原创 2017-03-09 11:30:13 · 3470 阅读 · 0 评论 -
笔记八:linux系统编程之IO
笔记:linux系统编程之IO应用层 内核层 硬件层应用层:数据结构 、java、android、C、C++,C#;linux高级编程:涉及内核为应用层提供接口函数;内核五大功能:文件管理进程管理设备管理内存管理网络管理printf显示原理:显示器属于硬件,内核主要通过驱动程序写到内核,printf想进入内核,必须通过内核提供的接口函原创 2017-02-26 16:59:49 · 367 阅读 · 0 评论 -
笔记七:进程间的通信(IPC通信之信号灯)
信号量定义信号变量; sem_t sem1 sem2初始化信号量P操作 V操作 功能信号量(POSOX)信号量灯(IPC)定义信号变量sem_t sem1semget初始化信号量sem_inits原创 2017-02-26 16:55:33 · 543 阅读 · 0 评论 -
笔记六:进程间的通信(IPC通信之消息队列)
IPC通信之消息队列“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。链式队列原创 2017-02-26 16:50:05 · 502 阅读 · 0 评论 -
笔记五:进程间的通信(IPC通信之共享内存)
IPC通信IPC通信(Inter-Process Communication)三种: 共享内存、消息队列、信号灯 这个IPC对象,肯定是存在于内核中。而且用户空间的文件系统中有没有IPC的文件类型?没有。有名管道为什么能实现无亲缘关系的进程之间的通信?是因为用户空间有管道这种文件类型。 IPC是不是只能用于亲缘关系进程之间的通信呢?肯定不是 它是怎样实现原创 2017-02-26 16:44:27 · 332 阅读 · 0 评论 -
笔记:C++学习之旅---初识C++
笔记:C++学习之旅---初识C++ 博主也是一个新手,学习编程才一年左右,刚大学毕业不久,以前在学校学习的语言主要是C,本人是从嵌入式学起的!我现在从事的公司主要是C++,所以我也开始了自学之路,以下是我学习过程的一些笔记,有的是截取书上的,有的是自我总结的,出现一些错误也请见谅,同时也是为了激励我自己以及和大家一起学习!!!C:面向结构化(或者说原创 2016-08-24 23:02:33 · 575 阅读 · 0 评论