名词解释 页面: 页面大小: 页表: 页表项: 以上名词解释见: coursera <现代操作系统> -- 第七周 存储模型(1) 页表项大小: 问:以上是怎么计算出来的? 32位指什么? 页缓冲技术 问:为什么置换出去还要保留到内存,置换不就是为了减少内存的消耗吗?而留在内存中还是消耗的. 快表 (TLB) 引入快表的原因 解决办法 加快地址访问速度,以改善系统性能 程序访问的局部性原理1 -> 引入快表 快表是什么 加入 TLB 后的地址转换过程 首先第一件事是先查 快表 TLB,我…
虚拟地址 隔离进程,便于管理. 问:为什么不直接划分物理地址为一块一块,直接管理,而要做一层虚拟地址的映射呢? 栈和堆 Differences between Stack and Heap Stack is used for static memory allocation and Heap for dynamic memory allocation, both stored in the computer's RAM . Variables allocated on the stack are…
操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进程创建.撤销.阻塞.唤醒.... 0.2 线程模型 为什么引入线程 线程的组成 线程机制的实现 用户级线程.核心级线程.混合方式 1. 进程的基本概念 1.1 多道程序设计 允许多个程序同时进入内存运行,目的是为了提高CPU系统效率 1.2 并发环境与并发程序 并发环境: 一段时间间隔内,单处理器上…
写在前面:SQLite作为嵌入式数据库,通常针对的应用的数据量相对于通常DBMS的数据量是较小的.所以它的存储模型设计得非常简单,总的来说,SQLite把一个数据文件分成若干大小相等的页面,然后以B树的形式来组织这些页面.而对于大型的数据库管理系统,比如Oracle,或者DM ,存储模型要复杂得多.就拿Oracle来说吧,它对数据文件不仅从物理进行分块,而且从逻辑上进行分段,盘区和页的一个层次划分,DM也一样.不管怎么说,数据库文件要存储大量的数据,为了更好管理,查询和操作数据文件,DBMS不得…
<Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发行的效果. 调度程序没有太复杂的原理,最大限度地利用处理器时间的原则是只要有可以执行的进程,那么就总会有进程正在执行,但是只要系统中可运行的进程的数目比处理器的个数多,就注定某一给定时刻会有一些进程不…
20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发行的效果. 调度程序没有太复杂的原理,最大限度地利用处理器时间的原则是只要有可以执行的进程,那么就总会有进程正在执行,但是只要系统中可运行的进程的数目比处理器的个数多,就注定某一给定时刻会有一些进程不能执行,这些进程在等待运行,…
目录 [第九周学习总结] 教材内容总结 [第八周课上测试] (一)求命令行传入整数参数的和 (二)练习Y86-64模拟器汇编 (三)基于socket实现daytime(13)服务器和客户端 参考资料 第九周学习总结 课堂内容总结 (一)学习目标 理解虚拟存储器的概念和作用 理解地址翻译的概念 理解存储器映射 掌握动态存储器分配的方法 理解垃圾收集的概念 了解C语言中与存储器有关的错误 (二)学习内容 (1)虚拟存储器 概念:虚拟存储器,又称虚拟内存(VM),是对主存的抽象概念 能力:①高效使用主…
20172325 2018-2019-2 <Java程序设计>第八周学习总结 教材学习内容总结 一.堆 1.什么是堆? 具有两个附加属性的一个二叉树. 堆分为小顶堆和大顶堆. 最小堆:对每一结点,它小于或等于其左孩子和右孩子. 最大堆:对每一结点,它大于或等于其左孩子和右孩子. 两个附加属性如下: (1)它是一棵完全二叉树,即该树是平衡的,且底层所有叶子都位于树的左边. (2)对每个结点,它(小顶堆/大顶堆)或等于其左孩子和右孩子. 最小堆将其最小元素存储在该二叉树的根处,且其根的两个孩子同样…
教材学习内容总结 第14章 NIO与NIO2 1.认识NIO NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区(Buffer)容量,在缓冲区中对感兴趣的数据区块进行标记,像是标记读取位置.数据有效位置,对于这些区块标记,提供了clear().rewind().flip().compact()等高级操作. 2.Channel: 衔接数据节点 Channel用于在字节缓冲区和位于通道另一侧的实体(通常是文件或者套接字)之间以便有效的进行数据传输.借助通道,可以用…
linux课程第八周实验及总结 实验及学习总结 1. 进程切换在内核中的实现 linux中进程切换是很常见的一个操作,而这个操作是在内核中实现的. 实现的时机有以下三个时机: 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(): 内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度,也就是说内核线程作为一类的特殊的进程可以主动调度,也可以被动调度: 用户…
20145213<Java程序设计>第八周学习笔记 教材学习内容总结 "桃花春欲尽,谷雨夜来收"谷雨节气的到来意味着寒潮天气的基本结束,气温回升加快.刚出冬的我对于这种气候变化也是有点不适应,心情有时也会莫名的烦躁起来.明明学过"不以物喜,不以己悲"的大道理,到现在还是还给了高中老师.尤其是遇到Java代码托管的问题,这种小情绪更是会肆无忌惮地在心里蔓延.回到正题吧,本周任务是学习通用API,老板块老规矩了,下面是我搬运的一些教材上的知识点. 日志 日志…
第八周 进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 1.进程调度与进程调度的时机分析 (1)进程分类 第一种分类 I/O-bound:等待I/O CPU-bound:大量占用CPU进行计算 第二种分类 交互式进程(shell) 实时进程 批处理进程 (2)进程调度策略 调度策略:是一组规则,它们决定什么时候以怎样的方式选择一个新进程运行 Linux的调度基于分时和优先级. Linux的进程根据优先级排队 根据特定的算法计算出进程的优先级,用一个值表示 这个值表示…
第八周 理解进程调度时机跟踪分析进程调度与进程切换的过程 一.进程调度与切换 1.进程的调度时机与进程切换 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已.对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键. 2.进程调度的时机 中断处理过程(包括时钟中断.I/O中断.系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(): 内…
20145236 <Java程序设计>第八周学习总结 教材学习内容总结 第十四章 NIO与NIO2 认识NIO NIO使用频道(Channel)来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区(Buffer)容量,在缓冲区中对感兴趣的数据区块进行标记,像是标记读取位置.数据有效位置,对于这些区块标记,提供了clear().rewind().flip().compact()等高级操作. Channel架构与操作 1.NIO中Channel相关接口与类,是位于java.nio.channel…
201521123061 <Java程序设计>第八周学习总结 1. 本周学习总结 2. 书面作业 1.List中指定元素的删除(题目4-1) 1.1 实验总结 主要是应用到了list中的add和remove等方法,dan'sh但是这道题主要的考察点在于list的删除方式,如果在表头删除那么所有元素都会前移,这时就不会按照我们所想的去删除掉nmou'g某个元素:因此我们应当在list的尾部进行删除. 2.统计文字中的单词数量并按出现次数排序(题目5-3) 2.1 伪代码(简单写出大体步骤) 建立…
1.本周学习总结 2.书面作业 2.1ArrayList代码分析 2.1.1解释ArrayList的contains源代码 ArrayList.contain()方法通过调用indexOf()来判断元素位置从而确定其是否存在其中:与此同时通过调用equals()方法处理对象不为null的情形 2.1.2解释E remove(int index)源代码 E remove(int index)将表中第index位置元素删除 2.1.3结合1.1与1.2,回答ArrayList存储数据时需要考虑元素的…
20145237 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章 通用API 15.1 日志 日志API简介 • java.util.logging包提供了日志功能相关类与接口,不必额外配置日志组件,就可在标准Java平台使用是其好处.使用日志的起点是Logger类,Logger类的构造函数标示为protected,不是java.util.logging同包的类不能直接以new创建,要取得Logger实例,必修使用Logger的静态方法getLogger(). • 调用getL…
学号 20175206 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章:泛型与集合框架 主要内容 泛型 链表 堆栈 散列映射 树集 树映射 重点和难点 重点:泛型和集合的使用 难点:集合的使用 泛型类声明 可以使用"class 名称"声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如: class People 其中People是泛型类的名称,E是其中的泛型,也就是说我们并没有指定E是何种类型的数据,它可以是任何对象或接口,但不能是基本类型数据.…
20175209 <Java程序设计>第八周学习总结 一.教材知识点总结 1.泛型 1.泛型类声明: 格式 class People<E> People是泛型类名称 E是泛型列表,可以是任何对象或接口,但不能是基本类型数据 "泛型类型"给出的泛型可以作为类的成员变量的类型.方法的类型及局部变量的类型 2.使用泛型类声明对象 Cone<Cricle> coneOne; coneOne = new Cone<Cricle>(new Cricl…
20175204 张湲祯 2018-2019-2<Java程序设计>第八周学习总结 教材学习内容总结 -第十五章泛型与集合框架要点: 一.泛型 1.泛型(Generics)的主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 2.泛型类的声明 可以使用class 名称声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如: class People 其中People是泛型类的名称,E是其中的泛型,也就是说我们并没有指定E是何种类型的数据,它可以是任何对象或接口,但不…
<java程序设计>第八周学习总结 第十五章 泛型与集合框架 一.知识点学习 1.String类 1.String类不可以有子类. 2.用户无法输出String对象的引用,输出的是字符序列 3.构造方法:String s = new String("We are students"); 4.其他构造方法:String (char a[ ]) 和 String(char a[],int startIndex,int count) 1.泛型: 泛型(Generics)的主要目的…
20172328 2018-2019<Java软件结构与数据结构>第八周学习总结 概述 Generalization 本周学习了二叉树的另一种有序扩展?是什么呢?你猜对了!ヾ(◍°∇°◍)ノ゙就是堆.本章将讲解堆的链表实现and数组实现,以及往堆中添加元素或从堆中删除元素的算法:还将介绍对的一些用途,包括基本使用和优先队列. 教材学习内容总结 A summary of textbook 堆(heap)就是具有两个附加属性的一颗二叉树: 第一点:它是一颗完全二叉树 ,即叶子节点都在最后一层靠左侧…
20175208 2018-2019-3<Java程序设计>第八周学习总结 一.教材学习内容总结: 1.泛型: 泛型的主要目的是可以建立具有类型安全的集合框架(如链表.散列映射等数据结构) 通过class 名称<泛型列表>来声明一个类,这样声明的类被称作泛型类. 泛型类最重要的优点就是:在使用这些泛型类建立数据结构时,不必进行强制类型转换,即不要求进行运行时的类型检查 2.LinkedList泛型类: LinkedList泛型类创建的对象以链表结构存储数据,习惯上称LinkedLi…
20175317 <Java程序设计>第八周学习总结 教材学习内容总结 第八周我学习了教材第十五章的内容,认识了什么是泛型与集合框架,具体内容如下: 泛型 1. 如何声明泛型类 2. 如何使用泛型类声明对象 链表 1. 使用LinkedList 泛型类声明创建链表时必须指定E的具体类型 2. 链表的构成 3. 链表的使用条件 4. 迭代器:链表的存储结构不是顺序结构,因此链表采用遍历自身的方法要慢于使用迭代器的方法. 5. 链表的常用方法 堆栈:在结对项目中堆栈得以大量应用,十分重要 散列映射…
教材学习内容总结 第十五章 泛型与集合框架 泛型 泛型:目的为建立具有类型安全的集合框架. 泛型类声明:class People<E> class 名称<泛型列表> 链表 定义:若干个结点的对象组成的一种数据结构. LinkedList泛型类:创建链表对象. 常用方法: public boolean add(E element),链表末尾添加结点. public void add(int index,E element),向链表指定位置添加一个结点. public void cle…
20175202 2018-2019-2 <Java程序设计>第八周学习总结 教材知识点总结 1.泛型: 主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 泛型类的声明:class 名称<泛型列表>. 泛型类声明时,“泛型列表”给出的泛型可以作为类的成员变量的类型.方法的类型以及局部变量的类型. 泛型类的类体和普通类的类体完全类似,由成员变量和方法构成. 使用泛型类声明对象:Cone<Circle> coneOne; coneOne =new Co…
20175227张雪莹 2018-2019-2 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章 泛型与集合框架 泛型:主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 可以声明为: class People<E> E是其中的泛型,可以是任何对象或接口,但不能是基本类型数据. 使用泛型类声明对象 泛型类声明和创建对象时,类名后多了一对"<>",而且必须要用具体的类型替换"<>"中的泛…
2018-2019-2 20175328 <Java程序设计>第八周学习总结 主要内容 泛型 泛型推出的主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 1.泛型类声明 可以使用class名称<泛型列表>声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如:class People<E> 其中People是泛型类的名称,E是其中的泛型,也就是说我们并没有指定E是何种类型的数据,它可以是任何对象或接口,但不能是基本类型数据. 2.使用泛型类…
20175314 <Java程序设计>第八周学习总结 教材学习内容总结 安利一个非常实用的图片处理工具:图片工厂,它具有非常强大的图片批处理能力,比如加水印.降低画质.命名等,不仅如此它还可以照片拼接等等等等,对于我来说非常实用 第十五章:泛型和集合框架 泛型:可以使用class名称声明一个类,<>里面可以是类和接口,但不能是基本数据类型,泛型还可以作为一种新的声明方式,使用泛型时,不必进行强制类型转换 链表:性质跟C语言大致,但定义和使用不同,比C语言要方便.使用LinkedLi…
目录 20175234 2018-2019-2 <Java程序设计>第八周学习总结 教材学习内容总结 15.1泛型 15.2链表 15.3堆栈 15.4散列映射 15.5树集 15.6树映射 15.7自动装箱与拆箱 教材学习中的问题和解决过程 代码托管 学习进度条 参考资料 20175234 2018-2019-2 <Java程序设计>第八周学习总结 教材学习内容总结 15.1泛型 泛型类声明 Class 名称<泛型列表>,泛型列表给出的泛型可以作为类的成员变量的类型.…