用户级线程和内核级线程

用户级线程和内核级线程

系统原理 5年前 (2013-09-25) 浏览: 18

1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。 2. 用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,少了进出内核态的消耗,但不能很好的利用多核Cpu,目前Linux pthread大体是这么做的。 线程的实现可以分为两类:用户级线程(User-Le

类型转换一些细节

类型转换一些细节

系统原理 5年前 (2013-08-28) 浏览: 24 评论: 5

已知:signed char a = 0xe0,unsigned char b = a, unsigned int c = a; 那么a在内存中的二进制形式为:1110 0000,同理b在内存中也是为1110 0000,同理c的一个字节也为1110 0000; 对于a来说,得知它为一个负数。所以a的值为224 - 256 = -32; 对于b来说,得知它为一个正数,所以b的值为224 对于c来说,

补码认识

补码认识

系统原理 5年前 (2013-08-28) 浏览: 18 评论: 0

关于补码,看过一些书籍和网文,基本都是在“求反加一”的方法、步骤上反复强调,而对于补码的本质和定义,讨论的不足。这就对初学者的造成了误导,使得很多人都纠结在-128的补码求取过程中。 关于反码和原码,大家都是在郑重其事的讲解,其实,学过的人都知道,它们的重要性是 0 ! 做而论道把自己对于补码的认识写在下面,但愿对读者有些帮助。 加法器 计算机里面,只有加法器,没有减法器,所有的减法运算,都必须用

浮点数的存储

浮点数的存储

系统原理 5年前 (2013-08-28) 浏览: 39 评论: 5

■ 现实生活中的小数 数学中的小数,又称为实数。一般用十进制表示 例如: 3.14159265 ■ 科学计算法 数学中的科学计算法许多种表示法 3.14159265 = 0.314159265 × 101 ■ 计算机中浮点数的表示 在计算机中的使用科学计数法是一种“规格化计数法”。 ● 规格化计数法 用科学计数法表示实数时,如果最左边的第一个数字不是0,则被称为“规格化计数法” 0.1 × 10-

浮点数的二进制表示

浮点数的二进制表示

系统原理 5年前 (2013-08-28) 浏览: 9 评论: 2

1. 前几天,我在读一本C语言教材,有一道例题: 运行结果如下: 我很惊讶,num和*pFloat在内存中明明是同一个数,为什么浮点数和整数的解读结果会差别这么大? 要理解这个结果,一定要搞懂浮点数在计算机内部的表示方法。我读了一些资料,下面就是我的笔记。 2. 在讨论浮点数之前,先看一下整数在计算机内部是怎样表示的。 int num=9; 上面这条命令,声明了一个整数变量,类型为int,值为9(

堆栈中的EIP EBP ESP是什么

堆栈中的EIP EBP ESP是什么

系统原理 5年前 (2013-08-28) 浏览: 21 评论: 3

先写个小程序: void fun(void) { printf("hello world"); } void main(void) { fun() printf("函数调用结束"); } 这是一个再简单不过的函数调用的例子了。 当程序进行函数调用的时候,我们经常说的是先将函数压栈,当函数调用结束后,再出栈。这一切的工作都是系统帮我们自动完成的。 但在完成的过程中,系统会用到下面三种寄存器: 1.E

公用体在格式化中的应用

公用体在格式化中的应用

C++ 系统原理 5年前 (2013-07-09) 浏览: 26 评论: 4

公用体在格式化中或许有着很高效而又简洁的效果。可以来看个例子: 关于4个字节转换为浮点数 但是有个问题就是必须得区分是大端或在小端处理器模式!

切换注册

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享