《现代操作系统》学习笔记.docx

合集下载

大一上册计算机操作系统实践课程笔记

大一上册计算机操作系统实践课程笔记

大一上册计算机操作系统实践课程笔记1. 引言计算机操作系统是计算机科学中的重要学科之一,它负责管理和控制计算机硬件和软件资源,提供给用户和应用程序一个可靠、高效的工作环境。

在大一上册的计算机操作系统实践课程中,我们将学习操作系统的基本概念和原理,并通过实践操作来加深对操作系统的理解和掌握。

本文将就大一上册计算机操作系统实践课程的内容进行分析和总结,介绍具体的操作方法,分析性循序推理论点,并给出实践导向的结论。

2. 实验一:操作系统安装与配置在第一次实验中,我们学习了操作系统的安装与配置。

操作系统的安装是计算机系统使用的基础,而合理的配置则可以提高计算机的性能和稳定性。

在实验中,我们首先需要选择合适的操作系统版本,并将其安装到计算机上。

然后,通过对硬件设备和系统设置的调整,来优化系统的性能和使用体验。

通过实际操作,我们可以更好地理解和掌握操作系统的安装和配置过程,为后续的实验和学习奠定基础。

3. 实验二:进程管理进程管理是操作系统的核心功能之一,它负责管理和调度计算机中的进程,确保它们能够按照一定的顺序和优先级进行执行。

在第二次实验中,我们学习了进程的创建、调度和终止等基本操作。

通过实际操作,我们可以模拟和观察进程的执行过程,了解进程的状态转换和调度算法。

同时,我们还学习了进程间通信的方式和机制,如共享内存、消息队列和信号量等。

这些知识和技能对于理解和掌握操作系统的原理和功能非常重要。

4. 实验三:文件系统管理文件系统是操作系统中的另一个重要组成部分,它负责管理和组织计算机中的文件和目录,并提供对其的访问和操作。

在第三次实验中,我们学习了文件系统的创建、格式化和挂载等基本操作。

通过实际操作,我们可以了解文件系统的结构和组织方式,以及如何进行文件和目录的管理和访问。

同时,我们还学习了文件权限和属性的设置,以及文件系统的备份和恢复等技术。

这些知识和技能对于操作系统的使用和管理非常重要。

5. 实验四:存储管理存储管理是操作系统的另一个重要功能,它负责管理和分配计算机中的内存资源,以及提供对其的访问和操作。

现代操作系统习题及答案

现代操作系统习题及答案

现代操作系统习题及答案现代操作系统习题及答案随着科技的不断进步和发展,现代操作系统成为了计算机领域的重要组成部分。

操作系统作为计算机硬件和软件之间的桥梁,起着管理和协调资源的重要作用。

为了更好地理解和掌握现代操作系统的相关知识,下面将给出一些习题及其答案,希望能够对读者有所帮助。

1. 什么是操作系统?它的主要功能是什么?答:操作系统是一种软件,它管理和控制计算机硬件资源,并为用户和应用程序提供接口。

其主要功能包括进程管理、内存管理、文件系统管理和设备管理等。

2. 请简要描述进程和线程的区别。

答:进程是程序的执行实例,拥有独立的内存空间和系统资源。

线程是进程中的一个执行单元,共享进程的资源,但拥有独立的执行路径。

进程之间相互独立,而线程之间可以共享数据和资源。

3. 什么是死锁?如何避免死锁的发生?答:死锁是指两个或多个进程互相等待对方释放资源,导致所有进程无法继续执行的情况。

为避免死锁的发生,可以采取以下几种方法:避免使用互斥锁、避免使用占有并等待、避免使用循环等待、引入资源预先分配策略等。

4. 请简要描述虚拟内存的概念及其作用。

答:虚拟内存是一种计算机系统使用的内存管理技术,它将物理内存和磁盘空间结合起来,为每个进程提供了一个虚拟地址空间。

虚拟内存的作用包括扩大可用内存空间、提供更高的内存访问效率、实现进程间的内存隔离等。

5. 什么是文件系统?请简要描述文件系统的组织结构。

答:文件系统是操作系统中用于管理和存储文件的一种机制。

文件系统的组织结构包括文件、目录和文件描述符等。

