操作系统学习笔记

目录

1.2   操作系统的发展过程

1.2.1 无操作系统的计算机系统(1946 ~ 50年代中期(电子管)第一代计算机

1.2.2 单道批处理系统(simple batch processing)(50年代末 ~ 60年代中(晶体管) 第二代计算机)

1.2.3 多道批处理系统(multiprogramming system)(60年代中 ~ 70年代中(小规模集成电路) 第三代计算机)

1.2.4 分时系统(time-sharing system)(70年代中期至今 第四代计算机)

1.2.5 实时系统(real-time system)

1.2.6 微机操作系统的发展

1.3   操作系统的基本特性

1.4   操作系统的主要功能

1.4.1 处理机管理

1.4.2 存储管理

1.4.3 设备管理

1.4.4 信息管理

1.4.5 用户接口

1.5   操作系统的结构设计

第二章 操作系统引论

1   进程的基本概念

2   进程控制

3   进程同步


第一章  操作系统引论

1.1   操作系统的目标和作用

目标:

有效性(系统管理人员的观点):管理和分配硬件、软件资源,合理地组织计算机的工作流程,提高系统资源利用率和吞吐量。

方便性(用户的观点):提供良好的、一致的用户接口。

可扩充性(发展的观点):适应计算机硬件、体系结构以及应用发展的要求。

开放性(兼容的观点):系统能遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,均能彼此兼容,可方便地实现互连。

作用:

1.OS作为用户与计算机硬件系统之间的接口

2.OS作为计算机系统资源的管理者

可将资源分为四类:处理器、存储器、 I/O设备以及信息(数据和程序)。

OS的主要功能(通过资源分类):处理机管理, 用于分配和控制处理机;存储器管理,主要负责内存的分配与回收;I/O设备管理,负责I/O设备的分配与操纵;文件管理,负责文件的存取、共享和保护。

管理对象包括:CPU、存储器、外部设备、信息(数据和软件)

管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限)

 3.OS实现了对计算机资源的抽象

推动操作系统发展的主要动力(“需求推动发展”)

(1) 提高计算机资源的利用率

(2) 方便用户

(3) 器件的更新换代

(4) 计算机体系结构的发展

(5) 不断提出新的应用需求

1.2   操作系统的发展过程

1.2.1 无操作系统的计算机系统(1946 ~ 50年代中期(电子管)第一代计算机

集中计算,计算机资源昂贵)

基本思想

由用户(即程序员)采用人工操作方式直接使用计算机硬件系统,即由程序员将事先已穿孔(对应于程序和数据)的纸带(或卡片)装入纸带输入机(或卡片输入机),再启动它们将程序和数据输入计算机,然后启动计算机运行。当程序运行完毕并取走计算结果之后,才让下一个用户上机。

优点:

减少了CPU的空闲时间。

提高I/O速度。

1. 人工操作方式

1.2.2 单道批处理系统(simple batch processing)(50年代末 ~ 60年代中(晶体管) 第二代计算机)

基本思想

把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下使这批作业能一个一个地连续处理。

由于系统对作业的处理是成批地进行的,且在内存中始终只保持一道作业,故称为单道批处理系统(simple batch processing)。

特性

自动性:磁带上的一批作业能自动逐个地依次运行,无需人工干预。

顺序性:磁带上的各道作业是顺序地进入内存,且先调入内存的作业先完成。

单道性:监督程序每次从磁带上只调入一道程序进入内存运行。

通道:用于控制I/O设备与内存间的数据传输。启动后可独立于CPU运行,实现CPU与I/O的并行。

中断是指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。

监督程序发展为执行系统(executive system),常驻内存。

1.2.3 多道批处理系统(multiprogramming system)(60年代中 ~ 70年代中(小规模集成电路) 第三代计算机)

多道程序设计技术是指在内存同时存放若干道程序,使它们在系统中并发执行,共享系统中的各种资源。当一道程序暂停执行时,CPU立即转去执行另一道程序。

多道批处理系统的基本思想:用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们交替执行,共享CPU和系统中的各种资源。

