-
CPU调度准则(完整版)
所属栏目:[安全] 日期:2020-12-25 热度:97
不同的 CPU 调度算法具有不同属性,选择一个特定算法会对某些进程更为有利。为了选择算法以便用于特定情景,我们必须考虑各个算法的属性。 为了比较 CPU 调度算法,可以采用许多比较准则。选择哪些特征来比较,对于确定哪种算法是最好的有本质上的区别。这些[详细]
-
多级反馈队列调度算法详解
所属栏目:[安全] 日期:2020-12-25 热度:171
通常在使用多级队列调度算法时,进程进入系统时被永久地分配到某个队列。例如,如果前台和后台进程分别具有单独队列,那么进程并不从一个队列移到另一个队列,这是因为进程不会改变前台或后台的性质。这种设置的优点是调度开销低,缺点是不够灵活。 相反, 多[详细]
-
优先级调度算法及其优缺点
所属栏目:[安全] 日期:2020-12-25 热度:113
SJF?算法是通用优先级调度算法的一个特例。每个进程都有一个优先级与其关联,而具有最高优先级的进程会分配到 CPU。具有相同优先级的进程按 FCFS 顺序调度。SJF 算法是一个简单的优先级算法,其优先级(p)为下次(预测的)CPU 执行的倒数。CPU 执行越长,则[详细]
-
互斥锁的原理及作用
所属栏目:[安全] 日期:2020-12-25 热度:97
操作系统设计人员构建软件工具,以解决临界区问题,最简单的工具就是 互斥锁(mutex lock) 。我们采用互斥锁保护临界区,从而防止竞争条件。 也就是说,一个进程在进入临界区时应得到锁;它在退出临界区时释放锁。函数 acquire() 获取锁,而函数 release()[详细]
-
时间片轮转(RR)调度算法(详解版)
所属栏目:[安全] 日期:2020-12-25 热度:109
时间片轮转(RR)调度算法 是专门为分时系统设计的。它类似于 FCFS调度,但是增加了抢占以切换进程。 该算法中,将一个较小时间单元定义为 时间量 或 时间片 。时间片的大小通常为 10~100ms。就绪队列作为循环队列。CPU 调度程序循环整个就绪队列,为每个进[详细]
-
Peterson算法(解决临界区问题)详解
所属栏目:[安全] 日期:2020-12-25 热度:85
本节说明一个经典的基于软件的临界区问题的解决方案,称为 Peterson 算法 。 Peterson 算法提供了解决临界区问题的一个很好的算法,并能说明满足互斥、进步、有限等待等要求的软件设计的复杂性。 Peterson算法适用于两个进程交错执行临界区与剩余区。两个进程[详细]
-
最短作业优先(SJF)调度算法(详解版)
所属栏目:[安全] 日期:2020-12-25 热度:75
最短作业优先(SJF)调度算法 将每个进程与其下次 CPU 执行的长度关联起来。当 CPU 变为空闲时,它会被赋给具有最短 CPU 执行的进程。如果两个进程具有同样长度的 CPU 执行,那么可以由 FCFS 来处理。 一个更为恰当的表示是 最短下次CPU执行算法 ,这是因为[详细]
-
什么是进程控制块,进程控制块的作用
所属栏目:[安全] 日期:2020-12-24 热度:97
操作系统内的每个进程表示,釆用 进程控制块 (Process Control Block, PCB ),也称为 任务控制块 。 图 1 进程控制块(PCB) 每个进程控制块如图 1 所示,它包含许多与当前进程相关的信息: 进程状态:状态可以包括新的、就绪、运行、等待、停止等。 程序[详细]
-
线程池是什么,线程池及其原理
所属栏目:[安全] 日期:2020-12-24 热度:71
学习线程时,我们描述了一个多线程的 Web 服务器,每当服务器接收到一个请求时,它都会创建一个单独线程来处理请求。虽然创建一个单独线程肯定优于创建一个单独进程,但是多线程服务器仍然有些潜在的问题。 第一个问题是创建线程所需的时间多少,以及线程在完[详细]
-
进程间通信(IPC):共享内存和消息队列原理详解
所属栏目:[安全] 日期:2020-12-24 热度:91
操作系统内的并发执行进程可以是独立的也可以是协作的: 如果一个进程不能影响其他进程或受其他进程影响,那么该进程是独立的,换句话说,不与任何其他进程共享数据的进程是独立的; 如果一个进程能影响其他进程或受其他进程所影响,那么该进程是协作的。换句[详细]
-
线程是什么,线程及其特点
所属栏目:[安全] 日期:2020-12-24 热度:95
几乎所有现代操作系统都允许一个进程包含多个线程。 每个线程是 CPU 使用的一个基本单元,它包括线程 ID、程序计数器、寄存器组和堆栈。 进程与同一进程的其他线程共享代码段、数据段和其他操作系统资源,如打开文件和信号。每个传统或重量级进程只有单个控制[详细]
-
操作系统的设计和实现过程
所属栏目:[安全] 日期:2020-12-24 热度:177
本节讨论操作系统设计和实现面临的问题。虽然这些问题没有完整的解决方案,但是有些方法还是行之有效的。 设计目标 系统设计的首要问题是,定义目标和规范。从高层来说,系统设计取决于所选硬件和系统类型:批处理、分时、单用户、多用户、分布式、实时或通用[详细]
-
系统调用的类型(六大类)
所属栏目:[安全] 日期:2020-12-24 热度:108
系统调用大致可分为六大类: 进程控制(process control) 、 文件管理(file manipulation) 、 设备管理(device manipulation) 、 信息维护(information maintenance) 、 通信(communication) 和 保护(protection)。 进程控制 执行程序应能正常(en[详细]
-
管道(无名管道)通信机制原理和实现详解
所属栏目:[安全] 日期:2020-12-24 热度:193
管道(pipe) 允许两个进程进行通信,是早期 UNIX 系统最早使用的一种 IPC 机制。管道为进程之间的相互通信提供了一种较为简单的方法,尽管也有一定的局限性。 在实现管道时,应该考虑以下四个问题: 管道允许单向通信还是双向通信? 如果允许双向通信,它是[详细]
-
命令行界面和图形用户界面(GUI)
所属栏目:[安全] 日期:2020-12-24 热度:92
正如前面所述,用户与操作系统的界面有多种方式。这里,讨论两种基本方案: 提供 命令行界面 或 命令解释程序(command interpreter) ,允许用户直接输入命令,以供操作系统执行。 允许用户通过 图形用户界面(GUI) 与操作系统交互。 命令解释程序 有的操作[详细]
-
什么是多核,并行和并发的区别
所属栏目:[安全] 日期:2020-12-24 热度:95
在计算机设计早期,为了响应更多计算性能的需要,单处理器系统发展成为多处理器系统。更现代的、类似的系统设计趋势是将多个计算核放到单个芯片。无论多个计算核是在多个CPU芯片上还是在单个 CPU 芯片上,我们称之为 多核 或 多处理器系统 。 多线程编程提供[详细]
-
套接字是什么,套接字通信及其原理
所属栏目:[安全] 日期:2020-12-24 热度:127
套接字(socket) 为通信的端点,每个套接字由一个 IP 地址和一个端口号组成。 通过网络通信的每对进程需要使用一对套接字,即每个进程各有一个。 通常,套接字采用客户机-服务器架构。服务器通过监听指定端口,来等待客户请求。服务器在收到请求后,接受来[详细]
-
操作系统的体系结构(单处理器、多处理器和集群)
所属栏目:[安全] 日期:2020-12-24 热度:193
前面章节中,我们从操作系统的运行过程、存储结构以及IO结构介绍了典型计算机系统的通用结构。计算机系统可能通过许多不同途径来组成,这里根据采用的通用处理器数量来进行粗略分类。 单处理器系统 直到最近,大多数系统仍采用单处理器。单处理器系统只有一[详细]
-
进程状态及其转换过程
所属栏目:[安全] 日期:2020-12-24 热度:125
进程在执行时会改变状态。 进程状态,部分取决于进程的当前活动。 图 1 显示的是进程活动的状态图。 图 1 进程状态图 从图中可以看出,每个进程可能处于以下几种不同的状态: 新的 :进程正在创建。 运行 :指令正在执行。 等待 :进程等待发生某个事件(如[详细]
-
什么是线程库,线程库类别及其应用
所属栏目:[安全] 日期:2020-12-24 热度:74
线程库 为程序员提供创建和管理线程的 API。 实现线程库的主要方法有两种: 在用户空间中提供一个没有内核支持的库。这种库的所有代码和数据结构都位于用户空间。这意味着,调用库内的一个函数只是导致了用户空间内的一个本地函数的调用,而不是系统调用。[详细]
-
什么是进程调度,进程调度的来龙去脉
所属栏目:[安全] 日期:2020-12-24 热度:75
多道程序设计的目标是,无论何时都有进程运行,从而最大化 CPU 利用率。分时系统的目的是在进程之间快速切换 CPU,以便用户在程序运行时能与其交互。 为了满足这些目标, 进程调度器 选择一个可用进程(可能从多个可用进程集合中)到 CPU上执行。如果有多个进[详细]
-
开源操作系统的类别及其特点
所属栏目:[安全] 日期:2020-12-24 热度:190
我们说过,由于有大量的开源操作系统,操作系统的学习容易得多。 开源操作系统(open-source operating system) 具有源码,而非只有编译过的二进制码。Linux 是最为著名的开源操作系统,而 Microsoft Windows 则是一个著名的、闭源(closed source)的系统。[详细]
-
什么是操作系统
所属栏目:[安全] 日期:2020-12-24 热度:134
我们首先讨论操作系统在整个计算机系统中的作用。计算机系统可以粗分为四个组件: 硬件 、 操作系统 、 应用程序 和 用户 (图 1)。 图 1 计算机系统组件的抽象视图 硬件(hardware),如中央处理单元(Central Processing Unit,CPU)、内存(memory)、输[详细]
-
操作系统组织数据的方法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:188
下面讨论操作系统实现的一个核心问题:系统如何组织数据。本节简要讨论多个基本数据结构,它们在操作系统中用得很多。 列表、堆栈及队列 数组是个简单的数据结构,它的元素可被直接访问。例如,内存就是一个数组。如果所存的数据项大于一字节,那么可用多个字[详细]
-
进程是什么,进程和程序的区别
所属栏目:[安全] 日期:2020-12-24 热度:107
在未被 CPU 执行之前,程序做不了任何事。如前所述, 执行的程序称为 进程 。 分时系统的用户程序(如编译器)就是进程,PC 的单个用户运行的字处理程序也是进程。系统任务,如将输出发到打印机,也可以是进程(或至少是进程的一部分)。现在,进程可以作为作[详细]
