自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MIT-OSlab2:进程与线程

文章目录part1:预备知识1、进程管理的数据结构——进程控制块(Process Control Block, PCB)2. 进程表ptable3、用户态和内核态:4、进程的状态5、xv6的独特内核切换6、进程的虚拟地址布局:7、内核页表kpgdir8、x86的分页映射Part2:第一个进程的创建1、main函数1)kvmalloc2)xxinit3)userinit:初始化第一个用户进程:【al...

2019-10-27 14:30:25 834

原创 贪心

44:通配符匹配这道题之前用动态规划的方法做过,此处用贪心重做一遍。动态规划和贪心算法都是一种递推算法均有局部最优解来推导全局最优解不同点:贪心算法:1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留。2.贪心法正确的条件是:每一步的最优解一定包含上一步的最优解。动态规划算法:1.全局最优解中一定包含...

2019-10-11 22:45:56 260

原创 MIT-OS实验-lab1

Lab 1 Part 1:PC bootstrapMake qemu-nox-gdb;Make gdb;这条指令就是整个PC启动后,执行BIOS的第一条指令。(图源https://www.jianshu.com/p/ae49b5813595)第一代PC处理器是16位字长的Intel 8088处理器,这类处理器只能访问1MB的地址空间,即0x00000000-0x000FFFFF。但...

2019-10-09 11:09:36 2143

原创 动态规划

981:求环形子数组最大和预备知识:Kadane算法:用于求子数组最大和伪代码:#Kadane's algorithmans = cur = Nonefor x in A: cur = x + max(cur, 0) ans = max(ans, cur)return ansmethod1:邻接数组:环形数组多了一种情况:区间 [0, i],[j,A.l...

2019-09-23 11:53:14 180

转载 用cmd运行java可以但javac不行(win10)

反复检查了好几遍环境变量配置,都没问题也检查了有javac.exe最后居然是因为……原文链接猜双引号出现是因为直接复制粘贴的路径 or 路径中有空格?...

2019-09-04 11:17:00 1810

转载 Linux 0.11下信号量的实现和应用(李治军操作系统实验6)

生产者-消费者问题从一个实际的问题:生产者与消费者出发,谈一谈为什么要有信号量?信号量用来做什么?为什么要有信号量?对于生产者来说,当缓冲区满,也就是空闲缓冲区个数为0时,此时生产者不能继续向缓冲区写数,必须等待,直到有消费者从满缓冲区取走数后,再次有了空闲缓冲区,生产者才能向缓冲区写数。对于消费者来说,当缓冲区空时,此时没有数可以被取走,消费者必须等待,直到有生产者向缓冲区写数后,消...

2019-08-27 10:34:11 2172 1

原创 进程同步与信号量(李治军操作系统课笔记6)

临界区:一次只允许一个进程进入为什么需要临界区?两个生产者因竞争资源会产生随机的执行顺序,造成信号量的修改不当,信号量语义错误,所以需要保护信号量。临界区代码的保护原则:1、基本原则——互斥2、有空让进3、有限等待临界区保护方法1、轮换法:但是,若P1被什么阻塞了,而P0结束了之后又不能继续进入临界区,导致两个都不在临界区。2、标记法:但是,因为变量不共享,所以看不到对方...

2019-08-26 20:58:56 275

转载 基于内核栈切换的进程切换(李治军操作系统课实验5)

分析:TSS作用找到当前内核栈:进程内核栈在线性地址空间中的地址是由该任务的TSS段中的ss0和esp0两个字段指定的,依靠TR寄存器就可以找到当前进程的TSS。也就是说,当从用户态进入内核态时,CPU会自动依靠TR寄存器找到当前进程的TSS,然后根据里面ss0和esp0的值找到内核栈的位置,完成用户栈到内核栈的切换。TSS是沟通用户栈和内核栈的关键桥梁,这一点在改写成基于内核栈切换的进程切...

2019-08-19 23:36:02 2828

原创 核心级线程实现实例(李治军操作系统课笔记5)

从中断开始以fork()为例:fork()中有中断,执行 INT 0x80时,CPU找到对应的内核栈,将 SS SP PC CS 压栈;注意ret=??处写的是INT 的下一句,也就是PC = mov res,%eax 。切换五段论中的中断入口和出口刚进入内核,_system_call将用户态信息压栈,这就是中断入口——建立内核栈和用户栈的关联)movl _current,%eax...

2019-08-19 14:13:27 487

原创 用户级与内核级线程(李治军操作系统课笔记4)

此篇文章解释交替进程步骤中的切换。又因为进程的切换=线程切换+映射表的切换(与内存管理有关),线程切换有用户级线程切换和内核级线程切换,而进程是要深入内核的,所以此处是内核级切换。所可以从内核级线程切换来理解进程切换。而用户级切换是内核级切换的基础。用户级线程一个切换例子:关键:两个TCB+两个栈Yield()就是切换esp,也就是栈顶指针,即切换了栈Yield()之后通过栈...

2019-08-18 21:13:20 441

转载 多进程图像的理解(李治军操作系统课笔记3)

操作系统是怎么支持多进程图像的1、 操作系统是如何组织多进程的:以PCB为单位,一个PCB记录一个进程的信息。给每个进程一个状态:正在执行的进程(运行态)、准备好了只等cpu来执行的进程(就绪态)、缺少一些东西没准备好在等待的进程(阻塞态)。操作系统可以通过进程对应的PCB来知道进程现在所处的状态,按照状态形成不同的队列。根据进程的状态转化如下图:2、操作系统如何交替进程:调度和切换的代...

