操作系统
2、SQL语言四大类别
3、垂直分表和水平分表
4、淘汰策略【页式系统】
5、任务(进程)调度算法
操作系统
系统调用与库函数的区别
1、系统调用
(1)操作系统提供了一组特殊接口——系统调用
通过这组接口用户程序可以使用操作系统内核提供的各种功能。例如分配内存、创建进程、实现进程之间的通信等。
(2)用户程序向操作系统提出请求的接口就是系统调用
所有的操作系统都会提供系统调用接口,只不过不同的操作系统提供的系统调用接口各不相同。
(3)系统调用按照功能分类
进程控制、进程间通信、文件系统控制、存储管理、网络管理、套接字控制、用户管理等。
2、库函数
对系统调用的一种封装,因为系统调用是面对的是操作系统,系统包括Linux、Windows等,如果直接系统调用,会影响程序的移植性,所以这里使用了库函数。
用户编程接口API:
前面提到利用系统调用接口程序可以访问各种资源,但在实际开发中程序并不直接使用系统调用接口,
而是使用用户编程接口(API)【各种库(最᯿要的就是C库)中的函数】。
不直接使用系统调用接口原因如下:
- 系统调用接口功能非常简单,无法满足程序的需求
- 不同操作系统的系统调用接口不兼容,程序移植时工作ᰁ大
页面淘汰算法
1、淘汰策略(页式系统)
(1)置换算法
当主存块已全部用完,添加新的一页进主存,选择淘汰哪一页的规则
(2)颠簸(抖动)
导致系统效率急剧下降的主存和辅存之间的频繁页面置换现象。
系统为每一个进入主存的程序分配的主存块数m是固定的;
2、最佳算法(OPT算法)
每次选择的淘汰页面将是以后永不使用,或者在最长时间内都不再访问的页面(保证最低的缺页率)
该算法是无法实现的
原因:操作系统无法提前判断页面访问序列
一般该算法作为衡ᰁ各种具体算法优劣的标准淘汰时参考的是未来将要执行的,但是只有在进程执行过程中才能知道接下来会访问到的是哪个页面
3、先进先出算法(FIFO算法)
每次淘汰选择在主存中居留时间最长(即进入最早)的一页淘汰。
实现的方法:
把调入内存的页面根据调入的先后顺序排成一个队列,需要换出页面时选择队头;页面队列的最大长度取决于系统为进程分配了多少个内存块。
Belady异常:
当为进程分配的物理块数增大时,缺页次数不降反增的异常现象。(只有FIFO算法有该现象)
缺点:
该算法与进程实际运行时的规律不适用,因为先进入的页面可能经常被访问,算法性能较差。
4、最近最久未使用淘汰算法(Least Recently Used)(LRU算法)
每次淘汰的页面时最近最久未使用的页面。
实现方法:
(1)计数器:
赋予每个页面对应的页表项中,用访问字段记录该页面自上次被访问以所经历的时间t(需要硬件支持,实现困难,开销大)
(2)堆栈(软件实现)
利用那个栈来登记主存中可淘汰的页号。每当一个页面被访问过,就立即将它的页号记载页号栈的顶部,而将栈中原有的页号依次下移。(淘汰的页面对应栈底页面)
5、LRU近似算法(软硬相结合)
在一个存储块有一个引用位:
当某块中的页面被访问时,这一位由硬件自动置1,而页面管理软件周期性(T)将所有引用位᯿新置“0”(在T内,访问过的页面为1,未访问过为0,需要置换一页时,淘汰应用那个位为0)
替换指针:
全站分卷索引 · 152 卷
- 1代码随想录知识星球精华(最强八股文)第五版(面经篇)
- 2后端面经02-美团
- 3Java面经02-阿里ICBU
- 4Java面经-04-CVET
- 5Java面经-06-字节后端
- 6Java面经08-用友
- 7Java面经09-快手
- 83. 计算机网络
- 94. 数据库
- 105. 算法
- 11Java面经11-美团
- 121.3 java的4种引用
- 132. JVM
- 143. 操作系统
- 154. 计算机网络
- 165. 数据库
- 17Java面经13
- 18Java面经14
- 19Java面经16
- 20Java面经17
- 21Java面经18
- 22二面
- 23三面
- 24面经19-Java-字节暑期实习
- 25字节三面
- 26面经21-Java-蚂蚁暑期实习
- 27蚂蚁三面
- 28MySQL
- 29计算机网络
- 30拉链法的工作原理
- 31确定桶下标
- 32扩容 - 基本原理
- 33链表转红黑树
- 34子进程和线程的区别
- 35协程
- 36数据库
- 37哈希索引
- 38计算机网络
- 39TCP和UDP的区别
- 40面经25-Java-百度二面
- 41面经26-Java-京东一面
- 42面经27-Spring
- 43计算机基础面经28
- 44计算机基础面经29
- 45计算机网络
- 46操作系统
- 47任务调度算法
- 48数据库
- 49计算机基础面经31
- 50乐观锁两种实现机制
- 51版本号机制
- 52死锁相关问题
- 53计算机网络
- 54拥塞控制的四种方法
- 55计算机基础面经32
- 56三次握手的流程
- 57计算机基础面经33
- 58计算机基础面经34
- 59异步
- 60C++后端
- 61面经3-C++-地平线
- 62面经6-C++-国电南瑞
- 63面经7-c++后端-字节
- 64二面
- 65面经11-C++-OPPO
- 66面经12-C++-商汤
- 67SelectDB
- 68面经15-C++-中望
- 69面经16-C++-米哈游
- 70面经17-C++-旷世
- 71面经19-C++-蔚来
- 72面经20-C++-第四范式
- 73面经21-C++-TP-Link
- 74面经23-C++-猿辅导
- 75面经25-C++-文远知行
- 76面经26-C++-百度
- 77百度二面
- 78百度三面
- 79面经27-C++-ZEKU
- 80ZEKU哲库HR面
- 81面经28-C++-VIVO
- 82面经29-C++-TPLINK
- 83字节二面
- 84HR面
- 85面经32-C++
- 86TCP的粘包与拆包
- 87引入协程的原因
- 88面经34-C++
- 892. 指针与引用的区别
- 902. Nagle 算法与延迟确认
- 91数据库
- 922. MVCC-多版本并发控制
- 93计算机网络
- 94面经36
- 95面经37
- 96面经38
- 97面经39-C++-拼多多+字节
- 98字节一面【7.27】
- 99shopee测开一面【7.29】
- 100一、表面上开销
- 101面经44-京东二面
- 102Go后端
- 103二面
- 104面经3-Go-字节日常实习
- 105字节二面
- 106字节三面
- 107HR面
- 108面经5-Go-字节暑期实习
- 109字节二面
- 110字节三面
- 111面经02-测开-百度提前批
- 112二面
- 113面经06-测试-海尔智家
- 114面经07-测开-蔚来
- 115面经09-测试-中望
- 116面经10-测开-ZEKU
- 117面经12-测试-科大讯飞
- 118面经15-测开-美团暑期实习
- 119面经16-测开-外企社招
- 120Nvidia四面
- 121面经2-前端-百度日常实习
- 122面经3-前端-得物面经
- 123面经4-前端-腾讯健康
- 124面经5-前端-字节面经
- 125面经6-前端-携程前端
- 126面经7-前端-顺丰
- 127面经9-前端-比特大陆日常实习
- 128面经10-前端-抖音
- 129面经11-前端-蔚来/百度/oppo
- 130百度提前批
- 131面经12-前端-知乎暑期实习
- 132知乎二面
- 133百度二面
- 134面经2-Android客户端-大疆
- 135二面
- 136面经3-客户端-字节暑期实习
- 137字节二面
- 138字节二面(深入项目,1h)
- 139面经5-客户端-字节
- 140面经6-客户端-字节
- 141算法
- 142面经3-NLP-科大讯法
- 143面经4-NLP-科大讯法
- 144面经7-游戏算法-莉莉丝
- 145面经10-算法
- 146面经11-算法-百度pnc暑期实习
- 147百度二面
- 148抖音一面
- 149嵌入式
- 150面经3-嵌入式-芯动科技
- 151面经4-嵌入式-韶音科技
- 152面经6-嵌入式-新华三