-
优先级调度算法及其优缺点
所属栏目:[安全] 日期:2020-12-24 热度:93
SJF?算法是通用优先级调度算法的一个特例。每个进程都有一个优先级与其关联,而具有最高优先级的进程会分配到 CPU。具有相同优先级的进程按 FCFS 顺序调度。SJF 算法是一个简单的优先级算法,其优先级(p)为下次(预测的)CPU 执行的倒数。CPU 执行越长,则[详细]
-
多线程模型:一对一模型、多对一模型和多对多模型
所属栏目:[安全] 日期:2020-12-24 热度:161
迄今为止,我们只是泛泛地讨论了线程。不过,有两种不同方法来提供线程支持: 用户层的用户线程 或 内核层的内核线程 。 用户线程位于内核之上,它的管理无需内核支持;而内核线程由操作系统来直接支持与管理。几乎所有的现代操作系统,包括 Windows、Linux、[详细]
-
信号量及其使用和实现(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:191
互斥锁,我们刚刚讨论过了,通常认为是最简单的同步工具。本节将会讨论一个更棒的工具,它的功能类似于互斥锁,但是它能提供更为高级的方法,以便进程能够同步活动。 一个信号量 S 是个整型变量,它除了初始化外只能通过两个标准原子操作:wait () 和 signal([详细]
-
临界区问题及其解决办法(抢占式内核和非抢占式内核)
所属栏目:[安全] 日期:2020-12-24 热度:173
我们从讨论所谓的临界区问题开始考虑进程同步。 假设某个系统有 n 个进程 {P 0 ,P 1 ,…,P n-1 }。每个进程有一段代码,称为临界区,进程在执行该区时可能修改公共变量、更新一个表、写一个文件等。该系统的重要特征是,当一个进程在临界区内执行时,其他[详细]
-
先来先服务调度(FCFS)算法及优缺点
所属栏目:[安全] 日期:2020-12-24 热度:107
毫无疑问,最简单的 CPU 调度算法是 先来先服务(FCFS)调度箅法 。釆用这种方案,先请求 CPU 的进程首先分配到 CPU。 FCFS 策略可以通过 FIFO 队列容易地实现。当一个进程进入就绪队列时,它的 PCB 会被链接到队列尾部。当 CPU 空闲时,它会分配给位于队列头[详细]
-
Windows线程调度策略(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:110
Windows 采用基于优先级的、抢占调度算法来调度线程。 用于处理调度的 Windows 内核部分称为 调度程序 ,Windows 调度程序确保具有最高优先级的线程总是在运行的。由于调度程序选择运行的线程会一直运行,直到被更高优先级的线程所抢占,或终止,或时间片已到[详细]
-
什么是进程控制块,进程控制块的作用
所属栏目:[安全] 日期:2020-12-24 热度:160
操作系统内的每个进程表示,釆用 进程控制块 (Process Control Block, PCB ),也称为 任务控制块 。 图 1 进程控制块(PCB) 每个进程控制块如图 1 所示,它包含许多与当前进程相关的信息: 进程状态:状态可以包括新的、就绪、运行、等待、停止等。 程序[详细]
-
线程池是什么,线程池及其原理
所属栏目:[安全] 日期:2020-12-24 热度:94
学习线程时,我们描述了一个多线程的 Web 服务器,每当服务器接收到一个请求时,它都会创建一个单独线程来处理请求。虽然创建一个单独线程肯定优于创建一个单独进程,但是多线程服务器仍然有些潜在的问题。 第一个问题是创建线程所需的时间多少,以及线程在完[详细]
-
进程间通信(IPC):共享内存和消息队列原理详解
所属栏目:[安全] 日期:2020-12-24 热度:172
操作系统内的并发执行进程可以是独立的也可以是协作的: 如果一个进程不能影响其他进程或受其他进程影响,那么该进程是独立的,换句话说,不与任何其他进程共享数据的进程是独立的; 如果一个进程能影响其他进程或受其他进程所影响,那么该进程是协作的。换句[详细]
-
线程是什么,线程及其特点
所属栏目:[安全] 日期:2020-12-24 热度:107
几乎所有现代操作系统都允许一个进程包含多个线程。 每个线程是 CPU 使用的一个基本单元,它包括线程 ID、程序计数器、寄存器组和堆栈。 进程与同一进程的其他线程共享代码段、数据段和其他操作系统资源,如打开文件和信号。每个传统或重量级进程只有单个控制[详细]
-
操作系统的设计和实现过程
所属栏目:[安全] 日期:2020-12-24 热度:178
本节讨论操作系统设计和实现面临的问题。虽然这些问题没有完整的解决方案,但是有些方法还是行之有效的。 设计目标 系统设计的首要问题是,定义目标和规范。从高层来说,系统设计取决于所选硬件和系统类型:批处理、分时、单用户、多用户、分布式、实时或通用[详细]
-
什么是远程过程调用(RCP),远程过程调用服务实现原理详解
所属栏目:[安全] 日期:2020-12-24 热度:157
远程过程调用 ,简称? RPC ,是一种最为常见的远程服务。RPC 对于通过网络连接系统之间的过程调用进行了抽象。它在许多方面都类似于 IPC 机制,并且通常建立在 IPC 之上。不过,因为现在的情况是进程处在不同系统上,所以应提供基于消息的通信方案,以提供远[详细]
-
什么是系统调用,系统调用的过程
所属栏目:[安全] 日期:2020-12-24 热度:112
系统调用(system call) 提供操作系统服务接口。这些调用通常以 C 或 C++ 编写,当然,对某些底层任务(如需直接访问硬件的任务),可能应以汇编语言指令编写。 在讨论操作系统如何提供系统调用之前,首先通过例子来看看如何使用系统调用:编写一个简单程序[详细]
-
有名管道(FIFO)通信机制完全攻略
所属栏目:[安全] 日期:2020-12-24 热度:162
无名管道提供了一个简单机制,允许一对进程通信。然而,只有当进程相互通信时,普通管道才存在。对于 UNIX 和 Windows 系统,一旦进程已经完成通信并且终止了,那么普通管道就不存在了。 有名管道 提供了一个更强大的通信工具。 通信可以是双向的,并且父子关[详细]
-
进程的创建和终止(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:80
大多数系统的进程能够并发执行,它们可以动态创建和删除。因此,操作系统必须提供机制,用于创建进程和终止进程。 进程创建 进程在执行过程中可能创建多个新的进程。 创建进程称为 父进程 ,而新的进程称为 子进程 。 每个新进程可以再创建其他进程,从而形成[详细]
-
系统程序及其分类
所属栏目:[安全] 日期:2020-12-24 热度:129
现代操作系统的另一特点是一组系统程序。前面说过,图1 描述了计算机的逻辑层次。最低层是硬件,接着是操作系统,然后是系统程序,最后是应用程序。 图 1 计算机系统组件的抽象视图 系统程序(system program) ,也称为 系统工具(system utility) ,为程序[详细]
-
操作系统的运行机制(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:161
将I/O结构的时候提到,现代操作系统是中断驱动(interrupt driven)的。如果没有进程需要执行,没有 I/O 设备需要服务,而且没有用户需要响应,那么操作系统会静静地等待某个事件的发生。 事件总是由 中断 或 陷阱 引起的。 陷阱(trap,或异常(exception)[详细]
-
操作系统安全保护机制
所属栏目:[安全] 日期:2020-12-24 热度:173
如果一个计算机系统有多个用户,并且允许多个进程并发执行,那么数据访问应当加以控制。为此,可以通过机制确保只有经过操作系统授权,进程才可使用相应资源,如文件、内存、CPU 及其他资源。 例如,内存寻址硬件确保一个进程仅可在自己的地址空间内执行,定[详细]
-
操作系统的存储管理
所属栏目:[安全] 日期:2020-12-24 热度:194
为了方便计算机用户,操作系统提供信息存储的统一逻辑视图。操作系统对存储设备的物理属性进行了抽象,并定义了逻辑存储单元,即 文件(file) 。操作系统映射文件到物理媒介,并通过存储设备来访问文件。 文件系统管理 文件管理是操作系统最明显的组件之一。[详细]
-
操作系统的I/O结构
所属栏目:[安全] 日期:2020-12-24 热度:105
存储器只是众多计算机 I/O 设备中的一种。操作系统的大部分代码专门用于 I/O 管理,这是由于它对系统的可靠性和性能至关重要,也是由于不同设备具有不同特性。因此,我们首先概述一下 I/O。 每个通用计算机系统由一个 CPU 和多个设备控制器组成,它们通过共同[详细]
-
操作系统的体系结构(单处理器、多处理器和集群)
所属栏目:[安全] 日期:2020-12-24 热度:136
前面章节中,我们从操作系统的运行过程、存储结构以及IO结构介绍了典型计算机系统的通用结构。计算机系统可能通过许多不同途径来组成,这里根据采用的通用处理器数量来进行粗略分类。 单处理器系统 直到最近,大多数系统仍采用单处理器。单处理器系统只有一[详细]
-
进程状态及其转换过程
所属栏目:[安全] 日期:2020-12-24 热度:175
进程在执行时会改变状态。 进程状态,部分取决于进程的当前活动。 图 1 显示的是进程活动的状态图。 图 1 进程状态图 从图中可以看出,每个进程可能处于以下几种不同的状态: 新的 :进程正在创建。 运行 :指令正在执行。 等待 :进程等待发生某个事件(如[详细]
-
什么是线程库,线程库类别及其应用
所属栏目:[安全] 日期:2020-12-24 热度:92
线程库 为程序员提供创建和管理线程的 API。 实现线程库的主要方法有两种: 在用户空间中提供一个没有内核支持的库。这种库的所有代码和数据结构都位于用户空间。这意味着,调用库内的一个函数只是导致了用户空间内的一个本地函数的调用,而不是系统调用。[详细]
-
什么是进程调度,进程调度的来龙去脉
所属栏目:[安全] 日期:2020-12-24 热度:138
多道程序设计的目标是,无论何时都有进程运行,从而最大化 CPU 利用率。分时系统的目的是在进程之间快速切换 CPU,以便用户在程序运行时能与其交互。 为了满足这些目标, 进程调度器 选择一个可用进程(可能从多个可用进程集合中)到 CPU上执行。如果有多个进[详细]
-
系统调用的类型(六大类)
所属栏目:[安全] 日期:2020-12-24 热度:61
系统调用大致可分为六大类: 进程控制(process control) 、 文件管理(file manipulation) 、 设备管理(device manipulation) 、 信息维护(information maintenance) 、 通信(communication) 和 保护(protection)。 进程控制 执行程序应能正常(en[详细]
