操作系统
文章平均质量分 88
loytuls
这个作者很懒,什么都没留下…
展开
-
操作系统的调度算法—进程调度算法、页面置换算法、动态分区算法、磁盘调度算法(常问面试题)
8、调度算法8.1、进程调度算法1、先来先服务FCFS 非抢占式调度算法,按照请求的顺序进行调度。有利于长作业,不利于短作业,短作业必须等长作业执行完毕才执行,长作业耗时又很长,这样会导致短作业等待时间过长。2、短作业优先SJF 非抢占式调度算法,按预估运行时间最短的顺序进行调度。长作业有可能会饿死,处于一直等待短作业执行完毕的状态,要是一直一直有短作业来,长作业永远得不到调度。3、最短剩余时间优先SRTN 最短作业优先的抢占式版本,按照剩余运行时间的顺序进行调度,一个新作业到大,原创 2022-03-20 10:00:00 · 1337 阅读 · 0 评论 -
同步I/O、异步I/O、阻塞I/0、非阻塞I/O、五种I/O模型、高性能网络模型
面试最常问问题之二:五种I/O模型及区别原创 2022-03-19 10:00:00 · 1541 阅读 · 0 评论 -
操作系统—死锁与常见的锁(面试官最喜欢问的知识点之一)
6、死锁 死锁是指两个(多个)线程相互等待对方数据的过程,死锁的产生会导致程序卡死,不解锁程序将永远无法进行下去。6.1、死锁产生的原因 举个例子:两个线程A和B,两个数据1和2。线程A在执行过程中,首先对资源1加锁,然后再去给资源加锁,但是由于线程的切换,导致线程A没能给资源2加锁。线程切换到B后,线程B先对资源2加锁,然后再去给资源1加锁,由于资源1已经被线程A加锁,因此线程B无法加锁成功,当线程切换为A时,A也无法成功对资源2加锁,由此就造成了线程AB双方相互对一个已加锁资源的等待,死锁原创 2022-03-18 10:00:00 · 729 阅读 · 0 评论 -
中断和异常
5、中断和异常5.1、中断 大家都知道,当我们在敲击键盘的同时就会产生中断,当硬盘读写完数据之后也会产生中断,所以,我们需要知道,中断是由硬件设备产生的,而它们从物理上说就是电信号,之后,它们通过中断控制器发送给CPU,接着CPU判断收到的中断来自于哪个硬件设备(这定义在内核中),最后,由CPU发送给内核,有内核处理中断。下面这张图显示了中断处理的流程:5.2、异常 我们在学习《计算机组成原理》的时候会知道两个概念,CPU处理程序的时候一旦程序不在内存中,会产生缺页异常;当运行除法程序时,原创 2022-03-17 10:00:00 · 382 阅读 · 0 评论 -
操作系统之线程(面经总结)
3、线程3.1、线程的状态1、五种状态新建:新创建了一个线程对象。就绪:该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。运行:就绪状态的线程获取了CPU,执行程序代码。阻塞(等待):线程因为某种原因放弃CPU使用权,暂时停止运行销毁2、如何创建线程 pthread_create C++新增线程库。线程的创建是由AfxBeginThread()函数完成,函数中传参分别是线程回调函数、传递给线原创 2022-03-16 10:00:00 · 138 阅读 · 0 评论 -
操作系统之进程(面试总结)
2、进程2.1、进程、线程、协程的区别进程线程协程定义资源分配和拥有的基本单位资源调度的基本单位用户态的轻量级线程,线程内部调度的基本单位切换情况进程CPU环境(栈、寄存器、页表、句柄等)的保存以及新调度的进程CPU环境的设置保存和设置程序计数器、少量寄存器和栈的内容先将寄存器上下文和栈保存,后期恢复切换过程用户->内核->用户用户->内核->用户用户态(没有陷入内核)拥有资源CPU资源、内存资源、文件资源等程序计数原创 2022-03-14 20:18:34 · 563 阅读 · 0 评论 -
操作系统面经总结—虚拟内存、内存分页、内存交换与覆盖等
三、操作系统1、虚拟内存1.1、虚拟内存意义 虚拟内存:将不同进程的虚拟地址和不同内存的物理地址映射起来,让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。(内存分段和内存分页) 这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分装入物理内存并重原创 2022-03-14 20:16:50 · 1734 阅读 · 0 评论