操作系统笔记2
进程
程序的概念:程序就是一个指令序列,早期的计算机只支持单道程序,程序是静态的
引入多道程序技术以后,为了方便操作管理,完成各个程序并发执行,引入了进程,进程实体的概念,进程是动态的
内存中同时放入多道程序,各个程序的代码,运算数据存放的位置不同,操作系统通过
进程控制块(PCB)
来描述进程的各种信息,如程序代码存放位置
进程实体:程序段,数据段PCB三部分组成了进程实体,一般情况下称为进程,创建进程就是创建PCB,撤销进程就是撤销PCB
PCB是进程存在的唯一标志
进程是进程定义的运行过程,是系统进行资源分配和调度的一个独立单位
进程控制块PCB
1.PCB中记录了操作系统所需的,用于描述进程的当前情况以及控制进程运行的全部信息
2.PCB的作用是使一个在多道程序环境下不能独立运行的程序,成为一个独立运行的基本单位,可以与其他进程并发进行
3.操作系统对并发的执行就是通过对PCB进行控制和管理来实现的
进程的组织
进程的组织方式有两种,链接方式和索引方式
链接方式
- 就是按照进程状态将PCB分为多个队列
- 操作系统持有指向多个队列的指针
优先级别
高的进程放在队头索引方式
- 根据进程的不同建立几张索引表
- 操作系统持有各个索引表的指针
进程的状态及转换
总览
进程的状态
进程是程序的一次执行,在执行的过程中,有的程序被CPU处理,有的又需要等待CPU,所以进程的状态在不断的变化,为了方便队进程的管理,操作系统需要将进程分为几种状态
运行态(Running)
:占用CPU,并在CPU上运行,单核的CPU每一时刻最多只能处理一个进程,双核可以同时处理两个进程
就绪态(Ready)
:已经具备运行条件,但是没有空闲的CPU,所以暂时不能运行
注意:就绪态此时已经拥有除了CPU以外的所有资源,一旦有CPU,立马可以进行运行
阻塞态(Waiting/Blocked)
:等待某一件事而不能运行,等待操作系统分配打印机,等待读磁盘的操作等。
上面是基本的状态,下面是另外的两种状态
进程创建之前
创建态
:又称新建态,进程正在被创建,操作系统为进程分配资源,初始化PCB
进程运行之后
终止态
:进程从系统中撤销,操作系统回收进程拥有的资源,撤销PCB
状态转换
原语对进程的控制
知识回顾
什么是原语:原语是一种特殊的程序,最接近硬件的部分,这种程序的运行具有原子性,运行时间短,调用频繁
原语的特点是执行期间不允许中断,一气呵成,这种不可中断的操作为原子操作
原语一般包括设备驱动,CPU切换
进程控制
对系统中的进程进行有效的管理,创建新的进程,撤销已有的进程,实现进程切换的功能
操作系统通过原语来进行进程的控制
进程控制的五种原语
五种原语:创建,中止,唤醒,阻塞,切换
1.进程的创建原语
2.进程的中止原语
3.进程的唤醒原语 4.进程的阻塞原语
进程的唤醒源于和进程的阻塞原语必须成对使用
阻塞原语:由运行态到阻塞态,由系统的自我调用实现
唤醒原语:由阻塞态到运行态
5.进程的切换原语
进程的通信
进程间的通信(IPC) 指的是两个进程之间产生数据交互
进程是分配系统资源的单位(包括内存地址空间),因此个进程拥有的内存地址空间相互独立
因此需要操作系统的支持完成进程之间的通信
共享存储
进程可以申请共享存储区,可以被其他进程所共享。 P向Q传递数据,可以P 向共享存储区传递数据,Q从共享存储区提取数据。如果多进程共享存储,可以存在冲突,所以要保证各个进程对共享空间的访问应该是互斥的。
基于存储区的共享方式:操作系统只负责划分区域,而数据形式和存放位置由通信进程控制,而不是操作系统,是一种高级的通信方式
基于数据结构的共享方式:低级的通信方式
消息传递
进程间的数据交换以格式化的消息为单位,进程通过操作系统提供的”发送消息/接收消息”两个原语进行数据交换
分为直接通信方式:消息发送进程要指明接收进程的ID
间接通信方式:通过信箱间接的通信,信箱通信方式
管道通信
对于第5条的补充,解决方案有两种:1.一个管道允许多个写进程,一个读进程
2.允许多个写进程,多个读进程,但是系统会让各个进程轮流从管道中读数据
写进程往管道写数据,即使管道没被写满,只要管道没空,读进程就可以从管道读数据
读进程从管道读数据,即便是管道没被读空,只要管道没满,写进程就可以往管道写数据