文件是存储在磁盘上的数据集合,目录是用于组织和管理文件的一种结构,文件描述符是操作系统中对文件进行操作的抽象。

6. 请简要描述操作系统的进程调度算法。

答:操作系统的进程调度算法决定了进程在系统中的执行顺序。

常见的进程调度算法包括先来先服务(FCFS)、最短作业优先(SJF)、轮转调度(RR)和优先级调度等。

不同的调度算法有不同的优缺点,可以根据系统需求选择合适的算法。

现代操作系统读书笔记2

现代操作系统读书笔记2

现代操作系统读书笔记 22022-08-03 发表于北京第一章抽象是管理复杂性的一个关键。

1 计算及主要部件多数计算机有两种运行模式:内核态和用户态。

内核态:操作系统具有对所有硬件的完全访问权限,可以执行机器能够运行的任何指令。

在用户态下,只使用了机器指令中的一个子集。

用户接口程序:允许用户运行其他程序,诸如:音乐播放器等操作系统处于硬件之上,为所有其他软件提供基础的运行环境。

在内核态中运行的必然是操作系统的一部分,但一些内核外运行的程序也有争议的被认为是操作系统的一部分,或者至少与操作系统密切相关。

资源管理包括两种不同方式的复用:时间上复用和空间上复用。

时间复用:不同程序或用户轮流使用它。

空间复用:每个客户得到资源的一部分,取代客户排队。

PSW 中有一个二进制位控制着用户态和内核态两种模式,。

GPU 是指由成千上万个微核组成的处理器,他们擅长处理大量并行的简单计算。

他们不太能胜任串行任务,并且很难编程。

•存储器顶层是在cpu中的寄存器,与 cpu 的材料相同,和cpu一样快。

下一层是高速缓存。

高速缓存命中就不需要通过总线发送请求到主存2 上下文切换在多道程序系统中,从一个程序切换到另一个程序,有时称为上下文切换,有必要对来自缓存的所有修改过的块进行写回磁盘操作,并修改MMU中的映像寄存器。

3 进程:本质上是正在执行的一个程序。

与每个进程相关的是地址空间,这是某个最小值的存储位置到最大值的存储位置的列表。

该地址空间中存放有可执行程序、程序的数据、以及程序堆栈。

与进程相关的还有资源集,通常包括寄存器、打开文件清单、有关进程清单,以及运行该程序所需要的所有其他程序。

在许多操作系统中,与一个进程相关的所有信息,除了该进程自身地址空间的内容以外,均存放在操作系统的一张表中,称为进程表。

每个进程有一个工作目录,对于没有斜线开头给出的绝对地址的路径,将在这个工作目录下找。

进程可以通过使用系统调用来改变工作目录。

现代操作系统总复习资料

现代操作系统总复习资料

操作系统基础习题解析及实验指导2016.9第一篇操作系统基础知识点及习题解答该部分罗列操作系统基础各章节的学习要点,指出学习的重点和难点,在回顾相关知识点的基础上,对典型习题进行分析和解答。

第一章操作系统引论本章学习要点【1】掌握操作系统的概念与作用【2】掌握操作系统的基本类型与特点【3】掌握操作系统的特征与功能【4】深入领会多道程序设计技术本章学习难点【1】多道程序设计技术【2】操作系统的特征知识点回顾一. 操作系统的概念一个完整的计算机系统由计算机硬件系统和计算机软件系统两部分组成。

操作系统是配置在计算机硬件上的第一层软件,是对硬件系统功能的第一次扩充。

图1-1 计算机系统的层次图1.操作系统(Operating System,简称OS)的作用(1)OS作为用户与计算机硬件系统之间的接口OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。

或者说,用户在OS 的帮助下能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。

(2)OS作为计算机系统资源的管理者这是广为流行的一个关于OS作用的观点。

在一个计算机系统中,通常都包含了各种各样的硬件和软件资源。

归纳起来可将资源分为四类:处理器、存储器、I/O设备以及信息(数据和程序)。

OS的主要功能正是针对这四类资源进行有效的管理。

(3)OS用作扩充机器对于一台完全没有软件配置的计算机系统(裸机),即使功能再强,也必定难于使用。

