mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2025-04-29 03:53:30 +08:00
c++
This commit is contained in:
parent
76b9b47772
commit
4d4c2c5aa5
@ -671,3 +671,55 @@ int main()
|
|||||||
[3]
|
[3]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 15. 面试补充
|
||||||
|
|
||||||
|
1)网络的状态码:
|
||||||
|
|
||||||
|
以5开头的一般表示的服务器状态的异常
|
||||||
|
|
||||||
|
302:本次请求成功了,你还需要继续请求
|
||||||
|
|
||||||
|
好,为什么还需要继续请求?资源可能由于维护、更新或其他原因临时移动到了新的位置,你请求的资源现在临时存在于另外一个地址,请去那里请求。
|
||||||
|
|
||||||
|
2)cpu调度算法
|
||||||
|
|
||||||
|
1. **先来先服务**:这是最简单的调度算法。<font color=red>按照请求CPU的顺序进行调度</font>。一个进程完全执行完后,下一个进程才开始执行。其主要缺点是“饥饿”(某些进程可能需要等待很长时间)和“凸轮”现象(较短的任务可能要等待一个长任务执行完毕)。
|
||||||
|
2. **短作业优先(SJF,Shortest Job First)**:<font color=red>这个算法选择预计运行时间最短的进程并先执行它</font>。虽然这可以减少平均等待时间,但实际上很难知道进程的预计运行时间,而且长作业可能遭到饥饿。
|
||||||
|
3. **最短剩余时间优先(SRTF,Shortest Remaining Time First)**:<font color=red>这是SJF(短作业优先)的抢占式版本,如果新到的进程的预计剩余运行时间比当前正在运行的进程的剩余时间短,CPU将被分配给新进程</font>。这种方法也面临着长作业饥饿的问题。
|
||||||
|
4. **轮转调度(RR,Round Robin)**:这是最常用的抢占式调度算法。<font color=red>它将时间分为固定长度的片段,按顺序将CPU分配给进程</font>。如果一个进程在其时间片结束时还没有完成,它将被放回就绪队列的末尾。这种方法提高了响应时间,但如果时间片设置得不合理,可能导致CPU效率低下。<font color=red>比如说只给你10分钟享受这个资源,10分钟你还没办完,你就先下去,重新排队,让后面的进程来</font>
|
||||||
|
5. **优先级调度**:在这个算法中,<font color=red>每个进程都被分配一个优先级。具有最高优先级的进程将首先获得CPU,相同优先级的进程可以采用FCFS或RR等其他调度算法进行调度</font>。问题在于低优先级进程可能会遭受无限期的饥饿。
|
||||||
|
6. **多级反馈队列(MFQ,Multilevel Feedback Queue)**:<font color=red>(太难了,不要背这个)</font>,这是一种复杂的调度算法,旨在克服上述算法的缺点。在这种方法中,进程根据其属性(如CPU使用时间、进程优先级)被分配到不同的队列,并在这些队列之间根据其行为(如执行时间、等待时间)动态移动。这种方法试图平衡响应时间和CPU利用率。
|
||||||
|
|
||||||
|
3)
|
||||||
|
|
||||||
|
1.虚拟内存是一个什么样的概念?当物理内存消耗殆尽时,我们还想拥有更多的内存,这个时候系统只能从其他地方给你找点空间来进行临时的替代,<font color=red>而硬盘就是这个临时空间</font>.
|
||||||
|
|
||||||
|
比如你运行一下3A大型游戏,你电脑的运存不够大,这个时候就需要开辟一段虚拟内存来支持这个程序的运行
|
||||||
|
|
||||||
|
2.虚拟内存从哪里来的?
|
||||||
|
|
||||||
|
物理内存有内存条,虚拟内存:硬盘来的
|
||||||
|
|
||||||
|
4)数据库的事务有哪些?
|
||||||
|
|
||||||
|
事务是指一系列操作的集合,要么都成功,要么都失败.
|
||||||
|
|
||||||
|
比如去购物,消费者扣钱是一个操作,超市账户加入等量的钱是第二个操作.这两个操作,你要么都成功,要么都失败,你不可以出现"消费者扣了钱,但是超市账户那里没收到钱"这样的现象.
|
||||||
|
|
||||||
|
所以我们可以开启一个事务(start transaction[船然可胜];)将这两个步骤加入到一个事务中,要么都成功要么都失败.
|
||||||
|
|
||||||
|
我们还可以在这个事务中保存一些节点,来方便我们回滚到某些节点,最后确保都成功后,我们在commit进行提交.
|
||||||
|
|
||||||
|
5)七层网络模型和tcp网络模型你能说出来嘛?
|
||||||
|
|
||||||
|
1. 
|
||||||
|
|
||||||
|
6)git在版本管理中的分区是怎样的呢?
|
||||||
|
|
||||||
|
工作区(你在电脑上进行的一些增删改)、暂存区(git add)、本地仓库(git commit)和远程仓库(git push)
|
||||||
|
|
||||||
|
7)应用程序占用哪些端口咋么看?
|
||||||
|
|
||||||
|
回答了netstat | grep 8000,其实完整的话是:
|
||||||
|
|
||||||
|
netstat -tlnp | grep 8000
|
BIN
exampleSite/content/post/2024-04-19面试复盘/图片/1714318093628.png
Normal file
BIN
exampleSite/content/post/2024-04-19面试复盘/图片/1714318093628.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 208 KiB |
Loading…
Reference in New Issue
Block a user