调度管理
1进程介绍
1.1请简述对进程的理解
多道程序下进程能够保障程序的独立运行,能提高资源利用率,是一个动态的概念,是程序运行的过程,是资源分配与调度的基本单位
1.2 操作系统为什么需要进程
多道程序设计在内存中可以运行多个任务,这时就出现了问题,怎么隔离任务间的资源,怎么进行调度,提高效率,提出了进程,OS对进程进行管理,
2线程介绍
2.1进程和线程有什么区别?
一个进程可以拥有多个线程,线程是轻量级进程能提高并发量,进程间并发运行的切换影响效率,提出线程来提高效率,多线程共享进程的资源,线程的切换消耗相对较小,不需要资源的腾挪,
3 调度算法
3.1请简述操作系统进程的相关调度算法
先来先服务调度算法
短作业有限调度算法
优先级调度算法
高相应比有限调度算法
时间片轮转法
多级反馈队列调度算法:设置多个就绪队列,为各个队列赋予不同的优先级,第一个队列的优先级最高第二个队列次之,其余各队列的优先权逐个降低,该算法赋予各个队列中进程的时间片的大小也各不相同,在优先级越高的队列中,为每个进程所规定的时间片就越小,
当一个进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则等待调度,当轮到该进程执行时如能在该时间片完成,便可准备撤离系统,如果未完成,调度程序便将该进程放入第二队列的末尾,同样FCFS 依次往下
仅当第一队空闲时,调度程序才调度第二队列中的进程运行
如果处理机正处理第i队 为某进程服务时又有新进程进入优先权较高的任何一个队列,此时新进程会抢占正在运行进程的处理机,正在运行的进程被放回第i队的末尾
4用户态和核心态
4.1简述对OS内核态的理解
操作系统给用户提供了操控电脑的接口,但是有些东西很重要,比如进程调度,内存管理 IO等 需要用户的程序也需要系统调用这些功能,对这些重要的东西进行封装以保证安全性,将系统分为用户态与内核态,用户空间是用户程序的代码和数据,进程执行用户自己的代码(非系统调用函数)CPU只可以访问有限内存不允许访问外设,内核空间存放的是内核代码和数据,进程执行OS代码,CPU可以访问所有数据,包括外围设备
4.2 进程在什么时候进入内核态?举例说明
系统调用:OS提供给用户进程对内核操作
异常中断:异常只能由OS来处理
外用设备中断:磁盘等读写IO,完成后中断转为用户态
5IO密集VS计算密集
5.1 简述什么IO密集型任务
该种任务对CPU的使用率不高 多线程作用小,主要是进行磁盘读写 比如下载一个好几G的视频 计算密集型比如算一个大数的阶乘 多线程充分利用其他事情处理慢
5.2 服务部署时对于服务器资源,应该注意什么
IO密集型任务的需要磁盘读写速度快一点
计算密集的则需要CPU性能好
6协程原理
6.1 协程是什么?为什么需要协
线程可以理解为内核级线程,协程是也可以叫做用户级微线程,是在用户态运行的微线程,核心态无法感知,每次线程切换需要系统调用进行用户态与核心态的切换导致系统开销加大,协程则不需要切换,主要应用于IO
6.2多协程可以发挥CPU的多核优势吗?为什么
不可以,因为CPU感知不到协程