Professional Documents
Culture Documents
进程
进程
受到其他进程的影响,就称这个进程是协作的
当前活动内容:包括程序计数器的值和处理器寄
信息共享:多个用户可能对同样的信息感兴趣
存器的内容
计算加速:希望将一个任务放在多个核上由多个 进程:执行的程序,包括了文本段、当前活动内
栈:临时数据,例如函数参数、返回地址和局部
进程协作执行 容、进程栈、数据段和堆 变量等
环境允许进程协作的理由
模块化:需要使用模块话的方式构造系统 数据段:包括全局变量
方便 堆:进程在运行时动态分配的内存
进程
共享内存 程序:被动的实体,例如存储在磁盘上的可执行
消息传递 进程间通信的两种基本类型
文件
进程本身也可以作为一个环境,用于执行其他代
共享内存快于消息传递,因为消息传递需要使用 码
系统调用,而共享内存只在创建共享内存区的时
候需要使用系统调用 创建:进程正在创建
操作系统允许进程共享同一块内存,通过进程在 运行:指令正在执行
共享内存区域将信息读出和写入来实现进程间通
信
共享内存系统 进程间通信 进程状态 进程在执行时会改变状态,有创建、运行、等
等待:进程等待发生某个事件,例如I/O
待、就绪、终止五个状态
进行内存共享的进程之间需要做好同步
就绪:进程等待分配处理器
直接通信 终止:进程已经完成执行
需要通信的进程之间需要有一个相互引用的方法
间接通信
进程控制块(PCB):操作系统表示进程的一种数
每队进程之间自动建立链路
据结构,也称任务控制快
进程的概念
进程状态
进程仅需知道对方的身份就可以交流
直接通信:每个进程必须明确指定通信的接受者 程序计数器:进程将要执行的下条指令的地址
每个链路之于两个进程相关
或者发送者
进程控制快
CPU寄存器:包括累加器、索引寄存器、堆栈指
每队进程只有一个链路 命名
针、通用寄存器和其他条件码信息寄存器
缺点是更改进程的标识符可能需要分析所有其他 CPU调度信息:包括进程优先级、调度队列的指
进程的定义,将所有旧的标识符的引用都找到修 进程控制块的组成
针和其他调度参数
改成新的引用
内存管理信息:包括基地址和界限寄存器的值,
只有两个进程共享同一个邮箱时才能建立通信链 页表或者段表
路
两个进程之间可以有一个或者多个不同的链路, I/O状态信息:分配给进程的I/O设备列表、打开
每个链路对应于一个邮箱 文件列表等
零容量:发送进程应阻塞,直到接收进程接收到
线程
消息
有限容量:消息队列长度有上限n,当队列满时
缓存
发送消息的进程需要阻塞
第 章 进程 多道程序设计的目标:无论何时都有程序运行,
3 最大化CPU利用率
无限容量:队列长度可以无限,发送者从不阻塞
分时系统的目的:在进程之间快速切换CPU,以
便用户在程序运行时能够和程序交互
进程标识符:操作系统识别进程的唯一标识符, 进程调度器:选择可用进程到CPU上执行的程序
一般是一个非负整数
就绪队列:驻留在内存中的、就绪的、等待运行 就绪队列通过链表实现,队列中的每个元素都是
从操作系统直接获取 的进程形成的队列 PCB
子进程创建时资源获取的方式
从父进程获取 设备队列:等待特定I/O设备的进程列表 每个设备都有自己的设备队列
父进程和子进程并发执行 进程创建后被放到就绪队列中
子进程执行的方式
父进程等待某个或者全部子进程执行完 进程发出I/O请求,然后被放到设备队列中
调度队列
子进程复制了父进程的地址空间,方便进程间通 进程终止后会被所有队列删除,进程的PCB和所
信 占的资源也被释放
父进程和子进程都继续执行fork()之后的指令, 长程调度程序:批处理系统一次提交了多于可以
唯一的区别是父进程的fork()返回子进程的pid, 进程调度
立即执行的进程,从磁盘中选择进程加载到内存
中以便执行的程序称为长程调度程序,也称作业
子进程的fork()返回0
系统调用fork() 调度程序
通常在系统调用fork()之后,某个进程执行系统
调用exec(),加载一个新的二进制文件到内存中 短程调度程序:在就绪队列中选择进程分配CPU
执行 时间片的程序,也称为CPU调度程序
因为exec()加载了新的二进制文件,覆盖了旧的 两种程序的主要区别是执行频率不同
地址空间,除非出现了错误否则程序不会返回 进程的运行
短程调度发生得非常频繁,所以短程调度程序必
进程终止:进程执行完最后的指令并通过系统调 须非常快速,否则会产生很大的CPU开销
用exit()请求操作系统删除自身
长程调度发生的不频繁,仅在进程创建的的时候
调度程序 长程调度和短程调度的区别
物理内存 发生,它控制系统的多道程序程度
虚拟内存 多道程序程度:内存中进程的数量
进程可以在终止时返回状态值到父进程,进程的
物理资源在终止时有操作系统释放
打开文件 进程可以分成I/O密集型进程和CPU密集型进程,
长程调度通过仔细选择对这两种进程进行合理的
I/O缓冲区 组合,使性能达到最佳
子进程使用了超过它所分配的资源
中程调度程序:控制进程在内存和磁盘上交换的
程序,中程调度调整系统的多道程序程度
分配给子进程的任务不再需要 父进程终止子进程的原因 进程终止 进程的上下文使用进程的PCB表示
父进程正在推出,操作系统不允许没有父进程的 上下文切换
子进程存在 上下文切换:操作系统保存进程的当前状态,然
后恢复另一个进程的状态的行为
级连终止:当父进程终止时,他的所有子进程也
终止
当一个进程终止时,操作系统会释放所有的资
源,但是子进程在进程表中的条目仍然存在,直
到父进程调用wait()
僵尸进程:进程已经终止,但是父进程还未调用
wait()
对孤儿进程的处理是将init进程作为孤儿进
inux
L
孤儿进程:父进程没有调用wait()就终止
程的父进程