OS在第 1 页共102 页裸机上分别覆盖I/O设备管理软件、文件管理软件等,此时用户所看到的机器,将是一台比裸机功能更强、使用更方便的机器。

通常把覆盖了软件的机器称为扩充机器或虚机器。

在计算机系统上覆盖上一层软件后,系统功能便增强一级。

由于OS自身包含了若干层软件,因此当在裸机上覆盖上OS后,便可获得一台功能显著增强,使用极为方便的多层扩充机器或多层虚机器。

2.操作系统的概念操作系统是一组控制和管理计算机硬件和软件资源、合理组织计算机的工作流程,方便用户使用的程序的集合。

现代操作系统总复习资料

现代操作系统总复习资料

操作系统基础习题解析及实验指导2016.9第一篇操作系统基础知识点及习题解答该部分罗列操作系统基础各章节的学习要点,指出学习的重点和难点,在回顾相关知识点的基础上,对典型习题进行分析和解答。

第一章操作系统引论本章学习要点【1】掌握操作系统的概念与作用【2】掌握操作系统的基本类型与特点【3】掌握操作系统的特征与功能【4】深入领会多道程序设计技术本章学习难点【1】多道程序设计技术【2】操作系统的特征知识点回顾一. 操作系统的概念一个完整的计算机系统由计算机硬件系统和计算机软件系统两部分组成。

操作系统是配置在计算机硬件上的第一层软件,是对硬件系统功能的第一次扩充。

图1-1 计算机系统的层次图1.操作系统(Operating System,简称OS)的作用(1)OS作为用户与计算机硬件系统之间的接口OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。

或者说,用户在OS 的帮助下能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。

(2)OS作为计算机系统资源的管理者这是广为流行的一个关于OS作用的观点。

在一个计算机系统中,通常都包含了各种各样的硬件和软件资源。

归纳起来可将资源分为四类:处理器、存储器、I/O设备以及信息(数据和程序)。

OS的主要功能正是针对这四类资源进行有效的管理。

(3)OS用作扩充机器对于一台完全没有软件配置的计算机系统(裸机),即使功能再强,也必定难于使用。

OS在第 1 页共102 页裸机上分别覆盖I/O设备管理软件、文件管理软件等,此时用户所看到的机器,将是一台比裸机功能更强、使用更方便的机器。

通常把覆盖了软件的机器称为扩充机器或虚机器。

在计算机系统上覆盖上一层软件后,系统功能便增强一级。

由于OS自身包含了若干层软件,因此当在裸机上覆盖上OS后,便可获得一台功能显著增强,使用极为方便的多层扩充机器或多层虚机器。

2.操作系统的概念操作系统是一组控制和管理计算机硬件和软件资源、合理组织计算机的工作流程,方便用户使用的程序的集合。

《现代操作系统》重点纲要

《现代操作系统》重点纲要

第一章:引论操作系统是运行在内核态的软件,为程序猿提供资源集抽象以及管理硬件1.1.2主要任务:记录那个程序在用什么资源,管理资源分配,评估使用代价,调节冲突1.3.11.操作系统必须知道所有的寄存器,以便中断时保存进度2.用户程序在用户态运行时,仅允许执行至灵级的一个子集,一般不能调用IO和内存保护指令3.陷阱:a. 用于执行系统调用b. 多数由硬件引起,用于警告异常4.超线程:无并行处理,线程切换纳秒级1.3.2存储器1. 寄存器(和CPU一样快)-》高速缓存(多级缓存)-》主存(RAM ROM EEROM 闪存)1.3.3上下文切换:多道程序系统中从一个程序切换到另一个程序1.3.51. 设备驱动程序:控制IO设备,与控制器对话并收发命令2. 设备存储器:映射到操作空间A.优点:不需要特定IO指令B.缺点:占地址空间(8088)3. 实现输入输出的方法:A.忙等待:设备驱动循环检查IOB.操作完成时中断C.使用特殊的直接存储器访问芯片DMA1.3.61. USB:通用串行总线,键盘鼠标等慢速设备1.3.7启动1. 加电-》BIOS检查硬件-》BIOS查询启动设备(设备第一扇区用启动签名才可以作为启动设备)-》硬盘第一区(MBR),分区表,超级块等1.5.1进程1. 本质:正在执行的程序的实例,地址空间(core image 进程可读写,有数据和堆栈)。

