进程的相关知识是操作系统一个重要的模块。在理解进程概念同时,还需了解如何控制进程。对于进程控制,通常分成1.进程创建  (fork函数) 2.进程等待(wait系列) 3.进程替换(exec系列) 4.进程退出(exit系列,...
阅读(8) 评论(0)
map /multimap  map是STL里重要容器之一。 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key, val...
阅读(13) 评论(0)
我们学习操作系统,想必对生产消费者问题都不陌生。作为同步互斥问题的一个经典案例,生产消费者模型其实是我们解决实际问题的基础,很多实际问题的解决都会依赖于它。而解决此模型的同步与互斥,在多进程的环境下我们通常是用信号量来解决(可以戳这里看...
阅读(11) 评论(0)
我们学习C++的时候,想必都会听说一个叫智能指针的东西,在初听这个词的时候,我们都难免不被“智能”两个字所吸引,感觉它会比较高级,让人有种忍不住想用一把的冲动。 但事实上,它可能并没有我们所想的那样&ldquo...
阅读(13) 评论(0)
我们学习使用C++,肯定都要了解模板这个概念。就我自己的理解,模板其实就是为复用而生,模板就是实现代码复用机制的一种工具,它可以实现类型参数化,即把类型定义为参数;进而实现了真正的代码可重用性。模版可以分为两类:一个是函数模版,另外一个...
阅读(13) 评论(0)
进程间通信的方式中,我们将多个进程共享同一块存储区来进行数据交换的方式称为共享内存通信。源于它直接将“内存”共享的特殊机制,它成为最快的一种IPC通信方式;然而它也不完美,它虽快,但是没有同步机制;通常在一个服务...
阅读(20) 评论(0)
 信号及其处理 信号处理是Unix和LInux系统为了响应某些状况而产生的事件,通常内核产生信号,进程收到信号后采取相应的动作。 例如当我们想强制结束一个程序的时候,我们通常会给它发送一个信号,然后该进程会捕捉到信号,...
阅读(14) 评论(0)
记得以前初次接触fork()函数的时候,一直被“printf”输出多少次的问题弄得比较晕乎。不过,“黄天不负留心人"。哈~ 终于在学习进程和进程创建fork相关知识后,总算是大致摸清了其中的来龙去脉。...
阅读(15) 评论(0)
    共享内存是三个IPC机制中的一个。它允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在进行的进程之间传递数据的一种非常有效的方式。   大多数的共享内存的实现,都把由不同进程之间共...
阅读(18) 评论(0)
学习C++ 不可避免地会遇到虚函数的问题,下面几个问题在学习初期或多或少会存在一些疑惑,所以便将其总结了下来。   1.为什么静态成员函数、构造函数不能定义为虚函数?   因为静态成员函数是一个大家共享的一个资源,它其实...
阅读(20) 评论(0)
   进程间通信XSI IPC有3种:消息队列、共享内存、信号量。它们之间有很多相似之处,但也有各自的特殊的地方。消息队列作为其中比较简单的一种,它会有些什么东西呢,来一起探讨探讨。。   消息队列结...
阅读(19) 评论(0)
以前对makefile的编写,限于刚开始接触,我都比较局限一些死板的格式,有时候就会显得有些繁琐。在进一步了解一些系统编译和链接的知识后,对makefile编写流程有了一些新的认识,所以来此梳理梳理,方便更灵活地编写makefile。...
阅读(23) 评论(0)
前一段时间被问到过一个问题,当时模模糊糊,就是说不清楚,问题问到说:什么情况下会将基类的析构函数定义成虚函数?   当时想到 如果子类B继承了父类A,那么定义出一个子类对象b,析构时,调用完子类析构函数,不是自动调用父类的析构函数吗!...
阅读(23) 评论(0)
进程间通信方式主要分为 管道、SystemV IPC、 POSIX IPC三大类,管道作为进程间通信的一大重要方式,平时应用当中十分广泛。于是这里就先简单整理了一些关于管道的用法和注意事项。 匿名管道 管道是UNIX中最古老的进程间...
阅读(17) 评论(0)
在区分隐藏和重写之前,先来理一理关于继承的东西。。。 【继承】 继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。简单的说,继承就是指一个对象直接使用另一对象的属性和...
阅读(27) 评论(0)
1 2 下一页共2页  到第