自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(340)
  • 资源 (1)
  • 收藏
  • 关注

原创 艺术~为减少字符设计的短URL服务

设计原因之前需要写一个告警服务,告警需要一短信的方式通知对方,并且在短信中要给到监控报告的URL地址, 但是发送短信需要调用三大运营商的接口,短信息有字数限制的,发送一条短信最多七十个字,160个英文或数字字符,或者70个中文字符,也就说,你每次发信息,你发送超过70字的短信是按2条记费的,超过140个字按3条记费,依次类推。设计好处减少短信内容,为公司降低开销好看。 比起一大堆不知所以的参数,短链接更加简洁友好。安全。 不暴露访问参数。核心原理其实本质就是把长的url做一个映射, 变成

2021-07-17 13:28:13 20

原创 Go~复合数据类型,数组、Slice、Map、结构体

文章目录数组Sliceappend函数copy函数Slice内存技巧Map结构体结构体字面值结构体比较结构体嵌入和匿名成员数组数组的长度是固定的,因此在Go语言中很少直接使用数组。和数组对应的类型是Slice(切片),它是可以增长和收缩的动态序列,slice功能也更灵活,但是要理解slice工作原理的话需要先理解数组。数组的每个元素可以通过索引下标来访问,索引下标的范围是从0开始到数组长度减1的位置。内置的len函数将返回数组中元素的个数。var a [3]int // ar

2021-05-05 21:34:26 91

原创 Go~基本数据类型,整型、浮点型、复数、布尔型、字符串、常量

文章目录整型浮点数复数布尔型字符串常量整型Go语言同时提供了有符号和无符号类型的整数运算。这里有int8、int16、int32和int64四种截然不同大小的有符号整数类型,分别对应8、16、32、64bit大小的有符号整数,与此对应的是uint8、uint16、uint32和uint64四种无符号整数类型。还有两种一般对应特定CPU平台机器字大小的有符号和无符号整数int和uint;其中int是应用最广泛的数值类型。这两种类型都有同样的大小,32或64bit,但是我们不能对此做任何的假设;因为不同的

2021-05-05 21:03:34 84

原创 Go~简介与特性

文章目录Go语言简介Go 是编译型语言Go的特点语法简单并发模型内存分配垃圾回收静态链接标准库工具链为并发而生的Go语言Go语言简介Go语言不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。可以进行网络编程、系统编程、并发编程、分布式编程。具有“部署简单、并发性好、语言设计良好、执行性能好”等优势。Go 从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想。因为Go语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同。但是它通过

2021-05-05 20:05:03 89

原创 Java~新时代程序员的编码风格:lambda表达式、函数式接口、Stream流式计算、链式编程、异步调用

文章目录前言Lambda表达式前言如果有同学去逛一些新出来的开源项目和框架,你肯定会看到大量的lambda表达式、函数式接口、链式编程、Stream流式计算。所以现在如果还不熟悉这几个技术,你就会发现看源码非常吃力。Lambda表达式基本语法: (parameters) -> expression 或 (parameters) ->{ statements; }Lambda表达式由三部分组成:paramaters:类似方法中的形参列表,这里的参数是函数式接口里的参数。这里的参数类

2021-04-02 09:10:45 134

原创 艺术~在单机和分布式环境下的限流算法(漏桶算法、令牌桶算法)

文章目录前言限流算法滑动窗口限流漏桶算法令牌桶算法单机限流和分布式限流限流组件前言今天总结学习一下限流的相关内容,包括常见的限流算法、单机限流场景、分布式限流场景以及一些常见限流组件。那就引来第一个问题,什么是限流?为什么要限流?首先来解释下什么是限流?在日常生活中限流很常见,例如去有些景区玩,每天售卖的门票数是有限的,例如 2000 张,即每天最多只有 2000 个人能进去游玩。这就是一个限流,那么再来回答第二个问题为什么要限流?依旧刚刚那个例子,如果不限流会怎么样,就会把景区挤爆。那换在