2. 相关:资源集(寄存器,报警,文件清单等)3. 容许运行一个程序所需要所有信息的容器4. UID与GID1.5.31. IO设备的分类:A.块设备:硬盘,可随机读取B.字符特殊文件:键盘鼠标2.管道:虚文件,连接进程1.6系统调用1. 用户程序与操作系统交互:处理抽象2. 能进入内核的过程调用用户态切换到核心态三种方法:中断,异常,系统调用3.TRAP指令:副作用切换到内核态1.7.3微内核1. 高可靠性,把操作系统划分成小的,定义良好的模块,只有微内核运行在内核,其他是普通用户程序2. 设备驱动:崩溃不会导致系统死机3. 机制与策略分离第二章:进程与线程2.1进程模型1. 多道程序设计:CPU在多个程序之间快速切换2. UNIX: 开始是相同,之后不同。

操作系统概论学习笔记

操作系统概论学习笔记

操作系统概论第一章:引论一、计算机系统:硬件由中央处理器、存储器、输入输出控制系统、各种输入输出设备组成、软件由系统软件、支撑软件、应用软件组成;二、操作系统:是管理计算机系统资源、控制程序执行、改善人机界面和为应用软件提供支持的一种系统软件;主要作用有:1、管理计算机系统资源;2、为用户提供方便的使用接口;3、扩充硬件;操作系统按功能分为:处理器管理、存储管理、文件管理、设备管理;操作系统的类型:批处理操作系统、分时操作系统、实时操作系统;微机操作系统、网络操作系统、分布式操作系统、嵌入式操作系统三、处理器的工作状态:特权指令:不允许用户程序中直接执行的指令称特权指令;管态和目态:能执行特权指令时称管态,否则称目态程序状态字:用来控制指令执行顺序并且保留和指示与程序有关的系统状态,分成程序基本状态、中断码、中断屏蔽位三个部分;操作系统与用户程序的接口:系统调用操作系统与用户的接口:操作控制命令;第二章:处理器管理一、多道程序设计:顺序执行、并行执行;让多个计算题同时进入一个计算机系统的主存储器并行执行,这种程序设计方法称为多道程序设计,这样的计算机系统称为多道程序设计系统。

二、进程的概念:一个程序在一个数据集上的一次执行称为一个进程,程序是静止的,进程是动态的。

为什么要引入进程:一是提高资源的利用率;二是正确描述程序的执行情况。

三、进程的三个特性:动态性、并发性、异步性;四个属性:1、进程是动态的,它包含了数据和运行在数据集上的程序;2、多个进程可以含有相同的程序;3、多个进程可以并发执行;4、进程有三个种状态:等待态、就绪态、运行态;四、进程控制块:1、标识信息;2、说明信息;3、现场信息;4、管理信息操作系统中往往设计一些能完成特定功能且不可中断的过程。

这些不可中断的过程称为原语;用于控制进程的原语有:创建原语、撤销原语、阻塞原语、唤醒原语;五、进程队列:就绪队列、各程等待队列、出队:进程从所在队列中退出;入队:进程排入到一个指定的队列中;系统中负责进程入队和出队的工作称为队列管理。

天大《操作系统原理》学习笔记二

天大《操作系统原理》学习笔记二

主 题题: 《操作系统原理》学习笔记 内 容容:《操作系统原理操作系统原理》》学习笔记学习笔记二二————进程管理进程管理进程管理处理机是计算机系统的核心资源。

操作系统的功能之一就是处理机管理。

计算机系统的效率主要是由处理机决定的。

处理机管理是整个操作系统的核心。

现代计算机系统多数是多道系统,且为单处理机系统。

处理机要同时运行多个作业的程序。

合理有效地管理和分配处理机资源,是操作系统的一个十分重要的任务。

处理机管理就是按照一定策略对处理机进行合理调配、以满足用户作业运行的需要。

为了准确地描述系统内多个作业的运行情况,以及对系统资源的管理和分配的情况,在现代计算机系统中都采用进程的概念。

现代计算机系统都是以进程作为分配资源和独立运行的基本单位。

所以处理机管理实质上是进程管理。

一、进程的基本概念进程的基本概念进程是操作系统中最重要的、最基本的概念。

