-
CPU调度准则(完整版)
所属栏目:[安全] 日期:2020-12-24 热度:182
不同的 CPU 调度算法具有不同属性,选择一个特定算法会对某些进程更为有利。为了选择算法以便用于特定情景,我们必须考虑各个算法的属性。 为了比较 CPU 调度算法,可以采用许多比较准则。选择哪些特征来比较,对于确定哪种算法是最好的有本质上的区别。这些[详细]
-
多级反馈队列调度算法详解
所属栏目:[安全] 日期:2020-12-24 热度:101
通常在使用多级队列调度算法时,进程进入系统时被永久地分配到某个队列。例如,如果前台和后台进程分别具有单独队列,那么进程并不从一个队列移到另一个队列,这是因为进程不会改变前台或后台的性质。这种设置的优点是调度开销低,缺点是不够灵活。 相反, 多[详细]
-
优先级调度算法及其优缺点
所属栏目:[安全] 日期:2020-12-24 热度:170
SJF?算法是通用优先级调度算法的一个特例。每个进程都有一个优先级与其关联,而具有最高优先级的进程会分配到 CPU。具有相同优先级的进程按 FCFS 顺序调度。SJF 算法是一个简单的优先级算法,其优先级(p)为下次(预测的)CPU 执行的倒数。CPU 执行越长,则[详细]
-
互斥锁的原理及作用
所属栏目:[安全] 日期:2020-12-24 热度:85
操作系统设计人员构建软件工具,以解决临界区问题,最简单的工具就是 互斥锁(mutex lock) 。我们采用互斥锁保护临界区,从而防止竞争条件。 也就是说,一个进程在进入临界区时应得到锁;它在退出临界区时释放锁。函数 acquire() 获取锁,而函数 release()[详细]
-
时间片轮转(RR)调度算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:155
时间片轮转(RR)调度算法 是专门为分时系统设计的。它类似于 FCFS调度,但是增加了抢占以切换进程。 该算法中,将一个较小时间单元定义为 时间量 或 时间片 。时间片的大小通常为 10~100ms。就绪队列作为循环队列。CPU 调度程序循环整个就绪队列,为每个进[详细]
-
Peterson算法(解决临界区问题)详解
所属栏目:[安全] 日期:2020-12-24 热度:70
本节说明一个经典的基于软件的临界区问题的解决方案,称为 Peterson 算法 。 Peterson 算法提供了解决临界区问题的一个很好的算法,并能说明满足互斥、进步、有限等待等要求的软件设计的复杂性。 Peterson算法适用于两个进程交错执行临界区与剩余区。两个进程[详细]
-
操作系统运行过程详解
所属栏目:[安全] 日期:2020-12-24 热度:188
现代通用计算机系统包括一个或多个 CPU 和若干设备控制器,通过公用总线相连而成,该总线提供了共享内存的访问(图 1 )。每个设备控制器负责一类特定的设备(如磁盘驱动器、音频设备或视频显示器)。CPU 与设备控制器可以并发执行,并且竞争访问内存。为了确[详细]
-
操作系统的运行机制(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:68
将I/O结构的时候提到,现代操作系统是中断驱动(interrupt driven)的。如果没有进程需要执行,没有 I/O 设备需要服务,而且没有用户需要响应,那么操作系统会静静地等待某个事件的发生。 事件总是由 中断 或 陷阱 引起的。 陷阱(trap,或异常(exception)[详细]
-
操作系统安全保护机制
所属栏目:[安全] 日期:2020-12-24 热度:112
如果一个计算机系统有多个用户,并且允许多个进程并发执行,那么数据访问应当加以控制。为此,可以通过机制确保只有经过操作系统授权,进程才可使用相应资源,如文件、内存、CPU 及其他资源。 例如,内存寻址硬件确保一个进程仅可在自己的地址空间内执行,定[详细]
-
操作系统的存储管理
所属栏目:[安全] 日期:2020-12-24 热度:184
为了方便计算机用户,操作系统提供信息存储的统一逻辑视图。操作系统对存储设备的物理属性进行了抽象,并定义了逻辑存储单元,即 文件(file) 。操作系统映射文件到物理媒介,并通过存储设备来访问文件。 文件系统管理 文件管理是操作系统最明显的组件之一。[详细]
-
操作系统的I/O结构
所属栏目:[安全] 日期:2020-12-24 热度:185
存储器只是众多计算机 I/O 设备中的一种。操作系统的大部分代码专门用于 I/O 管理,这是由于它对系统的可靠性和性能至关重要,也是由于不同设备具有不同特性。因此,我们首先概述一下 I/O。 每个通用计算机系统由一个 CPU 和多个设备控制器组成,它们通过共同[详细]
-
什么是进程控制块,进程控制块的作用
所属栏目:[安全] 日期:2020-12-24 热度:195
操作系统内的每个进程表示,釆用 进程控制块 (Process Control Block, PCB ),也称为 任务控制块 。 图 1 进程控制块(PCB) 每个进程控制块如图 1 所示,它包含许多与当前进程相关的信息: 进程状态:状态可以包括新的、就绪、运行、等待、停止等。 程序[详细]
-
线程池是什么,线程池及其原理
所属栏目:[安全] 日期:2020-12-24 热度:196
学习线程时,我们描述了一个多线程的 Web 服务器,每当服务器接收到一个请求时,它都会创建一个单独线程来处理请求。虽然创建一个单独线程肯定优于创建一个单独进程,但是多线程服务器仍然有些潜在的问题。 第一个问题是创建线程所需的时间多少,以及线程在完[详细]
-
进程间通信(IPC):共享内存和消息队列原理详解
所属栏目:[安全] 日期:2020-12-24 热度:126
操作系统内的并发执行进程可以是独立的也可以是协作的: 如果一个进程不能影响其他进程或受其他进程影响,那么该进程是独立的,换句话说,不与任何其他进程共享数据的进程是独立的; 如果一个进程能影响其他进程或受其他进程所影响,那么该进程是协作的。换句[详细]
-
线程是什么,线程及其特点
所属栏目:[安全] 日期:2020-12-24 热度:96
几乎所有现代操作系统都允许一个进程包含多个线程。 每个线程是 CPU 使用的一个基本单元,它包括线程 ID、程序计数器、寄存器组和堆栈。 进程与同一进程的其他线程共享代码段、数据段和其他操作系统资源,如打开文件和信号。每个传统或重量级进程只有单个控制[详细]
-
操作系统的设计和实现过程
所属栏目:[安全] 日期:2020-12-24 热度:70
本节讨论操作系统设计和实现面临的问题。虽然这些问题没有完整的解决方案,但是有些方法还是行之有效的。 设计目标 系统设计的首要问题是,定义目标和规范。从高层来说,系统设计取决于所选硬件和系统类型:批处理、分时、单用户、多用户、分布式、实时或通用[详细]
-
什么是远程过程调用(RCP),远程过程调用服务实现原理详解
所属栏目:[安全] 日期:2020-12-24 热度:118
远程过程调用 ,简称? RPC ,是一种最为常见的远程服务。RPC 对于通过网络连接系统之间的过程调用进行了抽象。它在许多方面都类似于 IPC 机制,并且通常建立在 IPC 之上。不过,因为现在的情况是进程处在不同系统上,所以应提供基于消息的通信方案,以提供远[详细]
-
什么是系统调用,系统调用的过程
所属栏目:[安全] 日期:2020-12-24 热度:94
系统调用(system call) 提供操作系统服务接口。这些调用通常以 C 或 C++ 编写,当然,对某些底层任务(如需直接访问硬件的任务),可能应以汇编语言指令编写。 在讨论操作系统如何提供系统调用之前,首先通过例子来看看如何使用系统调用:编写一个简单程序[详细]
-
有名管道(FIFO)通信机制完全攻略
所属栏目:[安全] 日期:2020-12-24 热度:77
无名管道提供了一个简单机制,允许一对进程通信。然而,只有当进程相互通信时,普通管道才存在。对于 UNIX 和 Windows 系统,一旦进程已经完成通信并且终止了,那么普通管道就不存在了。 有名管道 提供了一个更强大的通信工具。 通信可以是双向的,并且父子关[详细]
-
进程的创建和终止(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:182
大多数系统的进程能够并发执行,它们可以动态创建和删除。因此,操作系统必须提供机制,用于创建进程和终止进程。 进程创建 进程在执行过程中可能创建多个新的进程。 创建进程称为 父进程 ,而新的进程称为 子进程 。 每个新进程可以再创建其他进程,从而形成[详细]
-
系统程序及其分类
所属栏目:[安全] 日期:2020-12-24 热度:169
现代操作系统的另一特点是一组系统程序。前面说过,图1 描述了计算机的逻辑层次。最低层是硬件,接着是操作系统,然后是系统程序,最后是应用程序。 图 1 计算机系统组件的抽象视图 系统程序(system program) ,也称为 系统工具(system utility) ,为程序[详细]
-
开源操作系统的类别及其特点
所属栏目:[安全] 日期:2020-12-24 热度:149
我们说过,由于有大量的开源操作系统,操作系统的学习容易得多。 开源操作系统(open-source operating system) 具有源码,而非只有编译过的二进制码。Linux 是最为著名的开源操作系统,而 Microsoft Windows 则是一个著名的、闭源(closed source)的系统。[详细]
-
什么是操作系统
所属栏目:[安全] 日期:2020-12-24 热度:171
我们首先讨论操作系统在整个计算机系统中的作用。计算机系统可以粗分为四个组件: 硬件 、 操作系统 、 应用程序 和 用户 (图 1)。 图 1 计算机系统组件的抽象视图 硬件(hardware),如中央处理单元(Central Processing Unit,CPU)、内存(memory)、输[详细]
-
操作系统组织数据的方法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:120
下面讨论操作系统实现的一个核心问题:系统如何组织数据。本节简要讨论多个基本数据结构,它们在操作系统中用得很多。 列表、堆栈及队列 数组是个简单的数据结构,它的元素可被直接访问。例如,内存就是一个数组。如果所存的数据项大于一字节,那么可用多个字[详细]
-
进程是什么,进程和程序的区别
所属栏目:[安全] 日期:2020-12-24 热度:68
在未被 CPU 执行之前,程序做不了任何事。如前所述, 执行的程序称为 进程 。 分时系统的用户程序(如编译器)就是进程,PC 的单个用户运行的字处理程序也是进程。系统任务,如将输出发到打印机,也可以是进程(或至少是进程的一部分)。现在,进程可以作为作[详细]