自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 操作系统学习08 死锁

系统模型:死锁出现的四个必要不充分条件:死锁处理办法:约束从强到弱:(上到下)死锁预防:限制申请方式:互斥:让共享资源不是必须的,必须占用非共享资源。占用并等待:保证当前一个进程请求的资源,它不持有任何其他资源。但是此种方法需要进程请求并分配其所有资源,它开始执行之前或允许进程请求资源仅当进程没有资源。 资源利用率低;可能发生饥饿。因为进程不同时间需要的资源不一样,开始可能少,但却一次性请求了全部的资源。无抢占:如果进程占有某些资源,并请求其他不能被立即分配的资源,则释放当前.

2022-04-04 00:29:35 2101

原创 操作系统学习06 同步

背景:独立的线程: 不和其他线程共享资源或者状态;确定性(输入状态决定结果);可重现(能够重现起始条件),I/O;调度顺序不变。合作线程:在多个线程中共享状态;不确定性;不可重现;意味着bug可能间歇性发生合作的优点:1.共享资源:一个存款余额,多台ATM2.加速:I/O操作和计算可以重叠3.模块化:将大程序分解成小程序,使系统易于扩展我们希望无论多个线程的指令序列怎样交替执行,程序都必须正常工作;多线程程序具有不确定性和不可重现的特点;不经过专门设计,调试难度很高不确定性要求并行程序..

2022-04-02 18:22:13 683

原创 操作系统学习05 调度

背景:上下文切换:CPU调度:在进程/线程的生命周期的什么时候进行调度?内核运行调度程序的条件(满足一条即可):一个进程从运行状态切换到等待状态;一个进程被终结了不可抢占:调度程序必须等待事件结束可以抢占::调度程序在中断后被响应执行;当前的进程从运行切换到就绪,或者一个进程从等待切换到就绪;当前运行的进程可以被换出调度原则:每个调度决定都是关于在下一个CPU突发时 将哪个工作交给CPU在时间片机制下,线程可能在结束当前CPU突发前被迫放弃CPU调度算法评价指标:CPU..

2022-04-01 20:32:20 2428

原创 操作系统学习04 进程和线程

进程,process:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。进程的组成:程序的代码;程序处理的数据;程序计数器中的值,指示下一条运行的指令;一组通用的寄存器的当前值,堆,栈;一组系统资源(如打开的文件),总之,进程包含了正在运行的一个程序的所有状态信息。进程和程序的联系:程序是产生进程产生的基础;程序的每次运行构成不同的进程;进程是程序功能的体现;通过多次执行,一个程序可对应多个进程,通过调用关系,一个进程可包括多个程序。进程与程序的区别:进程是动态的,程序是静态的;..

2022-03-31 18:34:00 177

原创 操作系统学习03 页面置换算法

页面置换算法的目标:当缺页中断发生,需要调入新的页面而内存已满时,选择内存中的哪个物理页面被置换。尽可能的减少页面换进换出的次数(缺页中断的次数),把未来不再使用或者短期内较少使用的页面换出。通常只能在局部原理指导下一句过去的统计数据来进行预测。页面锁定:必须常驻内存的操作系统的关键部分或时间关键的应用进程,实现方法是在页表中添加锁定标志位(lock bit)。记录一个进程对页访问的一个轨迹:(虚拟)地址跟踪(页号,位移),生成页面轨迹:最优页面置换算法当一个缺页发生中断时,对于保存在内.

2022-03-30 19:42:48 1589

原创 操作系统学习02

非连续内存分配:分页(主流方式),分页地址空间与分页寻址方案分页与分段的区别:段的大小可变,页大小不变建立方案,转换逻辑地址为物理地址(Pages to frames):页表,MMU/TLB帧(物理内存)划分物理内存至固定大小的帧(大小是2的次幂):帧号+帧内偏移 地址计算的实例:页(逻辑内存)划分逻辑地址空间至相同大小的页:页内偏移的大小=帧内偏移的大小...