对操作系统的设计和研究都是以进程作为出发点。

进程的概念是从程序中产生的,但它与程序有着本质的不同。

1、程序的顺序执行程序是“一组有序的操作序列”。

“操作”:机器指令、高级语言中的语句。

“有序”:操作必须按照严格的先后次序进行,必须在前一个操作完成后, 才能执行下一个操作。

一个复杂的程序也可以分为若干个程序段,各个程序段也是依照一定的次序逐个执行。

程序本身具有的顺序执行的特点。

在单道系统中程序执行时,具有顺序执行的特点,所以又把单道系统中的程序称为顺序程序。

顺序程序具有如下特性: 顺序性、程序运行时处理机必须严格按照程序所规定的顺序执行有关操作。

可再现性、如果程序在不同的时间重复执行,只要执行时的初始条件相同,程序运行结果必然相同。

封闭性、程序在运行时独占全部系统资源,这些资源的状态只由程序本身确定,只有该程序的操作才能改变资源的状态。

所以,程序在执行过程中不会受到外界因素的影响。

与时间无关性。

程序的运行结果与它执行的速度无关。

2、程序的并发执行由于通道技术和中断技术的不断完善,计算机系统出现了处理机与外部设备的并行工作方式,使得处理机可以同时运行多个用户的程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《现代操作系统》看了两个多月才看了前面200页,很多都似懂非懂,权且将自己认为重要的概念抄下来,以备后续查看。

0. 概述
(1)操作系统的概念
对操作系统的定义,有两种说法,一种声称操作系统是计算机的扩展器,一种声称操作系统是计算机资源集的抽象。

所谓操作系统是计算机的扩展,是将操作系统当做计算机对外的接口。

对外包括对应用程序,对程序员,对用户。

操作系统对计算机进行“化妆”,将计算机“丑陋晦涩”的硬件对外隐藏,而向外呈现界面友好清晰,更易理解的操作系统。

如下图所示:
所谓操作系统是计算机资源集的抽象,是指操作系统将计算机资源(处理器,存储器以及I/O设备等)进行抽象以及管理。

将CPU处理抽象为进程,将内存抽象为地址空间,磁盘抽象成文件。

而这一切抽象都是为了实现多道程序设计,即可以在一个计算机上同时运行多个互不干扰程序。

(2)操作系统的作用
操作系统的主要任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分配。

其主要任务包括管理资源分配,评估使用代价和调节资源分配的冲突,记录哪个程序在用什么资源,用多少,用多久。

资源管理包括用以下两种不同方式实现多路复用:在时间上复用(进程调度:CPU 时间片轮转)和在空间上复用(内存管理:虚拟内存,页面置换;磁盘管理:文件系统)。

在时间上分配CPU资源需要考虑该进程在上面运行多久,下一次切换到哪一个进程。

在空间上分配存储空间需要考虑给每个进程分配多少内存,如果内存不足的时候,将哪个页面置换到磁盘以腾出空间。

操作系统的主要功能:为用户程序提供抽象和管理计算机资源。

用户程序和操作系统之间的交互处理是前者。

用户程序和操作系统之间的交互主要是处理抽象。

对于管理计算机资源系统(进程调度,内存置换等)一般自动完成。

所以主要是用户程序与操作系统的交互。

用户程序通过操作系统提供的接口来访问底层的系统。

操作系统提供一种特殊的过程调用——系统调用,该种过程调用可以由用户态陷入
内核态对底层进行操作。

比如可以创建和退出进程,打开和读写文件等。

目前主要由以下几种系统调用函数——进程管理,文件管理,目录和文件系统管理以及其他。

常用的系统调用可以参见下表:
(3)为什么要了解操作系统
之前跟同事说我没有修过操作系统,想补补操作系统,同事说操作系统工作中很少用,我当时想学习操作系统也跟我学习数据结构后
一个感觉——很难很有趣但是工作中用不着。

而老大却一再跟我说,让我打好基础,好好补补操作系统,计算机网络等基础课程。

而我自己看了操作系统之后,突然恍然大悟,oh,原来学习数据结构就是为了学习操作系统呀呀呀~~(*^__^*) 嘻嘻……
瞎扯完,言归正传。

