文档介绍:1、基本特征
(1) 并发:并发是指宏观上在一段时间内能同时运行多个程序,而并 行则指同一时刻能运行多个指令。操作系统通过引入进程和线程使得程 序能够并发运行;
(2) 共享:共享是指系统中的资源可以被多个并发进程共同使用。共 享的方式所需要的
信息;
(1) 管道:通常指无名管道,它是半双工的(即数据只能在一个方向 上流动),具有固定的读端和写端,且只能在父子进程中使用,它不是 普通的文件,并不属于其他任何文件,并且只存在于内存中;
(2) FIFO :也称命名管道,它是一种文件类型,可以在无关的进程之 间交换数据,与无名管道不同,它由路径名与之相关联,以一种特殊设
备文件形式存在于文件系统中。它的通信方式类似于在进程中使用文件 来传输数据,只不过FIFO类型文件同时具有管道的特性,在数据读出 时,FIFO管道中同时清除数据,并且〃先进先出〃;
(3) 消息队列:是消息的链接表,存放在内核中。一个消息队列由一 个标识符(即队列ID)来标识,它是面向记录的,其中的消息具有特 定的格式以及特定的优先级。相比于FIFO,消息队列可以独立于读写 进程存在,从而避免了 FIFO中同步管道的打开和关闭时可能产生的困 难;避免了 FIFO的同步阻塞问题,不需要进程自己提供同步方法;读 进程可以根据消息类型有选择地接收消息,而不像FIFO那样只能默认 地接收;进程在终止时,消息队列及其内容并不会被删除,它可以实现 消息的随机查询;
(4) 信号量:它是一个计数器,用于为多个进程提供对共享数据对象 的访问。它基于操作系统的PV操作,程序对信号量的操作都是原子操 作,每次对信号量的操作不仅限于对信号量值的+1或-1,可以加减任 意正整数,支持信号量组;
(5) 共享内存:允许多个进程共享一个给定的存储区。因为数据不需 要在进程之间复制,所以这是最快的一种IPC ;需要使用信号量用来同 步对共享内存的访问,多个进程可以将同一个文件映射到它们的地址空 间从而实现共享内存。另外XSI共享内存不是使用文件,而是使用内存 的匿名段;
(6)套接字:与其它通信机制不同的是,它可以用于不同机器间的进
程通信;
5、进程调度
(1) 先来先服务调度算法(FCFS):按作业或者进程到达的先后顺序 依次调度;有利于长作业,不利于短作业;
(2) 短作业优先调度算法(SJF):从就绪队列中选择估计时间最短的 作业进行处理,直到得出结果或者无法继续执行。不利于长作业,未考 虑作业的重要性,运行时间是预估的,并不靠谱;
(3) 高响应比调度算法(HRN):响应比二(等待时间+要求服务时 间)/要求服务时间;
(4) 时间片轮转调度算法(RR):将所有就绪进程按FCFS的原则排 成一个队列,每次调度时,把CPU时间分配给队首进程,该进程可以 执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序 便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把CPU 时间分配给队首的进程;时间片轮转算法的效率和时间片的大小有很大 关系,因为进程切换都要保存进程的信息并且载入新进程的信息,如果 时间片太小,会导致进程切换得太频繁,在进程切换上就会花过多的时 间;但另一方面,如果时间片过长,那么实时性就不能得到保证;
优先级调度算法:为每个进程分配一个优先级,按优先