操作系统基础知识--进程与进程同步

程序顺序执行的特点
1.顺序性:一个程序开始执行必须要等到前一个程序已执行完成。
2.封闭性:程序运行时独占计算机资源,资源的状态只能由本程序修改。程序一旦开始执行,其计算结果不受外界因素影响。
3.可再现性:程序的结果与它的执行速度无关(即与时间无关),只要给定相同的输入,一定会得到相同的结果。

程序并发执行的特点
1.间断性
2.失去程序的封闭性
  程序在并发执行时,是多个程序共享系统中的资源,因此这些资源的状态将由多个程序来改变。
3.不可再现性

进程是可并发执行的程序在一个数据集合上的运行过程。
进程是指进程实体的运行过程。

程序是静态的,进程是动态的;
程序是永久的,进程是暂时的;
进程是由程序和数据、进程控制块 PCB 三部分组成的。

进程的特征
1.结构性:由程序段、数据段、进程控制块三部分组成;
2.动态性:进程是程序的执行过程;
3.并发性:多个进程可同存于内存中,能在一段时间内同时运行;
4.独立性:独立运行的基本单位,独立获得资源和调度的基本单位;
5.异步性:各进程按各自独立的不可预知的速度向前推进。

进程的三种基本状态
1.就绪状态(Ready):存在于处理机调度队列中的所有进程,它们已经准备就绪,一旦得到CPU,就立即可以运行。
2.运行状态(Running):正在运行的进程所处的状态为运行状态。
    单处理机系统只有一个进程处于该状态
    多处理机系统有多个进程处于运行状态
3.等待/阻塞/睡眠状态(Wait/Blocked):若一进程正在等待某一事件发生(如等待输入输出工作完成),这时,即使给它 CPU,它也无法运行,称该进程处于等待状态(阻塞、 睡眠、封锁状态)。

进程控制块(PCB)
PCB 是 OS 中最重要的记录型数据结构。
PCB 是 OS 感知进程存在的唯一标志。
  进程与 PCB 是一一对应的。
PCB 随进程创建而建立,随进程结束而回收。
PCB 应常驻内存。

进程描述信息:
进程标识符(process ID):唯一,通常是一个整数
进程名:通常基于可执行文件名(不唯一)
用户标识符(user ID):进程组关系

原语:由多条指令组成,是一种特殊的系统功能调用,它可以完成一个特定的功能。
原语的特点:
1.执行时不可中断
2.不可并发
3.在管态下执行,常驻内存

进程创建
1.申请空白 PCB
2.为新进程分配资源 如内存
3.初始化进程控制块
4.将新进程插入就绪队列

进程终止的事件:
1.正常结束
2.异常结束
  越界错误
  保护错
  特权指令错
  非法指令错
  I/0 故障 等
  运行超时
  等待超时
  算术运算错
3.外界干预: 操作员或 OS 干预;父进程请求;父进程终止,子孙进程被终止。
进程阻塞是进程自身的一种主动行为。

进程阻塞或唤醒的原因
1.请求系统服务:如请求打印机
2.启动某种操作:如 I/O 操作
3.新数据还未到达:合作进程之间需要数据传递
4.无新工作可做:如发送进程发送完数据后

线程是进程中的一个实体,是被系统独立调度的基本单位。
引入进程的目的是为了使多个程序更好的并发执行,改善资源利用率、提高系统效率。

进程是一个资源分配的基本单位。
进程是一个可独立调度和分派的基本单位。

线程的特征
1.结构性:
  TCB:标识、现场信息(寄存器、PC、栈指针)、调度信息(状态、优先级)
  数据块:过程参数、数据、系统与用户堆栈
2.并发性:同一进程中的各线程在同一主存空间,可以共享进程中的所有资源(数据、设备、文件),线程间通信方便。
3.共享性:同一进程的各线程
4.动态性:有生命期,有状态变化,可创建子线程

系统调度的基本单位是线程而不是进程,每当创建一个进程时,至少要同时为该进程创建一个线程,否则该进程无法被调度执行。

线程状态:运行、就绪和阻塞三种状态。
线程的状态转换类似于进程。
 
-------------------------------------------------------------------------------------------
进程同步
临界资源(Critical Resource/CR):一次仅允许一个进程访问的资源。

临界区(Critical Section/CS):临界段,在每个程序中,访问临界资源的那段程序。

临界区的调度原则:
1.一次至多允许一个进程进入临界区内
2.一个进程不能无限地停留在临界区内
3.一个进程不能无限地等待进入临界区

同步机制应遵循的规则:
1.空闲让进
2.忙则等待
3.有限等待
4.让权等待

信号量(Semaphore)机制
1、整型信号量
  定义为一个整型量,由两个标准原子操作 wait(S)(P 操作)和 signal(S)(V 操作)来访问。
  整型信号量出现“忙等”现象。
2、记录型信号量
3、AND 型信号量
  AND 信号量是针对进程间共享多个资源;
  AND 同步机制的基本思想是:将进程在整个运行过程中需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放。只要尚有一个资源未分配给进程,其它所有可能为之分配的资源,也不分配。
4、信号量集
  信号量集是指同时需要多种资源、每种占用的数目不同,且可分配的资源还存在一个临界值时的信号量处理。

经典的进程同步问题
1.生产者/消费者问题
2.读者/写者问题
3.哲学家进餐问题

一个管程包含一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。

进程通信类型
1.共享存储器系统 (Shared-Memory System)
  进程间通过共享某些数据结构或共享存储区进行通信。
2.消息传递系统(Message Passing System)
  进程间的数据交换以格式化的消息为单位,程序员利用系统的通信原语实现通信。 如:网络中的报文。
  消息通信分为直接通信和间接通信。
3.管道(Pipe)通信 (共享文件方式)
  管道,是指用于连接一个读进程和一个写进程的文件,称 pipe 文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值