特征:

多道性:内存中同时驻留多个作业;

宏观上并发运行:都处于运行状态,但都未运行完;

微观上串行运行:各作业交替使用CPU;在当前运行的作业需作I/O处理时,CPU转而 执行另一个作业。

调度性:作业从提交到完成,经过两次调度:

作业调度:从外存的后备作业队列中,选择若干个作业调入内存。

进程调度:从已在内存的作业中选择一个作业,将CPU分配给它,使之执行。

优点:

资源利用率高:CPU和内存利用率较高;

系统吞吐量大:系统吞吐量是指系统在单位时间内完成的工作总量。

缺点:

平均周转时间长:作业的周转时间是指从作业进入系统开始,直至其完成并退出系统为止所经历的时间。短作业的周转时间显著增长;

无交互能力:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;

需要解决的问题

  • CPU争用问题

  • 内存管理问题

  • I/O设备管理问题

  • 文件管理问题

  • 作业管理问题

  • 用户与系统接口问题

1.2.4 分时系统(time-sharing system)(70年代中期至今 第四代计算机)

分时系统的基本思想:

在一台计算机上,同时连接有多个带有显示器和键盘的联机终端,每个用户都有一个终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。

CPU分时为多个用户服务,即,用户的程序是由自己通过联机终端直接控制的,而每一个用户的程序不再是在CPU上运行完毕后退出,而是运行一段时间后让出CPU,使得其他用户的程序得以执行。因此CPU可以轮流地给几个用户的作业提供服务。

特征:

多路性(同时性):允许在一台主机上同时联接多台联机终端,系统按分时的原则为每个用户服务。

宏观上并行:多个用户同时工作,共享系统资源;

微观上串行:每个用户作业轮流运行一个时间片

用户独立性:对每个用户而言好象独占主机。

及时性:用户的请求能在很短时间内获得响应。

人机交互性好:用户可以通过终端与系统进行广泛的人机对话。

1.2.5 实时系统(real-time system)

实时系统(Real Time System)是指系统能及时(或即时)响应外部事件(所谓事件是指来自与计算机系统相连接的设备所提出的服务要求和采集数据)的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

实时系统的分类

  1. 实时控制系统

  2. 实时信息处理系统

  3. 多媒体系统

  4. 嵌入式系统

响应时间:

 指用户发出命令,到系统完成用户命令所需的时间。

系统

响应时间

批处理操作系统

没有

分时操作系统

秒级(一般情况)

实时操作系统

微秒级甚至更小(经典说法)

系统满足用户时限(截止时间,deadline)的要求(现代)

实时系统特点

1、系统对外部的信号必须能及时响应(在规定的时间内(截止时间));

2、要求高可靠性和安全性,效率则放在第二位;

3、系统整体性强;

4、不要求很强的“会话”能力。

1.2.6 微机操作系统的发展

1.单用户单任务操作系统

只允许一个用户上机,且只允许用户程序作为一个任务运行。代表:CP/M和MS-DOS。

2.单用户多任务操作系统

只允许一个用户上机,但允许用户把程序分为若干个任务,使它们并发执行,从而有效地改善了系统的性能。代表:Windows。

3.多用户多任务操作系统

允许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量。代表: UNIX OS (Solaris, Linux)。

网络操作系统(NOS)

分布式操作系统(Distributed Operating System)

操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

1.3   操作系统的基本特性

并发(concurrence)指两个或多个事件在同一时刻发生。

共享(sharing)指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。

资源共享方式

互斥共享(如打印机 、磁带机等):在一段时间内只允许一个进程(线程)访问该资源,资源分配后到释放前,不能被其他进程所用。(临界资源)

同时访问(如磁盘设备等):允许在一段时间内由多个进程“同时”对它们进行访问。

并发和共享是操作系统的两个最基本的特征

虚拟(Virtual)指通过某种技术把一个物理实体变为若干个逻辑上的对应物。

虚拟技术的实现方式:

时分复用技术(即分时使用方式):虚拟处理机技术、虚拟设备技术

空分复用技术:虚拟磁盘技术、虚拟存储器技术

异步性(Asynchronism)也称不确定性,指进程的执行顺序和执行时间的不确定性;

1.4   操作系统的主要功能

1.4.1 处理机管理

管理目标:完成处理机资源的分配调度等功能。处理机调度的单位可为进程或线程。

1.4.2 存储管理

管理目标:提高内存空间的利用率、方便用户使用、提供足够的存储空间、方便进程并发运行。

1.4.3 设备管理

管理目标:方便的设备使用、提高CPU与I/O设备利用率;

1.4.4 信息管理

管理目标:解决文件资源的存储、共享、保密和保护。

1.4.5 用户接口

管理目标:提供一个友好的用户访问操作系统的接口。

现代OS的新功能

1.系统安全

认证技术

密码技术

访问控制技术

反病毒技术

2.网络功能和服务

网络通信

资源管理(共享)

应用互操作

3.支持多媒体

接纳控制系统

实时调度

多媒体文件存储

1.5   操作系统的结构设计

 OS结构变革历程:

操作系统的设计原则

可维护性:容易修改与否称为可维护性;

有三种可能的维护:

改错性维护:改正已发现的错误;

适应性维护:修改软件,使之适应新的运行环境(硬件环境和软件环境);如:操作系统的移植。

完善性维护:增加新功能;

可靠性:包括两方面:

正确性:正确实现所要求的功能和性能;

稳健性:对意外(故障和误操作)作出适当的处理;

可理解性:易于理解,以方便测试、维护和交流;

性能:有效地使用系统资源;尽可能快地响应用户请求;

微内核OS结构的特征

足够小的内核

微内核的基本功能:进程(线程)管理 、低级存储器管理、中断和陷入处理等。

以客户/服务器模式为基础

客户/服务器模式(Client/Server)模式--简称C/S模式

客户/服务器模式的优点:

(1) 提高了系统的灵活性和可扩充性。

(2) 提高了OS的可靠性。

(3) 可运行于分布式系统中。

在多道程序设计环境中,中央处理器交替地执行操作系统程序和用户程序。当CPU正在执行操作系统程序时,称 CPU处于系统态(又称管态、核心态);当  CPU正在执行用户程序时,称CPU处于用户态(又称目态)

应用“机制与策略分离”原理

采用面向对象技术

微内核操作系统的优点:

1) 提高了系统的可扩展性

2) 增强了系统的可靠性

3) 可移植性

4) 提供了对分布式系统的支持

5) 融入了面向对象技术

微内核OS存在的问题:运行效率有所降低。

第二章 操作系统引论

1   进程的基本概念

前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。

图中每个结点可用于描述一条语句、一个程序段或进程

结点间的有向边则表示在两结点之间存在的偏序或前趋关系“→”,→={(Pi,Pj)|Pi must complete before Pj may start } 如果(Pi,Pj)∈→,可写成 Pi→Pj;,称Pi是Pj的直接前趋,而Pj是Pi的直接后继。

在前趋图中,没有前趋的结点称为初始结点(Initial Node) ,没有后继的结点称为终止结点(Final Node) 。

每个结点还可具有一个重量(Weight),用于表示该结点所含有的程序量或结点的执行时间。

一个程序由若干个程序段组成,在各程序段之间,必须按照某种先后次序顺序执行,仅当前一(程序段)执行完后,才能执行后继操作。这种程序执行的方式就称为程序的顺序执行

程序顺序执行的特点:

1.顺序性:处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。

2.封闭性:程序一旦开始执行,其执行结果不受外界的影响。

3.可再现性:程序执行的结果与初始条件有关,而与执行时间无关。

程序并发执行 :若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。

程序并发执行时的特征

1、间断性(执行—暂停—执行)

2、失去了程序的封闭性

3、不可再现性(失去封闭性引起)

进程的特征

(1)结构特征:从结构上看,进程实体是由程序段、相关的数据段和进程控制块(PCB,process control block)三部分组成。

