• 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 | 有哪些属性是不可以被继承的,哪些可以被继承

    能继承的属性

    • 字体属性:fontfont-familyfont-weightfont-sizefont-style;
    • 文本属性:colorline-heightword-spacing (字间隔)letter-spacing (字符间距)text-transform (文本大小写)text-indenttext-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
  • 相关阅读:
    安装lamp服务器
    Linux ssh登录命令
    一些替代Xshell的软件推荐
    字符串输入的几种方式
    Java数据库操作的一些注意
    模拟堆
    web安全基础第一天
    情报搜集
    kali中的postgres怎么连接
    LeetCode:Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/banshanliang/p/14182299.html
Copyright © 2020-2023  润新知