wolf鬼刀
明明已经知道结局,但是当结局正真来临时,还是会伤心欲绝
展开
-
优化传输文件的性能- -零拷贝
优化传输文件的性能- -零拷贝文章目录优化传输文件的性能- -零拷贝一、为什么要有 DMA 技术?二、传统的文件传输有多糟糕?三、如何优化文件传输的性能?四、如何实现零拷贝?mmap + writesendfile五、PageCache 有什么作用?六、大文件传输用什么方式实现?七、总结磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统内核中的磁盘高速缓存原创 2020-10-04 15:36:16 · 1648 阅读 · 0 评论 -
缓存系统中的三座大山
缓存系统中的三座大山文章目录缓存系统中的三座大山一、什么是缓存1.无处不在的缓存2.高并发系统中的缓存2.1 缓存系统的作用2.2 缓存系统访问流程二、缓存系统的三大问题1.1缓存雪崩问题1.2 缓存雪崩解决方案2.1缓存穿透问题2.2 缓存穿透解决方案3.1 缓存击穿问题3.2缓存击穿解决方案三、总结一、什么是缓存1.无处不在的缓存缓存在计算机系统是无处不在,在CPU层面有L1-L3的Cache在Linux中有TLB加速虚拟地址和物理地址的转换在浏览器有本地缓存、手机有本地缓存等。 可原创 2020-09-21 19:01:07 · 669 阅读 · 0 评论 -
OS- -操作系统常见问题总结
OS- -操作系统常见问题总结文章目录OS- -操作系统常见问题总结1.解释一下什么是操作系统2.解释一下操作系统的主要目的是什么3.操作系统的种类有哪些4.操作系统结构单体系统分层系统微内核客户-服务器模式5.什么是按需分页6.多处理系统的优势7.什么是内核8.什么是实时系统9.什么是虚拟内存10.什么是进程和进程表11.什么是线程,线程和进程的区别12.使用多线程的好处是什么13.什么是RR调度算法14.导致系统出现死锁的情况15.RAID的不同级别16.什么是DMA17.多线程编程的好处是什么18.原创 2020-08-04 00:45:29 · 1407 阅读 · 2 评论 -
OS- -死锁(二)
OS- -死锁(二)文章目录OS- -死锁(二)一、死锁1.死锁避免单个资源的银行家算法2.破坏死锁破坏互斥条件破坏保持等待的条件破坏不可抢占条件破坏循环等待条件3.其他问题两阶段加锁通信死锁活锁饥饿4.总结一、死锁1.死锁避免单个资源的银行家算法 银行家算法是Dijkstra在1965年提出的一种调度算法,它本身是一种死锁的调度算法。它的模型是基 于一个城镇中的银行家,银行家向城镇中的客户承诺了一定数量的贷款额度。算法要做的就是判断请求 是否会进入一种不安全的状态。如果是,就拒绝请原创 2020-08-03 23:31:41 · 823 阅读 · 0 评论 -
OS- -死锁(一)
OS- -死锁(一)文章目录OS- -死锁(一)一、死锁1.资源可抢占资源和不可抢占资源资源获取2.死锁资源死锁的条件死锁模型3.鸵鸟算法4.死锁检测和恢复每种类型一个资源的死锁检测方式每种类型多个资源的死锁检测方式从死锁中恢复一、死锁 计算机系统中有很多独占性的资源,在同一时刻只能每个资源只能由一个进程使用我们之前经常提 到过打印机,这就是一个独占性的资源,同一时刻能有两个打印机同时输出结果,否则会引起文件系统 的瘫痪。所以,操作系统具有授权一个进程单独访问资源的能力。 两个进程原创 2020-08-03 23:05:14 · 736 阅读 · 0 评论 -
OS- -I/O之盘和时钟
OS- -I/O之盘和时钟文章目录OS- -I/O之盘和时钟一、盘1.盘硬件磁盘RAID磁盘格式化2.磁盘臂调度算法3.错误处理4.稳定存储器二、时钟1.时钟硬件2.时钟软件3.软定时器一、盘盘可以说是硬件里面比较简单的构造了,同时也是最重要的。下面我们从盘谈起,聊聊它的物理构造1.盘硬件 盘会有很多种类型。其中最简单的构造就是磁盘(magnetic hard disks),也被称为hard disk,HDD等。 磁盘通常与安装在磁臂上的磁头配对,磁头可将数据读取或者将数据写入磁盘,因此磁原创 2020-08-03 15:54:25 · 730 阅读 · 0 评论 -
OS- -I/O之I/O软件原理及层次结构
OS- -I/O之I/O软件原理及层次结构文章目录OS- -I/O之I/O软件原理及层次结构一、I/O软件原理1.I/O软件目标设备独立性错误处理同步和异步传输缓冲共享和独占2.使用程序控制I/O3.使用中断驱动I/O4.使用DMA的I/O二、I/O层次结构1.中断处理程序2.设备驱动程序3.与设备无关的I/O软件缓冲错误处理设备驱动程序统一接口分配和释放设备无关的块4.用户空间的I/O软件一、I/O软件原理1.I/O软件目标设备独立性 现在让我们转向对I/O软件的研究,I/O软件设计一个很重要原创 2020-08-03 14:17:04 · 1342 阅读 · 1 评论 -
OS- -I/O之I/O设备
OS- -I/O之I/O设备文章目录OS- -I/O之I/O设备一、I/O1.I/O设备块设备块设备的缺点字符设备设备控制器内存映射I/O内存映射I/O的优点和缺点直接内存访问DMA工作原理中断精确中断和不精确中断一、I/O 我们之前提到了操作系统的三个抽象,它们分别是进程、地址空间和文件,除此之外,操作系统 还要控制所有的I/O设备。 操作系统必须向设备发送命令,捕捉中断并处理错误。它还应该在设备 和操作系统的其余部分之间提供一个简单易用的接口。不同的人对I/O。硬件的理解也不同。对于原创 2020-08-03 13:30:16 · 859 阅读 · 0 评论 -
OS- -文件系统(四)
OS- -文件系统(四)文章目录OS- -文件系统(四)一、文件系统的管理和优化1.磁盘配额2.文件系统备份物理转储和逻辑转储3.文件系统的一致性4.文件系统性能高速缓存块提前读减少磁盘臂运动磁盘碎片整理一、文件系统的管理和优化1.磁盘配额 为了防止一些用户占用太多的磁盘空间,多用户操作通常提供一种磁盘配额(enforcing disk quotas)的机制。 系统管理员为每个用户分配最大的文件和块分配,并且操作系统确保用户不会超过 其配额。 在用户打开一个文件时,操作系统会找到文件属性和磁盘原创 2020-08-03 00:35:17 · 874 阅读 · 0 评论 -
OS- -文件系统(三)
OS- -文件系统(三)文章目录OS- -文件系统(三)一、文件系统的实现1.共享文件2.日志结构文件系统3.日志文件系统4.虚拟文件系统二、文件系统的管理和优化1.磁盘空间管理块大小记录空闲块一、文件系统的实现1.共享文件 当多个用户在同一个项目中工作时,他们通常需要共享文件。如果这个共享文件同时出现在多个用户目 录下,那么他们协同工作起来就很方便。下面的这张图我们在上面提到过,但是有一个更改的地方,就 是C的一个文件也出现在了 B的目录下。 如果按照如上图的这种组织方式而言,那么B的原创 2020-08-03 00:14:49 · 795 阅读 · 0 评论 -
OS- -文件系统(二)
OS- -文件系统(二)文章目录OS- -文件系统(二)一、文件系统的实现1.文件系统布局引导块超级块空闲空间块碎片inode2.文件的实现连续分配链表分配使用内存表进行链表分配inode3.目录的实现一、文件系统的实现在对文件有了基本认识之后,现在是时候把目光转移到文件系统的实现上了。之前用户关心的一直都 是文件是怎样命名的、可以进行哪些操作、目录树是什么,如何找到正确的文件路径等问题。而设计人 员关心的是文件和目录是怎样存储的、磁盘空间是如何管理的、如何使文件系统得以流畅运行的问题, 下面我们原创 2020-08-02 23:34:57 · 890 阅读 · 0 评论 -
OS- -文件系统(一)
OS- -文件系统文章目录OS- -文件系统一、文件1.文件命名2.文件结构3.文件类型4.文件访问5.文件属性6.文件操作二、目录1.一级目录系统2.层次目录系统3.路径名4.目录操作一、文件 所有的应用程序都需要存储和检索信息。进程运行时,它能够在自己的存储空间内存储一定量的信 息。 然而,存储容量受虚拟地址空间大小的限制。对于一些应用程序来说,存储空间的大小是充足 的,但是对于其他一些应用程序,比如航空订票系统、银行系统、企业记账系统来说,这些容量又显得 太小了。 第二个问题是,当进程终止原创 2020-08-02 22:43:25 · 945 阅读 · 0 评论 -
OS- -内存之页面置换算法
OS- -内存之页面置换算法文章目录OS- -内存之页面置换算法一、内存之页面置换算法1.最优页面置换算法2.最近未使用页面置换算法3.先进先出页面置换算法4.第二次机会页面置换算法5.时钟页面置换算法6.最近最少使用页面置换算法(LRU)7.用软件模拟LRU8.工作集页面置换算法9.工作集时钟页面置换算法10.页面置换算法小结一、内存之页面置换算法 当发生缺页异常时,操作系统会选择一个页面进行换出从而为新进来的页面腾出空间。 如果要换出的页 面在内存中已经被修改,那么必须将其写到磁盘中以使磁盘副原创 2020-08-02 19:54:32 · 1121 阅读 · 0 评论 -
OS- -内存之虚拟内存
OS- -内存之虚拟内存文章目录OS- -内存之虚拟内存一、虚拟内存1.分页存在映射的页如何映射未映射的页如何映射2.页表页表项的结构3.加速分页过程转换检测缓冲区软件TLB管理3.针对大内存的页表多级页表倒排页表一、虚拟内存 尽管基址寄存器和变址寄存器用来创建地址空间的抽象,但是这有一个其他的问题需要解决:管理软件 的不断增大(managing bloatware)虽然内存的大小增长迅速,但是软件的大小增长的要比内存还要 快。在1980年的时候,许多大学用一台4MB的VAX计算机运行分时原创 2020-08-02 18:32:27 · 708 阅读 · 0 评论 -
OS- -内存之地址空间
OS- -内存之虚拟内存文章目录OS- -内存之虚拟内存一、内存1.无存储器抽象运行多个程序2.一种存储器抽象:地址空间地址空间的概念基址寄存器和变址寄存器交换技术交换过程空闲内存管理一、内存 主存(RAM)是一件非常重要的资源,必须要认真对待内存。虽然目前大多数内存的增长速度要比旧M7094要快的多,但是,程序大小的增长要比内存的增长还快很多。 不管存储器有多大,程序大小的增长 速度比内存容量的增长速度要快的多。下面我们就来探讨一下操作系统是如何创建内存并管理他们的。经过多年的研究发现,原创 2020-08-02 16:03:08 · 1056 阅读 · 0 评论 -
OS- -调度(二)
OS- -调度(二)文章目录OS- -调度(二)一、调度3.交互式系统中的调度轮询调度(时间片法)优先级调度多级队列最短进程优先保证调度彩票调度公平分享调度4.实时系统中的调度5.调度策略和机制6.线程调度一、调度3.交互式系统中的调度交互式系统中在个人计算机、服务器和其他系统中都是很常用的,所以有必要来探讨一下交互式调度轮询调度(时间片法) 一种最古老、最简单、最公平并且最广泛使用的算法就是轮询算法(round-robin)每个进程都会被 分配一个时间段,称为时间片(quantum)原创 2020-08-02 00:34:52 · 699 阅读 · 0 评论 -
OS- -调度(一)
OS- -调度(一)文章目录OS- -调度(一)一、调度1.调度介绍进程行为何时调度什么是空闲进程调度算法的分类调度算法的目标2.批处理中的调度先来先服务最短作业优先最短剩余时间优先一、调度 当一个计算机是多道程序设计系统时,会频繁的有很多进程或者线程来同时竞争CPU时间片。 当两个 或两个以上的进程/线程处于就绪状态时,就会发生这种情况。如果只有一个CPU可用,那么必须选择 接下来哪个进程/线程可以运行。 操作系统中有一个叫做调度程序(scheduler)的角色存在,它就是 做这件事儿的,该程原创 2020-08-02 00:05:43 · 683 阅读 · 0 评论 -
OS--进程间通信详解(二)
OS–进程间通信详解(二)文章目录OS--进程间通信详解(二)一、进程间通信1.互斥量FutexesPthreads中的互斥量2.管程3.消息传递消息传递系统的设计要点用消息传递解决生产者•消费者问题4.屏障5.避免锁:读-复制-更新一、进程间通信1.互斥量如果不需要信号量的计数能力时,可以使用信号量的一个简单版本,称为mutex(互斥量)。 互斥量的 优势就在于在一些共享资源和一段代码中保持互斥。由于互斥的实现既简单又有效,这使得互斥量在实 现用户空间线程包时非常有用。 互斥量是一个处于两种原创 2020-08-01 22:32:03 · 900 阅读 · 0 评论 -
OS--进程间通信详解(一)
OS–进程间通信详解(一)文章目录OS--进程间通信详解(一)一、进程间通信1.竞态条件2.临界区3.忙等互斥屏蔽中断锁变量严格轮询法Peterson 解法TSL指令4.睡眠与唤醒生产者-消费者问题5.信号量一、进程间通信进程是需要频繁的和其他进程进行交流的。例如,在一个shell管道中,第一个进程的输出必须传递给 第二个进程,这样沿着管道进行下去。因此,进程之间如果需要通信的话,必须要使用一种良好的数据 结构以至于不能被中断。下面我们会一起讨论有关进程间通信(Inter Process原创 2020-08-01 21:45:42 · 1005 阅读 · 0 评论 -
OS- -线程详解
OS- -线程详解文章目录OS- -线程详解一、线程1.线程的使用多线程解决方案单线程解决方案状态机解决方案2.经典的线程模型线程系统调用3.POSIX线程4.线程实现在用户空间中实现线程在用户空间实现线程的优势在用户空间实现线程的劣势5.在内核中实现线程6.混合实现一、线程 在传统的操作系统中,每个进程都有一个地址空间和一个控制线程。事实上,这是大部分进程的定义。 不过,在许多情况下,经常存在同一地址空间中运行多个控制线程的情形,这些线程就像是分离的进程。下面我们就着重探讨一下什么是线程1原创 2020-08-01 20:43:53 · 1378 阅读 · 0 评论 -
OS- -进程详详解
OS- -进程详详解文章目录OS- -进程详详解一、进程进程模型进程的创建进程的终止进程的层次结构进程状态进程的实现一、进程 操作系统中最核心的概念就是进程,进程是对正在运行中的程序的一个抽象。操作系统的其他所有内 容都是围绕着进程展开的。 进程是操作系统提供的最古老也是最重要的概念之一。即使可以使用的 CPU只有一个,它们也支持(伪)并发操作。它们会将一个单独的CPU抽象为多个虚拟机的CPU。 可以说:没有进程的抽象,现代操作系统将不复存在。 所有现代的计算机会在同一时刻做很原创 2020-08-01 00:03:34 · 1230 阅读 · 0 评论 -
OS- -系统调用
OS- -系统调用文章目录OS- -系统调用一、系统调用用于进程管理的系统调用用于文件管理的系统调用用于目录管理的系统调用其他系统调用Win 32 API一、系统调用 我们已经可以看到操作系统提供了两种功能:为用户提供应用程序抽象和管理计算机资源。 对于大部分 在应用程序和操作系统之间的交互主要是应用程序的抽象,例如创建、写入、读取和删除文件。计算机 的资源管理对用户来说基本上是透明的。 因此,用户程序和操作系统之间的接口主要是处理抽象。为了 真正理解操作系统的行为,我们必须仔细的分析这个接口。原创 2020-07-31 22:35:58 · 936 阅读 · 0 评论 -
OS- -操作系统概念
OS- -操作系统概念文章目录OS- -操作系统概念一、操作系统概念进程地址空间文件保护shell部分操作系统提供了特定的基础概念和抽象,例如进程、地址空间、文件等,它们是需要理解的核心 内容。一、操作系统概念进程 操作系统一个很关键的概念就是 进程(Process)。进程的本质就是操作系统执行的一个程序。 与每个 进程相关的是地址空间(address space),这是从某个最小值的存储位置(通常是零)到某个最大值的 存储位置的列表。 在这个地址空间中,进程可以进行读写操作。地址空间中存放原创 2020-07-31 22:03:58 · 842 阅读 · 0 评论 -
OS- -请求分页系统、请求分段系统和请求段页式系统(二)
OS- -请求分页系统、请求分段系统和请求段页式系统(二)文章目录OS- -请求分页系统、请求分段系统和请求段页式系统(二)一、基本分段存储管理方式1.分段系统的组成:2.段表3.查找过程4.分段和分页的对比二、段页式内存管理方式1.分页, 分段管理的优缺点分析2.段页式管理的结构3.段表, 页表4.查找过程三、虚拟内存四、请求分页管理方式1.页表机制2.缺页中断机构3.页面置换算法四、页面分配策略1.驻留集2.几种分配策略3.何时调入页面4.何处调入页面5.抖动(颠簸)现象6.工作集一、基本分段存储管原创 2020-07-30 18:10:54 · 2609 阅读 · 0 评论 -
OS- -请求分页系统、请求分段系统和请求段页式系统(一)
OS- -请求分页系统、请求分段系统和请求段页式系统(一)文章目录OS- -请求分页系统、请求分段系统和请求段页式系统(一)一、内存管理的概念二、内存空间的扩充覆盖与交换三、内存空间的分配和回收连续分配管理方式非连续分配管理方式四、基本分页存储管理1.页框和页面2.地址转换的实现页号和页内偏移量页表基本地址变换机构具有快表的地址变换机构两级页表进程应该放在内存的哪里?操作系统如何记录哪些内存区域已经被分配了, 哪些还空闲?当进程运行结束之后, 如何将进程占用的内存空间释放?一、内存原创 2020-07-30 17:43:20 · 3671 阅读 · 0 评论 -
OS- -计算机硬件简介
OS- -计算机硬件简介文章目录OS- -计算机硬件简介计算机硬件简介计算机硬件简介CPU多线程和多核芯片内存寄存器高速缓存主存磁盘I/O设备总线计算机启动过程计算机硬件简介现代计算机系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输 出设备构成。然而,程序员不会直接和这些硬件打交道,而且每位程序员不可能会掌握所有计算机系统的细节,这样 我们就不用再编写代码了所以 在硬件的基础之上,计算机安装了一层软件,这层软件能够通过响应用 户输入的指令达到控制硬件的效果,从而原创 2020-07-30 00:10:14 · 967 阅读 · 0 评论 -
计算机基础- -应用和硬件的关系
计算机基础- -应用和硬件的关系文章目录计算机基础- -应用和硬件的关系一、应用和硬件的关系1.支持硬件输入输出的IN指令和OUT指令2.测试输入和输出程序3.外围设备的中断请求4.用中断来实现实时处理5.利用DMA实现短时间内大量数据传输6.文字和图片的显示机制一、应用和硬件的关系 我们作为程序员一般很少直接操控硬件, 我们一般通过C、Java等高级语言编写的程序起到间接控制 硬件的作用。所以大家很少直接接触到硬件的指令,硬件的控制是由Windows操作系统全权负责的。虽然程序员没法直接控制原创 2020-07-29 23:07:15 · 939 阅读 · 0 评论 -
计算机基础- -认识汇编
计算机基础- -汇编语言文章目录计算机基础- -汇编语言一、汇编语言和本地代码二、通过编译器输出汇编语言的源代码三、不会转换成本地代码的伪指令四、汇编语言的语法是操作码+操作数1.指令解析最常用的mov指令对栈进行push和pop2.函数的调用机制3.函数的内部处理4.全局变量和局部变量5.临时确保局部变量使用的内存空间6.循环控制语句的处理7.条件分支的处理方法8.了解程序运行逻辑的必要性一、汇编语言和本地代码 计算机CPU只能运行本地代码(机器语言) 程序, 用C语言等高级语言编写的代码, 需要原创 2020-07-29 20:39:38 · 1010 阅读 · 0 评论 -
计算机基础- -操作系统环境
计算机基础- -操作系统环境文章目录计算机基础- -操作系统环境一、操作系统环境二、Windows操作系统克服了CPU以外的硬件差异三、不同操作系统的API差异性四、FreeBSD Port帮你轻松使用源代码五、可以使用虚拟机获取其他环境提供相同运行环境的Java虚拟机六、BIOS和引导七、操作系统功能的历史八、把操作系统放在第一位九、系统调用和编程语言的移植性十、操作系统和高级编程语言使硬件抽象化十一、Windows操作系统的特征1.32位操作系统2.通过API函数集来提供系统调用3.提供采用了GUI的原创 2020-07-29 19:14:45 · 4275 阅读 · 0 评论 -
计算机基础- -认识磁盘
计算机基础- -认识磁盘文章目录计算机基础- -认识磁盘一、认识磁盘程序不读入内存就无法运行二、磁盘构件1.磁盘缓存2.虚拟内存虚拟内存与内存的交换方式三、节约内存1.通过DLL文件实现函数共有2.通过调用_stdcall来减少程序文件的大小3.磁盘的物理结构一、认识磁盘 首先,磁盘和内存都具有存储功能,它们都是存储设备。 区别在于:内存是通过电流来实现存储;磁盘则是通过磁记录技术来实现存储。内存是一种高速,造假昂贵的存储设备;而磁盘则是速度较慢、造假低廉的存储设备电脑断电后,内存中的数据会原创 2020-07-29 17:24:12 · 2135 阅读 · 0 评论 -
计算机基础- -计算机为什么要使用二进制
计算机基础- -计算机为什么要使用二进制文章目录计算机基础- -计算机为什么要使用二进制一、为什么用二进制表示二、什么是二进制数三、移位运算和乘除的关系四、便于计算机处理的补数五、算数右移和逻辑右移的区别六、逻辑运算的窍门我们都知道,计算机的底层都是使用二进制数据进行数据流传输的,那么为什么会使用二进制表示计算机呢?或者说,什么是二进制数呢?在拓展一步,如何使用二进制进行加减乘除?二进制数如何表示负数呢?一、为什么用二进制表示我们大家知道,计算机内部是由IC电子元件组成的,其中CPU和内存也是IC原创 2020-07-29 00:46:22 · 2349 阅读 · 0 评论 -
计算机基础- -认识内存
计算机基础- -认识内存文章目录计算机基础- -认识内存一、什么是内存二、内存的物理结构1.内存的读写过程2.内存的现实模型三、内存的使用1.指针2.数组是内存的实现3.栈和队列4.链表5.二叉树一、什么是内存内存(Memory) 是计算机中最重要的部件之一,它是程序与CPU进行沟通的桥梁计算机中所有程序的运行都是在内存中进行的,因此内存对计算机的影响非常大,内存又被称为主存,其作用是存放CPU中的运算数据, 以及与硬盘等外部存储设备交换的数据。只要计算机在运行中, CPU就会把需要运算的数据调原创 2020-07-29 00:03:28 · 9925 阅读 · 8 评论 -
计算机基础--认识CPU
认识CPU文章目录认识CPU一、CPU是什么二、CPU实际做什么三、CPU的内部结构1.程序编译执行的过程2.CPU是寄存器的集合体计算机语言汇编语言3.程序计数器大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员, 所以, 不管你是玩儿硬件的还是做软件的, 你的世界都少不了计算机最核心的-CPU一、CPU是什么CPU的全称是Central Processing Unit, 它是你的电脑中最硬核的组件, 这种说法一点不为过,一点原创 2020-07-28 22:55:01 · 1473 阅读 · 0 评论 -
进程和线程基础知识(已经是最详细的啦)
进程和线程基础知识文章目录进程和线程基础知识一、前言二、进程1.引入2.并发和并行有什么区别?3.进程与程序的关系的类比4.进程的状态5.进程的控制结构6.进程的控制7.进程的上下文切换三、线程1.为什么使用线程?2.什么是线程?3.线程的优缺点?4.线程与进程的比较5.线程的上下文切换6.线程的实现四、调度1.调度程序2.调度时机3.调度原则4.调度算法一、前言先来看看一则小故事我们写好的一行行代码,为了让其工作起来,我们还得把它送进城(进程)里,那既然进了城里,那肯定不能胡作非为了。城里人有城原创 2020-07-26 23:57:54 · 1002 阅读 · 0 评论 -
银行家算法详解
银行家算法详解文章目录银行家算法详解一、银行家算法详解1.背景简介2.安全序列3.实现方法:4.检查算法描述5.案例二、简单实现一、银行家算法详解 银行家算法是一种避免死锁的方法1.背景简介在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。银行家原创 2020-07-22 17:06:18 · 13240 阅读 · 0 评论 -
cookie 和 session 详解
cookie 和 session 详解文章目录cookie 和 session 详解一、Cookie机制1.Cookie引入2.什么是Cookie3.Cookie的不可跨域名性4. Unicode编码:保存中文5. BASE64编码:保存二进制图片6.设置Cookie的所有属性7. Cookie的有效期8. Cookie的修改、删除9. Cookie的域名10. Cookie的路径11. Cookie的安全属性二、什么是Session1.Session2.Session的生命周期3.Sess原创 2020-06-03 17:33:19 · 672 阅读 · 0 评论 -
FastDFS安装与部署
FastDFS安装与部署文章目录FastDFS安装与部署1. 什么是FastDFS2.文件上传流程3. 文件下载流程4. 简易FastDFS架构5. FastDFS安装5.1 安装fastdfs依赖包5.2创建软链接5.3 安装fastdfs5.4 配置跟踪服务器tracker5.5 配置存储服务器storage5.6 启动tracker 和 storage5.7 测试是否安装成功3. 上传文件测试:1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统。 Fas原创 2020-06-01 20:21:48 · 447 阅读 · 0 评论 -
C++方向复习总结
文章目录一、基础知识1.内存对齐???2. static关键字的作用3. 请你来介绍一下STL的allocaotr4.请你来说一说STL迭代器删除元素5. 请你说一说vector和list的区别,应用,越详细越好6. 请你来回答一下include头文件的顺序以及双引号””和尖括号<>的区别?7. 请你回答一下malloc的原理,另外brk系统调用和mmap系统调用的作用分别是什么?8....原创 2020-04-16 11:46:23 · 1865 阅读 · 0 评论 -
乐观锁&悲观锁&自旋锁
乐观锁&悲观锁&自旋锁文章目录乐观锁&悲观锁&自旋锁一、悲观锁二、乐观锁三、乐观锁常见的两种实现方式1. 版本号机制2. CAS算法3. CAS缺点四、乐观锁和悲观锁的使用场景五、自选锁1.自选锁的原理2.自选锁的缺陷3.自旋锁的使用场景一、悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻...原创 2020-04-01 20:39:37 · 3223 阅读 · 0 评论 -
阿里云linux上安装与配置Mysql
记录下在阿里云linux上安装与配置Mysql环境:阿里云ECS服务器,系统为centos7.2用户:root文章目录删除原来的数据库:下载与安装MySQL:关于登录MySQL:配置远程登录:删除原来的数据库:centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下:[root@localhost ~]# rpm -qa...原创 2020-03-15 08:47:44 · 378 阅读 · 0 评论