2022-03-29 16:02:10 4800

原创 操作系统学习01

什么是操作系统用户角度:一个控制软件,管理应用程序,为应用程序提供服务,杀死应用程序对象管理:资源管理,管理外设、分配资源层次架构:硬件之上,应用程序之下操作系统位于应用软件之下,为应用软件提供服务支持支撑Linux,Windows,Android的界面属于外壳(Shell),而不是内核(Kernel),Kernel是我们研究重点,在shelll之下。Kernel:操作系统内部组件,包括:1. CPU调度器2. 物理内存管理3. 虚拟内存管理4. 文件系统管理5. 中断处理与设备驱..

2022-03-28 22:52:30 655

原创 LeetCode笔记之Heap

Priority Queuepriority queue优先队列是一种抽象数据结构,Heap是其一种实现方式。Heap的插入和删除时间复杂度为O(logN), 取出最大/最小值的时间复杂度为O(1) 。Heap是一种的二叉树,满足以下条件:完全二叉树每个节点的值必须大于(或者小于)其子节点的值。堆分为Max Heap和Min Heap:Heap Insertion先插入到完全二叉树的末尾(bottom-left),再根据大小关系决定是否进行交换Heap Deletion删除heap

2022-01-18 21:48:30 783

原创 Leetcode笔记之Binary Search

