自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 Java中简单使用MongoRepository操作MongoDB

Java中简单使用MongoRepository操作MongoDB前提:SpringBoot项目添加依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </depend

2021-03-15 11:33:17 886

原创 Java中简单使用MongoTemplate 操作MongoDB

Java中简单使用MongoTemplate 操作MongoDB前提:SpringBoot项目添加依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </depende

2021-03-15 11:12:08 1610

原创 【王道考研】死锁

2.4 死锁知识来源: B站王道考研死锁的概念什么是死锁知识回顾:哲学家进餐问题就是一个死锁。死锁: 各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。饥饿: 由于长时间得不到想要的资源,某进程无法向前推进的现象。比如:短进程优先(SPF)算法中,若有源源不断的短进程到来,则长进程将一直得不到处理机,从而发生进程“饥饿”。死锁产生的必要条件互斥条件:只有对必须互斥使用的资源的争抢才会导致死锁(如哲学家的筷子、打印机设备)。不剥夺条件: 进程所获得的资源在未使用完只看,不能

2020-11-30 14:12:10 313

原创 【王道考研】管程

2.3.11 管程知识来源: B站王道考研为什么要引入管程信号量机制存在问题:编写程序困难、易出错。管程的定义和基本特征管程是一种特殊的软件模块,有:局部于管程的共享数据结构说明;对该数据结构进行操作的一组过程(函数);对局部于管程的共享数据设置初始值的语句;基本特征:4. 局部于管程的数据只能被局部于管程的过程所访问;5. 一个进餐只有通过调用管程内的过程才能进入管程访问共享数据;6. 每次仅允许一个进餐在管程内执行某个内部过程。static class Monitor{

2020-11-29 15:34:11 319

原创 【王道考研】哲学家进餐问题

2.3.10 哲学家进餐问题知识来源: B站王道考研问题描述一张圆桌坐着5名哲学家,每两个哲学家之间的桌上摆一根筷子,桌子中间是一碗饭。哲学家们倾注毕生的精力用于思考和进餐,哲学家在思考时,并不影响他人。只有当哲学家饥饿时,才试图拿起左、右两根筷子(一根一根拿起)。如果筷子已在他人手上,则需等待。饥饿的哲学家只有同时拿起两根筷子才开始进餐,当进餐完毕后,放下筷子继续思考。初始代码:semaphore chopstick[5] = {1,1,1,1,1};Pi(){ P(chopstick[i

2020-11-29 14:51:46 1193 4

原创 【王道考研】读者-写者问题

2.3.9 读者-写者问题知识来源: B站王道考研允许多个读者可以同时对文件执行读操作只允许一个写者往文件中写信息任一写者在完成写操作之前不允许其他读者或写者工作写者执行写操作之前,应已有读者和写者全部退出。问题分析关系分析。找到各个进程,分析它们之间的同步、互斥关系。整理思路。根据各进程的操作流程确定P、V操作的大致顺序。设置信号量。设置需要的信号量,并根据题目条件确定信号量初值。两类进程:写进程、读进程。互斥关系:写写互斥,读写互斥。写进程与其他进程互斥所以定义一个rw互斥信

2020-11-29 14:30:18 562

原创 【王道考研】吸烟者问题

2.3.8 吸烟者问题知识来源: B站王道考研问题描述假设一个系统有三个抽烟者和一个供应者进程。每个抽烟者不停地卷烟并抽掉它,但是要卷起并抽掉一支烟,抽烟者需要有三种材料:烟草、纸和胶水。三个抽烟者中,第一个拥有烟草、第二个拥有纸、第三个拥有胶水。 供应者进程无限地提供三种材料,供应者每次将两种材料放桌子上,拥有剩下那种材料的抽烟者卷一根烟并抽掉它,并给供应者进程一个信号告诉完成了,供应者就会放另外两种材料在桌上。轮流让三个抽烟者抽烟semaphore offer1 = 0; // 桌上组合一的数

2020-11-29 14:00:57 605 2

原创 【王道考研】多生产者-多消费者

2.3.7 多生产者-多消费者知识来源: B站王道考研问题描述桌子上有一个盘子,每次只能向其中放入一个水果。爸爸专向盘子放入苹果,妈妈专门放入橘子,儿子专等着吃盘子中的橘子,女儿专等着吃盘子中的苹果。只有盘子为空时,爸爸或妈妈才可向盘子中放入一个水果。仅当盘子中有自己需要的水果时,儿子或女儿可以从盘子中取出水果。// 实现互斥访问盘子(缓冲区)semaphore mutex = 1;// 盘子中有几个苹果semaphore apple = 0;// 盘子中有几个橘子semaphore o

2020-11-29 12:09:31 213

原创 【王道考研】生产者消费者问题

2.3.6 生产者消费者问题知识来源: B站王道考研问题描述系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。生产者、消费者共享一个初始为空、大小为n的缓冲区。只有缓冲区没满时,生产者才能吧产品放入缓冲区,否则必须等待。只有缓冲区不为空时,消费者才能从中取出产品,否则必须等待。缓冲区是临界资源,各进程必须互斥地访问。如何实现semaphore mutex = 1; // 互斥信号量,实现对缓冲区的互斥访问semap

2020-11-29 11:44:23 729

原创 【王道考研】信号量机制实现进程互斥、同步、前驱关系

2.3.5 信号量机制实现进程互斥、同步、前驱关系知识来源: B站王道考研实现进程互斥分析并发进程的关键活动,划定临界区(如:对临界资源打印机的访问就应放在临界区)设置互斥信号量mutex,初始值为1在临界区之前执行P(mutex)在临界区之后执行V(mutex)/*信号量机制实现互斥*/semaphore mutex = 1; // 初始化信号量P1(){ .... P(mutex); // 使用临界资源前需要加锁 临界区代码段... V(mutex); // 使用临界资源

2020-11-29 10:33:28 422 1

原创 【王道考研】信号量机制

2.3.3 信号量机制知识来源: B站王道考研用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。信号量其实就是一个变量,可以是用一个信号量来 表示系统中某种资源的数量。原语是一种特殊的程序段,其执行只能一气呵成,不可被中断,原语可由关中断/开中断指令实现一对原语:wait(S)和signal(S) ,S为信号量。wait、signal简称P、V操作。整型信号量用一个整数型的变量作为信号量,用来表示系统中某种资源的数量整型信号量与普通整数

2020-11-29 09:56:33 645

原创 【王道考研】进程互斥的硬件实现方法

2.3.3 进程互斥的硬件实现方法知识来源: B站王道考研中断屏蔽方法利用“开/关中断指令”实现。关中断临界区开中断关中断后不允许当前进程被中断,也必然不会发生进程切换。开中断知道当前进程访问完临界区,再执行开中断指令,才有可能有别的进程上处理机并访问临界区开中断和关中断只运行在内核态,所以无法实现。TestAndSet指令TSL指令用硬件实现的,执行的过程不允许被中断,只能一气呵成。// true表示已加锁 false表示未加锁bool TestAndSet(bool *lo

2020-11-29 00:31:58 318

原创 【王道考研】进程互斥的软件实现方法

2.3.2 进程互斥的软件实现方法知识来源: B站王道考研单标记法算法思想:两个进程在访问完临界区后会把使用临界区的权限转变给另一个进程。也就是说每个进程进入临界区的权限只能被另一个进程赋予。int turn = 0; // 表示当前允许进入临界区的进程号/**P0进程*/while(turn != 0); // 进入区critical section; // 临界区turn = 1; // 退出区remainder section;// 剩余区/**P1进程*/wh

2020-11-29 00:11:09 189

原创 【王道考研】进程同步与互斥

2.3.1 进程同步与互斥知识来源: B站王道考研什么是进程同步知识回顾:进程具有异步性的特征。异步性是指,各并发执行的进程以各自独立的、不可预知的速度向前推进。读进程和写进程并发地运行,由于并发必然导致异步性,因此“写数据”和“读数据”两个操作执行的先后顺序是不确定的。而实际应用中,又必须按照“写数据 --> 读数据”的顺序来执行的。如果解决这种异步问题,就是“进程同步”所讨论的内容。同步也称为直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调他

2020-11-28 23:41:20 761

原创 【王道考研】调度算法

2.2.4 调度算法知识来源: B站王道考研先来先服务(FCFS,First Come First Serve)算法思想:主要从“公平”的角度考虑(类似与生活中排队买东西)算法规则:按照作业/进程到达的先后顺序进行服务用于作业/进程调度:用于作业调度时,考虑时哪个作业先到达后备队列;用于进程调度时,考虑的是哪个进程先到达就绪队列。是否可抢占?:非抢占式算法优缺点:  优点:公平、算法实现简单。  缺点:排在长作业(进程)后面的短作业需要等待很长时间,带权周转时间很大,对短作业来说用

2020-11-28 14:39:15 561

原创 【王道考研】调度算法的评价指标

2.2.3 调度算法的评价指标知识来源: B站王道考研知识总览CPU利用率CPU利用率: 指CPU“忙碌”的时间占总时间的比例。利用率 = 忙碌时间 / 总时间系统吞吐量对于计算机来说,希望能用尽可能少的时间处理完尽可能多的作业。系统吞吐量: 单位时间内完成作业的数量系统吞吐量 = 总共完成了多少道作业 / 总共花了多少时间例如:某计算机系统处理完10道作业,共花费100秒,则系统吞吐量为?答:10 / 100 = 0.1道 / 秒周转时间对于计算机的用户来说,更关心自己作业从

2020-11-28 11:12:00 206

原创 【王道考研】进程调度的时机切换与过程调度方式

2.2.2 进程调度的时机切换与过程调度方式知识来源: B站王道考研知识总览进程调度的时机进程调度 (低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。需要进行进程程度与切换的情况,如下1、21、当运行的进程主动放弃处理机例如:  进程正常终止。  运行过程中发生异常而终止  进程主动请求阻塞(如等待I/O)2、当前运行的进程被动放弃处理机例如:  分给的进程时间片用完  有更紧急的事需要处理(如:I/O中断)  有更高优先级的进程进入就绪队列不能进行进

2020-11-27 22:58:46 231

原创 【王道考研】处理机调度概念、层次

2.2.1 处理机调度概念、层次知识来源: B站王道考研知识总览处理机调度  基本概念  三个层次    高级调度(作业调度)    中级调度(内存调度)    低级调度(进程调度)  三层调度的联系、对比  补充知识    进程的“挂起态”    七状态模型调度的基本概念当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题。在多道程序系统中,进程的数量旺旺是多于处理机的个数,这样不可能同时并行地

2020-11-27 22:18:07 198

原创 【王道考研】线程概念和多线程模型

2.1.5 线程概念和多线程模型知识来源: B站王道考研知识总览图2.1 知识总览什么是线程,为什么要引入线程?有的进程可能需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了“线程”,来增加并发度。图2.2 引入线程的好处传统的进程是程序执行流的最小单元引入线程后,线程成为了程序执行流的最小单元图2.3 系统资源分配以进程为单位可以吧线程理解为“轻量级进程”。线程是一个基本的CPU执行单元,也是程序执行流的最小单元。引入线程之后,不仅是进程之间可以并发

2020-11-20 15:01:12 221

原创 【王道考研】进程通信

2.1.4 进程通信知识来源: B站王道考研知识总览进程通信 共享存储  基于数据结构的共享  基于存储区的共享 消息传递  直接通信  间接通信 管道通信什么是进程通信?概念:进程之间的信息交换。进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。图2.1 进程访问一个进程不能直接访问另一个进程的地址空间,但进程之间的信息交换是必须实现的。操作系统为此提供了一些方法。共享存储图2.2 共享存储管道存储管道:用于连接读写进程的一个共

2020-11-20 13:13:31 250

原创 【王道考研】进程控制

2.1.3 进程控制知识来源: B站王道考研知识总览进程控制 基本概念  什么是进程控制?  如何实现进程控制?   用“原语实现” 进程控制相关的原语  进程的创建  进程的终止  进程的阻塞  进程的唤醒  进程的切换什么是进程控制?进程控制的主要功能是对系统总的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。实现进程状态转换图2.1 状态转换图2.2 知识回顾图2.3 进程调用中进程控制如何实现进程控制?答:用原语实现进

2020-11-20 11:56:40 135

原创 【王道考研】进程的状态与转换

2.1.2 进程的状态与转换知识来源: B站王道考研图2.1 知识总览进程的状态三种基本状态概念: 进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时又需要等待CPU服务,可见,进程的状态是会有各种变化的。三种基本状态  运行态(Running)  就绪态(Ready)  阻塞态(Waiting/Blocked,等待态)运行态: 占用CPU,并在CPU上运行。  单核处理机环境下,每个时刻最多只有一个进程处于运行态。(双核环境下可以同时有连个进程处于运行态)

2020-11-20 09:53:12 324

原创 【王道考研】进程的定义组成组织方式特征

2.1 进程的定义组成组织方式特征知识来源: B站王道考研知识总览定义: 在计算机发展史上,“进程”是为了解决什么问题被引入的?组成: 每个进程由哪些部分组成?组织方式: 系统中各个进程之间是如何被组织起来的?特征: 相比于程序,进程由哪些特性?进程定义引入多道程序技术之后:为了方便操作系统管理,完成各程序并发执行、引入进程、进程实体的概念。进程实体:PCB、程序段、数据段。图2.1 内存分配PCB:系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种

2020-11-19 23:34:59 199

原创 【王道考研】系统调用

1.6 系统调用知识来源: B站王道考研图1.1 知识总览什么是系统调用,有何作用知识点回顾:操作系统作为用户何计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。图1.2 知识回顾“系统调用”是操作系统提供给应用程序使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。为什么操作系统提供“系统调用”功能?生活场景: 去学习打印店打印论文,打印到一半,另一个同学按下“打

2020-11-19 21:34:07 270 1

原创 【王道考研】中断和异常

1.5 中断和异常知识来源: B站王道考研图1.1 知识总览中断机制的诞生发明操作系统引入中断机制,实现了多道程序并发执行。本质: 发生中断就意味着需要操作系统接入,开展管理工作。1、当中断发生时,CPU立即进入核心态。2、当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。3、对于不同的中断信号,会进行不同的处理。发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作需要使用特权指令,因此CPU要从用户态转核心态。中断可以使CPU从用户态切换为核心

2020-11-19 20:52:06 712

原创 【王道考研】操作系统的运行机制体系结构

1.4 操作系统的运行机制体系结构知识来源: B站王道考研图1.1 知识体系结构什么是指令?“指令”就是处理器(CPU)能识别、执行的最基本命令。图1.2 指令运行两种指令特权指令: 内存清零指令(不允许用户程序使用)非特权指令:普通的运算指令两种处理器状态用程序状态寄存器(PSW)中的某标志来标识当前处理器处于什么状态。如0为用户态,1为核心态。用户态(目态):CPU只能执行非特权指令。核心态(管态):特权指令、非特权指令都可执行。两种程序内核程序: 操作系统的内核程序是

2020-11-19 18:05:15 289 2

原创 【王道考研】操作系统的发展与分类

1.3 操作系统的发展与分类知识来源: B站王道考研图1.1 知识总览主要理解各阶段的优点和缺点。各阶段的主要优点都是解决了上一个阶段的主要缺点。手工操作系统程序员 —> 纸带读取(打孔为1,不打开为0) -->处理机(CPU)—>打孔(输出结果)主要缺点: 用户独占全机,人机速度矛盾导致资源利用率极低。单道批处理系统引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出。程序员 —> 纸带读取(打孔为1,不打开为0)—>外围机 —>

2020-11-19 17:02:06 147

原创 【王道考研】操作系统四大特性

1.2 操作系统四大特性知识来源:B站王道考研四大特性分别为并发、共享、虚拟和异步。并发和共享为两个最基本的特性,二者互为存在条件。并发与并行并发: 两个或多个事件在同一事件间隔内发生。宏观上是同时发生,微观上是交替发生。并行: 两个或多个事件在同一时刻同时发生。图1.1 并行实例图1.2 并发实例操作系统的并发性:计算机系统中同时存在着多个运行着的程序。一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统回负责协调多个程序交替执行(宏观上是同时发生,微观上是交替发生)。

2020-11-19 15:26:38 812

原创 【王道考研】操作系统功能和目标

1.1 定义功能和目标知识来源:B站王道考研市面上常见的操作系统windows 、Android、 iOS 、MacOS 、Linux定义操作系统:控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。图1.1 操作系统层次结构 应用程序(软件):如QQ 、IE浏览器等。操作系统:1、负责管理协调硬件、软件等计算机资源的工作。2、为上层的应用程序、用户提供简单易用的服务。3、操作

2020-11-19 14:23:28 216

原创 解决Redis在高并发时,缓存穿透

1.直接在方法上加synchronized public synchronized User getUserById(Integer id) { // 设置redis的key按照String进行序列化 redisTemplate.setKeySerializer(new StringRedisSerializer()); // 查询redis缓存中是否存有数据 User user = (User) redisTemplate.opsFo

2020-07-11 10:48:17 166

原创 SSM整合异常

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sqlSessionFactory’ defined in class path resource [ApplicationContext.xml]: Initialization of bean failed; neste...

2020-04-09 22:54:56 125

原创 java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' befo

java.lang.IllegalStateException: BeanFactory not initialized or already closed - call ‘refresh’ before accessing beans via the ApplicationContext没有初始化ioc容器

2020-04-09 20:44:19 168

原创 Servlet中的重定向绝对路径与相对路径

Servlet中的重定向绝对路径与相对路径以下为绝对路径response.sendRedirect("/myServlet3/index.html");绝对路径一定一定一定要加” / +项目名 “开头绝对路径一定一定一定要加” / +项目名 “开头绝对路径一定一定一定要加” / +项目名 “开头斜杠不能省斜杠不能省斜杠不能省重要的事情说三遍以下是...

2020-02-01 11:13:31 590

原创 javaScript中的window.setInterval("函数名",相隔时间)

javaScript中的window.setInterval(“函数名”,相隔时间);函数名要求是全局函数例如window.onload = function(){ /* var skip = function (){ document.getElementById("time").innerHTML = document.getElementById("time").innerHT...

2020-02-01 10:58:43 552

原创 递归练习之走台阶

递归练习小明刚刚看完电影《第K级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是K级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完K级台阶,有多少种不同的上法呢?请你利用计算机的优势,帮助小明寻找答案。输入一个整数K(10<=K<=20)输出整数,走法的种数...

2019-10-26 20:49:12 338

原创 链表实现多项式加法,减法,乘法

链表实现多项式加法,减法,乘法#include <iostream>#include <process.h> using namespace std;struct list{ double coe; double exp; list * next; };int inputChioce(); //输入选择void showInfo(list * p);...

2019-10-21 22:56:10 789

原创 Collection的常用方法

1.add(E e)方法向集合中添加元素e语法Boolean add(E e)2.addAll(Collection e)方法向当前集合中添加e集合中所有元素,e集合可以的类型可以是当前类也可以是当前类的子类语法Boolean add(Collection<? extends E> e)1.add(E e)方法向集合中添加元素e语法Boolean add(E e)...

2019-10-10 22:35:55 370

原创 Java中charAt方法遍历字符串

charAt()方法遍历字符串charAt()方法就是指定位置的字符输出,类似于数组中的引用下标其范围是0到"".length() - 1语法public char charAt( int index);解析index 是指定位置,就和数组下标差不多注意:index 的范围是有限的,0到"".length() - 1代码演示public calss charAtUsing{ p...

2019-10-09 12:53:31 1754

空空如也

空空如也

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

TA关注的人

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