操作系统(二)
title: 操作系统(二)
date: 2019-12-10 17:11:48
categories:
- 操作系统
tags:
7. 原语及特征
-
原语通常由若干条指令组成,用来实现某个特定的操作。通过一段不可分割的或不可中断的程序实现其功能。
-
类型
- 创建原语
- 撤销原语
- 阻塞原语
- 唤醒原语
- 挂起原语
- 激活原语
-
特征
- 原子操作:要么全做,要么全不做,不可分割,执行时不允许被中断。
- 不可中断
8. 临界资源、临界区
-
临界资源:多道程序系统中存在许多进程,它们共享各种资源,然而有很多资源一次只能供一个进程使用。一次仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如输入机、打印机、磁带机等。
-
若能保证诸进程互斥地进入自己的临界区,便可实现诸进程对临界资源的互斥访问
-
临界区: 每个进程中访问临界资源的那段代码称为临界区(Critical Section)
while(TRUE) { 进入区 //检查是否有进程在临界区内,有则该临界资源被访问;若无则进程可进入临界区对该资源进行访问,并设置它正在被访问标志 临界区 退出区 //将临界区正在被访问的标志恢复为未被访问的标志 剩余区 //进程中其余代码都在剩余区 }
9. 进程两种制约关系与进程互斥、同步
直接制约
- 为了完成某任务而建立了两个或多个进程。这些进程将为完成同一项任务而相互合作。进程间的直接制约关系就源于他们之间相互合作。
- 表现为进程同步
间接制约
- 由于共享系统资源,如CPU、I/O设备等,致使在这些并发执行的程序之间形成的相互制约关系。
- 表现为进程互斥
进程同步
- 进程同步机制,是对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能够安装一定的规范共享系统资源并能够相互合作,从而使程序的执行具有可再现性
- 同步机制规则
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
进程互斥
- 由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥。
10. 用信号量和p、v操作机制实现进程的同步和互斥
-
信号量机制是一种进程同步机制
-
PV操作 资源的申请与释放-原语
-
P操作 wait(S) { while S<=0 ;//do no-op S--; 申请一个资源;
-
V操作 signal(S) { S++; ) 释放一个资源;
-
-
进程同步的实现
Semaphore s=0; //初始化信号量 P1() { … x; //语句x V(s) ; //告诉进程P2,语句x已经完成 … } P2() { … P(s) ; //检查语句x是否运行完成 y; //检查无误,运行语句y … }
-
进程互斥的实现
Semaphore s=1; //初始化信号量 P1() { … P(s); //准备开始访问临界资源,加锁 进程P1的临界区; V(s) ; //访问结束,解锁 … } P2() { … P(s); //准备开始访问临界资源,加锁 进程P2的临界区; V(s) ; //访问结束,解锁 … }