You are on page 1of 1

‎进程协作:如果一个进程能够影响其他进程或者 文本段:进程的程序代码


‎受到其他进程的影响,就称这个进程是协作的
‎当前活动内容:包括程序计数器的值和处理器寄
信息共享:多个用户可能对同样的信息感兴趣
‎ ‎存器的内容

‎计算加速:希望将一个任务放在多个核上由多个 进程:执行的程序,包括了文本段、当前活动内
‎ ‎栈:临时数据,例如函数参数、返回地址和局部
‎进程协作执行 容、进程栈、数据段和堆 ‎变量等
‎环境允许进程协作的理由 ‎

‎模块化:需要使用模块话的方式构造系统 ‎数据段:包括全局变量

‎方便 ‎堆:进程在运行时动态分配的内存
进程

‎共享内存 程序:被动的实体,例如存储在磁盘上的可执行

‎消息传递 ‎进程间通信的两种基本类型
文件

‎进程本身也可以作为一个环境,用于执行其他代
‎共享内存快于消息传递,因为消息传递需要使用 码

‎系统调用,而共享内存只在创建共享内存区的时
‎候需要使用系统调用 创建:进程正在创建

‎操作系统允许进程共享同一块内存,通过进程在 ‎运行:指令正在执行
‎共享内存区域将信息读出和写入来实现进程间通
‎信
‎共享内存系统 进程间通信 进程状态 进程在执行时会改变状态,有创建、运行、等

‎等待:进程等待发生某个事件,例如I/O
‎ ‎
待、就绪、终止五个状态

‎进行内存共享的进程之间需要做好同步
‎就绪:进程等待分配处理器
‎ 直接通信 ‎终止:进程已经完成执行
需要通信的进程之间需要有一个相互引用的方法

‎间接通信
进程控制块(PCB):操作系统表示进程的一种数

‎每队进程之间自动建立链路
据结构,也称任务控制快

进程的概念

‎进程状态
‎进程仅需知道对方的身份就可以交流

直接通信:每个进程必须明确指定通信的接受者 ‎程序计数器:进程将要执行的下条指令的地址
‎每个链路之于两个进程相关

或者发送者

进程控制快

‎CPU寄存器:包括累加器、索引寄存器、堆栈指
‎每队进程只有一个链路 命名

‎针、通用寄存器和其他条件码信息寄存器

‎缺点是更改进程的标识符可能需要分析所有其他 ‎CPU调度信息:包括进程优先级、调度队列的指
‎进程的定义,将所有旧的标识符的引用都找到修 ‎进程控制块的组成
‎针和其他调度参数
‎改成新的引用
‎内存管理信息:包括基地址和界限寄存器的值,
‎只有两个进程共享同一个邮箱时才能建立通信链 ‎页表或者段表

间接通信:进程间通过邮箱或者端口发送和接收 消息传递系统 ‎记账信息:包括CPU处理时间、实际使用时间、


‎一个链路可以与两个或者多个进程关联

‎时间期限、记账数据、作业或进程数量

信息

‎两个进程之间可以有一个或者多个不同的链路, ‎I/O状态信息:分配给进程的I/O设备列表、打开
‎每个链路对应于一个邮箱 ‎文件列表等

零容量:发送进程应阻塞,直到接收进程接收到
‎ 线程

消息

‎有限容量:消息队列长度有上限n,当队列满时
缓存
‎发送消息的进程需要阻塞
第 章 进程 多道程序设计的目标:无论何时都有程序运行,
‎ ‎
‎ 3 最大化CPU利用率

‎无限容量:队列长度可以无限,发送者从不阻塞
‎分时系统的目的:在进程之间快速切换CPU,以
‎便用户在程序运行时能够和程序交互

‎进程标识符:操作系统识别进程的唯一标识符, ‎进程调度器:选择可用进程到CPU上执行的程序
‎一般是一个非负整数
‎就绪队列:驻留在内存中的、就绪的、等待运行 ‎就绪队列通过链表实现,队列中的每个元素都是
‎ 从操作系统直接获取 ‎的进程形成的队列 ‎PCB
‎子进程创建时资源获取的方式
‎从父进程获取 ‎设备队列:等待特定I/O设备的进程列表 ‎每个设备都有自己的设备队列

‎父进程和子进程并发执行 ‎进程创建后被放到就绪队列中
‎子进程执行的方式
‎父进程等待某个或者全部子进程执行完 ‎进程发出I/O请求,然后被放到设备队列中
‎调度队列

‎子进程是父进程的复制品,具有相同的程序和数 ‎进程在执行状态可能进行的队列迁移 ‎进程创建新的子进程,并等待子进程终止


‎据
‎子进程的地址空间 进程创建
‎ ‎进程被中断打断强制释放CPU,并被放回就绪队
‎子进程加载另一个新程序 列

‎子进程复制了父进程的地址空间,方便进程间通 ‎进程终止后会被所有队列删除,进程的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()就终止
程的父进程

You might also like