自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SVM(支持向量机)

一.线性模型的概念可以用一条直线将训练样本集分开(线性可分训练集)但是这条直线我们是有无数种画法的,比如:那么我们就要考虑哪条直线是最优的,那么我们需要有一个衡量标准,即性能指标我们将一条直线平行的向两侧移动,直到它碰到两侧的一个或者几个样本(支持向量),将移动后的两条直线d1,d2之间的==距离d(间隔)==作为性能,我们要找的实际就是使得这个d最大的那条直线:但是在这个定义中,我们确定的直线是不唯一的,实际上和他完全平行的直线也可以使得d最大:因此我们要再加一个限制条件:该直线到虚

2021-12-07 17:15:59 365

原创 计算机操作系统学习之哲学家进餐问题

一.问题描述一个圆桌上坐着5名哲学家,每两个哲学家中间放着一根筷子,桌子中间放着一碗米饭。只有当哲学家饥饿时,才会试图拿起左右两只筷子如果筷子已经在他人的手里,则需等待哲学家只有同时拿起两根筷子才能开始进餐进餐完毕后,放下筷子继续思考也就是进程需要同时持有两个临界资源才能开始工作二.问题分析相邻的哲学家对他们中间筷子的访问是互斥的进程需要同时持有两个临界资源才能开始工作,那么最核心的问题就是资源分配不当造成的死锁现象信号量设置:定义互斥信号量数组chopstick[5]=

2021-11-29 18:04:13 1995

原创 计算机操作系统学习之读者-写者问题

文章目录一.问题描述二.问题分析三.小结一.问题描述有读者、写者两组并发进程,共享一个文件允许多个读者同时对文件执行读操作任一写者在完成写操作之前都不允许其他读者和写者工作写者执行写操作前,应该让已有的读者和写者全部退出二.问题分析互斥关系1:写进程和写进程互斥关系2:写进程和读进程读进程和读进程之间不存在互斥问题写进程和任何进程都互斥,设置一个互斥信号量rw在写者访问共享文件前后执行P、V操作读进程和写进程也要互斥,因此读者在访问共享文件前后也要对rw执行P、V操作,但是这就导

2021-11-29 16:39:13 1844

原创 计算机操作系统学习之吸烟者问题

一.问题描述系统中有三个吸烟者进程和一个供应者进程每个吸烟者不停的卷烟并吸掉它,而卷烟需要三种材料:烟草、纸和胶水三个抽烟者中,第一个拥有烟草,第二个拥有纸,第三个拥有胶水而供应者每次将两种材料放在桌子上,拥有剩下的那种材料的吸烟者拿走桌子上的材料卷一根烟并吸掉它,并且发出完成信号告诉供应者进程自己完成了然后供应者就会放另外两种材料在桌子上,这个过程一直重复也就是可生产多种类型产品的单生产者-多消费者问题...

2021-11-29 15:04:46 1775

原创 计算机操作系统学习之多生产者多消费者问题

文章目录一.问题描述二.问题分析1.关系分析2.整理思路3.设置信号量4.具体实现5.补充一.问题描述有一个盘子,每次只能放一个水果父亲专门往盘子里放苹果,母亲专门往盘子里放橘子女儿专门等着吃盘子里的苹果,儿子专门等着吃盘子里的橘子只有盘子为空时,父亲/母亲才可向盘子里放入一个水果只有盘子里有自己需要的水果时,女儿/儿子才会从盘子里拿水果这就是多生产者多消费者问题,所谓的“多”其实是多类型:即不同类型的生产者和不同类型的消费者二.问题分析在这个题目中,父亲和母亲其实就是两个生产者进程

2021-11-28 11:18:16 721

原创 计算机操作系统学习之生产者消费者问题

文章目录一.问题描述二.使用信号量机制实现1.关系分析2.整理思路3.设置信号量4.具体的实现5.P(empty)和P(mutex)顺序问题一.问题描述系统中有一组生产者进程和一组消费者进程生产者和消费者共享一个初始为空、大小为n的缓存区生产者进程每次生产一个进程放入缓存区,消费者进程每次从缓存区取出一个进程并使用只有缓存区没满时,生产者才可以把产品放入缓存区,否则必须等待只有缓冲区不空时,消费者才可以从缓冲区取出产品,否则必须等待缓冲区是临界资源,各进程必须互斥的访问二.使用信号量机制

2021-11-25 18:21:28 2832

原创 计算机操作系统学习之信号量实现进程互斥、同步、前驱机制

