- 博客(8)
- 收藏
- 关注
转载 用户态/内核态、用户栈/内核栈
一、用户态和内核态 内核态和用户态是操作系统的两种运行级别,用于区分不同程序的不同权利。 内核态就是拥有资源多的状态,或者说访问资源多的状态,也称为特权态。相对来说,用户态就是非特权态,访问的而资源将受到限制。如果一个程序运行在特权态,该程序就可以访问计算机的任何资源,它的资源访问权限不受限制。如果一个程序运行在用户态,其资源需求将受到各种限制。如:要访问操作系...
2017-08-03 10:42:00
157
转载 进程与线程
一、进程与线程 进程是系统进行资源分配和调度的一个独立单位。用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等,然后就该进程被放入到进程的就绪队列,进程调度程序选择它,为它分配CPU及其他相关资源,该进程就被运行起来。 线程是进程的一个实体,是CPU调度和分配的基本单位,线程自己基本上不拥有系统资源,只拥有...
2017-08-03 09:40:00
86
转载 静态链接库与动态链接库的区别及动态库的创建(转)
一、引言通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray),通常文件名为“libxxx....
2017-07-29 12:03:00
93
转载 const关键字
一、const的作用1.定义常量,使其具有不可变性2.进行类型检查,防止被意外的修改3.为函数重载提供参考1 class A2 3 {4 5 void fun(int i){...}6 7 void fun(int i) const {...}8 9 };4.节省空间,避免不必要的内存分配...
2017-07-29 09:49:00
64
转载 assert断言
一、ASSERT概述 ASSERT()称为断言,c语言中在#include <assert.h>中定义,c++中在#include <cassert>中定义。通常用来判断程序中是否出现了非法数据。 如果ASSERT(express);express的表达式值为false,程序报告错误,终止运行,以免产生严重后果,同时也便于查找错误;表达式...
2017-07-29 09:41:00
94
转载 volatile变量
一、volatile概述 volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址(内存)中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。 volatile一般用于修饰多线程间被...
2017-07-21 21:36:00
118
转载 new/delete 与 malloc/free的区别
一、概述 在C++中,申请动态内存与释放动态内存用new/delete 与 malloc/free都可以,而且他们的存储方式相同,new/malloc申请的动态内存位于堆中,无法被操作系统自动回收,需要对应的delete也free释放空间。 malloc/free是C/C++语言的标准库函数,在C语言中需要头文件#include<stdlib.h>的...
2017-07-21 21:30:00
71
转载 1、驱动应该怎么学
一、Linux体系架构1、分层思想2、驱动的上面是系统调用API3、驱动的下面是硬件4、驱动自己本身也是分层的用户——>应用程序(APP)——>API——>驱动——>硬件二、模块化设计1、微内核和宏内核(1)宏内核(又称为单内核):将内核从整体上作为一个大过程实现,并同时运行在一个单独的地址空间。所有的内核服务都在一个地...
2017-07-14 15:59:00
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人