시스템 2 개 과정 운영

시스템 2 개 과정 운영

기능 프로세스, 쓰레드, 프로세스, PCB, 프로세스 제어, 프로세스 상태 전환,이 장에서는 주로 여러 개념 도입 프로세스 동기화 및 프로세스 간 통신을.

디렉토리

시스템 2 개 과정 운영

프로그램 실행 1 특성

제 2 공정 및 특성

3 동기화 프로세스

4, 고전 동기화 문제

5 개 공정 간의 통신

6 스레드 (스레드)


(1) 프로그램 실행 기능

이전 과정에서 차트되는 과정의 구현.

선행 그래프 : 방향성 비순환 그래프 (directed acyclic graph)는, 전 공정의 실행을 설명 관계 후에,주기 존재할 수 없다 라고 DAG (방향성 비순환 그래프)

화성도 전에 구 개 노드를 갖는 주기가 화성도 전에 :

참고 : 전신 순환 수치는 존재하지 않아야합니다.

프로그램 구현

주문 실행

동시 실행

이행

단일 일괄 처리 시스템의 구현

다중 배치 시스템의 구현

특징

연속 : 실행 순서에 따라 설치

휴관일은 전체 시스템의 자원 프로그램이 실행되는 독점 :

재현성 : 동일한 결과를 얻기가 반복적으로 수행

비동기 성격 : 프로그램, 중간 정지 와서 자신의 타이밍 관계를 잃을 수 있습니다

폐쇄 분실 : 상기 메모리에 기록 된 프로그램 데이터가 다른 프로그램에 의해 변경 될 수 있고, 본래 그대로의 특성의 손실

재현성의 손실 : 다른 결과를 얻을 수 반복적 동시 프로그램 간의 우선 순위 관계를 실행하지 않는다.

동시 트랜드의 실행 시간 전 :

(I 입력을 나타내고, C는 CPU 동작, P 출력을 나타낸다 나타낸다)

在上例中存在下述前趋关系:Ii→CiIi→Ii+1, Ci→Pi, Ci→Ci+1Pi→Pi+1

2、进程及其特性

进程的描述性定义:计算机中的所有程序(软件),按照某种顺序运行,这种运行的过程称之为进程。

进程的定义

系统中能独立运行并作为资源分配的基本单位,他是由一组机器指令,数据和堆栈等组成的,是一个能独立运行的活动实体,程序安装在电脑中是存储在内存中,运行程序时才会产生进程。

进程是程序的一次执行。

进程的特征

结构性:有程序段、数据段和PCB

动态性:随着创建和撤销而产生和消亡

并发性:多个进程实体同存于内存中,同时运行

独立性:各进程的地址空间相互独立,

异步性:各进程按各自独立的、不可预知的速度向前推进

进程三种基本状态

就绪状态:已获得除CPU外的所需资源,等待分配CPU

执行状态:占用CPU运行;此状态的进程的数目<=CPU的数目

阻塞状态:等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行

进程的创建

初始化PCB,向PCB中填写控制管理进程的信息

进程的终止

PCB清零,归还PCB

进程挂起

①执行的进程暂停

②就绪的进程暂不调度(就绪挂起)

③阻塞的进程即使引起阻塞的事件消失也不调度(阻塞挂起)


3、进程的同步

3.1、相关定义

目的:进程之间能有效的共享资源和相互合作,又能保证程序的执行具有可再现性。

临界资源:一次仅允许一个进程使用的资源,诸进程之间只能用互斥的方式进行访问

访问临界资源的过程:每个进程进入临界区之前应先对欲访问的临界资源进行检查,看是否正在被访问。如果此刻该临界资源未被访问,该进程可进入临界区,并设置它正在被访问的标志。

进入区:在临界区之前执行的这段代码称为进入区,设置它正在被访问的标志。

退出区:在临界区之后也要加上一段代码,用于将临界区被访问的标志恢复为未被访问的标志。

3.2、同步机制遵循的规则

空闲让进

当无进程处于临界区时,应允许一个进程进入临界区

忙则等待

当已有进程进入临界区时,其他进程必须等待

有限等待

对要求访问临界资源的进程,应保证在有限时间内进入自己的临界区,防止"死等"

让权等待

当进程不能进入自己的临界区时,应立即释放处理机,防止"忙等"

 

3.3、硬件同步机制(开锁进入,关锁等待)

为了防止多个进程同时测试到锁打开的情况,测试和关锁的操作必须是连接的,不允许分开进行。

3.3.1关中断

关闭中断—锁测试—完成测试—上锁—打开中断

缺点:滥用关中断权利导致严重后果;关中断时间过长影响系统效率,限制执行程序的能力;关中断方法不适用于多个CPU系统。

3.3.2Test andSet指令

  Lock为false时表示资源空闲,lock为true时表资源被占用

3.3.3利用Swap指令实现进程互斥

3.3.4、信号量机制

(1)整型信号量——忙等

仅能通过两个标准的原子操作wait(S)和signal(S)来访问。这两个操作一直被分别称为P、V操作。wait(S)和signal(S)是原子操作,执行时是不可中断

(2)记录型信号量——让权等待

在记录型信号量机制中,除了需要一个用于代表资源数目的整型变量value外,还应增加一个进程链表L,用于链接上述的所有等待进程。

(3)AND型信号量

将进程在整个运行过程中需要的所有资源,一次性全部地分配给进程,待进程使用完后再一起释放。要么全部分配到进程,要么一个也不分配。 由死锁理论可知,这样就可避免上述死锁情况的发生。

  

(4)信号量集

一次性分配多个资源。

3.4信号量例题

利用信号量实现前趋关系:

 

4、进程之间的通信

进程的通信

定义

为协调完成某一任务,几个进程间应保持联系,即交换一定数量的信息。信号量机制就是一种进程通信方式。

类型

1)共享存储器系统:对用户不透明,只适合传递少量数据,属于低级通信方式

2)消息传递系统:高级通信方式

3)管道(Pipe)通信:有一个两者共有的都可以进行读写的文件夹

缺点

1)交换的信息量比较少;(2)效率低;(3)对用户不透明。

5、线程(threads)

1、进程的基本属性

(1)可拥有资源的独立单位:在内存中有独立的物理存储空间

(2)可独立调度和分派的基本单位,有唯一的PCB

2、为什么需要引入线程

     进程能并发执行,需要创建,撤销,切换进程,消耗一定系统资源。线程的引入正是为了简化进程间的通信,以小的开销来提高进程内的并发程度从而提高系统吞吐量。

3、线程的属性

(1)传统的进程称为重型进程,线程称为轻型进程。

(2)线程是进程中的一个运行实体,线程是一个CPU调度单位,线程是能独立运行的基本单位,资源的拥有者还是进程或称任务,独立分配资源的基本单位还是进程。

(3)同一进程中的线程切换不会引起进程的切换,不同进程中的线程的切换会引起进程的切换。

(4)同一进程中的线程共享这个进程的内存地址和资源,但是不同的进程是有独有的唯一的内存地址,

(5)每个线程又有一个TCB(线程控制块),是每个线程的唯一标识符。

发布了21 篇原创文章 · 获赞 13 · 访问量 3607

추천

출처blog.csdn.net/weixin_40695088/article/details/104088049