程序:静态的存储在计算机上,用适当形式描述的算法。。
进程:一个具有一定独立功能的程序的一次运行的活动;是正在运行程序的一个抽象。
进程的三个状态:
1、运行态(该时刻进程实际占用CPU)
2、就绪态(可运行,但因为其他进程正在运行而暂时停止)
3、阻塞态(除非某种外部事件发生,否则进程不能运行)
前两种逻辑上是相似的,两种进程都可以运行,,只是因为进程调度原因。。第3种是因为自身固有原因而挂起。。
三种状态的切换示意图
进程ID:标示进程的唯一数字
父进程:PPID
启动进程的用户ID: UID
临界资源:操作系统中将同一时刻只允许一个进程访问的资源;譬如共享内存,共享文件,共享变量,,各种共享的资源。
临界区:进程中访问临界资源的那段代码称为临界区。为实现对临界资源的互斥访问,应保证各进程互斥地进入各自的临界区
使用临界区互斥的示意图(B等到A离开临界区才进入)
竞争条件:当两个或者多个进程读写某些共享数据时,最后的结果取决于进程运行的精确时序。。。
采用互斥的方法避免竞争条件,即以某种手段确保当一个进程在使用一个共享变量或者文件时,其他的进程不能做同样的操作。
解决竞争条件问题时满足的4个条件
1、任何两个进程不能同时处于临界区
2、不应对CPU的速度和数量做任何假设
3、临界区外运行的进程不得阻塞其他进程
4、不得使进程无限期等待进入临界区
进程调度:按照一定的算法,从一组待运行的进程中选出一个来占用CPU运行。
调度算法的分类:(因为不同的系统中,调度程序的优化效果是不一样的,根据环境的不同分类)
1、批处理
一些商业领域的应用,一些周期性作业(账目支出、账目收入),每个进程都有较长时间的抢占式算法,,减少了进程之间的切换从而提高CPU性能
2、交互式
譬如服务器,避免一个进程长期霸占CPU而拒绝为其他进程提过服务
3、实时
通常的调度算法:
1、先来先服务
2、短进程优先调度
3、高优先级优先调度
4、时间片轮转法
调度的时机:
1、非抢占式调度
挑选一个进程,让该进程运行直至被阻塞或者该进程自动释放CPU。。
2、抢占式调度
挑选出一个进程,并让该进程只能运行一个固定的时间段,,超过这个时段,进程还在运行的话就会被挂起。。进行抢占式调度处理时,需要在时间间隔的末端发生时钟中断,以便把CPU控制返回调度程序。如果没有可用时钟,那么只能用非抢占式调度了