-
nginx下js文件修改后访问不更新问题解决
所属栏目:[安全] 日期:2020-12-25 热度:146
今天遇到一个问题,nginx下js修改后不更新,加版本号,刷新浏览器缓存都不行,重启服务器才行,修改后又不更新了 而且加载的js文件会有乱码或者文件加载不全的问题。 解决办法: 修改nginx.conf,sendfile off; http { sendfile off; } 重启nginx后问题解决[详细]
-
virtualBox 虚拟机下nginx设置不缓存静态文件不起作用解决办法
所属栏目:[安全] 日期:2020-12-25 热度:161
最近开发的时候,调整js时会一直使用缓存文件,无法显示改动! nginx配置静态文件add_header Cache-Control no-cache;也不起作用,很苦恼! nginx配置代码: events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on;[详细]
-
连续分配、链接分配和索引分配详解
所属栏目:[安全] 日期:2020-12-25 热度:105
磁盘直接访问的特点在文件实现时提供了灵活性。在几乎每种情况下,很多文件都是存储在同一个磁盘上的。主要的问题是,如何为这些文件分配空间,以便有效使用磁盘空间和快速访问文件。 磁盘空间分配的主要常用方法有三个: 连续分配 、 链接分配 和 索引分配[详细]
-
连续内存分配及其方式详解
所属栏目:[安全] 日期:2020-12-25 热度:164
内存应容纳操作系统和各种用户进程,因此应该尽可能有效地分配内存。本节介绍一种早期方法: 连续内存分配 。 内存通常分为两个区域:一个用于驻留操作系统,另一个用于用户进程。操作系统可以放在低内存,也可放在高内存,这取决与中断向量的位置。由于中断[详细]
-
伙伴系统和slab内存分配机制详解
所属栏目:[安全] 日期:2020-12-25 热度:154
当在用户模式下运行进程请求额外内存时,从内核维护的空闲页帧列表上分配页面。这个列表通常使用页面置换算法来填充,如前所述,它很可能包含散布在物理内存中的空闲页面。也要记住,如果用户进程请求单个字节内存,那么就会导致内部碎片,因为进程会得到整个[详细]
-
页面置换算法及其优缺点详解
所属栏目:[安全] 日期:2020-12-25 热度:142
本节,讨论几种页面置换算法。为此,假设有 3 个帧并且引用串为: 7,1,2,3,4,7,1 FIFO页面置换 FIFO 算法是最简单的页面置换算法。FIFO 页面置换算法为每个页面记录了调到内存的时间,当必须置换页面时会选择最旧的页面。 注意,并不需要记录调入页面的确切时[详细]
-
什么是内存交换
所属栏目:[安全] 日期:2020-12-25 热度:56
进程必须在内存中以便执行。不过,进程可以暂时从内存交换到备份存储,当再次执行时再调回到内存中(图 1)。交换有可能让所有进程的总的物理地址空间超过真实系统的物理地址空间,从而增加了系统的多道程序程度。 图 1 使用磁盘作为存储仓库的两个进程的交换[详细]
-
多处理器调度完全攻略
所属栏目:[安全] 日期:2020-12-25 热度:99
迄今为止,我们主要集中讨论单处理器系统的 CPU 调度问题。如果有多个 CPU,则负载分配成为可能,但是调度问题就相应地更为复杂。许多可能的方法都已试过,但与单处理器调度一样,没有最好的解决方案。 多处理器调度的方法 对于多处理器系统,CPU 调度的一种[详细]
-
什么是管程,管程机制及其使用方法详解
所属栏目:[安全] 日期:2020-12-25 热度:178
虽然信号量提供了一种方便且有效的进程同步机制,但是它们的使用错误可能导致难以检测的时序错误,因为这些错误只有在特定执行顺序时才会出现,而这些顺序并不总是出现。 为了处理这种错误,研究人员开发了一些高级语言工具,一种重要的、高级的同步工具,即[详细]
-
什么是虚拟内存,虚拟内存及其作用详解
所属栏目:[安全] 日期:2020-12-25 热度:73
前面介绍了计算机系统的各种内存管理策略,例如分页,分段等,所有这些策略都有相同的目标,就是同时将多个进程保存在内存中,以便允许多道程序。然而,这些策略都倾向于要求每个进程在执行之前应完全处于内存中。 虚拟内存技术 允许执行进程不必完全处于内存[详细]
-
内存分页机制完全攻略
所属栏目:[安全] 日期:2020-12-25 热度:149
分段允许进程的物理地址空间是非连续的。分页是提供这种优势的另一种内存管理方案。然而,分页避免了外部碎片和紧缩,而分段不可以。 不仅如此,分页还避免了将不同大小的内存块匹配到交换空间的问题,在分页引入之前采用的内存管理方案都有这个问题。由于比[详细]
-
互斥锁的原理及作用
所属栏目:[安全] 日期:2020-12-24 热度:132
操作系统设计人员构建软件工具,以解决临界区问题,最简单的工具就是 互斥锁(mutex lock) 。我们采用互斥锁保护临界区,从而防止竞争条件。 也就是说,一个进程在进入临界区时应得到锁;它在退出临界区时释放锁。函数 acquire() 获取锁,而函数 release()[详细]
-
时间片轮转(RR)调度算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:76
时间片轮转(RR)调度算法 是专门为分时系统设计的。它类似于 FCFS调度,但是增加了抢占以切换进程。 该算法中,将一个较小时间单元定义为 时间量 或 时间片 。时间片的大小通常为 10~100ms。就绪队列作为循环队列。CPU 调度程序循环整个就绪队列,为每个进[详细]
-
Peterson算法(解决临界区问题)详解
所属栏目:[安全] 日期:2020-12-24 热度:172
本节说明一个经典的基于软件的临界区问题的解决方案,称为 Peterson 算法 。 Peterson 算法提供了解决临界区问题的一个很好的算法,并能说明满足互斥、进步、有限等待等要求的软件设计的复杂性。 Peterson算法适用于两个进程交错执行临界区与剩余区。两个进程[详细]
-
最短作业优先(SJF)调度算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:111
最短作业优先(SJF)调度算法 将每个进程与其下次 CPU 执行的长度关联起来。当 CPU 变为空闲时,它会被赋给具有最短 CPU 执行的进程。如果两个进程具有同样长度的 CPU 执行,那么可以由 FCFS 来处理。 一个更为恰当的表示是 最短下次CPU执行算法 ,这是因为[详细]
-
单调速率调度(RMS)算法(详解版)
所属栏目:[安全] 日期:2020-12-24 热度:123
单调速率(RMS)调度算法 采用抢占的、静态优先级的策略,调度周期性任务。 当较低优先级的进程正在运行并且较高优先级的进程可以运行时,较高优先级进程将会抢占低优先级。在进入系统时,每个周期性任务会分配一个优先级,它与其周期成反比,即周期越短,优[详细]
-
最早截止时间优先(EDF)算法详解
所属栏目:[安全] 日期:2020-12-24 热度:90
最早截止期限优先(EDF)调度 根据截止期限动态分配优先级。截止期限越早,优先级越高;截止期限越晚,优先级越低。 根据 EDF 策略,当一个进程可运行时,它应向系统公布截止期限要求。优先级可能需要进行调整,以便反映新可运行进程的截止期限。注意单调速[详细]
-
Linux进程调度策略(CFS调度)详解
所属栏目:[安全] 日期:2020-12-24 热度:128
Linux 进程调度 有一个有趣历史。在 2.5 版本之前,Linux 内核采用传统 UNIX 调度算法。然而,由于这个算法并没有考虑 SMP 系统,因此它并不足够支持 SMP 系统。此外,当有大量的可运行进程时,系统性能表现欠佳。 在内核 V2.5 中,调度程序进行了大改,采用[详细]
-
哲学家就餐问题分析(含解决方案)
所属栏目:[安全] 日期:2020-12-24 热度:91
假设有 5 个哲学家,他们的生活只是思考和吃饭。这些哲学家共用一个圆桌,每位都有一把椅子。在桌子中央有一碗米饭,在桌子上放着 5 根筷子(图 1 )。 图 1 就餐哲学家的情景 当一位哲学家思考时,他与其他同事不交流。时而,他会感到饥饿,并试图拿起与他相[详细]
-
什么是CPU调度,CPU调度完全攻略
所属栏目:[安全] 日期:2020-12-24 热度:84
CPU调度 是多道程序操作系统的基[详细]
-
什么是死锁,死锁的原因及解决办法(含四个必要条件)
所属栏目:[安全] 日期:2020-12-24 热度:173
在多道程序环境中,多个进程可以竞争有限数量的资源。当一个进程申请资源时,如果这时没有可用资源,那么这个进程进入等待状态。有时,如果所申请的资源被其他等待进程占有,那么该等待进程有可能再也无法改变状态。这种情况称为 死锁 。 或许,死锁的最好例[详细]
-
什么是远程过程调用(RCP),远程过程调用服务实现原理详解
所属栏目:[安全] 日期:2020-12-24 热度:150
远程过程调用 ,简称? RPC ,是一种最为常见的远程服务。RPC 对于通过网络连接系统之间的过程调用进行了抽象。它在许多方面都类似于 IPC 机制,并且通常建立在 IPC 之上。不过,因为现在的情况是进程处在不同系统上,所以应提供基于消息的通信方案,以提供远[详细]
-
什么是系统调用,系统调用的过程
所属栏目:[安全] 日期:2020-12-24 热度:51
系统调用(system call) 提供操作系统服务接口。这些调用通常以 C 或 C++ 编写,当然,对某些底层任务(如需直接访问硬件的任务),可能应以汇编语言指令编写。 在讨论操作系统如何提供系统调用之前,首先通过例子来看看如何使用系统调用:编写一个简单程序[详细]
-
有名管道(FIFO)通信机制完全攻略
所属栏目:[安全] 日期:2020-12-24 热度:140
无名管道提供了一个简单机制,允许一对进程通信。然而,只有当进程相互通信时,普通管道才存在。对于 UNIX 和 Windows 系统,一旦进程已经完成通信并且终止了,那么普通管道就不存在了。 有名管道 提供了一个更强大的通信工具。 通信可以是双向的,并且父子关[详细]
-
进程的创建和终止(超详细)
所属栏目:[安全] 日期:2020-12-24 热度:148
大多数系统的进程能够并发执行,它们可以动态创建和删除。因此,操作系统必须提供机制,用于创建进程和终止进程。 进程创建 进程在执行过程中可能创建多个新的进程。 创建进程称为 父进程 ,而新的进程称为 子进程 。 每个新进程可以再创建其他进程,从而形成[详细]