老狗——进程控制与同步

进程控制与同步

“ 最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞。" ——徐志摩

① 进程控制的基本过程

进程树

进程的创建

  1. 申请空白PCB
  2. 为新进程分配资源 — 主要是内存资源的处理
  3. 初始化进程控制块
    标识符(包括父进程的)、程序计数器指向程序入口地址,就绪态、优先级等信息的填写。
  4. 将新进程插入就绪队列

原语是由若干指令构成的原子操作过程,作为整体实现功能,不可被打断。

进程的终止

引起终止的事件
  • 正常结束
  • 异常结束
  • 外界干预

进程的阻塞与唤醒

由进程调用阻塞原语阻塞自己,是主动行为

  1. 原因:

    a) 请求系统服务的满足情况
    
    b) 启动某种需等待(I/O)操作
    
    c) 新数据尚未到达   
    
    d) 执行某功能的进程暂时无新工作可做(如发送数据进程)
    
  2. 阻塞过程

     a)将PCB中的状态改为阻塞
    
     b)该PCB加入到阻塞队列中
    
     c)转进程调度,将处理机分配给另一进程
    
     d)进行进程切换,即根据两切换进程的PCB,保护与重新设置处理机状态
    
  3. 唤醒过程

     a)把阻塞进程从等待该事件的阻塞队列中移出
    
     b)将其PCB中的现行状态改为就绪
    
     c)将PCB插入到就绪队列中
    

进程的挂起和激活


② 进程同步

主要任务:

使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。

互斥同步

互斥:

在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,直到占用临界资源的进程退出临界区,我们称进程之间的这种相互制约关系为“互斥”。

同步:

多个相互合作的进程,在一些关键点上可能需要互相等待或互相交换信息,这种相互制约关系称为进程同步关系。可理解为“有序”。

临界区

每个进程中访问临界资源的那段代码叫临界区

同步机制应遵循的规则

空闲让进:资源使用最基本原则

忙则等待:保证互斥

有限等待:合适时被唤醒防止死等

让权等待:能主动释放CPU防止忙等

关中断

进入锁测试前关闭中断,直到完成锁测试并上锁后才能打开中断。进程在临界区执行期间,系统不响应中断,从而不引发调度。

缺点:

滥用风险

关中断时间过长会影响效率,限制CPU交叉执行能力

不适用于多CPU系统

整形信号量

信号量定义为一个整型量

根据初始情况赋相应的值

仅能通过两个原子操作来访问

P操作

wait(S):
While S<=0 do no-op;
S:=S-1;

V操作

signal(S):
S:=S+1;


Copyright © 2018 VeteranDog . All rights reserved.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值