Binary Search的三种形式:基本形式:int binarySearch(int[] nums, int target){ if(nums == null || nums.length == 0) return -1; int left = 0, right = nums.length - 1; while(left <= right){ // Prevent (left + right) overflow int mid = left + (righ

2022-01-11 14:40:55 143

原创 LeetCode笔记之Two Pointer

Two Pointers思想从左右两边向中间移动(通常用在已排序的数组中)从一端出发,以不同速度进行移动,当快的移动到末端,根据速度的不同能够让慢的移动到某个固定百分比位置经典问题,在除去数组中的某个val时,使用2pointers(而不是新建一个array)来减少空间复杂度This technique can also be used to solve:...

2022-01-09 15:32:20 233

原创 LeetCode笔记之Resursion

Divide and Conquer:![在这里插入图片描述](https://img-blog.csdnimg.cn/816fe3eb0ea94f9c97403e9a6fdf9831.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56a55rSL5Y2a,size_20,color_FFFFFF,t_70,g_se,x_16)![在这里插入图片描述](https://img-blog.csdni

2022-01-06 16:31:21 2959

原创 JAVA注解和反射

注解 Annotation:不是程序本身,可以对程序做出解释,可以被其他程序(比如编译器)读取注解以“@注释名”在代码中存在,还可以添加一些参数值,例如: @SuppressWarnings(value=“uncheked”)注解使用位置:可以附加在package,class,method,field上面,相当于添加了额外的辅助信息,可以通过反射机制编程实现对这些元数据的访问。内置注解@Override:表示一个方法重写了另一个方法@Deprecated:废弃过时的,不建议使用,通常是危险的或

2021-12-30 18:41:29 220

原创 JAVA多线程

进程(process)与线程(thread)一个进程可以包含一个以上的多个线程程序运行时,后台会自动创造线程,例如main(), gcmain()称为主线程,用于执行整个程序线程的运行由调度器调度,先后顺序不能人为干预对同一份资源操作时会存在资源抢夺问题,需要加入并发控制线程会带来额外开销,如cpu调度时间,并发控制开销每个线程在自己的工作内存交互,内存控制不当会造成数据不一致线程的创建继承Thread类自定义线程继承Thread类重写run()方法调用start()开启线程

2021-12-29 23:23:08 282

原创 LeetCode刷题笔记之Bit Manipulation

常用的bit操作总结Bit manipulation:左移(<<):5<<2,转换成2进制,左移2位后,低位补0正数或者负数左移,低位都是用0补右移( >> ): 5>>3,转换成2进制,右移3位后, 正数右移,高位用0补,负数右移,高位用1补无符号右移( >>> ):1.Java中int类型占32位,可以表示一个正数,也可以表示一个负数。正数换算成二进制后的最高位为0,负数的二进制最高为为1,2.Java的负数二进制表示法:

2021-12-29 12:14:59 381

原创 JAVA异常处理

异常的结构捕获异常try{}catch(){}catch(){//可以捕获不同异常,但是较大异常应该放在后面}finally{//总会执行}抛出异常throw:在程序块中主动抛出异常throws:在方法名字后主动抛出异常,自定义异常自己编写class继承Exception即可,但一般用不到总结:...

2021-12-29 10:05:38 72

原创 JAVA对象

OOP:本质:以类的方式组织代码,以对象的组织封装数据三大特性:封装:高内聚,低媾和,关键即为:属性私有,get/set存取继承:1.extends 2.this用来调用当前类的方法或变量,super用来调用当前类父类的方法或变量(不能是private)3.当子类的构造器被new调用,父类的构造器也会被(先)调用。默认的super();多态:方法的重写(注意与方法的重载区分)前提是存在继承关系,名字和参数需要一样,重写只和非静态方法有关,重写需要是public(范围可扩大不能缩小)

2021-12-28 21:57:51 164

原创 JAVA数组

Arrays几个重要的static方法:对于int[] a,Arrays.sort(a):排序,从左到右依次增大Arrays.fill(a,b):用某个元素b填充aArrays.toString(a): 想打印数组中元素时使用Arrays.equals(a,b):比较数组a和数组b中元素是否相等Arrays.binarySearch(a,2):对排序好的数组进行二分法查找操作2,1、如果找到关键字,则返回值为关键字在数组中的位置索引,且索引从0开始2、如果没有找到关键字,返回值为负的插入点值,所

2021-12-28 19:00:35 1259

原创 JAVA方法

设计方法的原则方法的重载:返回类型可以不同,参数必须(数量、类型、顺序)不同的同名方法,仅返回类型不同不足以构成重载。命令行传递参数有时候需要在一个程序运行时给它传递消息,这要靠传递命令行参数给main() 方法实现可变参数(不定向参数)可以避免重载一个方法太多次用法:递归:需要由两部分组成:注:小计算可以用递归,但调用次数太多可能会导致栈溢出,这种情况应该避免递归。...

2021-12-28 16:33:55 77

原创 JAVA流程控制

用户交互Scanner:import java.util.Scanner;public class Demo{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); if(scanner.hasNextLine()){ String str =scanner.nextLine();//程序等待用户输入 } //凡是属于IO流用完最好关闭 scanner.close();

2021-12-28 15:53:32 143

原创 JAVA基础

基础语法注释,标识符,关键字//单行注释/*多行注释///*文档注释*/关键字数据类型Java是强类型语言,要求变量的使用要严格符合规定,所有变量都必须先定义后使用。 安全性提高了,速度降低了java的两大数据类型:基本类型引用类型注:字节和字基本类型扩展:1。不同进制的表示2.浮点数的比较会导致精度损失(应该使用BigDecimal类来避免)3.(int)强制转换会把char转化成其对应的Unicode编码4. 转义字符: \t制表符 \n换行类型转

2021-12-28 00:06:27 146

原创 Java入门

JAVASE注:本文仅作为个人学习笔记用两个月的学习路线:冯诺依曼体系结构Windows常用快捷键shift+delete 永久删除基本DOS命令打开cmd的方式:常见DOS命令切换到D盘: D:查看当前目录下所有文件:dir通过cd /d实现切换目录:cd /d F:\IDE返回上一级: cd…进入当前目录某个文件夹: cd tmp清理屏幕: cls推出cmda终端: exit查看电脑ip: ipconfigping命令:ping www.baidu.com当

2021-12-27 22:23:50 158

空空如也

空空如也

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

TA关注的人

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