今天被问到操作系统的一些知识,发现自己一个不会,实在还是有点尴尬,之前的学习一直在框架,游戏引擎上,基本上忽略了学校大部分的理论知识~于是最近突然想学学操作系统了~反正也没什么事忙了!!
----------------------------------------
操作系统是什么?【概念】
是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件
-----这句话感觉意思都懂,但是就是概括不出来~
进程是什么?【概念】
进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机(中央处理器,主存储器,输入-输出接口)上顺序执行时所发生的活动
线程是什么?【概念】
是进程中某个单一顺序的控制流,指运行中的程序的调度单位
-----------------------------------------
作业调度相关概念,具体也可参考百度百科
常用的作业调度算法有先来先服务、短作业优先、响应比高优先、优先级调度算法和均衡调度算法。
调度算法应该做到:
1 、在单位时间内运行尽可能多的作业。
2 、使处理机保持忙碌的状态。
3 、使 I / O 设备得以充分利用。
4 、对所有作业公平合理。
一.先来先服务
【定义】
按照作业提交或进程变为就绪状态的先后次序,分派CPU;
当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。
在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。
-----------------------
想了想,先来先服务?怎么像是优先队列?【优先队列是先进先出,出来换成服务不就是FCFS?】
【这里需要特别注意的是,问了个学霸,这里的当前运行任务的是上次的结束时间,前提是当前的开始时间要<=上次的结束时间】
如
任务一的开始时间是1,需要的时间是2
任务二的开始时间是1,需要的时间是2
任务三的开始时间是7,需要的时间是10
6秒的时候是要空着的~~
直接上代码试试看~
二.短作业优先
三.响应比高优先
四.优先级调度
五.均衡调度