进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程的特征:动态性、并发性、独立性、异步性、结构性。
进程的基本状态:运行状态、就绪状态和阻塞状态。
进程控制块,PCB是进程实体的一部分,是进程存在的唯一标识。
在通信的进程之间存在一块可直接访问的共享空间。
引入进程的目的,是为了使多道程序并发执行,以提高资源利用率和系统吞吐量。而引入线程,则是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。
线程是一个基本的CPU执行单元,线程是进程的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。
一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。
在引入线程的操作系统中,线程是独立调度的基本单位,进程是资源拥有的基本单位。在同一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,会引起进程切换。
进程间通信需要进程同步和互斥手段的辅助,以保证数据的一致性,而线程间可以直接读写进程间数据段来进行通信。
同一进程中的各个线程共享该进程所拥有的资源。
进程的高级通信方法主要有: 共享存储、消息传递、管道通信。
线程的实现可以分为用户级线程和内核级线程
进程调度的方式分为:非剥夺调度方式和剥夺调度方式。剥夺式需遵循的原则:优先权、短进程优先和时间片原则等。
系统吞吐量:单位时间内CPU完成的作业数量。
作业的周转时间 = 作业完成时间-作业提交时间。
带权周转时间= 作业周转时间 /作业实际运行时间。
典型的调度算法:先来先服务调度算法(FCFS)属于不可剥夺算法。对长作业有利,对短作业不利。
短作业优先调度算法(SJF),从后备队列中选择一个或若干个估计运行时间最短的作业。对长作业不利,总是优先调度短作业,将导致长作业长期不被调度,出现“饥饿”现象。SJF的平均等待时间、平均周转时间最少。
优先级调度算法分为非剥夺式优先级调度算法和剥夺式优先级调度算法。进程优先级分为静态优先级和动态优先级。
高响应比优先调度算法主要用于作业调度。响应比 = (等待时间+要求服务时间)/要求服务时间
时间片轮转调度算法主要适用于分时系统。
多级反馈队列调度算法