2021-03-30 10:10:22 142

原创 数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,时间复杂度均为O(1))

文章目录前言LRU实现使用LinkedHashMap实现自己实现LRU前言比如我们在使用Redis中如果出现内存不够的时候,它会有一个内存淘汰策略,比如Random和LRU和LFU,而且我们使用最多的也就是LRU,所以我今天讲讲这个是如何实现的。LRULRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。新数据插入到链表头部;每当缓存命中(即缓存数据被访问),则将数据移到链表头

2021-03-27 22:44:49 127

原创 数据结构~倒排索引算法(InnoDB全文索引的实现原理)

文章目录前言基本概念文档文档集合文档编号单词编号倒排索引单词词典倒排文件倒排列表前言在各大搜索引擎中,输入关键字都可以找到我们想要的文章,还有InnoDB引擎中的全文索引,为什么能提高大量数据的检索,他们都有个共同的原因就是底层都是倒排索引算法。我们先了解一些基本概念。基本概念文档一般搜索引擎的处理对象是互联网网页,而文档这个概念更要宽泛一些,代表以文本形式存在的存储对象。相比于网页来说,涵盖更多形式,比如Word、PDF、html、XML等不同格式的文件都可以称为文档,再比如一封邮件、一条短

2021-03-26 13:16:59 209 1

原创 艺术~安全至上(SQL注入、CSRF攻击、DDoS攻击)

文章目录前言SQL 注入前言处于现在这个互联网时代,一些在web开发中常见的漏洞我也必须重视起来,比如下面我介绍的第一个问题sql注入问题。如果这个问题我们不注意,那我们的数据可能是有风险全部暴露出去的,而且导致这个问题还很简单,只需要在select上增加一个or 1=1 即可。SQL 注入...

2021-03-23 23:46:00 1263 7

原创 大数据~大数据预处理整体架构(数据清洗、数据集成、数据转换、数据消减)