(2)动态性:进程的实质是进程实体的一次执行过程,它有着创建、活动、暂停、终止等过程,具有一定的生命期,是动态地产生、变化和消亡的。

(3)并发性:多个进程实体同存于内存中,且能在一段时间内同时运行。

(4)独立性:进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。

(5)异步性:各个并发进程按照各自独立的、不可预知的速度向前推进。

行为的一个规则叫做程序,程序在处理机上执行时所发生的活动称为进程(Dijkstra)。

进程是这样的计算部分,它是可以和其它计算并行的一个计算。(Donovan)

进程(有时称为任务)是一个程序与其数据一道通过处理机的执行所发生的活动。(Alan.C. Shaw)

进程是执行中的程序。(Ken Thompson  and Dennis Ritchie )

教材上给出的进程的定义:

  进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

进程与程序的区别

1、程序是指令的集合,是静态的概念。 进程是程序在处理机上的一次执行过程,是动态的概念。程序可以作为软件资料长期保存。进程是有生命周期的。

2、进程是一个独立的运行单位,能与其它进程并发活动。而程序则不是。

3、进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。

4、一个程序可以作为多个进程的运行程序,一个进程也可以运行多个程序。

进程的三种基本状态

进程在系统中的活动规律是:

   执行        暂停        执行(间断性)

进程的三种基本状态:

    就绪状态

        执行状态

            阻塞状态(又称等待,睡眠)

进程的三种基本状态

1.就绪状态(Ready)

若进程已具备了运行条件,只因CPU被别的进程占用而不能被CPU执行,则称此时进程处于就绪状态。一旦把CPU分配给它,该进程就可以运行。

系统中处于就绪状态的进程可能有多个,通常将它们按某种策略(优先级)排成一个队列,称为就绪队列。 

2.执行状态(Running)

当一个进程已分配到CPU,它的程序正在被CPU执行时进程所处的状态称执行状态,也称为运行状态。

对于单CPU系统而言,处于执行状态的进程只可能有一个,多处理机系统中则有多个。

3.阻塞状态(Wait)

正在执行的进程因等待某种事件的发生而暂时不能运行便放弃CPU的状态称阻塞状态(等待状态),例如,等待输入/输出、等待进程间的同步/互斥等。

一旦引起等待的原因消失,进程便转为就绪状态。以便在适当的时候占用CPU。

系统中处于等待状态的进程可能有多个,通常也将它们排成一个队列。有的系统按照进程不同的等待原因,把处于等待状态的进程排成多个队列。

进程的三种基本状态的转换

进程的动态性决定了它不会固定处于某个状态,系统中的进程由于各种不同的原因在以上各个状态之间变化。

进程状态的转换:

1.就绪状态→执行状态

2.执行状态→阻塞状态

3.执行状态→就绪状态

4.  阻塞状态→就绪状态

(1)创建(新)状态:一个进程刚刚建立,但还未将它插入就绪队列时的状态。

(2)终止状态:一个进程已经正常结束或异常结束,OS已将它从就绪队列中移出,但尚未将它撤消时的状态。

进程的挂起状态

使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,我们把这种静止状态称为挂起状态(静止状态)

引入挂起状态的原因有:

1.终端用户的需要

终端用户在自己的程序运行期间发现有可疑问题,希望暂时使自己的程序静止下来。

2.父进程请求

父进程希望挂起自己的子进程,以便考查和修改子进程,或协调子进程的活动。

3.负荷调节的需要

当实时系统中的负载较重,影响到实时任务的执行,可挂起不重要进程,保证系统正常运行。

4.操作系统的需要  

操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记帐。

带有挂起状态时的进程状态转换

原语就是计算机机器指令的延伸,它是由若干条机器指令构成,并完成一种特定功能的程序段。

原语在执行期间必须一次执行完,中间不允许被中断。也就是说,原语具有原子性.

1.活动就绪→静止就绪:

   当进程处于未被挂起的就绪状态时,称此为活动就绪状态,表示为Readya,此时进程可被调度。当用挂起原语Suspend将该进程挂起后,该进程便转变为静止就绪状态,表示为Readys。

