操作系统
沁园春.雪.
这个作者很懒,什么都没留下…
展开
-
全面介绍Windows内存管理机制及C++内存分配实例
在编程中,很多Windows或C++的内存函数不知道有什么区别,更别谈有效使用;根本的原因是,没有清楚的理解操作系统的内存管理机制,本文企图通过简单的总结描述,结合实例来阐明这个机制。 本文目的: 对Windows内存管理机制了解清楚,有效的利用C++内存函数管理和使用内存。1. 进程地址空间1.1地址空间32|64位的系统|CPU 操作系统运行在硬件CPU上,32位操作系统运行于32位CP转载 2017-09-29 11:39:12 · 261 阅读 · 0 评论 -
内核态和用户态
内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取为什么要有用户态和内核态由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级转载 2017-10-04 10:13:21 · 276 阅读 · 0 评论 -
Linux系统编程——I/O多路复用select、poll、epoll的区别使用
// 转载: http://blog.csdn.net/tennysonsky/article/details/45745887 I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。select(),poll(),epoll()都是I/O多路复用的机制。I/O多路复用通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一转载 2017-10-13 23:01:41 · 377 阅读 · 0 评论 -
动态链接库和静态链接库
1.静态库(Static Library): 函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件(.EXE文件)。2.导入库(Import Library): 在使用动态链接库的时候,往往提供两个文件:一个引入库和一个D原创 2018-01-31 21:00:59 · 336 阅读 · 0 评论 -
程序编译的四个过程
编译程序生成可执行文件四个阶段:GCC驱动程序读取源文件.c比如hello.c,并把它翻译成一个可执行目标文件hello,需要经历一下四个阶段,如下图示: 预处理阶段。预处理器(cpp)根据以字符#开头的命令,修改原始的C程序。比如hello.c中第一行的#include命令告诉预处理器读取系统头文件stdio.h的内容,并把它直接插入程序文本中,结果就得到了另一个C程序,通常原创 2018-01-17 23:04:19 · 21567 阅读 · 3 评论