网络和操作系统面试相关内容~(四)

161 篇文章 12 订阅

原文地址:网络和操作系统面试相关内容~(四)

1、进程调度策略?

  1. 先来先服务:非抢占式的调度算法,按照请求的顺序进行调度,有利于长作业,不利于短作业,因为短作业必须等待之前的长作业执行完毕才可执行,而长作业执行时间又很长,所以就造成短作业等待时间过长,此外,对I/O密集型进程也不利,因为此类型进程每次进行I/O操作之后又得排队。

  2. 短作业优先:非抢占式的调度算法,按预估时间最短的顺序进行调度,一直处于等待短作业执行完毕的状态,长作业可能会被饿死,如一直有短作业到来,那么长作业永远得不到调度。

  3. 最短剩余时间优先:抢占式的调度算法,按剩余运行时间的顺序进行调度,当新作业到来时,将其运行时间与当前进程剩余时间作比较,如新进程所需时间更短,则挂起当前进程,运行新进程,反之,新进程进行等待。

  4. 时间片转轮:将所有就绪的进程按FCFS原则排成一个队列,每次调度时,将CPU时间分配给队列首个进程,该进程可执行一个时间片,当时间片用完时,计时器发出时钟中断,调度程序停止该进程的执行,并将其送往就绪队列的末尾,同时继续将CPU时间分配给队列首个进程,时间片轮转算法的效率跟时间片的大小息息相关,因为进城切换都要保存进程信息并载入新的进程信息,如时间片太小,则会导致进程切换频繁,在进程切换上就会浪费大量时间,如时间片过长,则会导致实时性得不到保证。

  5. 优先级调度:为每个进程分配一个优先级,按优先级进行调度,为防止低优先级进程永远等不到调度,可随时间推移增加等待进程的优先级。

2、进程有哪些状态?

进程共有5种状态:创建、就绪、运行(执行)、终止、阻塞,示意图如下:

运行状态就是进程正在CPU上执行,单机环境下每次最多只有一个进程处于运行状态。

就绪状态就是进程已处于准备运行状态,此时的进程获得了除CPU外的一切所需资源,一旦得到CPU执行权即可运行。

阻塞状态就是进程正在等待某一事件而暂停运行,如等待某资源为可用状态或是等待I/完成,此时就算是CPU空闲,该进程也不可执行。

3、进程状态变化原因?

  1. 运行状态到阻塞状态:由于等待外设、主存等资源分配或等待人工干预而引起的。

  2. 阻塞状态到就绪状态:等待条件已满足,只需分配到处理器即可执行。

  3. 运行状态到就绪状态:非自身原因,由于外界原因使运行状态的进程让出处理器,此时就变成就绪状态了,如时间片用完,或具有更高优先级的进程来抢占处理器。

  4. 就绪状态到运行状态:系统按策略选中就绪队列中的进程占用处理器,此时就变成了运行状态。

4、分页是什么?

将内存空间划分为大小相等且固定的块,作为主存的基本单位,因为程序数据存储在不同的页面中,而页面又离散的分布在内存中,因此需要一个页表来记录映射关系,以实现从页号到物理块号的映射。

访问分页系统中内存数据需两次内存访问,一是从内存中访问页表,从中获取到指定的物理块号,加上页内偏移得到实际物理地址,二是根据第一步获得的物理地址访问内存来取出数据。

5、分段是什么?

分页是为了提高内存利用率,分段则是为了满足编程过程中的逻辑需求,如数据共享、数据保护等,在分段内存管理中,地址是二维的,一维的是段号,二维是段内地址,其每个段的的长度是不一致,而每个段内部都是从0开始编码内存地址的,由于分段管理中每个段内部是连续内存分配,段和段之间是离散分配的,因此也存在一个逻辑地址到物理地址的映射关系,相应的就是段表机制。

至此,本次分享就结束了,后期会慢慢补充的。

以上仅为个人观点,不一定准确,能帮到各位那是最好的。

好啦,到这里本文就结束了,喜欢的话就来个三连击吧。

扫码关注公众号,获取更多优质内容。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值