操作系统
文章平均质量分 55
swffsdgasdg
dfgdfsgdgsagvxzvzxvxcqwrwrwerza
展开
-
大端序和小端序
大端序和小端序 一般Intel处理器或者X86平台都是小端序 ,只有老一点的摩托罗拉处理器会用大端序,所以重点掌握一下小端序。 小端序一般指低地址存低字节,高地址存高字节。。。简称 “低低高高”举个C语言的例子:#includeunion u{ int i; char j[2];}a;void main(){ a.j[原创 2014-10-16 20:39:04 · 938 阅读 · 0 评论 -
信号量基础和两个经典例子
信号量基础和两个经典例子信号量(semaphore) 用于进程中传递信号的一个整数值。三个操作:1、一个信号量可以初始化为非负值2、semWait操作可以使信号量减1,若信号量的值为负,则执行semWait的进程被阻塞。否则进程继续执行。3、semSignal操作使信号量加1。若信号量的值小于等于0,则被semWait操作阻塞的进程讲被接触阻塞。ps: semWait对应P原语,semSignal对应V原语。信号量以及PV原语的C语言定义如下原创 2014-10-05 15:11:45 · 11192 阅读 · 1 评论 -
C#多线程编程基础
C#多线程编程基础 使用线程有几个原因。假设从应用程序中进行网络调用需要一定的时间。用户不希望分割用户界,并且让用户一直等待直到从服务器返回一个响应为止。用户可以同时执行其他一些操作,或者甚至取消发送给服务器的请求。这些都可以使用线程来实现。 对于所有需要等待的操作,例如,因为文件、数据库或网络访问都需要一定的时间,此时就可以启动一个新线程,同时完成其他任务。即使是处理密集型的任务,线程也是有帮助的。一个进程的多个线程可以同时运行在不同的CPU上,或多核CPU的不同内原创 2014-09-18 20:55:29 · 1240 阅读 · 0 评论 -
malloc和free是怎么工作的。
free一般不会把内存还给系统(只会发生在一些很罕见的情况下)第一个原因是这是在你的堆中产生很多碎片,这样在你申请完2G或者4G的虚拟内存后产生很多内存碎片。第二个原因是操作系统一般只能处理那些固定大小或者是对齐的内存块,比如4KB,例如你申请了一个堆之后,再申请一个堆,删除前面一个堆,这样就会产生内存碎片。free函数将会把内存块放回自原创 2015-04-24 23:40:44 · 1145 阅读 · 0 评论