某储备粮的“学习笔记”

by 咳嗽di小鱼

Master Theorem

T(n) = a * T(n / b) + f(n)
x    = log_b(a)
T(n) = θ(n^x)          if f(n) = O(n^(x-ε))
       θ(n^x * lg(n))  if f(n) = θ(n^x)
       θ(f(n))         if f(n) = Ω(n^(x+ε)) 
                          and a * f(n/b) <= c * f(n)

Greedy

  • At each step, make the "best" next choice.
  • Never backtrack or change past choices.
  • Never look ahead to see if this choice has negative consequences.

Read more...


前段时间收了个二手的MacBook, 升级到8G内存以后, 所有东西都很给力, 但原来的硬盘只有160G. 从同学那拿了个500G的硬盘, 准备换上.

主分区的迁移很容易, Mac OS X的磁盘工具是神器, 主分区直接恢复到新硬盘的对应分区即可. 但原机主已经装好了Lion(不知道是不是正版), Lion中增加了一个隐藏分区, 可以在系统崩溃的时候作为恢复分区. 所以希望能把隐藏分区完美移植到新硬盘上, 又保留原先Mac分区的数据, 只是扩大容量.

搜索了很多地方, 国内的各大论坛貌似都没有人研究过移植Lion恢复分区的问题, 最后还是在一个英文博客上找到了可行的方法. 翻译整理一下记录在这里, 方便碰到类似问题的朋友. 因为我自己操作的时候并没有截图, 所以直接使用原英文博客上的数据了.

Read more...


不同系统, 配置文件的位置不太一样.

Windows在
%USERPROFILE%\Local Settings\Application Data\Google\Chrome\User Data

Mac OS X在
~/Library/Application Support/Google/Chrome/

Linux在
$HOME/?.config/google-chrome

用编辑器打开Local State这个文件, 找到以下两行

"last_known_googleurl": "http://www.google.***/",
"last_prompted_google
url": "http://www.google.***/",

将它们改为:

"last_known_googleurl": "http://www.google.com/",
"last_prompted_google
url": "http://www.google.com/",

打开Chrome以后随便搜索个东西...他会提示你正在使用google.com, 要不要更换到google.***|.
选择继续使用, 大功告成! 嘿嘿


这次Assignment除了Physical Memory Management, 其他几个部分都相互关联. 所以在设计完成前几部分的时候, 最好将所有需要解决的问题都搞明白, 然后统一设计Address Space的结构.

TLB Management

和TLB有关的, 需要解决的问题有这么几个:

  1. Context Switch的时候, 如果不是两个不同的thread, 则不需要flush TLB
  2. 当TLB被占满的时候, 要替换最老的TLB entry
  3. TLB内保存read-only信息

然后一个一个说…

  1. 只要检查上一次flush TLB时候的thread, 和现在的是不是同一个thread即可
  2. 这部分这次Assignment已经把code写好大半了…`你需要做的就是把tlb_get_rr_victim return回来的那个entry替换掉
  3. 理解MIPS TLB的每个flag bits的用处, 然后把read-only flag放在对应的位置.
    当程序试图写入一个read-only的memory时候, vm_fault拿到的faulttype是VM_FAULT_READONLY.
    Don't PANIC!!!

TLB基本就这么多= =||`没啥东西…

Read more...


Db2=>CONNECT TO db_name 
Db2=>EXPORT TO absolute_file_path OF DEL SELECT * FROM "table_name"
Db2=>IMPORT FROM absolute_file_path OF DEL INSERT_UPDATE INTO "table_name"