进程就是操作系统中执行的一个程序,操作系统以进程为单位分配存储空间,每个进程都有自己的地址空间、数据栈以及其他用于跟踪进程执行的辅助数据,操作系统管理所有进程的执行,为它们合理的分配资源。进程可以通过fork或spawn的方式来创建新的进程来执行其他的任务,不过新的进程也有自己独立的内存空间,因此必 ...
分类:
编程语言 时间:
2020-05-18 12:25:29
阅读次数:
61
写在前面:缓存IO又称为标准IO,大多数文件系统的默认IO操作都是缓存IO。在LINUX的缓存IO机制中,操作系统会将IO的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先拷贝到操作系统内核的缓冲区中,然后才会从操作系统的内核缓冲区拷贝到应用程序的地址空间。 网络IO的本质是 ...
分类:
其他好文 时间:
2020-05-16 00:51:58
阅读次数:
82
续更... 学习视频:https://www.bilibili.com/video/BV1iW411d7hd?p=2 学习书本:《深入理解计算机系统》第3版。 信息存储:8位=1字节;内存所有可能地址集合称为“虚拟地址空间”;每个程序对象可以视为一个“字节快”,程序本身是一个字节序列。 进制转换:十 ...
分类:
其他好文 时间:
2020-05-14 22:15:23
阅读次数:
82
“学习的路上没有捷径,我是这样认为的...” 定义:确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。 所以需要隐藏构造方法。 属于创建型模式【有待查阅】 单例模式有点: 1. 内存中只有一个实例,减少内存开销 2. 避免对资源的多重占用 【不是很理解】 3. 严格控制访问 单例模式的 ...
分类:
其他好文 时间:
2020-05-14 01:11:09
阅读次数:
55
1.多进程和多线程实现并发编程各自的优劣势是什么? 切换成本不一样,多进程的优势是一个进程挂了不会影响其他的进程,因为内存地址不一样,劣势是独立的地址空间通信比较复杂,一般使用socket编程,而多线程直接在内存中通信 2.协程为什么能实现更高的并发? 切换速度快,进程和线程上下文切换需要进入内核态 ...
分类:
其他好文 时间:
2020-05-13 23:02:06
阅读次数:
107
本文转自:https://blog.csdn.net/gfgdsg/article/details/42709943 借花献佛,以留后用 Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通过每个进程上的页表(在每 ...
分类:
系统相关 时间:
2020-05-13 16:32:43
阅读次数:
75
逻辑地址和虚拟地址 逻辑地址 ?逻辑地址:又称相对地址,即用户编程所使用的地址空间 ?逻辑地址从0开始编号,有两种形式: ?一维逻辑地址(地址) ?二维逻辑地址(段号:段内地址) 段式程序设计 ?把一个程序设计成多个段 ?代码段、数据段、堆栈段、等等 ?用户可以自己应用段覆盖技术扩充内存空间使用量 ...
分类:
其他好文 时间:
2020-05-10 19:12:45
阅读次数:
65
这次体验一种新的博客风格,我们长话短说,针针见“血”。 备马 在深入 Service Worker 之前,我们需要快速回顾如下基础。 诞生之初,JavaScript 是单线程的。 进程有私有的虚拟地址空间、代码、数据和其它系统资源,进程申请创建和使用的系统资源会随其终止而销毁。线程运行在进程之中,系 ...
分类:
Web程序 时间:
2020-05-09 18:36:28
阅读次数:
68
线程概念 进程: 进程有独立的地址空间 Linux为每个进程创建task_structt 每个进程都参与内核调度,互不影响 线程: 进程在切换时系统开销大 很多操作系统引入轻量级进程LWP 同一进程中的线程共享相同地址空间 linux不区分进程、线程 线程资源 共享资源 可执行的命令 静态数据 进程 ...
分类:
编程语言 时间:
2020-05-08 16:35:48
阅读次数:
84
早期的内存分配机制 在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。 那当程序同时运行多个程序时,操作系统是如何为这些 ...
分类:
系统相关 时间:
2020-05-06 18:19:22
阅读次数:
115