2021春招冲刺-1218 页面置换算法 | sort的原理 | 语义化标签 | 标签的继承
2021春招冲刺
12.21日
1.操作系统 | 页面置换算法有哪几种?---尽量了解原理而不仅仅只限于知道名字** 参考网站:对时钟置换算法有更好理解
最佳置换算法(OPT)
主存中移出永远不再需要的页面;如无这样的页面存在,则选择最长时间不需要访问的页面。于所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。
先进先出置换算法(FIFO)
当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。但是缺点是容易导致Belady异常 (当所分配的物理块数增大而页故障数不减反增的异常现象)
最近最久未使用(LRU)算法
利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰
时钟(CLOCK)置换算法
环形链表,不再排序而是使用2个标记,0和1,第一个次加载页面的时候,页面标记被设置为0,调用内存中驻留的页面时,标记该页面为1。
出现缺页时,指针从当前位置循环查找环形链表,如果遇到标记为1的,标记为0,如果遇到标记为0的,置换它。
时钟(CLOCK)置换算法(改进)
在使用位的基础上再增加一个修改位,则得到改进型的CLOCK置换算法。这样,每一帧都处于以下四种情况之一:
- 最近未被使用,也未被修改(u=0, m=0)。
- 最近被使用,但未被修改(u=1, m=0)。
- 最近未被使用,但被修改(u=0, m=1)。
- 最近被使用,被修改(u=1, m=1)。
算法执行如下操作步骤:
从指针的当前位置开始,扫描帧缓冲区。在这次扫描过程中,对使用位不做任何修改。选择遇到的第一个帧(u=0, m=0)用于替换。所有步骤中的替换操作都需要将帧置为(1,1)。
如果第1)步失败,则重新扫描,查找(u=0, m=1)的帧。选择遇到的第一个这样的帧用于替换。在这个扫描过程中,对每个跳过的帧,把它的使用位n设置成0。
如果第2)步失败,指针将回到它的最初位置,并且集合中所有帧的使用位均为0。重复第1步,并且如果有必要,重复第2步。这样将可以找到供替换的帧。
2.JS | sort的原理是怎样的
-
[2,1,10].sort()结果是什么
结果:[1 , 10 , 2 ]
由于sort默认排序顺序是根据字符串Unicode码点,2的编码大于1,因此会出现以1开头的都在2之前的情况。 -
['2','1','10'].sort() 结果是什么
结果: [ '1' , '10' , '2' ]
此情况的原因同上一种一样,都是根据字符串的码点返回结果。 -
['2','1','10'].sort((a,b)=>a-b) 结果是什么
结果: [ '1' , '2' , '10' ]
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。而在字符串的加减运算中,如果字符串是纯数字的话,name就按照数字进行加减运算。当返回结果大于零的时候进行交换排序。 -
['cc','bb','aa'].sort((a,b)=>a-b) 结果是什么
结果: [ 'cc' , 'bb' , 'aa' ]
由于包含非数字类型的字符串在进行加减法运算中得到的结果都为NaN (表示未定义的值),因此结果不进行排序。
3.HTML | 语义化标签有哪些,为什么要使用语义化标签
title
hn
ul
li
nav
main
以及17号html提问中提到的header
section
footer
aside
等都是语义化标签
优点主要在于美观与可访问性,如果是为了分块还是请用div
。
代码结构清晰,方便阅读,有利于团队合作开发。
方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备),以语义的方式来渲染网页。
有利于搜索引擎优化)。
4.css | 有哪些属性是不可以被继承的,哪些可以被继承
能继承的属性
- 字体属性:font、font-family、font-weight、font-size、font-style;
- 文本属性:color、line-height、word-spacing (字间隔)、letter-spacing (字符间距)、text-transform (文本大小写)、text-indent、text-align;
- 元素可见性:visibility
- 表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、table-layout;
- 列表布局属性:list-style
- 生成内容属性:quotes
- 光标属性:cursor
- 页面样式属性:page、page-break-inside、windows、orphans;
- 声音样式属性:speak、speech-rate、volume、voice-family、pitch、stress、elevation;
不能继承的属性
- display:规定元素应该生成的框的类型;
- 文本属性:vertical-align、text-decoration
- 盒子模型的属性:width、height、margin 、border、padding
- 背景属性:background、background-color、background-image
- 定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip
- 生成内容属性:content、counter-reset、counter-increment
- 轮廓样式属性:outline-style、outline-width、outline-color、outline
- 页面样式属性:size、page-break-before、page-break-after
- 声音样式属性:pause、cue、play-during