操作系统
Alan_Xiang
在读学生
展开
-
进程间切换与线程间切换的区别
进程切换分两步1.切换页目录以使用新的地址空间2.切换内核栈和硬件上下文。对于linux来说,线程和进程的最大区别就在于地址空间。对于线程切换,第1步是不需要做的,第2是进程和线程切换都要做的。所以明显是进程切换代价大线程上下文切换和进程上下文切换一个最主要的区别是线程的切换虚拟内存空间依然是相同的,但是进程切换是不同的。这两种上下文切换的处理都是通过操作系统内核来完成的。内核的这种切换过程伴随的转载 2017-10-10 19:44:01 · 7444 阅读 · 0 评论 -
Docker和虚拟机的区别
这是docker官网的图,可以看到虚拟化技术通过Hypervisor(虚拟机管理系统)为每个app启动一个Guest OS(客户机操作系统),也就是为每个app启动一个虚拟机。比较直观地说,vm通过Hypervisor对硬件资源进行虚拟化,而docker直接使用硬件资源,利用率上来看docker明显更具有优势。 上一组从知乎上看到的图: 可以看到,容器隔离的粒度更加小一点,而且多原创 2017-12-01 11:51:56 · 36734 阅读 · 1 评论 -
Linux 的硬链接与软链接
Linux 的文件与目录现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用。在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件,而 Linux 保持了这一特性。为了便于文件的管理,L转载 2018-03-19 16:35:27 · 574 阅读 · 0 评论 -
虚拟内存,虚拟内存地址,物理内存,物理内存地址
在解释第一个问题之前,先说明一下计算机内存管理的中的四个名词:虚拟内存,虚拟内存地址,物理内存,物理内存地址。先说说为什么会有虚拟内存和物理内存的区别。正在运行的一个进程,他所需的内存是有可能大于内存条容量之和的,比如你的内存条是256M,你的程序却要创建一个2G的数据区,那么不是所有数据都能一起加载到内存(物理内存)中,势必有一部分数据要放到其他介质中(比如硬盘),待进程需要访问那部分数据时,在转载 2018-04-02 17:43:49 · 5402 阅读 · 0 评论