程序的顺序执行和并发执行
1.程序的顺序执行有以下特征
(1)顺序性。
(2)封闭性。
(3)可再现性。
2.多道程序设计的引入
(1)独立性。
(2)随机性。
(3)资源共享。
3.程序的并发执行
程序的并发执行可总结为:一组在逻辑上互相独立的程序或程序段在执行过程中其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的执行方式。
(1)间断性。
(2)失去封闭性。
(3)不可再现性。
进程的定义
进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。
(1)结构特征
(2)动态性
(3)并发性
(4)独立性
(5)异步性
进程的基本状态
(1)就绪状态
当进程已分配到除处理机以外的所有必要的资源后,只要再获得处理机便可立即执行,这时进程的状态称为就绪状态。
(2)执行状态
执行状态是指进程已获得处理机、其程序正在执行的状态。
(3)阻塞状态
正在执行的进程因发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,这种暂停状态被称为阻塞状态。
进程的状态转换
进程的结构
进程的实体
(1)进程控制块(PCB)
(2)程序段
(3)数据段
进程互斥和同步
进程互斥
1.互斥的概念
所谓进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止。
2.临界资源
操作系统中将一次只允许一个进程访问的资源称为临界资源。
进程同步
1.同步的概念
把异步环境下的一组并发进程因直接制约,使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。
进程通信
通信(Communication)意味着在进程间传送数据。 也把进程间控制信息的交换称为低级通信,而把进程间大批量数据的交换称为高级通信。
进程通信的类型
1.共享存储器系统
2.消息传递系统
(1)直接通信方式
(2)间接通信方式
3.管道通信系统
4. 消息缓冲队列通信机制
进程调度
进程调度算法
1.先来先服务调度算法(FCFS)
2.短进程优先调度算法(SPF)
3.高优先级优先调度算法(HPF)
4.时间片轮转法
5.多级反馈队列调度算法
线程
线程的引入
由于进程是一个资源拥有者,所以在进程的创建、撤消和调度切换以及进程的同步与通信中,系统必须付出较大的时空开销。正因为如此,在系统中所设置的进程数目不宜过多,进程切换的频率也不宜过高,这也就限制了并发程度的进一步提高。
在引入线程的操作系统中,线程是进程中的一个实体,是被系统独立调度和分派的基本单位。它的执行环境很小,除了自身必需的堆栈、寄存器、优先级等私有资源外,共享其所属进程的资源。
线程的属性
(1)线程有控制表。
(2)线程共享所属进程的资源。
(3)线程是处理机的独立调度单位,多个线程可以并发执行。
(4)线程有动态性。
线程的状态及其转换
(1)就绪状态。线程已具备了执行的条件,等待线程调度程序调度。
(2)备用状态。由调度程序选定为一个执行对象。
(3)转换状态。若线程已准备好执行,但突然资源不可用,从而成为转换状态。
(4)运行状态。获得CPU正在执行。
(5)等待状态。正在执行的线程,由于某种原因(如I/O操作)不能继续运行下去。
(6)终止状态。线程已执行完成。