操作系统的很多核心组件都是相互关联的,比如虚拟内存管理,物理内存管理,文件系统,缓存系统,IO,设备管理等等,都要放在一起来看才能从整体上理解各个模块到底是如何交互和工作的。这个系列的目的也就是从整体上来理解计算机底层硬件和操作系统的一些重要的组件是如何工作的,从而来指导应用层的开发。这篇讲讲文件系统的重要概念,为后面的IO系统做铺垫。
文件系统主要有三类
1. 位于磁盘的文件系统,在...
分类:
其他好文 时间:
2015-01-29 14:41:48
阅读次数:
245
交换 int a, int b1、最弱的方法1 void swap(int &a,int &b)2 {3 int c = a;4 a = b;5 b = c;6 }2、不用另外开辟空间的方法1 void swap(int &a,int &b)2 {3 a=a+b;4 ...
分类:
其他好文 时间:
2015-01-29 09:15:34
阅读次数:
98
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com'24: Swap Nodes in Pairshttps://oj.leetcode.com/problems/swap-nodes-in-pairs/Given a linked...
分类:
编程语言 时间:
2015-01-29 01:23:35
阅读次数:
178
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。
PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance。
GC(Garbage Coll...
分类:
编程语言 时间:
2015-01-28 21:25:16
阅读次数:
401
自己想明白的第一道博弈。首先a==b的时候肯定是先手赢;然后当a>=2*b时,不妨假设a=nb+k, k 3 #include 4 #include 5 6 void swap(int &a, int &b) { 7 int tmp = a; 8 a = b; 9 b ...
分类:
其他好文 时间:
2015-01-28 17:18:29
阅读次数:
112
最近游戏已上线运营,进行服务器内存优化,发现一个非常奇妙的问题,我们的认证服务器(AuthServer)负责跟第三方渠道SDK打交道(登陆和充值),由于采用了curl阻塞的方式,所以这里开了128个线程,奇怪的是每次刚启动的时候占用的虚拟内存在2.3G,然后每次处理消息就增加64M,增加到4.4G就不再增加了,由于我们采用预分配的方式,在线程内部根本没有大块分内存,那么这些内存到底是从哪来的呢?让人百思不得其解。...
分类:
编程语言 时间:
2015-01-27 21:57:26
阅读次数:
427
netty的buffer引入了缓冲池。该缓冲池实现使用了jemalloc的思想。为了看懂这块代码学写了内容分配的知识。这里讲的内存分配是堆的内存分配,其他内容本文不会涉及。内存分配是面向虚拟内存的而言的,以页为单位进行管理的,页的大小一般为4kb,当在堆里创建一个对象时(小于4kb),会分配一个页,...
分类:
其他好文 时间:
2015-01-27 21:39:38
阅读次数:
227
描述:给我一个字符串,例如I love java,输出: java love I方法一 1 public class StringReverse { 2 3 public void swap(char[] arr, int begin, int end) { 4 w...
分类:
编程语言 时间:
2015-01-27 17:47:13
阅读次数:
232
摘要:Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;本文旨在探讨内核空间的...
分类:
系统相关 时间:
2015-01-27 11:02:33
阅读次数:
335
/*
选择排序:就是选一个最小(或最大)排在左边或者右边
*/
//头文件 sort.h
#include
void Print(int* arr,int len)
{
int i;
for(i=0;i<len;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
void Swap(int* a,int* b)
{
*a=...
分类:
编程语言 时间:
2015-01-26 22:46:46
阅读次数:
150