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