最近重新开始啃CSAPP了,和着英文版一起看会不会更好了解一点?
之前始终不能理解“上下文”,现在查了点资料算是个汇总吧。
上下文(context concatenate-text 直接翻译为联系文本)。一个CPU并发执行多个进程的时候是通过处理器在进程间的切换来实现。操作系统保持跟踪进程运行的所需的所有状态信息,这种状态就是上下文,包括许多信息,例如PC和寄存器文件的当前值,以及主存的内容。当操作系统决定要把控制权从当前进程转移到某个新进程就会进行上下文切换,及保存当前进程的上下文、恢复新进程的上下文,是一种“保护现场”的操作。当控制权转移回之前的进程时,能够以之前的状态继续执行,此即恢复上下文操作。
简而言之,上下文(context)即是环境的snapshot.
相对的在一个程序中,每一段程序都有很多外部变量。一旦一段程序有了外部变量,这段程序就不完整,不能独立运行。为了使他们运行,就要给所有的外部变量写一些值进去。这些值的集合就叫上下文。譬如说在C++的lambda表达是里面,[写在这里的就是上下文](int a, int b){ ... }。
网友评论