进程的状态有五种:
创建态 ===》就绪态 《==》运行态
^ //
|| \/
阻塞态
1)就绪——执行:对就绪状态的进程,当进程调度程序按一种选定的策略从中选中一个就绪进程,为之分配了处理机后,该进程便由就绪状态变为执行状态;
2)执行——阻塞:正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如进程提出输入/输出请求而变成等待外部设备传输信息的状态,进程申请资源(主存空间或外部设备)得不到满足时变成等待资源状态,进程运行中出现了故障(程序出错或主存储器读写错等)变成等待干预状态等等;
3)阻塞——就绪:处于阻塞状态的进程,在其等待的事件已经发生,如输入/输出完成,资源得到满足或错误处理完毕时,处于等待状态的进程并不马上转入执行状态,而是先转入就绪状态,然后再由系统进程调度程序在适当的时候将该进程转为执行状态;
4)执行——就绪:正在执行的进程,因时间片用完而被暂停执行,或在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行而被迫让出处理机时,该进程便由执行状态转变为就绪状态。
进程的调度算法:
FCFS: 先来先服务,也可以称为先进先出
轮转: 以一个周期性间隔产生时钟中断,此时当前正在运行的进程被置于就绪队列,基于FCFS选择下一个就绪进程 运行。
SPN:最短进程优先,下一次选择所需处理时间最短的进程
SRT:最短剩余时间优先,总是选择预期剩余时间最短的进程
HRRN:最高响应比优先,R=(w+s)/s,其中R表示响应比,w表示已经等待的时间,s表示期待服务的时间
反馈:进程第一次进入系统是放置于RQ0,第一次被强占并返回就绪态时,放入RQ1,以后每次被强占就下降一级。如果进程处于最低等级,则不再降级,反复返回到该队列,直到结束。
常见面试问题:
1. 进程的有哪几种状态,状态转换图,及导致转换的事件。
2. 进程与线程的区别。
3. 进程同步的几种方式。
4. 线程同步几种方式。
5. 线程的实现方式.。
6. 用户态和核心态的区别。
7. 用户栈和内核栈的区别。
8. 内存池、进程池、线程池。
9. 死锁的概念,导致死锁的原因.
10. 导致死锁的四个必要条件。
11. 处理死锁的四个方式。
12. 预防死锁的方法、避免死锁的方法。
13. 进程调度算法。
14. Windows内存管理的方式(块式、页式、段式、段页式).
15. 内存连续分配方式采用的几种算法及各自优劣。
16. 动态链接及静态链接.
17. 基本分页、请求分页储存管理方式。
18. 基本分段、请求分段储存管理方式。
19. 分段分页方式的比较各自优缺点。
20. 几种页面置换算法,会算所需换页数。
21. 虚拟内存的定义及实现方式。
22. 操作系统的四个特性。