- 博客(65)
- 收藏
- 关注
原创 win11 powershell 新增管理员账户
net user your_user_name your_password /addnet localgroup administrators your_user_name /add
2022-04-18 21:53:59
507
原创 信息检索导论读书笔记(六):文档评分、词项权重计算及向量空间模型
在文档集规模很大的情况下,满足布尔查询的结果文档数量可能非常多,往往会大大超过用户能够浏览的文档数目。因此对搜索引擎来说,对文档进行评分和排序非常重要。参数化索引及域索引大多数文档具有额外的结构信息,与文档相关的特定形式的数据(比如作者、标题、出版日期等)我们称为元数据。数字文档通常会把与之相关的元数据以机读的方式一起编码。元数据通常会包括字段信息,对每个字段(比如文档创建时间)建立与之对...
2020-03-26 18:55:50
2023
原创 信息检索导论读书笔记(五):索引压缩
在先前的章节中介绍了信息检索系统中两个主要数据结构:词典、倒排记录表。接下来将介绍对这两个数据结构的各种压缩技术。这些技术对于构建高效的IR系统非常关键。压缩的优点有:节省磁盘空间,压缩比可以非常容易达到1:4以上 增加高速缓存技术的利用率,压缩后高速缓存中可以存放更多的信息 加快数据从磁盘到内存的传输速度,将压缩的数据块传输到内存并解压缩需要的总时间往往比将未压缩的数据块传输到内存快索...
2020-03-26 15:10:35
1176
原创 信息检索导论读书笔记(四):索引构建
建立倒排索引的过程称为索引构建,负责构建索引的程序或计算机称为索引器。操作系统往往以数据块为单位进行读写,因此从磁盘读取一个字节和读一个数据块所耗费的时间可能一样多。采用一种高效的解压缩算法然后读磁盘压缩数据再解压所花的时间往往会比直接读取为压缩数据的时间少。基于块的排序索引方法(blocked sort-based indexing)(BSBI): 对于很多大型语料...
2020-03-25 15:55:32
759
原创 信息检索导论读书笔记(三):词典及容错式检索(通配符查询、拼写校正)
假设给定倒排索引及查询,首先应确定查询词项是否在词汇表中,如果在应该返回词项对应的倒排记录表的指针。查找操作通常采用词典的经典数据结构。实现这种数据结构有两种方式:哈希表及搜索树。关于两者的定义在此不再赘述。哈希表除了需要解决哈希冲突的问题,在查询词存在轻微变形时也无法进行查询,并且由于词汇表往往是不断增长的,为当前需求设计的哈希函数可能过一段时间就不再适用。因此通常适用搜索树的查询...
2020-03-25 13:37:19
2044
原创 操作系统学习笔记(二十四):I/O子系统
I/O特点常见设备接口类型:1、字符设备:键盘鼠标、串口 a.以字节为单位顺序访问 b.I/O命令通常使用文件访问接口和语义2、块设备:磁盘、磁带、光驱 a.均匀的数据块访问 b.I/O命令通常使用文件系统接口,也可以使用内存映射访问3、网络设备:以太网、无线、蓝牙 a.格式化的报文交换 b.I/O...
2020-01-14 21:20:38
569
1
原创 操作系统学习笔记(二十三):文件系统
概念:文件系统和文件: 文件系统是操作系统中管理持久性数据的子系统,提供数据存储和访问功能,组织、检索、读写访问数据。 文件时具有符号名,由字节序列构成的数据项集合,是文件系统的基本数据单位,文件名是文件的标识符号。文件系统功能: 1.分配文件磁盘空间 a.管理文件块(位置和顺序) ...
2020-01-14 18:37:25
760
原创 信息检索导论读书笔记(二):布尔检索、倒排索引、倒排索引表合并算法、短语查询
布尔检索: 布尔检索模型接受布尔表示查询,即通过AND、OR及NOT等逻辑操作符将词项连接起来进行查询,在该模型下,每篇文档只被看成是一系列词的集合。布尔搜索的一个普遍问题就是AND操作产生的结果正确率高但是召回率偏低,而采用OR操作符召回率高但是正确率低,因此很难或者说不可能找到一个令人满意的这种方案。倒排索引: 倒排索引是信息检索内第一个核心概念。倒排索引中...
2019-12-20 00:08:55
2445
1
原创 信息检索导论读书笔记(一):开篇
不知不觉马上要毕业了,前段时间由于一直在做毕业设计的项目,没有时间学习计算机相关知识,最近终于把大论文交了,又有点时间看一下自己想看的知识。除了之前还留了个尾巴的操作系统课程笔记,由于要入职的组是做搜索的,所以打算看一下相关的书籍《信息检索导论》,应该能够从中收获很多知识。 不过这一系列笔记可能跟之前网络和操作系统的课程笔记不太一样,更加偏重计一些我自己认为有意义有意...
2019-12-19 23:09:57
431
原创 操作系统学习笔记(二十二):管程
管程是一种用于多线程互斥访问共享资源的程序结构,采用面向对象的方法,简化线程间的同步控制,保证任意时刻最多只有一个线程执行管程代码,管程与临界区的区别是在管程中的线程可临时放弃管程的互斥访问,等待事件出现时恢复,而临界区只有线程退出临界区才能放弃互斥访问。 管程与临界区结构上差别在于多了共享数据,共享数据作为条件变量,如果条件变量的数量为0则跟临界区完全一样。进入管程...
2019-12-18 19:15:36
584
原创 操作系统学习笔记(二十一):信号量
信号量与管程也是进程间通信的方式。信号量是与锁在同一层级实现的,是操作系统提供的一种协调共享资源访问的方法。信号量由操作系统管理,操作系统作为管理者地位是高于进程的。 信号也是一种抽象的数据类型,由一个整型变量(sem)和两个原子操作组成。P()操作使sem减一,若sem<0进入等待,否则继续。V()操作使sem加一,如果加一后sem仍然小于等于零,代表还有线程...
2019-12-18 18:36:51
958
原创 操作系统学习笔记(二十):临界区与锁
多进程并发运行,导致多个进程间有资源共享,比如CPU、内存,因此存在不确定性和不可重现,可能导致多次运行结果不一致。因此操作系统需要利用同步机制在并发执行的同时,保证一些操作是原子操作。 互斥是指一个进程占用了某个资源,其他进程都不能使用该资源;死锁是指多个进程各占有了一部分资源,形成了循环等待;饥饿是指其他进程轮流占用资源,一个进程一直得不到资源。临界区 ...
2019-12-18 17:56:36
1296
1
原创 操作系统学习笔记(十九):处理机调度
处理机调度概念: 进程切换就是CPU资源当前占用者的切换,通过进程切换实现CPU的时分复用。进程切换时需要保存当前进程在PCB中的执行上下文,同时恢复下一个进程的执行上下文。而处理机调度就是要实现从进程就绪队列中挑选下一个占用CPU运行的进程;如果存在多个可用CPU,还要从中挑选就绪进程可用的CPU资源。因此其中要关注两个内容:调度策略与调度时机。调度时机: 有...
2019-12-18 15:21:30
348
1
原创 操作系统学习笔记(十八):进程控制
进程切换(上下文切换):定义:暂停当前运行进程,从运行状态变成其他状态 调度另一个进程从就绪状态变成运行状态要求:切换前,保存进程上下文 切换后,恢复进程上下文 快速切换进程存储的生命周期的信息:寄存器(PC,SP,...) CPU状态 内存地址空间进程控制块PCB:内核的进程状态记录内核为每个进程维护了对应的进程控制块PCB 内核将相同状态的进程的PCB...
2019-06-15 15:49:27
586
原创 操作系统学习笔记(十七):进程和线程
进程:进程概念:定义:进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行的过程。组成:代码 数据 状态寄存器:CPU状态CP0、指令指针IP 通用寄存器:AX、BX、CX 进程占用系统资源:打开文件、已分配内存特点:动态性:客动态地创建、结束进程 并发性:进程既可以被独立调度并占用处理机运行 独立性:不同的进程的工作不相互影响 制约性:因访问共...
2019-06-14 23:34:53
535
原创 操作系统学习笔记(十六):页面置换算法
功能:置换算法是指当出现缺页异常时,需要调入新页面而内存已满时,置换算法选择被置换的物理页面。设计目标:尽可能减少页面的调入调出次数; 把未来不再访问或短期内不访问的页面调出。页面锁定:了解具体的置换算法之前,先了解一个概念,页面锁定。页面锁定是用来描述某些必须常驻内存的逻辑页面,比如操作系统的关键部分,再比如一些要求响应速度的代码和数据,...
2019-05-28 00:18:54
4358
3
原创 操作系统学习笔记(十五):虚拟存储
虚拟存储是想把一部分内存中的内容暂时存放到外存中,以提供更大的内存空间。虚拟存储的目标:1. 只把部分程序放到内存中,从而运行比物理内存大的程序。并且由操作系统完成,无需程序员的干涉。2. 实现进程在内存和外存在之间交换,从而获得更多的空闲内存空间。在内存与外存之间只交换进程的部分内容。局部性原理:具体讲虚拟存储之前先了解一下局部性原理。局部性原理是指程序在执行过程中的一个...
2019-05-22 23:55:08
1275
原创 操作系统学习笔记(十四):覆盖、交换
接下来几节都是对虚拟存储的讲解。虚拟存储是非连续存储管理的扩展。通过将内存中的数据暂存到外存的方式,为进程提供更大的内存空间。虚拟存储出现的主要原因是因为程序规模的增长速度远远大于存储器容量的增长速度,导致内存空间不够用。其实针对内存空间不够用的问题有多重解决方案,比如覆盖、交换、虚拟存储。它们的概念如下:覆盖:应用程序手动把需要的指令和数据加载到内存; 交换:操作系统自动把暂时不能执行的程...
2019-05-18 15:37:55
1034
原创 操作系统学习笔记(十三):段页式存储管理
段页式存储管理是将前面讲过的段式存储管理与页式存储管理结合起来。这一节对段页式存储管理进行讨论。段页式存储管理的需求:段式存储管理在内存保护方面有优势。如何理解呢?因为分段时是将具有相同访问方式和数据属性的内容分配到一段连续内存中,也就是每个段内的数据属性是相似的,便于统一管理和保护。 页式存储管理在内存利用和优化转移到后备存储方面有优势。因为页式存储管理中内存划分的基本块更小,对提高内...
2019-05-18 13:53:12
3910
原创 操作系统学习笔记(十二):非连续内存分配——页式存储管理
页式存储管理中,物理内存被划分为大小相同的基本分配单位,我们称为页帧,页帧的大小必须是2的幂次方,这样进行地址转换的时候比较快,可以通过二进制移位实现。比如32位系统中,4Kbyte是常见的页帧大小。而逻辑内存也被划分为大小相同的基本分配单位,我们称为页面,页面与页帧大小必须相等。页帧与页面一个是对物理内存地址一个是对逻辑内存地址而言的。因此页式存储管理中要处理逻辑地址与物理地址的转换,也就变为对...
2019-05-17 12:15:26
2611
原创 操作系统学习笔记(十一):非连续内存分配——段式存储管理
段式存储管理中,将程序的逻辑地址空间内容分为不同的段进行管理,逻辑地址空间与物理地址空间之间的映射关系图可以如下所示:每个段内部是连续的,但是不同的段在物理内存上是不连续的。段的概念:段表示访问方式和存储数据等属性相同的一段地址空间; 一个段对应一个连续的内存块; 若干个段共同组成进程的逻辑地址空间。段访问:逻辑地址由二元组表示。其中 s 表示段号,addr 表示段内偏移...
2019-05-16 12:33:47
1510
原创 操作系统学习笔记(十):非连续内存分配——背景
连续内存分配给内存分配带来了很多不便,可能所有空闲片区大小都无法满足需求大小,这个分配就会失败。基于这种现状,就有了非连续内存分配的需求。非连续分配成功的几率更高,但也面对更多的问题,比如分配时是不是1个字节的空间也可以进行分配?显然1个字节为单位分配太短了。因此我们需要选择不同尺度的基本块进行分配管理。实际操作系统中出现了两种基本块,一种是段式,一种是页式。段式分的块比较大,页式分配的块比较小。...
2019-05-15 23:37:56
302
原创 操作系统学习笔记(九):连续内存分配——伙伴系统
伙伴系统是连续存储分配的一种办法。它比较好地折中了分配和回收过程中分配块的位置碎片和合并的问题。伙伴系统地概念如下图:整个可分配分区大小为2的幂次方,当需要的内存空间大于当前块的一半的时候就将整个分区分配给进程,如果小于当前分区的一半,就将当前分区对半分开,将其中一半继续与需要的内存大小进行比较,递归进行下去,直到满足所需内存大小大于分区一半。可以看到这种分配方式内部碎片最大为分区大小的一半减一。...
2019-05-15 23:02:34
8584
1
原创 操作系统学习笔记(八):连续内存分配——碎片整理
系统运行过程中,碎片越来越多,很可能无法获取需要的较大的内存空间。我们需要解决这个问题,这就是碎片整理的意义,可以通过碎片整理获得更大的连续内存空间,以便于满足进程的应用空间需求。碎片整理是通过调整进程占用的分区位置来减少或避免分区碎片的。碎片整理有很多种方式,比如碎片紧凑、分区对换。碎片紧凑:实现方式:通过移动分配给进程的内存分区,以合并外部碎片。 条件:所有的应用程序可以动态重定位。...
2019-05-15 21:56:35
1942
原创 操作系统学习笔记(七):连续内存分配——内存碎片、动态分配
在没有其他方式辅助的情况下,我们分配给一个进程的内存是连续的。在分配时候我们需要有动态分配与碎片处理。如何理解呢?就是每个进程需要一块内存,我们要选取合适的位置的内存分配给它。当有的进程先结束了内存还给操作系统,此时可能就会产生内存碎片,要对碎片进行处理。首先对一些概念进行解释。连续内存分配:给进程分配一块不小于指定大小的连续的物理内存区域。 内存碎片:不能被利用的空闲内存,内存碎片又分为外...
2019-05-15 13:00:23
3069
原创 操作系统学习笔记(六):地址空间和地址生成
从我们写的代码到最后在总线上出现的物理地址,有一个转换的过程,在学习具体的转换算法之前,我们需要学习地址生成的过程。生成过程中并不是所有地址都允许访问的,因此还需要对地址的合法性进行检查。地址空间定义:计算机地址空间有两种,物理地址空间和逻辑地址空间。物理地址空间就是硬件支持的真实地址空间,这是受硬件支持的,比如32位的系统,就是从0到4G-1的位置。逻辑地址空间就是在CPU中运行的进程看...
2019-05-15 00:18:46
3182
原创 操作系统学习笔记(五): 计算机体系结构与内存层次
计算机除了计算能力之外还有存储能力,存储能力即计算机拥有一系列的存储介质,我们可以在存储介质上存储我们的代码和数据。计算机体系结构中约定了哪些地方可以用来存储数据:CPU内的寄存器、内存和外存。不同的存储介质,容量、速度和价格都是不同的。为了建立一个合理的系统,我们将计算机系统中的存储介质组织成一个层次结构。操作系统针对层次结构下的存储单元进行管理。操作系统的存储管理就是用来管理这些存储介质的。最...
2019-05-14 23:08:49
1065
原创 操作系统学习笔记(四): 系统调用
本节围绕系统调用展开,主要讲解了系统调用的概念与实现、程序调用与系统调用的不同、系统调用的开销。概念:首先看一个标准C库的例子:当我们程序中使用了C库中的printf()函数,实际在底层是在内核态中调用了write()函数。图中右侧则是将程序代码与C库都算到应用程序中,内核提供了一个系统调用接口。从这个例子我们可以得到以下几点:1. 系统调用是操作系统服务的编程接口;2. 系统调用通常由高...
2019-05-14 11:54:18
1015
原创 操作系统学习笔记(三): 中断、异常与系统调用
这一节讲解中断、异常与系统调用,这三者也可以总称为中断处理机制。首先我们需要知道这三个机制的背景:1. 计算机运行过程中,内核是被完全信任的第三方;2. 只有内核可以执行特权指令;3. 内核需要方便地为应用程序提供服务。那么我们为什么需要这三个机制呢?也就是说这三个机制实现了什么功能呢?中断是为了处理外设IO的,比如当我有一个新的键盘和鼠标接入了计算机,或者我们在键盘上敲了键盘,此时即使计算机...
2019-05-12 16:33:14
1445
原创 操作系统学习笔记(二): 系统启动流程
上一节讲解系统调用的过程中粗略的讲了一下系统启动的流程,然而实际上系统地启动流程远没有那么简单,本节就稍微详细地讲解一下。但是实际上即使是这一节也无法十分详细讲解,只是让我们对系统启动的过程有一个整体的认识而已。首先是BIOS读取加载程序的过程:系统加电后,CPU初始化,然后BIOS初始化硬件,然后查询主引导记录读取主引导扇区代码,这是由于现代计算机内通常不止有一个分区,不同分区内可能有不同的...
2019-05-12 15:37:05
536
原创 操作系统学习笔记(一): BIOS
这一节主要讲解了BIOS(Basic Input/Output System),基本输入输出系统。首先我们需要知道,计算机加电之后,是从什么地方读取的第一条指令,从磁盘的什么地方读取的我的操作系统的内容,也就是计算机启动的过程是怎样的。计算机加电后,首先是CPU的初始化过程,将各寄存器初始化,此时系统处于实模式下。我们要知道计算机内存分为两种,RAM(Random Access Memor...
2019-05-10 20:15:26
2622
1
原创 Introduction to Computer Networking学习总结
斯坦福这一节公开课还是非常优质的,两位教授讲的通俗易懂,深入浅出的将计算机网络的基础知识讲清楚了。其实接下来还有l三章,一章是路由、一章底层、一章安全。感觉这几章暂时可以先放一放,至少已经了解了计算机网络大部分的基础知识。因此本课程的学习我打算告一段落。转而学习操作系统。如果有想学习计算机网络的,我极力推荐本课程。...
2019-05-09 13:02:02
778
原创 Introduction to Computer Networking学习笔记(二十七):DHCP
这一节主要讲Dynamic Host Configuration Protocol (DHCP)动态主机配置协议。说实话看这节课,感受到了嘲讽...Philips说他95年上大学的时候在用固定IP、子网掩码、网关、DNS,然而交大现在还是这样啊哈哈哈。言归正传,固定的IP、子网掩码、网关、DNS有很大缺点。比如换到其他网络就没用了,并且权限是有期限的通常是以年为单位,这意味着到期jiu一个访客...
2019-05-09 00:38:12
325
原创 Introduction to Computer Networking学习笔记(二十六):DNS
DNS应该算是经常听到的名词之一了,它是 Domain Name System 的缩写,旨在提供根据域名获得IP地址的服务。一个URL包含三个部分,第一部分应用层协议类型及端口号,域名代表的host,及host中的文件。DNS即负责告知client域名所对应的的IP。DNS有两个特点:1. 只读或者说大多数情况下只提供读的服务,修改较少2. 较宽松的一致性要求,即产生延迟影响不大...
2019-05-07 20:47:35
360
原创 Introduction to Computer Networking学习笔记(二十五):BitTorrent
首先理解BitTorrent的大致机制,是允许客户端之间相互请求下载大文件。大文件被拆分成小片,当有客户端从其他客户端下载了一个文件是,他会告诉其他客户端,他也有这个文件了,这样其他客户端也可以来他这里下载这个文件。这一些客户端被称为一个集群。那么我们需要知道一个客户端是如何加入和离开集群的。加入一个集群是通过下载一个torrent文件实现的,这个torrent问价会告诉客户端这个文件有多...
2019-04-29 22:51:35
255
原创 Introduction to Computer Networking学习笔记(二十四):HTTP、SPDY
HyperText Transfer Protocol(HTTP) 超文本传输协议是现今因特网的一大基石。也是面试中经常问的一个问题。HTTP包含请求和回复,下面分别是请求和回复的格式:上图为请求。包含请求方式(比如GET、POST)、URL(域名+资源名)、HTTP版本(HTTP/1.1)。白色留空代表空格。左箭头代表返回这一行的开头,下箭头代表下一行。接下来是零个或多个header...
2019-04-29 08:31:10
236
原创 Introduction to Computer Networking学习笔记(二十三):NATs
Yahoo!终于看完了第四单元拥塞控制,现在开始第五单元Applications and NATs。首先第一节从NATs开始。NATs全程 Network Address Translator,即网络地址转换器。NATs拥有一个公网地址,并允许有许多私有局域网络地址在NATs后面,不同的NAT后面可能有相同的私有IP地址。而NATs有两端,一侧面向公网,一侧面向局域网,NATs就负责在公网与局...
2019-04-27 19:27:01
407
原创 Introduction to Computer Networking学习笔记(二十二):拥塞控制 TCP Reno
TCP经历了Tahoe版本之后,出现了一个新版本 Reno 。这个版本对Tahoe进行了改进,如果从有限状态机的角度看,Tahoe有两个状态,Reno有三个状态:这里面有三个机制,这一部分需要认真好好理解,很容易发现知识盲区:1. 快速重传:当发送者接收到三个重复的ack即认为丢失了一个包,立马对该包进行重传,在这一点上与Tahoe是一致的,但是Reno不会返回慢启动状态,只有超...
2019-04-26 14:18:14
472
原创 Introduction to Computer Networking学习笔记(二十一):拥塞控制-TCP Tahoe
本节对TCP发展历史进行了简短的介绍:可以看到1986年,由于TCP还未加入拥塞控制,网络开始因为拥塞而频繁出现瘫痪,之后的两年内,Jacobson找到了问题根源,并对拥塞进行了处理,这是非常具有开创性的,而这一个版本的TCP代号为Tahoe。也就是本节重点介绍的内容。TCP Tahoe中增加了三个重要举措,接下来挨个进行介绍。其实这三个重要举措对应着TCP三个最本质的问题: 什...
2019-04-26 00:33:16
799
原创 Introduction to Computer Networking学习笔记(二十):TCP拥塞控制-基本方法 AIMD
这一节将对拥塞控制的两个问题进行介绍,第一个是拥塞控制策略应该放在哪,是放在每个路由上,还是放置在处于网络边沿的end host;第二个是拥塞控制的基本方法AIMD(additive increase multiplicative decrease)。对于第一个问题,拥塞控制策略放在end host和放在中间路由上都是可以实现的。比如放在路由上:数据包每经过一个路由,路由向包中添加自己的que...
2019-04-25 01:19:56
1093
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人