我当时学习操作系统源于工作中遇到一个父子进程共享文件描述符的坑。

这个坑坑得我好惨啊,因为其具有偶发性,而且完全没有日志迹象查询,只知道在入口处数据就莫名其妙丢了。

之前同事也遇到过这种情况,只是定位怀疑有一段代码存在问题,总是觉得那段fork子进程的代码有问题,后来因为这个bug复现少,所以也不了了之。

后来因为系统用得越来越多,这个问题复现概率大大提高,于是开始打日志,每一个操作都打日志,最后在老大的英明神武下,发现了原来是在fork子进程之前没有关闭父进程使用的队列连接。

如果没有老大,估计打死我也不知道如何解决这个问题。

因为我完全不知道这个基础知识。

虽然后来老大跟我说了父子进程共享文件描述符的知识,也说了数据可能被子进程的队列连接socket的handle读走了。

但是我还是似懂非懂,于是乎,我决定好好补补操作系统。

除了因为这个坑,还因为每次老大跟我说内存,cpu,进程,线程我都没概念,所以我决定脑补下,^_^。

吐槽完总结下,了解操作系统就是为了理解计算机是如何工作的,以及程序如何运行的,从而优化程序更好地实现需求,达到预期目的。

(a)程序在运行的时候需要哪些资源,会受到哪些资源(如磁盘,内存,cpu等)限制。

比如日常程序每天导库的时候需要例行将历史记录清除,以防磁盘空间不足。

比如redis中的缓存过期数据也要定时清除,以防止redis内存不足而导致其他redis操作失败。

在设置redis的max_memory的时候,也要考虑随着业务增长,对redis内存空间要求会越来越大。

比如写程序的时候也要考虑程序可能要用到的最大内存,如果使用内存超过系统默认分配内存,将导致程序出错退出。

比如使用sort命令或awk联合数组对大文件排序的时候可能导致内存使用率100%。

比如使用fork子进程的,要考虑cpu的限制,不能fork很多子进程,最好使用taskset设置空出一两个核以使机器负载不至于过高,还有fork子进程要记得exit,否则资源不释放,会导致cpu飙到100%。

比如访问同一个资源(db或者redis)的时候要考虑qps,否则会使得资源cpu使用率过高,从而使得有些资源操作失败。

影响业务qps主要是用户的访问频率,除此之外在异步处理(用队列存储数据,用daemon处理数据)中,daemon数,队列数都会影响qps。

(b)分析系统的资源评价,从而使得系统优化。

考虑程序运行慢是受哪一部分的限制:CPU,内存,磁盘等。

耗费这些资源过多的是磁盘IO还是网络IO。

比如考虑优化网络IO,使
用pipeline将数据push到队列,比一个个push要快很多,使用hashMSet比hashSet要快,比如redis的qps过高,会引起cpu占用太高,从而引起程序太慢。

(c)为防止各个程序同时访问一个资源而引起冲突,会引进互斥的概念。

比如多个任务并行处理,如何分配唯一任务id。

或许有人说采用时间戳,可是当系统并行处理多个任务的时候,他们处理时差远少于1秒,1秒的间隔已经无法区分他们的时序。

有人可能说采用一个共享变量,每次自增来分配task_id。

但是如何保证并行处理的时候这个共享task_id唯一,不会出现冲突,这就要理解互斥。

在工作之前没有任何什么锁住表,锁住redis,互斥的概念,这些对我来说都是天书。

所以当工作遇到redis为了实现互斥,采用单线程。

并且redis在执行一个操作的时候,会锁住redis。

于是问题来了,当redis删除大数据(如6kw+长度的hash列表或者大的set,长的list)的时候,redis会被锁住很久(高达十几秒),此时对该redis的其他操作就无法执行。

在工作中也遇到这个坑,很多泪就不飙了...除了这个坑,当多个程序同时访问同一个redis的时候,发生了冲突,即竞争条件,从而使得redis操作失败,并且使得下面的程序无法执行。

这个时候可以考虑模拟假脱机打印机处理打印机资源冲突的方式。

将对redis操作请求入队列,单独使用一个daemon来消耗队列中redis操作请求一一处理之。

采用队列的方式,可以使得各redis的操作请求具有一定的时序。

相关文档
最新文档