书栈网 · BookStack 本次搜索耗时 0.014 秒,为您找到 178 个相关结果.
  • 以页为单位管理物理内存

    以页为单位管理物理内存 以页为单位管理物理内存 在获得可用物理内存范围后,系统需要建立相应的数据结构来管理以物理页(按4KB对齐,且大小为4KB的物理内存单元)为最小单位的整个物理内存,以配合后续涉及的分页管理机制。每个物理页可以用一个Page数据结构来表示。由于一个物理页需要占用一个Page结构的空间,Page结构在设计时须尽可能小,以减少对内存的...
  • 系统调用实现

    系统调用实现 初始化系统调用对应的中断描述符 建立系统调用的用户库准备 与用户进程相关的系统调用 系统调用的执行过程 系统调用实现 系统调用的英文名字是System Call。操作系统为什么需要实现系统调用呢?其实这是实现了用户进程后,自然引申出来需要实现的操作系统功能。用户进程只能在操作系统给它圈定好的“用户环境”中执行,但“用户环境”限制...
  • 原理: 虚拟内存管理

    【原理】虚拟内存管理 【原理】虚拟内存管理 什么是虚拟内存?简单地说,是指程序员或CPU “需要”和直接“看到”的内存,这其实暗示了两点:1、虚拟内存单元不一定有实际的物理内存单元对应,即实际的物理内存单元可能不存在;2、如果虚拟内存单元对应有实际的物理内存单元,那二者的地址一般不是相等的。通过操作系统的某种内存管理和映射技术可建立虚拟内存与实际的物...
  • hurlex — x86架构的内核Demo实现

    hurlex — x86架构的内核Demo实现 hurlex — x86架构的内核Demo实现 2014-09-05 posted in [hurlex开发文档 ] 本科操作系统课程纯粹的理论学习始终给我一种漂浮在云中的感觉。为了能在实践中深刻理解操作系统的运行机制和x86CPU以及硬件原理,我决定自己动手写一个操作系统内核的Demo程序。 当然...
  • 原理: 进程的属性与特征解析

    【原理】进程的属性与特征解析 指令执行安全管理 资源管理 状态管理 系统调用 进程与线程 【原理】进程的属性与特征解析 为了让多个程序能够使用CPU执行任务,我们需要设计进程控制块,需要进一步管理进程。但到底如何设计进程控制块,如何管理进程?如果我们对进程的属性和特征了解不够,则无法有效地设计进程控制块和实现进程管理。 再一次回到进程的定...
  • 内存

    内存 x86的内存管理 内存 内存是用于存放代码和数据地址的硬件,访问速度快,空间大。为高效定位代码和数据的位置,需要建立内存地址,即访问内存空间的索引。一般而言,内存地址有两个:一个是CPU通过总线访问物理内存用到的物理地址,一个是我们编写的应用程序所用到的逻辑地址(也有人称为虚拟地址)。比如如下C代码片段: int boo = 1 ; ...
  • 实现:实模式到保护模式的切换

    【实现】实模式到保护模式的切换 【实现】实模式到保护模式的切换 BIOS把bootloader从硬盘(即是我们刚才生成的ucore.img)的第一个扇区(即是我们刚才生成的bootblock)读出来并拷贝到内存一个特定的地址0x7c00处,然后BIOS会跳转到那个地址((即CS=0,EIP=0x7c00))继续执行。至此BIOS的初始化工作做完了,进...
  • 等待队列设计与实现

    等待队列设计与实现 数据结构描述 等待队列相关操作函数 初始化 执行等待 执行唤醒 等待队列设计与实现 为了支持用户进程完成特定事件的等待和唤醒操作,ucore设计了等待队列,从而使得用户进程可以方便地实现由于某事件没有完成而睡眠,并且在事件完成后被唤醒的整个操作过程。 其基本设计思想是:当一个进程由于某个事件没有产生而需要在某个睡眠等待...
  • 打开文件

    打开文件 打开文件 有了上述分析后,我们可以看看如果一个用户进程打开文件会做哪些事情?首先假定用户进程需要打开的文件已经存在在硬盘上。以user/sfs_filetest1.c为例,首先用户进程会调用在main函数中的如下语句: int fd1 = safe_open ( "sfs\_filetest1" , O_RDONLY ); ...
  • 附录 A:【原理】用户进程的特征

    附录 A:【原理】用户进程的特征 从内核线程到用户进程 让用户进程正常运行的用户环境 用户态进程的执行过程分析 用户进程的运行状态分析 附录 A:【原理】用户进程的特征 从内核线程到用户进程 在实验四中设计实现了进程控制块,并实现了内核线程的创建和简单的调度执行。但实验四中没有在用户态执行用户进程的管理机制,既无法体现用户进程的地址空间,...