-
连续分配、链接分配和索引分配详解
所属栏目:[安全] 日期:2020-12-25 热度:99
磁盘直接访问的特点在文件实现时提供了灵活性。在几乎每种情况下,很多文件都是存储在同一个磁盘上的。主要的问题是,如何为这些文件分配空间,以便有效使用磁盘空间和快速访问文件。 磁盘空间分配的主要常用方法有三个:连续分配、链接分配和索引分配。每[详细]
-
连续内存分配及其方式详解
所属栏目:[安全] 日期:2020-12-25 热度:143
内存应容纳操作系统和各种用户进程,因此应该尽可能有效地分配内存。本节介绍一种早期方法:连续内存分配。 内存通常分为两个区域:一个用于驻留操作系统,另一个用于用户进程。操作系统可以放在低内存,也可放在高内存,这取决与中断向量的位置。由于中断[详细]
-
伙伴系统和slab内存分配机制详解
所属栏目:[安全] 日期:2020-12-25 热度:106
当在用户模式下运行进程请求额外内存时,从内核维护的空闲页帧列表上分配页面。这个列表通常使用页面置换算法来填充,如前所述,它很可能包含散布在物理内存中的空闲页面。也要记住,如果用户进程请求单个字节内存,那么就会导致内部碎片,因为进程会得到[详细]
-
页面置换算法及其优缺点详解
所属栏目:[安全] 日期:2020-12-25 热度:158
本节,讨论几种页面置换算法。为此,假设有 3 个帧并且引用串为: 7,1,2,3,4,7,1 FIFO页面置换 FIFO 算法是最简单的页面置换算法。FIFO 页面置换算法为每个页面记录了调到内存的时间,当必须置换页面时会选择最旧的页面。 注意,并不需要记录调入页面的确[详细]
-
什么是内存交换
所属栏目:[安全] 日期:2020-12-25 热度:177
进程必须在内存中以便执行。不过,进程可以暂时从内存交换到备份存储,当再次执行时再调回到内存中(图 1)。交换有可能让所有进程的总的物理地址空间超过真实系统的物理地址空间,从而增加了系统的多道程序程度。 图 1 使用磁盘作为存储仓库的两个进程的[详细]
-
(移动)硬盘物理结构详解
所属栏目:[安全] 日期:2020-12-25 热度:90
由于内存通常太小而且不能永久保存所有数据和程序,因此计算机系统必须提供外存来备份内存。现代计算机系统采用磁盘(硬盘)作为信息(程序与数据)的主要在线存储介质。换句话说,硬盘或磁盘为现代计算机系统提供大量外存。 图 1 硬盘的物理结构 在概念上[详细]
-
页表结构完全攻略
所属栏目:[安全] 日期:2020-12-25 热度:141
本节我们将探讨组织页表的一些最常用技术,包括分层分页、哈希页表和倒置页表。 分层分页 大多数现代计算机系统支持大逻辑地址空间(2 32 ?2 64 )。在这种情况下,页表本身可以非常大。例如,假设具有 32 位逻辑地址空间的一个计算机系统。如果系统的页大[详细]
-
直接连接(DAS)存储、网络连接(NAS)存储和存储区域网络(SAN
所属栏目:[安全] 日期:2020-12-25 热度:77
计算机访问磁盘存储有 3 种方式: 通过 I/O 端口(或直接连接存储(又称“直连式存储”,DAS),小系统常采用这种方式; 通过分布式文件系统的远程主机,这称为网络连接存储(NAS); 存储区域网络(SAN)适用于大型客户机-服务器环境; 直接连接存储(DAS[详细]
-
什么是文件,文件(属性、操作、类型及结构)详解
所属栏目:[安全] 日期:2020-12-25 热度:196
计算机可以在各种存储介质(诸如磁盘、磁带和光盘)上存储信息。为了方便使用计算机系统,操作系统提供了信息存储的统一逻辑视图。操作系统对存储设备的物理属性加以抽象,从而定义逻辑存储单位,即文件(file)。文件由操作系统映射到物理设备上。这些存[详细]
-
内存分段机制详解
所属栏目:[安全] 日期:2020-12-25 热度:81
通过学习内存分配的方式我们知道,用户的内存视图与实际的物理内存不一样。这同样适用于程序员的内存视图。 事实上,对操作系统和程序员来说,按物理性质来处理内存是不方便的。如果硬件可以提供内存机制,以便将程序员的内存视图映射到实际的物理内存,系[详细]
-
时间片轮转(RR)调度算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:63
时间片轮转(RR)调度算法是专门为分时系统设计的。它类似于 FCFS调度,但是增加了抢占以切换进程。 该算法中,将一个较小时间单元定义为时间量或时间片。时间片的大小通常为 10~100ms。就绪队列作为循环队列。CPU 调度程序循环整个就绪队列,为每个进程分[详细]
-
Peterson算法(解决临界区问题)详解
所属栏目:[安全] 日期:2020-12-24 热度:81
本节说明一个经典的基于软件的临界区问题的解决方案,称为 Peterson 算法。 Peterson 算法提供了解决临界区问题的一个很好的算法,并能说明满足互斥、进步、有限等待等要求的软件设计的复杂性。 Peterson算法适用于两个进程交错执行临界区与剩余区。两个进[详细]
-
最短作业优先(SJF)调度算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:70
最短作业优先(SJF)调度算法将每个进程与其下次 CPU 执行的长度关联起来。当 CPU 变为空闲时,它会被赋给具有最短 CPU 执行的进程。如果两个进程具有同样长度的 CPU 执行,那么可以由 FCFS 来处理。 一个更为恰当的表示是最短下次CPU执行算法,这是因为调[详细]
-
单调速率调度(RMS)算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:79
单调速率(RMS)调度算法采用抢占的、静态优先级的策略,调度周期性任务。 当较低优先级的进程正在运行并且较高优先级的进程可以运行时,较高优先级进程将会抢占低优先级。在进入系统时,每个周期性任务会分配一个优先级,它与其周期成反比,即周期越短,[详细]
-
最早截止时间优先(EDF)算法详解
所属栏目:[安全] 日期:2020-12-24 热度:87
最早截止期限优先(EDF)调度根据截止期限动态分配优先级。截止期限越早,优先级越高;截止期限越晚,优先级越低。 根据 EDF 策略,当一个进程可运行时,它应向系统公布截止期限要求。优先级可能需要进行调整,以便反映新可运行进程的截止期限。注意单调速[详细]
-
多线程模型:一对一模型、多对一模型和多对多模型
所属栏目:[安全] 日期:2020-12-24 热度:101
迄今为止,我们只是泛泛地讨论了线程。不过,有两种不同方法来提供线程支持:用户层的用户线程或内核层的内核线程。 用户线程位于内核之上,它的管理无需内核支持;而内核线程由操作系统来直接支持与管理。几乎所有的现代操作系统,包括 Windows、Linux、M[详细]
-
信号量及其使用和实现(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:92
互斥锁,我们刚刚讨论过了,通常认为是最简单的同步工具。本节将会讨论一个更棒的工具,它的功能类似于互斥锁,但是它能提供更为高级的方法,以便进程能够同步活动。 一个信号量 S 是个整型变量,它除了初始化外只能通过两个标准原子操作:wait () 和 sign[详细]
-
临界区问题及其解决办法(抢占式内核和非抢占式内核)
所属栏目:[安全] 日期:2020-12-24 热度:199
我们从讨论所谓的临界区问题开始考虑进程同步。 假设某个系统有 n 个进程 {P 0 ,P 1 ,…,P n-1 }。每个进程有一段代码,称为临界区,进程在执行该区时可能修改公共变量、更新一个表、写一个文件等。该系统的重要特征是,当一个进程在临界区内执行时,其[详细]
-
先来先服务调度(FCFS)算法及优缺点
所属栏目:[安全] 日期:2020-12-24 热度:77
毫无疑问,最简单的 CPU 调度算法是先来先服务(FCFS)调度箅法。釆用这种方案,先请求 CPU 的进程首先分配到 CPU。 FCFS 策略可以通过 FIFO 队列容易地实现。当一个进程进入就绪队列时,它的 PCB 会被链接到队列尾部。当 CPU 空闲时,它会分配给位于队列[详细]
-
Windows线程调度策略(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:161
Windows 采用基于优先级的、抢占调度算法来调度线程。 用于处理调度的 Windows 内核部分称为调度程序,Windows 调度程序确保具有最高优先级的线程总是在运行的。由于调度程序选择运行的线程会一直运行,直到被更高优先级的线程所抢占,或终止,或时间片已[详细]
-
多级队列调度算法(含实例分析)
所属栏目:[安全] 日期:2020-12-24 热度:136
在进程容易分成不同组的情况下,可以有另一类调度算法。例如,进程通常分为前台进程(或交互进程)和后台进程(或批处理进程)。这两种类型的进程具有不同的响应时间要求,进而也有不同调度需要。另外,与后台进程相比,前台进程可能要有更高的优先级(外[详细]
-
CPU调度准则(完整版)
所属栏目:[安全] 日期:2020-12-24 热度:197
不同的 CPU 调度算法具有不同属性,选择一个特定算法会对某些进程更为有利。为了选择算法以便用于特定情景,我们必须考虑各个算法的属性。 为了比较 CPU 调度算法,可以采用许多比较准则。选择哪些特征来比较,对于确定哪种算法是最好的有本质上的区别。这[详细]
-
多级反馈队列调度算法详解
所属栏目:[安全] 日期:2020-12-24 热度:140
通常在使用多级队列调度算法时,进程进入系统时被永久地分配到某个队列。例如,如果前台和后台进程分别具有单独队列,那么进程并不从一个队列移到另一个队列,这是因为进程不会改变前台或后台的性质。这种设置的优点是调度开销低,缺点是不够灵活。 相反,[详细]
-
优先级调度算法及其优缺点
所属栏目:[安全] 日期:2020-12-24 热度:108
SJF?算法是通用优先级调度算法的一个特例。每个进程都有一个优先级与其关联,而具有最高优先级的进程会分配到 CPU。具有相同优先级的进程按 FCFS 顺序调度。SJF 算法是一个简单的优先级算法,其优先级(p)为下次(预测的)CPU 执行的倒数。CPU 执行越长,[详细]
-
互斥锁的原理及作用
所属栏目:[安全] 日期:2020-12-24 热度:52
操作系统设计人员构建软件工具,以解决临界区问题,最简单的工具就是互斥锁(mutex lock)。我们采用互斥锁保护临界区,从而防止竞争条件。 也就是说,一个进程在进入临界区时应得到锁;它在退出临界区时释放锁。函数 acquire() 获取锁,而函数 release()[详细]