一.实现进程互斥1.分析并发进程的活动,划分临界区(如:要访问临界资源打印机,那就要将访问打印机的代码放在临界区)2.设置互斥信号量mutex,初值为13.在临界区之前执行P(mutex)4.在临界区之后执行V(mutex)...

2021-11-25 16:36:33 714

原创 计算机操作系统学习之信号量机制

一.信号量信号量其实就是一个变量,可以用信号量来表示系统中某种资源的数量。用户进程可以使用操作系统提供的一对原语来操作信号量一对原语:wait(S)和signal(S)

2021-11-24 20:36:20 3024

原创 计算机操作系统学习之进程互斥

一.概念临界资源:在一个时间段内只允许一个进程访问的资源叫做临界资源进程互斥:当一个进程在访问临界资源时,另一个想要访问该临界资源的进程必须等待。当前访问临界资源的进程访问结束,释放该资源之后,另一个进程才能访问该临界资源二.进程互斥的组成部分进入区:用于检查是否可以进入临界区。如果可以进入,则应设置正在访问临界资源的标志(类似于给临界资源上锁),以阻止其他进程访问临界资源临界区:访问临界资源的那段代码退出区:负责解除正在访问临界资源的标志(也就是给临界资源解锁)剩余区:做其他处理三

2021-11-24 16:31:52 4054

原创 计算机操作系统学习之时间片轮转、优先级调度、多级反馈队列调度算法

文章目录一.时间片轮转算法二.优先级调度算法三.多级反馈队列调度算法一.时间片轮转算法算法规则:轮流让就绪队列中的进程执行一个时间片。若进程未在一个时间片内执行完毕,则将进程重新放到就绪队列队尾进行排队。用于进程调度(只有作业放入内存建立了相应的进程后,才能被分配处理机时间片)抢占式的算法(如果进程未在一个时间片内执行完毕,会被强行剥夺处理机使用权)优点:公平,响应快缺点:由于高频率的进程切换,会有一定开销。不区分任务的紧急程度不会导致饥饿时间片过长时:当每个进程都可以在一个时间片内运行完

2021-11-23 21:21:19 1237

原创 计算机操作系统学习之FCFS、SJF和HRRN调度算法

文章目录一.FCFS算法(先来先服务)二.SJF算法(短作业优先算法)1.不可抢占的情况(即SJF算法)2.可抢占的情况(最短剩余时间优先算法 即SRTN算法)3.优缺点4.补充三.HRRN算法(高响应比优先)一.FCFS算法(先来先服务)算法思想:主要从“公平”角度考虑算法规则:按照作业/进程到达的先后顺序进行服务用于作业/进程调度:用于作业调度时,考虑的是哪个作业先到达后备队列;用于进程调度时,考虑的是哪个进程先到达就绪队列。是否可抢占:非抢占式的算法是否会导致饥饿:不会导致饥饿注:

2021-11-22 20:18:40 7472

原创 计算机操作系统之调度算法的评价指标

一.CPU利用率cpu忙碌的时间占总时间的比例二.系统吞吐量单位时间完成作业的数量,总的作业量除以总的时间三.周转时间作业从提交给系统开始,到作业完成的这个时间间隔即作业完成时间减去作业提交时间平均周转时间:各作业周转时间之和除以作业数...

2021-11-22 11:36:45 545

原创 计算机操作系统学习之进程调度时机、切换与过程、方式

文章目录一.进程调度的时机1.当前运行进程主动放弃处理机2.当前运行进程被动放弃处理机二.不能进行进程调度与切换的情况三.普通临界区和操作系统内核程序临界区四.进程调度的方式五.进程切换与过程六.小结一.进程调度的时机1.当前运行进程主动放弃处理机进程正常终止运行过程中发生异常而终止进程主动请求阻塞(如等待I/O)2.当前运行进程被动放弃处理机分给进程的时间片用完有更紧急的事需要处理(如I/O中断)有更高优先级的进程进入就绪队列二.不能进行进程调度与切换的情况在处理中断的过程

2021-11-17 17:34:23 366

原创 计算机操作系统学习之处理机调度

文章目录一.概念二.调度的三个层次1.高级调度(作业调度)2.中级调度(内存调度)3.低级调度(进程调度)4.三种调度的比较三.进程七状态模型一.概念在多道程序系统中,进程的数量一般是多于处理机数量的,这样就不可能同时并行的处理各个进程。处理机调度:就是从就绪队列中按照一定的算法选择一个进程并将处理机分配给他运行。二.调度的三个层次1.高级调度(作业调度)由于内存空间有限,有时无法将用户提交的作业全部放入内存,因此需要某种规则来决定将作业调入内存的顺序高级调度就是按一定的原则从处于外存的

