-
什么是管程,管程机制及其使用方法详解
所属栏目:[安全] 日期:2020-12-25 热度:81
虽然信号量提供了一种方便且有效的进程同步机制,但是它们的使用错误可能导致难以检测的时序错误,因为这些错误只有在特定执行顺序时才会出现,而这些顺序并不总是出现。 为了处理这种错误,研究人员开发了一些高级语言工具,一种重要的、高级的同步工具,即[详细]
-
什么是虚拟内存,虚拟内存及其作用详解
所属栏目:[安全] 日期:2020-12-25 热度:68
前面介绍了计算机系统的各种内存管理策略,例如分页,分段等,所有这些策略都有相同的目标,就是同时将多个进程保存在内存中,以便允许多道程序。然而,这些策略都倾向于要求每个进程在执行之前应完全处于内存中。 虚拟内存技术 允许执行进程不必完全处于内存[详细]
-
内存分页机制完全攻略
所属栏目:[安全] 日期:2020-12-25 热度:68
分段允许进程的物理地址空间是非连续的。分页是提供这种优势的另一种内存管理方案。然而,分页避免了外部碎片和紧缩,而分段不可以。 不仅如此,分页还避免了将不同大小的内存块匹配到交换空间的问题,在分页引入之前采用的内存管理方案都有这个问题。由于比[详细]
-
互斥锁的原理及作用
所属栏目:[安全] 日期:2020-12-24 热度:97
操作系统设计人员构建软件工具,以解决临界区问题,最简单的工具就是 互斥锁(mutex lock) 。我们采用互斥锁保护临界区,从而防止竞争条件。 也就是说,一个进程在进入临界区时应得到锁;它在退出临界区时释放锁。函数 acquire() 获取锁,而函数 release()[详细]
-
时间片轮转(RR)调度算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:130
时间片轮转(RR)调度算法 是专门为分时系统设计的。它类似于 FCFS调度,但是增加了抢占以切换进程。 该算法中,将一个较小时间单元定义为 时间量 或 时间片 。时间片的大小通常为 10~100ms。就绪队列作为循环队列。CPU 调度程序循环整个就绪队列,为每个进[详细]
-
Peterson算法(解决临界区问题)详解
所属栏目:[安全] 日期:2020-12-24 热度:112
本节说明一个经典的基于软件的临界区问题的解决方案,称为 Peterson 算法 。 Peterson 算法提供了解决临界区问题的一个很好的算法,并能说明满足互斥、进步、有限等待等要求的软件设计的复杂性。 Peterson算法适用于两个进程交错执行临界区与剩余区。两个进程[详细]
-
最短作业优先(SJF)调度算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:193
最短作业优先(SJF)调度算法 将每个进程与其下次 CPU 执行的长度关联起来。当 CPU 变为空闲时,它会被赋给具有最短 CPU 执行的进程。如果两个进程具有同样长度的 CPU 执行,那么可以由 FCFS 来处理。 一个更为恰当的表示是 最短下次CPU执行算法 ,这是因为[详细]
-
单调速率调度(RMS)算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:168
单调速率(RMS)调度算法 采用抢占的、静态优先级的策略,调度周期性任务。 当较低优先级的进程正在运行并且较高优先级的进程可以运行时,较高优先级进程将会抢占低优先级。在进入系统时,每个周期性任务会分配一个优先级,它与其周期成反比,即周期越短,优[详细]
-
最早截止时间优先(EDF)算法详解
所属栏目:[安全] 日期:2020-12-24 热度:161
最早截止期限优先(EDF)调度 根据截止期限动态分配优先级。截止期限越早,优先级越高;截止期限越晚,优先级越低。 根据 EDF 策略,当一个进程可运行时,它应向系统公布截止期限要求。优先级可能需要进行调整,以便反映新可运行进程的截止期限。注意单调速[详细]
-
Linux进程调度策略(CFS调度)详解
所属栏目:[安全] 日期:2020-12-24 热度:71
Linux 进程调度 有一个有趣历史。在 2.5 版本之前,Linux 内核采用传统 UNIX 调度算法。然而,由于这个算法并没有考虑 SMP 系统,因此它并不足够支持 SMP 系统。此外,当有大量的可运行进程时,系统性能表现欠佳。 在内核 V2.5 中,调度程序进行了大改,采用[详细]
-
哲学家就餐问题分析(含解决方案)
所属栏目:[安全] 日期:2020-12-24 热度:189
假设有 5 个哲学家,他们的生活只是思考和吃饭。这些哲学家共用一个圆桌,每位都有一把椅子。在桌子中央有一碗米饭,在桌子上放着 5 根筷子(图 1 )。 图 1 就餐哲学家的情景 当一位哲学家思考时,他与其他同事不交流。时而,他会感到饥饿,并试图拿起与他相[详细]
-
什么是CPU调度,CPU调度完全攻略
所属栏目:[安全] 日期:2020-12-24 热度:185
CPU调度 是多道程序操作系统的基[详细]
-
什么是死锁,死锁的原因及解决办法(含四个必要条件)
所属栏目:[安全] 日期:2020-12-24 热度:113
在多道程序环境中,多个进程可以竞争有限数量的资源。当一个进程申请资源时,如果这时没有可用资源,那么这个进程进入等待状态。有时,如果所申请的资源被其他等待进程占有,那么该等待进程有可能再也无法改变状态。这种情况称为 死锁 。 或许,死锁的最好例[详细]
-
什么是远程过程调用(RCP),远程过程调用服务实现原理详解
所属栏目:[安全] 日期:2020-12-24 热度:130
远程过程调用 ,简称? RPC ,是一种最为常见的远程服务。RPC 对于通过网络连接系统之间的过程调用进行了抽象。它在许多方面都类似于 IPC 机制,并且通常建立在 IPC 之上。不过,因为现在的情况是进程处在不同系统上,所以应提供基于消息的通信方案,以提供远[详细]
-
什么是系统调用,系统调用的过程
所属栏目:[安全] 日期:2020-12-24 热度:101
系统调用(system call) 提供操作系统服务接口。这些调用通常以 C 或 C++ 编写,当然,对某些底层任务(如需直接访问硬件的任务),可能应以汇编语言指令编写。 在讨论操作系统如何提供系统调用之前,首先通过例子来看看如何使用系统调用:编写一个简单程序[详细]
-
有名管道(FIFO)通信机制完全攻略
所属栏目:[安全] 日期:2020-12-24 热度:69
无名管道提供了一个简单机制,允许一对进程通信。然而,只有当进程相互通信时,普通管道才存在。对于 UNIX 和 Windows 系统,一旦进程已经完成通信并且终止了,那么普通管道就不存在了。 有名管道 提供了一个更强大的通信工具。 通信可以是双向的,并且父子关[详细]
-
进程的创建和终止(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:141
大多数系统的进程能够并发执行,它们可以动态创建和删除。因此,操作系统必须提供机制,用于创建进程和终止进程。 进程创建 进程在执行过程中可能创建多个新的进程。 创建进程称为 父进程 ,而新的进程称为 子进程 。 每个新进程可以再创建其他进程,从而形成[详细]
-
系统程序及其分类
所属栏目:[安全] 日期:2020-12-24 热度:102
现代操作系统的另一特点是一组系统程序。前面说过,图1 描述了计算机的逻辑层次。最低层是硬件,接着是操作系统,然后是系统程序,最后是应用程序。 图 1 计算机系统组件的抽象视图 系统程序(system program) ,也称为 系统工具(system utility) ,为程序[详细]
-
系统调用的类型(六大类)
所属栏目:[安全] 日期:2020-12-24 热度:169
系统调用大致可分为六大类: 进程控制(process control) 、 文件管理(file manipulation) 、 设备管理(device manipulation) 、 信息维护(information maintenance) 、 通信(communication) 和 保护(protection)。 进程控制 执行程序应能正常(en[详细]
-
管道(无名管道)通信机制原理和实现详解
所属栏目:[安全] 日期:2020-12-24 热度:117
管道(pipe) 允许两个进程进行通信,是早期 UNIX 系统最早使用的一种 IPC 机制。管道为进程之间的相互通信提供了一种较为简单的方法,尽管也有一定的局限性。 在实现管道时,应该考虑以下四个问题: 管道允许单向通信还是双向通信? 如果允许双向通信,它是[详细]
-
命令行界面和图形用户界面(GUI)
所属栏目:[安全] 日期:2020-12-24 热度:108
正如前面所述,用户与操作系统的界面有多种方式。这里,讨论两种基本方案: 提供 命令行界面 或 命令解释程序(command interpreter) ,允许用户直接输入命令,以供操作系统执行。 允许用户通过 图形用户界面(GUI) 与操作系统交互。 命令解释程序 有的操作[详细]
-
什么是多核,并行和并发的区别
所属栏目:[安全] 日期:2020-12-24 热度:68
在计算机设计早期,为了响应更多计算性能的需要,单处理器系统发展成为多处理器系统。更现代的、类似的系统设计趋势是将多个计算核放到单个芯片。无论多个计算核是在多个CPU芯片上还是在单个 CPU 芯片上,我们称之为 多核 或 多处理器系统 。 多线程编程提供[详细]
-
套接字是什么,套接字通信及其原理
所属栏目:[安全] 日期:2020-12-24 热度:86
套接字(socket) 为通信的端点,每个套接字由一个 IP 地址和一个端口号组成。 通过网络通信的每对进程需要使用一对套接字,即每个进程各有一个。 通常,套接字采用客户机-服务器架构。服务器通过监听指定端口,来等待客户请求。服务器在收到请求后,接受来[详细]
-
什么是进程控制块,进程控制块的作用
所属栏目:[安全] 日期:2020-12-24 热度:164
操作系统内的每个进程表示,釆用 进程控制块 (Process Control Block, PCB ),也称为 任务控制块 。 图 1 进程控制块(PCB) 每个进程控制块如图 1 所示,它包含许多与当前进程相关的信息: 进程状态:状态可以包括新的、就绪、运行、等待、停止等。 程序[详细]
-
线程池是什么,线程池及其原理
所属栏目:[安全] 日期:2020-12-24 热度:190
学习线程时,我们描述了一个多线程的 Web 服务器,每当服务器接收到一个请求时,它都会创建一个单独线程来处理请求。虽然创建一个单独线程肯定优于创建一个单独进程,但是多线程服务器仍然有些潜在的问题。 第一个问题是创建线程所需的时间多少,以及线程在完[详细]