处于Readys状态的进程,不再被调度执行。

2.活动阻塞→静止阻塞:

   当进程处于未被挂起的阻塞状态时,称为它处于活动阻塞状态,表示为Blockeda。当用Suspend原语将它挂起后,进程便转变为静止阻塞状态,表示为Blockeds。

处于该状态的进程,在其所期待的事件出现后,它将从静止阻塞变为静止就绪

3.静止就绪→活动就绪:

   处于Readys状态的进程,若用激活原语Active激活后,该进程将转变为 Readya状态。

4.静止阻塞→活动阻塞:

   处于Blockcds状态的进程,若用激活原语Active激活后,进程将转变为Blockeda状态。

进程控制块

  进程控制块PCB(Process Control Block)(记录型数据结构)

  进程的执行程序(一个可执行文件)

 进程执行时所需的数据

 PCB中记录了操作系统所需的、用于描述进程的当前情况及控制进程运行所需的全部信息。

进程控制块中的信息

1、进程标识符 用于惟一标识一个进程。

内部标识符 操作系统为每一个进程赋予一个惟一的数字标识符(进程的序号)

外部标识符 由创建者提供,由字母、数字组成。为了描述进程的家族关系,还应设置父进程标识及子进程标识。还可设置用户标识。

2、处理机状态信息 由处理机的各种寄存器(通用寄存器、指令计数器、程序状态字PSW、用户栈指针)中的内容组成。

3、进程调度信息 包括进程状态、进程优先级、进程调度所需的其它信息(与所采用的进程调度算法有关,如进程已等待CPU的时间总和、进程已执行的时间总和等)、事件(进程由执行状态转变为阻塞状态所等待发生的事件)。

4、进程控制信息 包括程序和数据的地址(进程的程序和数据所在的内存或外存地址)、进程同步和通信机制、资源清单(除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单)、链接指针等。

进程控制块PCB的作用是使一个多道环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个与其它进程并发执行的进程。

操作系统是根据PCB来对并发执行的进程进行控制和管理的。可以说PCB是进程存在的惟一标志。

由于PCB经常被系统访问,故PCB应常驻内存。系统将所有的PCB组织成若干个链表(或队列),存放在操作系统中专门开辟的PCB区内。

进程控制块的组织方式

1)线性方式

2)链接方式

3)索引方式

2   进程控制

进程控制包括:

     进程创建、

             进程终止、

                   进程阻塞、

                         进程唤醒、

                进程挂起、

                   进程激活

进程图(Process Graph)是用于描述一个进程的家族关系的有向树。

进程树的特点:

(1)资源分配严格,子进程可以继承父进程所拥有的资源;

当子进程被撤消时,应将其从父进程那里获得的资源归还给父进程;

(2)在撤消父进程时,也必须同时撤消其所有的子进程,便于管理;

系统可根据需要赋予进程不同的控制权,并可以把一个任务分解成若干个进程来完成,具有较好的灵活性;

(3)树形结构层次清晰,关系明确。 

创建进程的主要工作是申请一个进程控制块PCB,并向其中填入进程名、优先级等有关的参数。

创建进程的基本过程是:  (进程创建原语Creat())

(1)申请空白PCB。从空闲的PCB集合中申请一个新的PCB,同时获得该进程的内部标识;

(2)为新进程的程序和数据分配所需资源(内存、文件、I/O和CPU时间片);

(3)初始化进程控制块PCB。向该PCB中填写各种参数;

(4)将新进程插入到就绪队列。把该进程的状态设置成就绪状态,并将该PCB插入到就绪队列中。

进程的终止 :

引起进程终止的事件

1.正常结束 进程任务已完成,退出运行。

2.异常结束 在进程运行期间,由于出现异常事件而迫使进程终止。如:越界错误、保护错、非法指令、特权指令错、运行超时、等待超时、算术运算错、I/O故障等。

