Linux进程调度策略(CFS调度)详解

Linux 进程调度有一个有趣历史。在 2.5 版本之前,Linux 内核采用传统 UNIX 调度算法。然而,由于这个算法并没有考虑 SMP 系统,因此它并不足够支持 SMP 系统。此外,当有大量的可运行进程时,系统性能表现欠佳。

Peterson算法(解决临界区问题)详解

本节说明一个经典的基于软件的临界区问题的解决方案,称为 Peterson 算法。

RAID技术详解

磁盘驱动器继续变得更小更便宜,如今在一台计算机系统上连接许多磁盘从经济上来说已经可行了。一个系统拥有大量磁盘,就有机会改善数据的读写速率,因为磁盘操作可以并行进行。此外,这种设置提供能力,以提高数据存储的可靠性,因为冗佘信息可以存储在多 个磁盘上。因此,单个磁盘的故障不会导致数据丢失。 多种磁盘组织技术统称为磁盘冗余阵列(RAID)技术,通常用于处理性能与可靠性问题。过去,RAID 是由小且便宜的磁盘组成,可作为大且昂贵的磁盘的有效替代品。现在,RAID 的使用主要是因为高可靠性和高数据传输率,而不是经济原因。因此,RAID 中的 I 表示“独立”(independent)而不是“廉价”(inexpensive)。

Windows线程调度策略(超详细)

Windows 采用基于优先级的、抢占调度算法来调度线程。 用于处理调度的 Windows 内核部分称为调度程序,Windows 调度程序确保具有最高优先级的线程总是在运行的。由于调度程序选择运行的线程会一直运行,直到被更高优先级的线程所抢占,或终止,或时间片已到,或调用阻塞系统调用(如 I/O)。如果在低优先级线程运行时,更高优先级的实时线程变成就绪,那么低优先级线程就被抢占。这种抢占使得实时线程在需要使用 CPU 时优先得到使用。

临界区问题及其解决办法(抢占式内核和非抢占式内核)

我们从讨论所谓的临界区问题开始考虑进程同步。 假设某个系统有 n 个进程 {P0,P1,…,Pn-1}。每个进程有一段代码,称为临界区,进程在执行该区时可能修改公共变量、更新一个表、写一个文件等。该系统的重要特征是,当一个进程在临界区内执行时,其他进程不允许在它们的临界区内执行。也就是说,没有两个进程可以在它们的临界区内同时执行。

互斥锁的原理及作用

操作系统设计人员构建软件工具,以解决临界区问题,最简单的工具就是互斥锁(mutex lock)。我们采用互斥锁保护临界区,从而防止竞争条件。 也就是说,一个进程在进入临界区时应得到锁;它在退出临界区时释放锁。函数 acquire() 获取锁,而函数 release() 释放锁,见图 1 。

什么是CPU调度,CPU调度完全攻略

CPU调度是多道程序操作系统的基础。通过在进程间切换 CPU,操作系统可以使得计算机更加高效。 对于单处理器系统,同一时间只有一个进程可以运行;其他进程都应等待,直到 CPU 空闲并可调度为止。多道程序的目标是,始终允许某个进程运行以最大化 CPU 利用率。

什么是内存

《操作系统的存储结构》一文讲过,内存是现代计算机系统执行的中心。内存是一个大的字节数组,大小从数十万到数十亿。每个字节都有地址。内存是个快速访问的数据仓库,并为 CPU 和 I/O 设备所共享。中央处理器在获取指令周期时从内存中读取指令,而在获取数据周期时对内存数据进行读写(在冯•诺依曼架构上)。

什么是内存交换

进程必须在内存中以便执行。不过,进程可以暂时从内存交换到备份存储,当再次执行时再调回到内存中(图 1)。交换有可能让所有进程的总的物理地址空间超过真实系统的物理地址空间,从而增加了系统的多道程序程度。 图 1 使用磁盘作为存储仓库的两个进程的交换标准交换 标准交换在内存与备份存储之间移动进程,备份存储通常是快速磁盘,它应足够大,以容纳所有用户的所有内存映像的副本,并且它应提供对这些存储器映像的直接访问。

什么是多核,并行和并发的区别

在计算机设计早期,为了响应更多计算性能的需要,单处理器系统发展成为多处理器系统。更现代的、类似的系统设计趋势是将多个计算核放到单个芯片。无论多个计算核是在多个CPU芯片上还是在单个 CPU 芯片上,我们称之为多核或多处理器系统。