摘要:Multilevel Page Tables多级页表 回想一下上面显示的数据段和堆栈段相互增长的图表。通常,堆栈包含在每个过程中定义的局部变量。它们在过程被调用时产生,在过程返回时消失。数据段包含了不具有如此容易定义的生存期的变量的空间。在C语言中,malloc()使用数据段,free()释放数据段
阅读全文
摘要:4.3 Virtual Memory(meaning Fetch on Demand)虚拟内存(按需获取) 其思想是允许程序即使只有其活动的地址空间不问保留在内存中它也可以运行,也就是说换入和换出的一部分程序,即使程序的某些部分(也许是大部分)不在内存中,该程序也可以运行。 粗略的说,这可以称之为自
阅读全文
摘要:Paging 分页 分页是最简单的移除由他引起的连续的物理内存请求和潜在的大量外部碎片的一种方案。 程序被按逻辑的切分为固定大小的块称之为virtual pages(虚拟页面),这种分块对用户是不可见的; 这种对虚拟内存空间的划分被展示在下方中间的图片中; 物理内存类似的被划分为固定大小的块并称之为
阅读全文
摘要:4.2 A Memory Abstraction: Address Spaces内存抽象:地址空间 4.2.1 The Notion of an Address Space地址空间的概念 正如进程概念创建了一种抽象的CPU来运行程序(每个进程都被认为是唯一在运行的进程),地址空间创建了一种抽象的内存
阅读全文
摘要:4 Memory Management内存管理 通常也称之为存储管理(storage management)或空间管理(space management)。 内存管理器必须处理现代计算机中的具有层次性的存储结构。该层次结构由寄存器(最高级别)、缓存、中央内存、磁盘组成。当我们移动到较低的层次时,内存
阅读全文
摘要:3.5.1 The Banker's Algorithm (Dijkstra) for a Single Resource单类资源的银行家算法 这个算法很简单:保持安全状态!现在我们假设,在开始执行之前,所有的进程已经开始并且声明了它所需要的所有资源。更详细的说,银行家算法的具体流程如下: 执行前需
阅读全文
摘要:3.4 Deadlock Prevention死锁预防 破坏Coffman/Havender的四个条件中的任意一个。 3.4.1 Attacking the Mutual Exclusion Condition破坏互斥条件 假设一个资源并不会被一个进程独占,那么就根本不会存在死锁的产生,但是两个进程
阅读全文
摘要:3.2 Ignoring the Problem—The Ostrich Algorithm忽略死锁之鸵鸟算法 俗称摆烂,就是不管,把头埋进沙子里。 如果进程发生死锁可能性足够小,并且为了避免死锁会付出很大的代价,那么忽略这个问题可能会更好。例如,如果一个PC操作系统每10年死锁一次,那么一次重启可
阅读全文
摘要:3 DeadLocks 注意:死锁与进程/线程管理密切相关,因此我们把它放在这里,在第2章之后。课程的目标是确保在一个学期内掌握基本知识,我知道我们会讲前6章,所以我们没有必要推迟对死锁的研究。 Definition: A deadlock occurs when every member of a
阅读全文
摘要:2.5 Classical IPC Problems经典IPC问题 2.5.1 The Producer-Consumer(or Bounded Buffer)Problem / 2.5.2 The Dining Philosophers Problem哲学家进餐问题 这是迪杰斯特拉的一个经典问题,
阅读全文
摘要:2.4.4 Sleep and Weakup睡眠与唤醒 注意:Tanenbaum提出了忙碌等待(如上所述)和阻塞(进程切换)两种解决方案。我们只研究忙碌等待的解决方案,它更容易实现阻塞解决方案。Sleep和Wakeup是最简单的阻塞原语。休眠自动阻塞进程,而唤醒则解除阻塞休眠进程。然而,睡眠和唤醒是
阅读全文
摘要:2.4 Interprocess Communication (IPC) and Coordination/Synchronization 2.4.1 Race Conditions竞争条件 满足以下全部条件时产生竞争条件: a. 两个进程(或线程)A和B各自将要执行一些(可能不同的)操作; b.
阅读全文
摘要:Selfish RR(SRR, **, SRR, **)自私的时间片轮转 SRR是一种抢占式调度策略,在这种策略中,非阻塞(即就绪和运行)进程被分为两个类:被接受的进程-使用RR调度;其他的进程-在被接受之前不会运行。(也许SRR应该代表自私的RR)。 被接受的 RR +a priority 不被接
阅读全文
摘要:2.3.2 Scheduling in Interactive System交互式系统的进程调度 以下算法也可以用于批处理系统,但在这种情况下,使用这些调度算法带来的增益可能无法抵消其带来的额外复杂性。 Round Robin(RR, RR, RR, RR)时间片轮转调度算法 轮循是一种重要的抢占式
阅读全文