3.外界干预 进程应外界的请求而终止运行。包括:操作员或操作系统干预、父进程请求、父进程终止。

进程的终止过程是: (进程终止原语Holt())

(1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。

(2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。

(3)若该进程还有子孙进程,还应将其子孙进程予以终止,以防它们成为不可控的进程。

(4)将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。

(5)将被终止进程(其PCB)从所在队列中移出,等待其他程序来搜集信息。

引起进程阻塞和唤醒的事件

1.请求系统提供服务 正在执行的进程请求操作系统提供服务,由于某种原因,操作系统并不立即满足该进程的要求。

2.启动某种操作 进程启动某种操作后,必须在该操作完成之后才能继续执行。

3.新数据尚未到达 对于相互合作的进程,如果其中一个进程需要先获得另一进程提供的数据才能运行,则只要其所需的数据尚未到达,该进程只有阻塞。

4.无新工作可做 系统往往设置一些具有特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来以等待新任务到来。

正在执行的进程,当发生上述事件时,由于无法继续执行,于是进程便通过调用阻塞(等待)原语block把自己阻塞。可见,进程阻塞是进程自身的一种主动行为。

进程的阻塞(等待)过程 阻塞(等待)原语block

  (1)进程立即停止执行,把其PCB中的现行状态由“执行”变为阻塞;

  (2)将其PCB插入到相应的阻塞队列中去;

  (3)转调度程序进行重新调度,将处理机重新分配给另一就绪进程,并进行切换。

当被阻塞进程所期待的事件出现时,如I/O完成或所期待的数据已经到达,则由有关进程(如,用完并释放了该I/O设备的进程)调用唤醒原语,将等待该事件的进程唤醒。

进程的唤醒过程   唤醒原语wakeup()

   (1)把被阻塞进程从等待该事件的阻塞队列中移出;

   (2)将其PCB中的现行状态由“阻塞”变为就绪;

   (3)该PCB插入到就绪队列中。

注意:如果在某进程中调用了阻塞原语,则必须在与之相合作的另一进程中或其他相关进程中安排唤醒原语,以能唤醒阻塞进程;否则,被进程将会因不能被唤醒而长久地处于阻塞状态。

挂起与激活:

当出现了引起进程挂起的事件时,比如,用户进程请求将自己挂起,或者父进程请求将自己的某个子进程挂起时,系统将利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。

挂起原语的执行过程是:

(1)检查被挂起进程的状态:若正处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将其改为静止阻塞。

(2)为了方便用户或父进程考查该进程的运行情况,而把该进程的 PCB复制到某指定的内存区域。

(3)最后,如被挂起的进程正在执行,则转调度程序重新调度。

当发生激活过程的事件时,如用户进程或父进程请求激活指定进程,若进程驻留在外存而内存中已有足够的空间,则可将在外存上处于静止就绪状态的进程换入内存。这时,系统将利用激活原语active()将指定进程激活。

激活原语的执行过程是:

先将进程从外存调入内存,检查该进程的现行状态:若是静止就绪,便将其改为活动就绪;若为静止阻塞,便将其改为活动阻塞。

假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚被激活的进程。

3   进程同步

两种形式的制约关系:

(1)直接相互制约关系 并发进程在一些关键点上可能需要相互等待与互通消息.

(2)间接相互制约关系 也称为进程互斥关系,是由各进程排它性使用共享资源(如共享CPU、I/O设备等)引起的。

临界资源:操作系统中一次仅允许一个进程访问的资源。

软件临界资源有内存变量、指针、数组等等

硬件临界资源有打印机、磁带机等

不论是硬件临界资源,还是软件临界资源,多个进程互斥地对它进行访问。

临界区(临界段):每个进程中访问临界资源的那段程序段。

同一临界资源在多个共享它的进程中将对应多个临界区。

如果能保证诸进程互斥地进入自己的临界区,便可保证诸进程对临界资源的互斥访问。

或者说:要临界资源互斥地被使用,就要保证临界区互斥地被执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BridgeCloud

生活不易,多多支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值