2021-11-17 10:02:59 793

原创 计算机操作系统学习之用户级/内核级线程和多线程模型

一.概念有的进程可能需要“同时”做很多事情,而传统进程只能串行的执行一系列程序。为此,引入了线程,来增加并发度可以把线程理解为轻量级进程线程是一个基本的CPU执行单元,也是程序执行流的最小单元二.线程带来的变化进程只是资源分配的基本单位,线程成为调度的基本单位各线程间也可以并发,提高了并发性线程间并发,如果是同一进程内的线程,则不需要切换进程环境,系统开销减小三.线程的属性线程是处理机调度的单位多CPU计算机中,各个线程可以占用不同的CPU每个线程都有一个线程控制块(TCB)

2021-11-16 20:39:14 2710 1

原创 计算机操作系统学习之进程的状态和转换、进程控制和进程通信

一.进程的状态运行态:占有CPU,并在CPU上运行就绪态:已经具备了运行的条件,一旦获得处理机,即可立即进入运行态阻塞态:因等待某一事件而暂时不能运行创建态:进程正在被创建,操作系统为进程分配资源,初始化PCB终止态:进程正在从系统中撤销,系统正在回收资源,撤销PCB二.进程状态的转换就绪态—>运行态:进程被调度运行态—>就绪态:时间片到,或者CPU被其他优先级更高的进程抢占运行态—>阻塞态:等待资源分配或等待某事件发生(主动行为)阻塞态—>运行态:等待的

2021-11-16 17:36:04 963

原创 Oracle学习之基础知识

一.数据类型1.字符型char(2):定长的字符型数据varchar2(10):变长的字符型数据varchar和varchar2的区别:(1) varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;(2)VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;varchar2是Oracle特有的,大部分情况下都建议使用varchar22.数值型number(3):不带小数点的数值numbe

2021-11-16 16:17:25 601

原创 计算机操作系统学习之进程的定义、组成、组织和特征

一.定义程序: 就是一个指定序列进程实体:程序段、数据段和PCBPCB:系统为每个运行的程序配置一个数据结构,成为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放的位置)一般情况下,我们把进程实体简称为进程所谓创建进程,就是创建进程实体的PCB,撤销进程就是...

2021-11-13 15:41:44 274 2

原创 计算机操作系统学习之系统调用

文章目录一.概念二.作用三.系统调用和库函数四.系统调用的过程五.小结一.概念系统调用就是操作系统提供给应用程序使用的接口,可以理解为可以供应用程序调用的特殊函数,应用程序可以通过发出系统调用请求来获得操作系统的服务。二.作用而操作系统提供系统调用功能,当用户进程想要调用打印机这种共享资源时,只能通过系统调用对系统发生请求,这样操作系统就可以对各个请求进行协调管理,这样就可以保证系统的安全和稳定。注:系统调用会涉及到对系统资源的管理,对进程的控制,因此要调用一些特权指令才能完成,因此系统调用相

2021-11-13 12:04:32 1248

原创 计算机操作系统学习之中断和异常

文章目录一.概念与作用二.核心态和用户态的切换三.中断的分类内中断(也称异常)外中断四.中断的另一种分类方式内中断外中断五.外中断的处理过程一.概念与作用发生了中断,就意味着需要操作系统介入,开展管理工作由于操作系统进行管理工作时需要调用特权指令,因此CPU要从用户态转为核心态,使操作系统获得计算机的控制权。当中断发生时,CPU立即进入核心态当中断发生后,当前运行的进程暂停运行,由CPU内核对中断进行处理对于不同的中断信号,会进行不同的处理有了中断,才能实现多道程序并发执行二.核心态和用

2021-11-13 10:44:48 245

原创 计算机操作系统学习之运行机制和体系结构

一.两种指令特权指令:如内存清零指令,不允许用户使用非特权指令:如普通的运算指定二.两种处理器状态用户态(目态):只能执行非特权指令核心态(管态):

2021-11-13 09:36:35 238 1

原创 计算机操作系统学习之发展与分类

文章目录一.手工处理阶段二.单道批处理系统三.多道批处理系统四.分时操作系统五.实时操作系统一.手工处理阶段缺点:用户独占全机,人机速度矛盾导致资源利用率极低二.单道批处理系统引入了脱机输入/输出技术(用磁带完成),并且有监督程序负责控制作业的输入输出。而此时的监督程序就是操作系统的雏形。优点:一定程度上缓解了人机速度矛盾,资源利用率有所提升缺点:内存中仅有一道程序在运行,只有这道程序结束之后才会调用下一道程序,cpu有大量时间是在等待I/O操作完成,资源利用率依然很低三

