存储管理 国防科大操作系统课件.ppt

进程页面必定属于某个vm_area_struct结构,但是属于vm_area_struct结构的页面不一定在页表中有数据项 2. 进程空间的相关系统调用 exec调用会抛弃原来的地址空间并根据可执行文件内容生成相应的新的地址空间。 fork系统调用,通常情况下: (1)子进程会拷贝一份父进程的地址空间,包括父进程的vm_area_struct结构以及页目录、页表均会被拷贝 (2)写时拷贝(COPY ON WRITE) 父进程页表项所标识的有效物理页帧并不会立即拷贝,而是为子进程和父进程共享,即父进程和子进程的同一页表项指向同一个物理页帧,并且页表项的相应标志位均标记位“只读”, 写入该页帧时就会引发页面异常进一步处理。 好处是:(1)节省了开销, (2) 懒惰策略,分散式复制的效果相比起一次性集中复制即时响应效果更好。 系统调用brk()用来改变堆的大小,增大进程空间。 exit()结束进程并销毁进程空间。 mmap()创建文件的内存映象,扩展进程空间,而munmap()行为与之相反。 shmat()创建一个共享内存区而shmdt()则释放共享内存区. 三、 页面异常的处理 导致页面异常的原因有: (1)编程错误 可分为内核程序错误和用户 程序错误。 (2)操作系统故意引发的异常 操作系统合理利用硬件机制在适当时间触发异常, 使得该

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档