2019-08-17 16:12:57 230

原创 操作系统接口与系统调用的实现 (李治军操作系统课笔记2)

什么是接口用户使用计算机的两种方式:命令行、图形。从这两种方式理解接口。命令行1、命令其实就是程序,经过编译后生成可执行文件,在命令行键入可执行文件名与参数输出结果。而实际上shell也是一个程序,开机时在main.c文件的所有xx_init()函数之后,通过/bin/sh这个可执行文件启动shell程序2、关键是这些程序里面调用的函数:fork()控制进程 , printf()控制...

2019-08-16 23:36:26 981

原创 操作系统启动步骤解读 (李治军操作系统课笔记1)

总体流程图:图源:https://www.cnblogs.com/ronny/p/7787259.htmlbootsect.S 剖析一般PC在电源打开时,是由内存中地址FFFF(段地址cs):0000(偏移量ip)(cs<<4+ip)开始执行,此处的内容是一个jump指令,jump到另一个位于ROMBIOS中的位置,开始执行一系列的动作,包括了检查RAM,keyboard,...

2019-08-14 17:17:46 1269

原创 SQLDriverConnect连接数据库失败解决方案(全的不能再全)

在进行数据库实验(ODBC使应用程序连接、访问数据库)的时候用SQLDriverConnect会连接失败,然后开始我的漫长解决之路…1、利用.udl文件获得SQL实例名称。使用.udl获取数据库的连接字符有时候直接重命名文件并不能更改文件类型,请戳右边这是更改扩展名的方法结果如下:标蓝的就是实例名称然而我得到实例名称也没有用啊!!我本来就知道自己的实例名称啊喂!!2、开启远程连接步骤,...

2019-03-31 20:40:19 4809

原创 “不是内部命令或外部命令”解决方法

WIN+R打开运行之后,输入cmd进入命令行,但是输入telnet显示“xxx不是内部或外部命令,也不是可运行的程序或批处理文件”,然后又试了其他的命令,ipconfig、help都是这样。我的解决过程是这样的:1、首先按照勾选telnet服务器这样做,但是并没有用2、然后按照配置环境变量做了之后,仍然没用3、接着按照在C:\windows\system32中打开cmd.exe惊人的命令有...

2019-03-31 13:40:39 8316 4

原创 html+css(6)

Vue学习数据要写在data:{}中v-model="":双向绑定.lazy:延迟.trim:去除两端空格.number:自动识别为数字用于input、textarea、selectv-show/if="":有输入才显示v-for="":可以通过console直接push数据v-bind:绑定href、src、class(v-bind可省略)v-model和v-bin...

2019-03-26 10:02:36 232

原创 html+css实战(5)

JQuery实战——表单验证框架:+ *{box-sizing:border-box}+ wrap{margin:xx auto;(使居中)max-width:1080px;(设max-width方便日后调整} 单独定义wrap-sm{width:400px;}封装Validator:$(function){}相当于document.ready():当加载完DOM之后再执行,...

2019-03-24 16:19:16 208

原创 html+css实战(5)

JQuery实战——表单验证框架:+ *{box-sizing:border-box}+ wrap{margin:xx auto;(使居中)max-width:1080px;(设max-width方便日后调整} 单独定义wrap-sm{width:400px;}封装Validator**:$(function){}相当于document.ready():当加载完DOM之后再执行...

2019-03-24 16:11:50 1026

原创 html+css实战(4)

JQuery选择器:$('.classname or #tagname).css('propertyname','property');$('input[type="text"]')$('div:first')过滤器$('div').find('.child')$('#child1').parent()//上一级的父元素$('#child1').parents('.gr...

2019-03-23 16:30:40 183

原创 html+css实战(3)

html+css实战(3)新闻页面设置头像除了在html中用img之外还可以设置为背景图片classname{ background:url(路径); background-size:百分比; background-repeat:no-repeat; background-position:center center; width:}na...

2019-03-22 20:01:47 136

原创 html+css实战(2)

html+css实战(2)响应式布局+bootstrap响应式导航栏position:fixed/relative当div为百分比overflow:auto会自动加上滚动条~表示兄弟 >表示儿子不用js做菜单选择:checkbox:checked ~div{display:hidden}默认隐藏:元素自身display:none;checkbox{display:bl...

2019-03-21 17:31:57 283

原创 html+css实战(1)

html+css实战简单电商品台搭建先粗糙地分成几个大的div,再给每个div细分,一开始就给每个div命好类名为了不让内容平铺满整个页面,把大的div块用container类封装起来,可使div块对齐.container{ display:block; max-width:1080px; margin:0 auto;}超链接a是内联元素,无法设置...

2019-03-20 13:47:11 158

原创 Java 核心技术卷I 笔记(2)

2019/3/3基础知识整型字节数不变不要使用char整数型和布尔值之间不能相互抓换 if(x=0)不能通过编译final表示常量,且常量名一般全大写final double PAY_EFFORT=2.4字符串不可以被修改码点和代码单元代码单元数量stringname.length()码点数量codePointCount(0,stringname.length())返回第...

2019-03-03 21:07:57 116

原创 leetcode 763解题报告

题目:A string S of lowercase letters is given. We want to partition this string into as many parts as possible so that each letter appears in at most one part, and return a list of integers representin...

2018-11-05 20:34:55 149

空空如也

空空如也

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

TA关注的人

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