2021-11-11 20:02:31 866 1

原创 计算机操作系统学习之操作系统的特征

一.并发概念:两个或多个事件在同一时间间隔内发生。宏观上是同时发生的,微观上其实是交替发生并行的概念:两个或多个事件在同一时刻发生举例:A和B今天都要做事件一和事件二A选择事件一和事件二一起做,这就叫做并行B选择早上做事件一,下午做事件二,这就叫做并发,宏观上B今天同时做了这两件事,但是从微观上看,在某一时刻,B最多在做某一件事情。操作系统的并发性:计算机系统中同时存在着多个运行着的程序二.共享概念:系统中的资源可供内存中多个并发执行的进程共同使用互斥共享资源:虽然可以同时使用,但

2021-11-10 18:13:46 356 3

原创 计算机操作系统学习之概念及其功能

一.操作系统的概念二.操作系统的功能和目标1.作为系统资源的管理者(1) 功能处理机管理存储器管理文件管理设备管理(2) 目标:安全高效

2021-11-09 18:04:49 434 1

原创 MyBatis学习之动态代理机制

文章目录一.传统dao方式实现mybatis二.使用动态代理的条件分析三.mybatis动态代理一.传统dao方式实现mybatis1.定义接口package com.xhy.dao;import com.xhy.entity.Student;import java.util.List;public interface StudentDao { List<Student> selectStudents();}2.定义sql映射文件<!--namesp

2021-11-06 18:06:25 110

原创 Mybatis学习之(‘artifactId‘ with value ‘xxx‘ does not match a valid id pattern.)

创建maven项目时,pom.xml文件中报错:‘artifactId’ with value ‘02-mybatis(传统dao方式实现)’ does not match a valid id pattern.原因:我的artifactId中出现了中文<artifactId>02-mybatis(传统dao方式实现)</artifactId>解决方法:修改artifactId,不要出现中文或空格...

2021-11-04 20:41:45 1898 1

原创 MyBatis学习之主要类和接口的介绍

文章目录1.Resources类2.SqlSessionFactoryBuilder类3.SqlSessionFactory接口4.sqlSession接口1.Resources类mybatis中的一个类作用:负责读取主配置文件String config = "mybatis.xml";//2.读取这个config表示的文件InputStream in = Resources.getResourceAsStream(config);2.SqlSessionFactoryBuilde

2021-11-04 19:04:05 357

原创 MyBatis学习之运行测试方法时出现java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误(原因及解决方法)

MyBatis学习之运行测试方法时出现java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误(原因及解决方法)错误原因:junit是4.11版本,从4.11版本起,junit中不再包含hamcrest的jar包解决方案:手动在pom.xml中添加hamcrest-core-1.3.jar<dependency> <groupId>org.hamcrest</groupId> <artifa

2021-11-03 16:59:48 254 2

原创 Mybatis学习之程序编译后在target/classes目录下找不到主配置文件或sql映射文件(sql mapper)

程序编译后在target/classes目录下找不到主配置文件或sql映射文件(sql mapper)时的六种解决方法一.首先保证主配置文件是放在resources目录之下二.看pom.xml文件中是否有resources标签 <build> <resources> <resource> <directory>src/main/java</directory><!--所在的目录-->

2021-11-03 15:22:35 2045

原创 MyBatis学习之Mybatis的第一个简单例子

一.mybatis提供的功能1.创建Connection,Statement,ResultSet的能力2.执行sql语句的能力3.将sql结果转为Java对象,List集合的能力,操作该对象,就相当于操作数据库表中数据4.关闭资源的能力开发人员只需提供sql语句...

2021-11-02 21:31:58 207 1

原创 一文搞懂框架是什么

文章目录一.软件开发常用结构1.三层架构2.三层架构对应的包3.三层架构中类的交互4.三层架构对应的处理框架二.框架1.概念2.特点一.软件开发常用结构1.三层架构(1)界面层:和用户打交道,接收用户的请求参数,显示请求结构的。(2)业务逻辑层:接收了界面层传递的参数,计算逻辑,调用数据库。(3)数据访问层:访问数据库,执行对数据的增删改查。2.三层架构对应的包(1)界面层:controller包 (servlet)(2)业务逻辑层:service包 (xxxService类)(3)

