进程就是一段执行的程序,每当一个程序运行时,对于操作系统本身来说,就创建了一个进程,并且分配了对应的资源。进程可以分为3个类别:
1.交互式进程(I/O)
2.批处理进程 (CPU)
3.实时进程 (REAL-TIME)
对于交互式进程来说,一般其占用的cpu时间片很段,但是优先级偏高;批处理进程占用的cpu时间片很长,但是优先级偏底;实时进程是...
分类:
其他好文 时间:
2014-06-19 11:37:32
阅读次数:
334
(一)
先看下面的代码:
string* stringArray = new std::string[100];
...
delete stringArray;
这样的做法是错误的,因为stringArray所含的100个string对象中的99个可能并没有被适当地删除,因为它们的析构函数很可能没有被调用。
(二)
使用new时发生的事情:
(1)内存被分配出来;
(2)针...
分类:
编程语言 时间:
2014-06-19 10:31:16
阅读次数:
224
keepalived+nginx双机热备+负载均衡
最近因业务扩展,需要将当前的apache 转为nginx(web), 再在web前端放置nginx(负载均衡)。同时结合keepalived 对前端nginx实现HA。
nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能。在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由主进程发...
分类:
其他好文 时间:
2014-06-19 10:29:19
阅读次数:
307
C++中, 一个参数的构造函数,承担了两个角色。 一个是个构造器 ,一个是个默认且隐含的类型转换操作符。例如 A = a这样的代码, 且恰好a的类型正好是A单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个A的对象。这样看起来很酷, 很方便。 但在某些情况下, 却违背了我们的本意。 这时候就要在这个构造器前面加上explicit修饰, 指定这个构造器只能被明确的调用...
分类:
编程语言 时间:
2014-06-16 12:43:04
阅读次数:
217
指针--------存储地址的变量
int a=5;
int* p=&a;
int b=*p;
执行以上操作后,b这个整型变量里的值是多少? 答 : 5
p这个整型变量里的值是多少? 答 : a的地址(不是int型数字5!)
为什么呢?
int a=5; 这是个最常见的定义变量并赋值语句,执行该句后,内存中会分配出一个4个字节(通常为4个字节,具体大小由系统决定)大...
分类:
其他好文 时间:
2014-06-16 12:40:00
阅读次数:
181
我感觉学习操作系统首先要从内存分配和管理入手。首先我们应该知道现代操作系统是以页为单位进行内存管理的,32位体系结构支持4KB的页,而64位体系结构支持8KB的页。页是用来分配的,如何才能进行高效和充分的利用,这是内存管理单元(MMU)应当仔细考虑的。...
分类:
系统相关 时间:
2014-06-16 12:31:45
阅读次数:
259
相对于使用进程实现并发,用线程的实现更加轻量。每个线程都是独立的逻辑流。线程是CPU上独立调度运行的最小单位,而进程是资源分配的单位。当然这是在微内核的操作系统上说的,简言之这种操作系统的内核是只提供最基本的OS服务,更多参看点击打开链接
每个线程有它自己的线程上下文,包括一个唯一的线程ID(linux上实现为unsigned long),栈,栈指针,程序计数器、通用目的寄存器和条件码,...
分类:
编程语言 时间:
2014-06-16 12:28:38
阅读次数:
296
??
第三节
动态内存分配new和delete
经过调试设置断点,发现new
函数其实还是调用的malloc函数。
第四节
引用
一个变量是可以有多个引用的,引用也是可以传递的。
常量是不能有引用的。
当引用作为函数的返回值时。如下的例子//
int
&add(int
&a,int
...
分类:
编程语言 时间:
2014-06-16 12:09:14
阅读次数:
296
进程线程分配方式
简述下常见的进程和线程分配方式:(好吧,我只是举几个例子作为笔记。。。并发的水太深了,不敢妄谈。。。)
1、进程线程预分配
简言之,当I/O开销大于计算开销且并发量较大时,为了节省每次都要创建和销毁进程和线程的开销。可以在请求到达前预先进行分配。
2、进程线程延迟分配
预分配节省了处理时的负担,但操作系统管理这些进程线程也会带来一定的开销。由此,有个折中的方法是,当某个...
分类:
编程语言 时间:
2014-06-16 11:45:38
阅读次数:
480
我们全都使用别人设计好的库与框架。我们讨论库与框架、利用他们的API编译成我们的程序、享受运用别人的代码所带来的长处。看看java
api它所带来的功能:网络、GUI、IO等。库与框架长久以来,一直扮演着软件开发过程的重要角色,我们从中挑选所要的组件,把他们放进合适的地方。可是,库与框架无法帮助我们...
分类:
其他好文 时间:
2014-06-13 16:49:07
阅读次数:
217