文章目录前言数据清洗数据集成数据转换数据消减前言近年来,信息技术迅猛发展,尤其是以互联网、物联网、信息获取、社交网络等为代表的技术日新月异,促使手机、平板电脑、pc 等各式各样的信息传感器随处可见,虚拟网络快速发展,现实世界快速虚拟化,数据的来源及其数量正以前所未有的速度增长。中国的数据规模将超过美国位居世界第一。中国成为数据大国并不奇怪,因为中国是人口大国、制造业大国、互联网大国、物联网大国,这都是最活跃的数据生产主体,未来几年,中国成为数据大国也是逻辑上的必然结果。数据预处理主要包括数据清洗(D

2021-03-23 19:29:47 734

原创 艺术~如何保证数据100%发送、幂等设计方案

文章目录如何保证数据100%发送前言常见幂等与非幂等产生原因什么时候需要幂等的不足解决方案页面重定向乐观锁分布式锁token令牌如何保证数据100%发送(1)订单服务投递消息给MQ中间件(2)物流服务监听MQ中间件消息,从而进行消费以RabbitMQ举例。下边说一个场景,如果MQ服务器突然宕机了会出现什么情况?是不是我们订单服务发过去的消息全部没有了吗?是的,一般MQ中间件为了提高系统的吞吐量会把消息保存在内存中,如果不作其他处理,MQ服务器一旦宕机,消息将全部丢失。这个是业务不允许的,造成很

2021-03-22 10:05:32 56 4

原创 艺术~延迟双删保证Redis和Mysql数据一致性

文章目录延迟双删总结流程设置缓存过期时间延迟双删这个问题是涉及到缓存redis和主从mysql的数据更新,在高并发中,是很容易出现缓存和数据库之间数据不一致问题的。如果出现不一致的情况是很危险的,比如我们常见的限量抢购,它既要响应快,又要数据可靠。我什么说是双删呢?首先我们知道redis中缓存的数据是用来读取的,写数据一般都是要写入mysql中。如果先删了缓存,还没有来得及写MySQL,另一个线程就来读,发现缓存空,则去数据库读取数据写入缓存,此时缓存中为脏数据。如果先写库,在删除缓存前,写库

2021-03-21 21:15:42 463 3

原创 数据结构~红黑树(特性、查找、插入、删除)

文章目录前言概念规则查询插入旋转分两种实际插入情况分析对于不同情况的处理删除操作(寻找继承人)会遇到的情况对于不同情况的处理前言红黑树是一个查找效率和构建效率都比较优秀的一种数据结构。比如java8中的hashmap在扩容的时候,如果table长度达到64,并且链表长度达到8就会对其进行转红黑树的操作。每次插入新的数据的时候,会变色和旋转,来让高度保持在log2(N)这个合理高度内概念首先要知道,红黑树是一种特殊的二叉树!形状和AVL树很像,但是AVL树是有平衡因子进行强制平衡,而红黑树是由自

2021-03-21 17:24:39 209

原创 艺术~分布式事务CAP和BASE理论、2PC、3PC、TCC模型

文章目录前言CAP理论一致性Consistency可用性Availability分区容错性PartitionToleranceBASE思想基本可用BasicallyAvailiable软状态SoftState最终一致性EventualConsistency对比总结强一致性解决方案2PC2PC的延迟问题。3PC最终一致性解决方案补偿模式关键点解决方案TCC模式TCC总结前言传统的串行式系统设计或者使用mvc风格的系统设计保证数据一致性都是使用关系型数据库,好处是使用ACID事务特性,保证数据一致性只需要开

2021-03-21 11:30:16 1312 3

原创 Java~stream处理中map与flatMap的比较和使用案例

文章目录前言共同点和区别共同点区别使用案例前言使用Java8的新特性Stream流式处理,可以提高对于集合的一些操作效率,再配合lambda表达式,可以极致的简化代码,尤其还有并行流这个东东,可以去 了解一下,在一些场合还是可以提高效率的,而且编码起来也不费事。并且流式处理的核心就是一个浅拷贝和引用管道,其内部实现了一个引用管道ReferencePipeline, 他把需要处理的数据的引用拷贝了一份,然后处理数据,最后收集结果也是将这些引用放到了另一个集合中。今天要讲的就是stream处理中的map

2021-03-20 20:18:38 1113 8

原创 艺术~常见的不可逆加密、对称加密、非对称加密

文章目录前言数字签名不可逆加密MD5SHA1算法对称加密DES算法3DES算法AES算法(重点)非对称加密RSA算法ECC算法对称算法与非对称加密算法前言加密是我们保证数据安全的一个很重要的手段,尤其是现在广泛的token使用上,加密手段有着举足轻重的地位。一个好的加密算法主要体现在俩点:不易被破解加密解密的效率要好加密在就比如我现在的工作, 主要会用在一些数字签名的生成上或者一些数据的验证上,来进行数据安全的保护和数据完整性的保护。数字签名数字签名,简单来说就是通过提供 可鉴别 的 数

2021-03-19 13:34:01 193 2

原创 艺术~几种唯一ID的生成的方案

文章目录前言方案特性ID的生成方案1. UUID2. 数据库自增ID3.Twitter的snowflake算法(雪花算法)7. 美团Leaf解决时钟问题前言ID有着很重要的作用,就如同我们的身份证ID,是标明唯一的一个号码,尤其在大数据时代,数据成千上万,如果我们还想通过ID来标明身份就会有一定的困难,会有ID冲突的风险。特别是在复杂的分布式系统业务场景中如果ID冲突,将会面临很大的业务问题。我们在设计ID生成方案的时候往往考虑一下几个特点方案特性唯一性:确保生成的ID是全网唯一的。有序递增性

2021-03-18 20:06:10 242

原创 数据结构~总结一下B树、B-树、B+树、B*树的特点

文章目录前言B树(二叉查找树)B-树前言数据在计算机中的存储结构主要为顺序存储结构、链式存储结构、索引存储结构、散列存储结构。顺序存储一般就是我们常见的数据,存储少量数据还好,如果存储大量数据可能会出现内存不够的情况,而且数据一旦需要移动和删除是很耗时的链式存储改进了上述的缺点,但是链式存储的查找效率是很低的。尤其是范围查看是非常低的散列查找是非常快的,尤其使用Hash的思想可以在几乎是O(1)的复杂度下就可以找到对应数据,但是对于范围查找还是不友好索引查找就是我们今天要讲的树+链式的结构,它

2021-03-17 13:41:21 208 1

原创 Git~掌握安装配置、工作流程、基本命令操作、分支管理和撤回

文章目录安装配置配置账号密码配置密匙工作流程基本概念文件的四种状态基本命令操作与远程仓库建立连接上传代码分支管理分支上传分支合并查看与撤回安装配置安装就不多讲了,很简单而且网上有很多文章,而且直接去官网下载安装就好https://git-scm.com/download总之输入git version 能出来版本就说明安装好了配置账号密码配置我在这简单记录一下命令, 比如配置你的name和email, 注意name和email是你自己的!git config --global user.n

2021-03-16 20:35:46 136

原创 MySQL~为什么推荐自增 id 作为主键

文章目录页的概念页分裂与页合并页的概念在计算机里,无论是内存还是磁盘,操作系统都是按页的大小进行读取的(页大小通常为 4 kb),磁盘每次读取都会预读,会提前将连续的数据读入内存中,这样就避免了多次 IO,这就是计算机中有名的局部性原理,即我用到一块数据,很大可能这块数据附近的数据也会被用到,干脆一起加载,省得多次 IO 拖慢速度, 这个连续数据有多大呢,必须是操作系统页大小的整数倍。所以MySQL 的页,默认值为 16 KB,也就是说对于 B+ 树的节点,最好设置成页的大小(16 KB),这样一个

2021-03-15 23:33:43 355

原创 Maven~总结一下clean、compile、test、package、install、deploy分别有什么作用

文章目录前言clean 生命周期default 生命周期site 生命周期前言软件开发人员每天都要对项目进行清理、编译、测试、打包以及安装部署。通过学习、分析、反思和总结,Maven 抽象出了一个适合于所有项目的构建生命周期,并将它们统一规范。具体步骤包括清理、初始化、编译、测试、打包、集成测试、验证、部署和生成站点。这些步骤几乎适合所有的项目。Maven 拥有三套独立的生命周期,它们分别是 clean、default 和 site。clean 生命周期的目的是清理项目;default 生命周期的

2021-03-15 00:07:39 311

原创 广告化开发(基础知识)~oCPA/oCPM/oCPC

文章目录前言概念oCPM:oCPC:oCPA:oCPA/oCPM/oCPC的目的是什么?前言每一个广告主或者每一个人都想要最低的成本来达到最高的收益,也就是利益最大化所以oCPA/oCPM/oCPC就是通过数据来优化广告投放让广告主选择更适合的流量和更适合的价格来提高收益。概念oCPM:即优化千次展现出价,本质还是按照cpm付费。采用更精准的点击率和转化率预估机制,将广告展现给最容易产生转化的用户,在获取流量的同时,提高转化率、降低转化成本,跑量提速更快。oCPC:即优化点击付费,本质还

2021-03-14 12:56:02 279

原创 Java~ForkJoinPool + parallelStream实现并行快速处理数据流

文章目录ForkJoinPoolinvoke、execute和submit区别parallelStream实现快速处理数据流ForkJoinPool说起ForkJoinPool先说Fork/Join框架我们通过Fork和Join这两个单词来理解一下Fork/Join框架。Fork就是把一个大任务切分 为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结 果。比如计算1+2+…+10000,可以分割成10个子任务,每个子任务分别对1000个数进行求和, 最终汇总这10个子

2021-03-11 23:23:52 373 3

原创 Java~ LocalDate、LocalTime、LocalDateTime、DateTimeFormatter的学习和使用

文章目录前言获取日期API日期的计算加法操作减法操作比较日期和时间ISO标准日期格式转换String转日期其他好玩的API前言此篇博客借鉴与博主: 某科学的南条内容中也有自己的思考和总结众所周知,SimpleDateFormat在多线程环境下是不安全的, 因为其内部使用的是一个calendar对象, 那么在多线程环境下使用同一个对象去修改不同的数据必然会造成不安全问题。解决办法就是使用Java8提供LocalDate、LocalTime、LocalDateTime、DateTimeFormat

2021-03-04 19:27:08 193 1

原创 Java~多线程算法实战题目之商店售票

文章目录题目描述思路测试PS:这道题是我在面试中遇到的,所以没有链接, 感觉这道题很有意思就拿出来分享分享题目描述有一个商店有100张票,并且有三个售票口, 这三个售票口之间独立, 各卖各的, 但是票不是独立的, 每张票不能重复卖。注意:100张票必须全部卖出, 但是不能多卖。每个窗口每隔100毫秒卖出一张票。要求:输出每张票是被哪个窗口卖出思路这是一个很典型的多线程安全问题, 因为票一旦操作不当就会被重复卖出所以这道题的关键点就在于每个售票口在查看此时票还剩多少和取票这俩个操作必须保

2021-03-04 13:50:22 220 5

原创 Java~多线程算法实战, 三种方式解决LeetCode题目1116. 打印零与奇偶数

文章目录题目描述解决一: 使用死循环方式解法二:使用信号量机制解法三:使用锁机制题目描述假设有这么一个类:class ZeroEvenOdd {public ZeroEvenOdd(int n) { … } // 构造函数public void zero(printNumber) { … } // 仅打印出 0public void even(printNumber) { … } // 仅打印出 偶数public void odd(printNumber) { … } //

2021-03-02 13:09:55 202

原创 Linux~常用命令ps(查看进程信息)、top(监控linux的系统状况)、netstat(检验本机各端口的网络连接情况)

文章目录PS命令命令参数top命令参数解释netstat命令参数解释PS命令作用:主要是查看此时服务器的进程信息, 也就是说他返回的是静态的数据, 不会动态变化也就是说ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。linux上进程有5种状态:运行(正在运行或在运行队列中等待)中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)僵死(进程已终止,

2021-02-28 15:58:52 183

原创 Spring~事务API、事务失效原因、事务传播特性

文章目录Spring事务事务API实现原理事务失效事务传播机制Spring事务Spring事务是在所使用的数据库事务的基础上进行封装扩展封装主要是封装了一些JDBC的一写事务操作的对象, 扩展主要有以下几点特性加入了事务传播的概念, 从代码逻辑上看来比编程式事务简化很多提供声明式事务或者是注解式配置事务,让业务代码与事务分离,事务变得更易用(AOP技术)但是也造成了事务失效的情况出现, 具体原因下面讲述事务APISpring提供了一个TransactionDefinition, 它定义了

2021-02-27 21:59:39 161

原创 Spring~debug源码, 完整走一遍Spring创建一个bean的总结

文章目录前言前言今天自己debug完整的走了一遍Spring创建一个Bean对象的过程, 收获颇多总结如下:;Spring会先创建BeanFacory容器中需要的对象, 这也是Spring自己所需要的一些对象然后无论是xml还是注解还是properies还是yaml方式, 最后都会经过beanDeinitionReader把其抽象初始化成beandefinition, beandefinition 是bean对象的定义信息, 存储着bean对象的定义信息 包装成一个个的BeanDefin

2021-02-27 15:03:17 174 2

原创 Java~基于fluent-hc快速构建Http请求,结合failsafe实现异常重试

文章目录所需依赖实现failsafe安全失败构建Get请求构建Post请求自定义响应处理所需依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>fluent-hc</artifactId> <version>4.5.10</version>

2021-02-26 11:29:09 230

原创 广告化开发(基础知识)~广告生态链DSP/SSP/RTB/ADX的理解

文章目录程序化广告生态需求方平台(DSP)广告网盟(AdN)供应方平台(SSP)实时竞价 (RTB)广告交易平台(ADX)程序化创意平台(PCP)广告验证平台(AVP)数据管理平台(DMP)易混淆名词对比由于自己学识尚浅, 本片内容学习总结自CSDN博主: 贺敏Minbo程序化广告生态互联网时代下的程序化广告市场主要有记一下几个角色广告需求方作为流量的消费者, 包括广告主和广告主的代理商需求方服务为广告需求方服务的平台(DSP) , 这个平台为广告需求方提供精准的广告投放和广告管理

2021-02-16 17:02:42 494

原创 广告化开发(基础知识)~广告效果指标CTR/CVR/ROI/ARPU的理解

文章目录广告效果的定义广告效果指标广告投放基础费用指标广告投放直接收益指标广告投放间接收益指标由于自己学识尚浅, 本片内容学习总结自CSDN博主: 贺敏Minbo广告效果的定义广告效果有直接效果和间接效果之分广告获得直接经济效益,即提升直接利益转换(如产品销售数量得到提升),如游戏行业比较关心的数据有点击、注册、下载用户数及相应的获客成本等。广告的间接效益是指通过广告的传播使受众的认知、心理、行为和态度,由此带来的直接或间接广告效益的总和。直接广告效益可以理解成转化效果,间接广告效益可以理解成

2021-02-15 22:03:11 2330 2

原创 广告化开发(基础知识)~CPM/CPC/CPA的理解

文章目录CPM (cost per mille):每千人展现的成本CPC (cost per click):每产生一次点击所花费的成本CPA (cost per Action):每次实际动作的成本CPM (cost per mille):每千人展现的成本顾名思义就是一个广告每展现给一千人所需化肥的成本.按CPM计费模式的广告,只看展现量,按展现量收费,不管点击、下载、注册什么的.一般情况下,网络广告中,视频贴片、门户banner等非常优质的广告位通常采用CPM收费模式.生活中,公交站、地铁站、火车

2021-02-15 16:30:19 310

原创 操作系统~假脱机SPOOLing技术与缓冲区管理

文章目录什么是脱机技术假脱机技术—―输入/输出缓冲区共享打印机的实现原理缓冲区的管理缓冲区的工作过程单缓冲双缓冲循环缓冲区缓冲池什么是脱机技术在传统的批处理操作系统中, 我们将输入数据统一写到磁带中, 又将输出数据统一写到磁带中, 这就是一种脱机技术Tips:为什么称为“脱机”――脱离主机的控制进行的输入/输出操作。假脱机技术—―输入/输出缓冲区“假脱机技术”,又称“SPOOLing技术”是用软件的方式模拟脱机技术。SPOOLing系统的组成如下共享打印机的实现原理独占式设备―一只允许各个

2021-02-15 11:13:15 490

原创 操作系统~高速缓存技术思想与虚拟地址内存技术思想

文章目录传统内存管理方式的缺点局部性原理虚拟内存的定义和特征高速缓存技术思想传统内存管理方式的缺点**一次性:**作业必须一次性全部装入内存后才能开始运行。这会造成两个问题:①作业很大时,不能全部装入内存,导致大作业无法运行;②当大量作业要求运行时,由于内存无法容纳所有作业,因此只有少量作业能运行,导致多道程序并发度下降。驻留性:一旦作业被装入内存,就会一直驻留在内存中,直至作业运行结束。事实上,在一个时间段内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大量的、暂时用不到的数

2021-02-15 09:51:07 162

原创 操作系统~I/O设置的概念和管理

文章目录什么是I/O设备I/O设备的分类I/O控制器IO控制器的组成内存映像l/o v.s.寄存器独立编址I/O控制方式程序直接控制方式中断驱动方式DMA方式通道控制方式总结什么是I/O设备“I/o”就是“输入/输出”(Input/Output)I/o设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。I/O设备的分类I/O控制器CPU无法直接控制/o设备的机械部件,因此I/o设备还要有一个电子部件作为CPU和/o设备机械部件之间的“中介”,用于

2021-02-15 09:33:50 253

原创 操作系统~磁盘的结构、磁盘调度算法、磁盘的管理

文章目录磁盘的结构磁盘的物理地址磁盘调度算法一次磁盘读/写操作需要的时间先来先服务算法(FCFS)最短寻找时间优先(SSTF)扫描算法(SCAN)LOOK调度算法循环扫描算法(C-SCAN)C-LOOK调度算法磁盘管理磁盘地址结构的设计磁盘初始化引导块磁盘的结构磁盘的表面由一些磁性物质组成,可以用这些磁性物质来记录二进制数据一个磁道又被划分成一个个扇区,每个扇区就是一个“磁盘块”。各个扇区存放的数据量相同(如1KB)磁盘的盘面被划分成一个个磁道。这样的一个“圈”就是一个磁道需要把“磁头”移动到想

2021-02-14 21:40:05 206

原创 操作系统~文件管理, 文件目录, 文件的物理结构, 文件共享与文件保护的实现

文章目录文件管理文件属性文件内部数据的组织结构操作系统对文件提供的功能文件如何存储在外存文件目录多级目录索引结点(FCB的改进)文件的物理结构链接分配一一隐式链接链接分配一―显式链接索引分配多层索引文件共享基于索引结点的共享方式(硬链接)基于符号链的共享方式(软链接)文件保护口令保护加密保护访问控制文件系统层次结构文件管理计算机中存放了各种各样的文件,一个文件有哪些属性?文件内部的数据应该怎样组织起来?文件之间又应该又应该怎么组织起来?文件属性一个文件有哪些属性?文件名:由创建文件的用户决定文

2021-02-14 21:07:41 248

原创 操作系统~分页存储管理的基本概念与页面置换算法

文章目录分页存储管理的基本概念页表俩级页表页面置换算法最佳置换算法(OPT)先进先出置换算法(FIFO)最近最久未使用置换算法(LRU)时钟置换算法((CLOCK)分页存储管理的基本概念传统的连续内存分配不管使用什么算法都有可能会造成内存的碎片化而使用分页式的地址管理就可以有效降低内存碎片化将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个“页框”,或称“页帧”、“内存块”、“物理块”。每个页框有一个编号,即“页框号”(或者“内存块号”、“页帧号”、“物理块号”)页框号从o

2021-02-13 21:00:11 560

原创 操作系统~内存管理之覆盖与交换、连续内存分配

文章目录什么是内存?有何作用进程的运行原理 - 指令逻辑地址VS物理地址内存管理内存保护内存覆盖内存交换技术内存分配单一连续分配固定分区分配动态分区分配动态分配算法什么是内存?有何作用内存是用于存放数据的硬件。程序执行前需要先放到内存中才能被CPU处理。在多道程序环境下,系统中会有多个程序并发执行,也就是说会有多个程序的数据需要同时放到内存中。那么,如何区分各个程序的数据是放在什么地方的呢?方案:给内存的存储单元编地址值得注意的就是每个计算机的位数不同, 有16位, 32位, 那么每个地址对应的

2021-02-13 20:23:50 283 1

用java实现操作系统实验银行家算法

银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系 统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。为实现银行家算法,系统必须设置若干数据结构。 要解释银行家算法,必须先解释操作系统安全状态和不安全状态。 安全序列是指一个进程序列{P1,…,Pn}是安全的,即对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j < i )当前占有资源量之和。

2020-05-26

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除