2021-10-30 10:14:05 365

原创 详解JDK动态代理使用及原理

一.代理模式为其他对象提供一种代理以控制对这个对象的访问。有些情况下,一个对象不适合或者不能引用另一个对象,而代理对象可以在客户类和目标对象之前起到中介的作用。二.使用代理模式的作用功能增强:在你原有的功能上,增加额外的功能。控制访问:代理类不让你直接访问目标三.实现代理的方式1.静态代理(1)特点a.代理是你手工实现的,自己创建一个Java类,代表代理类b.你要代理的目标类是明确的c.实现简单,容易理解(2)举例(用户购买商品的行为)用户:客户端类商家:代理,代理某个商品厂

2021-10-28 16:50:58 332

原创 jQuery学习理解(详细)

一.简介JavaScript的一个库为了简化JavaScript对dom的操作二.使用1.要指定jQuery库文件的位置,使用相对路径<script type="text/javascript" src="jQuery/jquery-3.4.1.js"></script>2.入口函数简写方式相当于js中的onLoad()函数当页面中的dom对象加载成功后,自动执行的函数 $(function (){})3.dom对象和jquery对象dom对象:使用js语

2021-10-22 17:08:19 451

原创 软件工程学习-软件生存期模型

一.软件生存期模型1.瀑布模型带有反馈环,其中实线代表开发过程,虚线代表维护过程特点:(1)顺序性和依赖性,前后顺序要求严格(2)编码前会进行分析和设计,在这两个阶段只考虑系统的逻辑模型,不涉及物理实现。(3)每个阶段必须完成规定的文档,在每个阶段结束前,必须对文档进行评审,以便尽早发现问题。缺点:(1)瀑布模型几乎完全依赖于书面的规格说明,如果用户需求和规格说明有差异,就有可能出现最终开发出的软件产品不能完全满足用户的需求。(2)只适用于项目开始时需求已确定的情况2.快速原型模型先

2021-10-22 14:29:02 378

原创 json的使用

1.分类json对象:key:value 格式json数组:{json对象1,json对象2,json对象3}2.使用jackson将对象 p 转为 json对象Province p = new Province(); p.setId(1); p.setName("陕西"); p.setJiancheng("陕"); p.setShenghui("西安"); //使用jackson将对象 p 转为 json对象

2021-10-19 15:13:04 55

原创 Ajax学习_001

XMLHttpRequest对象(异步对象)1.创建 var xmlHttp = new XMLHttpRequest();2.给异步对象绑定事件函数 xmlHttp.onreadystatechange = function(){}3.异步对象的三个属性readyState属性0:对象创建时。new XMLHttpRequest()1:对象初始化时。xmlHttp.open(请求方式,请求地址,同步/异步)2:发送请求。xmlHttp.send()3:获取了数据4:数据处理完

2021-10-12 17:18:06 47

原创 打鱼晒网

算法分析要根据“三天打鱼两天晒网”的规则完成对2010.1.1开始的指定日期进行判断。首先要得到从2010.1.1到指定日期有多少天,可以按照年、月、日的顺序分别进行计算,过程中需要注意的是有闰年和平年的区别。得到总天数以后,用总天数除以五取余数,通过余数来判断当天是打鱼还是晒网。概要设计测试心得体会算法的关键部分就是算出2010年1月1日到指定日期一共有多少天,我的思路是按照年月日地顺序分别计算,分别算出来包含的完整的年和月。可以四年为一组进行计算。遇到问题是在算完整月时,..

2021-03-23 12:51:02 120

原创 JAVA中方法可变个数的参数

应用于在定义方法时,暂时不确定要给几个参数时。有两种声明方法:1.用数组的方式传递可变的参数public void printInfo(String[] abb) { for (int i = 0; i < abb.length; i++) System.out.println(abb[i]); }在调用时:package com.test01.java;public class test3 { //方法的可

2020-11-08 21:22:03 252 1

原创 Java学习周报(Java中的类和对象)

1.类的定义类的成员分为属性和方法注:package com.test01.java;public class Person{ //类的成员变量可以先声明,不用初始化,类成员变量有默认值的。 String name;//String的默认值是null int age;//int的默认值是0 //类的方法,也叫函数 public void showName()//方法的名称如果是多个字母,首个单词的首字母小写,其他单词首字母大写,驼峰命名法 {

2020-10-31 21:42:42 382 2

原创 JAVA学习第一周

JAVA学习第一周

2020-10-03 20:42:32 84

空空如也

空空如也

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

TA关注的人

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