目录
前言
本文所有内容均由个人整理,如有差错,敬请斧正。
进程的定义 组成 特征
一、定义
程序:静态的,存放在磁盘里的可执行文件,如:QQ.exe。进程:动态的,是程序的一次执行过程,如:可同时启动多次QQ程序。
同一个程序多次执行会对应多个进程
程序段,数据段,PCB(进程控制块)三部分组成进程实体(进程映像),进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
注:严格来说进程和进程实体并不一样,进程实体是静态的,进程则是动态的,一般情况下可以认为进程实体就是进程。可以说“进程由程序段,数据段,PCB三部分组成”
二、组成
1、PCB
操作系统通过PCB来管理进程,包含操作系统对进程进行管理所需的各种信息,是进程存在的唯一标志
2、程序段,数据段
程序段:存放要执行的代码
数据段:存储程序运行时所产生的运算数据,如全局变量,局部变量
PCB 是给操作系统用的。
程序段、数据段是给进程自己用的。
三、特征
进程的组织方式
管理进程就是管理进程的PCB,在一个系统中通常有数十、数百乃至数千个进程(PCB),操作系统需要采用适当的方式将它们组织起来。
1、链接方式
按照进程状态将PCB分为多个队列,此时操作系统持有指向各个队列的指针
2、索引方式
根据进程状态的不同,建立几张索引表,此时操作系统持有指向各个索引表的指针
注:进程的组织讨论的是一个进程内部的构成问题,而进程的组织方式讨论的是多个进程之间的组成方式问题
进程的状态和转换
1、基本状态(运行,就绪,阻塞)
创建态,就绪态
运行态
阻塞态
终止态
2、进程状态的转变
进程控制
目的
实现进程状态的转换
具有创建进程、撤销已有进程、实现进程状态转换的功能
进程的创建
进程的终止
进程的阻塞和唤醒
进程的切换
总结
进程通信
进程之间的信息交换
进程是分配系统资源的单位(包括内存地址空间),因此个进程拥有的内存地址空间相互独立,为了安全,一个进程是不能直接访问另一个进程的地址空间
共享存储
管道通信
1.管道只能采用半双工通信,某一时间段内只能实现单向传输,如果要实现双向同时传输,则需要设置两个管道
2. 各进程要互斥的访问管道
3. 数据以字符流的形式写入管道,当管道写满时,写进程的write()系统调用将被阻塞,等待读进程将数据取走,当读进程将数据全部取走后,管道变空,此时读进程的read()系统调用将被阻塞。
4. 如果没写满就不允许读,如果没读空,就不允许写
5. 数据一但被读出,就从管道中被抛弃,读进程只能有一个,否则可能会有读错数据的情况
消息传递
进程间的消息传递以格式化的消息为单位。进程通过操作系统提供的“发送消息/接受消息”两个源语进行数据交换