- 虚拟内存技术
每个进程看到自己独占一部分空间,但其实所有进程是共享一个物理内存,进程创建的时候,内核为建立了虚拟内存的布局,初始化进程控制表中相关的链表,但没有立刻拷贝对应数据和代码到当前位置,就是在进程运行时要分配动态内存时,分配虚拟内存,只有访问此数据时,发生缺页异常,才会立刻拷贝数据。
- 好处:
- 扩大地址空间
- 公平内存空间
- 内存保护:各自进程有各自独立的虚拟内存地址空间,虚存会对特定的地址提供写保护
- 通信时,可用虚拟共享
- 节省空间,不同进程使用相同代码时,可以映射同一个代码,不需要拷贝多个
- 适合多道程序设计
- 需要连续空间时,实际物理内存空间可以不连续
- 代价:
- 需要建立多个数据结构
- 地址转换要耗时
- 页面切换需要磁盘io
- 数据少时比较浪费内存
进程
所有等待态的当条件满足立刻进入就绪态
PCB -》数据结构 进程控制块
存进程的状态放入队
用数组管理所有的pcb
-
就绪
-
运行
-
堵塞 等待io/事件
程序控制cpu,整个系统下一个执行什么完全由cpu控制
操作系统通过时钟中断,控制不让程序继续运行
进入等待态系统程序需要系统调用
软硬件协同设计
内核启动shell在启动其他的线条
双击图表告诉资源管理器就是shell
windows 父进程子进程毫无瓜葛 -
消息传递
- 堵塞系统调用
- 非阻塞系统调用
每个进程都有自己的独立地址空间都是从0开始的都是虚拟地址
待更新-------------------------------------------------
来源:CSDN
作者:键盘里敲打出的巨人
链接:https://blog.csdn.net/ClonH/article/details/104693416