OS中的进程线程同步机制
操作系统复习题含答案
一、什么是操作系统你都用过什么操作系统各有什么特点
操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合;操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务;DOS系统都是以命令的方式运行指令,有的也支持鼠标,甚至也可以做成菜单方式,但跟windows的亲和性相比是无法相比的;windos系列的操作系统主要特点就是简单,图形操作,不需要死记命令,适合非专业人士使用;unix系列由于是开源的,所以操作复杂,功能强大,可以按自己的需求设计与改造,适合专业人士,不适合初学者;
二、试说明操作系统系统的主要功能模块及其主要任务
处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;
进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换; 进程同步:为多个进程含线程的运行进行协调;
进程通信:用来实现在相互合作的进程之间的信息交换;
处理机调度:
1作业调度;从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需
的资源首选是分配内存;
2进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给它,并设置运行现场,使进程投入执行;
内存管理的主要功能有:内存分配、内存保护、地址映射和内存扩充;
内存分配:为每道程序分配内存;
内存保护:确保每道用户程序都只在自己的内存空间运行,彼此互不干扰;
地址映射:将地址空间的逻辑地址转换为内存空间与对应的物理地址;
os4(管程)
1. 什么是进程(续)
从理论角度看,进程是对正在运行的 程序过程的抽象; 从实现角度看,进程是一种数据结构, 目的在于清晰地刻划动态系统的内在 规律,有效管理和调度进入计算机系 统主存储器运行的程序。
29/130
2. 进程与程序的区别
程序是静态的概念(是指令的有序集 合);进程是动态的概念(动态产生 和消亡)。
誊抄——用卡片输入机将一个文本复写到行式打 印机。 (1) 循环顺序执行 while (不空) { INPUT; OUTPUT; } 缺点:未能利用卡片输入机与行式打印机的并行 操作能力,造成系统效率低。
14/130
4. 并发程序的例子(续)
(2) 基于一个缓冲区的并发誊抄方案 卡片输入机 缓冲区 行式打印机
25/130
为什么要引进进程的概念?(续)
原因1—— 刻画系统的动态性,发挥系统的并发 性,提高资源利用率。
26/130
为什么要引进进程的概念?(续)
原因2—— 它能解决系统的“共享性”,正确描 述程序的执行状态。
27/130
一、进程定义
1. 什么是进程
进程是具有独立功能的程序关于某个数据 集合上的一次运行活动。 进程是操作系统中最基本、重要的概念。 是多道程序系统出现后,为了刻画系统内 部出现的动态情况,描述系统内部各道程 序的活动规律引进的一个概念,所有多道程 序设计操作系统都建立在进程的基础上。
计算机操作系统(第四版)汤小丹课后答案完整版
第一章
1.设计现代 OS 的主要目标是什么?
答:( 1)有效性( 2)方便性( 3)可扩充性( 4)开放性
2. OS 的作用可表现在哪几个方面?
答:( 1) OS 作为用户与计算机硬件系统之间的接口
( 2 ) OS 作为计算机系统资源的管理者
( 3 ) OS 实现了对计算机资源的抽象
3.为什么说 OS 实现了对计算机资源的抽象?
答: OS 首先在裸机上覆盖一层I/O 设备管理软件,实现了对计算机硬件操作的第一层次抽
象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS 通
过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们
共同实现了对计算机资源的抽象。
4.试说明推动多道批处理系统形成和发展的主要动力是什么?
答:主要动力来源于四个方面的社会需求与技术发展:
( 1 )不断提高计算机资源的利用率;
( 2 )方便用户;
( 3 )器件的不断更新换代;
( 4 )计算机体系结构的不断发展。
5.何谓脱机 I/O 和联机 I/O ?
答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在
外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围
机控制完成,是在脱离主机的情况下进行的。
而联机I/
O
方式是指程序和数据的输入输出都是在主机的直接控制下进行的。
6.试说明推动分时系统形成和发展的主要动力是什么?
答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表
现在:
CPU 的
分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己
计算机操作系统原理 第二章 进程描述与控制
27
思考
为什么要引入进程的概念?
28
2.1 进程描述
2.1.1 程序的顺序执行 2.1.2 程序的并发执行 2.1.3 进程的定义
2.1.4 进程的特征
2.1.5 进程的状态及转换
2.1.6 进程控制块
29
2.1.4 进程的特征
动态性:进程是程序的执行 并发性:多个进程可同存于内存中,能在一段时间内 同时运行 独立性:独立运行的基本单位,独立获得资源和调度 的基本单位。 异步性:各进程按各自独立的不可预知的速度向前推 进 结构特征:由用户程序 、用户数据、系统栈和进程控 制块四部分组成
2.1.4 进程的特征
2.1.5 进程的状态及转换
2.1.6 进程控制块
34
2.1.5 进程的状态及转换
进程有三种基本状态,进程在生命消亡前处 于且仅处于三种基本状态之一。 不同系统设置的进程状态数目不同。
35
进程的三种基本状态
就绪状态(Ready):存在于处理机调度队列中的那 些进程,它们已经准备就绪,一旦得到CPU,就立即 可以运行。这些进程所处的状态为就绪状态。 运行状态(Running):正在运行的进程所处的状态 为运行状态。拥有CPU。 等待状态(Wait / Blocked ):若一进程正在等待某 一事件发生(如等待输入输出工作完成),这时,即 使给它CPU,它也无法运行,称该进程处于等待状态、 阻塞、 睡眠、封锁状态。
操作系统(双语)复习资料
Chapter 4
Processes and Threads进程和线程
到目前为止进程的两个特点:
1、Resource ownership:资源所有权
2、Scheduling/execution:调度/执行
the unit of dispatching is usually referred to as a thread线程, or lightweight process.将分派的单位称为线程或轻量级进程。
线程同步:一个进程的所有线程共享一个地址空间(address space)和其他资源,因此需要同步各种线程的活动
User-Level and Kernel-Level Threads用户级和内核级线程
User-Level Threads:
·All of the word of thread management is done by the application and the kernel is not aware of the existence of threads.有关线程管理的所有工作都由应用程序完成,内核意识不到线程的存在
·使用用户级线程而不是内核级线程的优点:
1、Thread switching does not require kernel mode privileges线程切换不需要内核态特权
2、Scheduling can be application specific.调度可以是应用程序相关的
3、ULTs can run on any operating system.用户级线程可以在任何操作系统上运行
计算机操作系统复习知识点汇总
计算机操作系统复习知识点汇总
第一章绪论
1、操作系统的定义、目标、作用
1OS是配置在计算机硬件上的第一层软件;是对硬件系统的首次扩充..
2OS的主要目标是:方便性;有效性;可扩充性和开放性.
3OS的作用可表现为:
a. OS作为用户与计算机硬件系统之间的接口;一般用户的观点
b. OS作为计算机系统资源的管理者;资源管理的观点
c. OS实现了对计算机资源的抽象.
2、脱机输入输出方式和SPOOLing系统联机输入输出方式的联系和区别
脱机输入输出技术Off-Line I/O是为了解决人机矛盾及CPU的高速性和I/O设备低速性间的矛盾而提出的.它减少了CPU的空闲等待时间;提高了I/O速度.
由于程序和数据的输入和输出都是在外围机的控制下完成的;或者说;它们是在脱离主机的情况下进行的;故称为脱机输入输出方式;反之;在主机的直接控制下进行输入输出的方式称为联机输入输出方式
联机输入输出技术也提高了I/O的速度;同时还将独占设备改造为共享设备;实现了虚拟设备功能..
3、多道批处理系统需要解决的问题
处理机管理问题、内存管理问题、I/O设备管理问题、文件管理问题、作业管理问题
4、OS具有哪几个基本特征它的最基本特征是什么
a. 并发性Concurrence;共享性Sharing;虚拟性Virtual;异步性Asynchronism.
b. 其中最基本特征是并发和共享.
c. 并发特征是操作系统最重要的特征;其它特征都是以并发特征为前提的..
5、并行和并发
并行性和并发性是既相似又有区别的两个概念;并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多少个事件在同一时间间隔内发生..
计算机操作系统第四版课后习题参考答案完整版
计算机操作系统第四版课后习题参考答案
集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]
第一章
1.设计现代OS的主要目标是什么?
答:(1)有效性(2)方便性(3)可扩充性(4)开放性
2.OS的作用可表现在哪几个方面?
答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象
3.为什么说OS实现了对计算机资源的抽象?
答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。
4.试说明推劢多道批处理系统形成和収展的主要劢力是什么?
答:主要动力来源于四个方面的社会需求与技术发展:(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。
5.何谓脱机I/O和联机I/O?
答:脱机I/O是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。
6.试说明推劢分时系统形成和収展的主要劢力是什么?
答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表现在:CPU的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。
OS--第二章
进程的引入进程的引入-1
并发性:并发性是进程的重要特征,同时也是OS的重 并发性 要特征。并发性指多个进程实体同存于内存中,能 在一段时间内同时运行。而程序是不能并发执行。 独立性:进程是一个能独立运行的基本单位,即是一 独立性 个独立获得资源和独立调度的单位,而程序不作为 独立单位参加运行。 异步性:进程按各自独立的不可预知的速度向前推进, 异步性 即进程按异步方式进行,正是这一特征,将导致程 序执行的不可再现性,因此OS必须采用某种措施来 限制各进程推进序列以保证各程序间正常协调运行。 结构特征:从结构上,进程实体由程序段、数据段和 结构特征 进程控制块三部分组成,UNIX中称为“进程映象”。
进程管理目录
2.1 进程的引入和描述 2.1.1 为什么引入进程 2.1.2进程的描述 2.1.3进程控制模块(PCB) 2.1.4 进程上下文 2.2.进程控制 2.2.1内核 2.2.2进程状态的细化 2.2.3进程控制原语 2.2.4线程概念 2.2.5 Linux进程控制原语和Windows进程、线程控制 API函数
进程管理目录-1
进程管理目录-2
2.5调度 2.5.1作业的状态和处理机三级调度 2.5.2 处理机调度模型 2.5.3进程调度 2.5.4 调度方式和算法的选择准则和评价 2.5.5作业/进程调度算法 2.6 进程死锁 2.6.1死锁的原因和条件 2.6.2 死锁的预防 2.6.3死锁的避免 2.6.4死锁的检测 2.6.5死锁的解除
进程与线程的定义、关系及区别
进程与线程的定义、关系及区别
进程与线程的定义、关系及区别
⼀、进程的定义
进程:指在系统中能独⽴运⾏并作为资源分配的基本单位,它是由⼀组机器指令、数据和堆栈等组成的,是⼀个能独⽴运⾏的活动实体。
进程⼀般有三个状态:就绪状态、执⾏状态和等待状态【或称阻塞状态】;进程只能由⽗进程建⽴,系统中所有的进程形成⼀种进程树的层次体系;挂起命令可由进程⾃⼰和其他进程发出,但是解除挂起命令只能由其他进程发出。
进程控制块(PCB):PCB不但可以记录进程的属性信息,以便对进程进⾏控制和管理,⽽且PCB标志着进程的存在,操作系统根据系统中是否有该进程的进程控制块PCB⽽知道该进程存在与否。系统建⽴进程的同时就建⽴该进程的PCB,在撤销⼀个进程时,也就撤销其PCB,故进程的PCB对进程来说是它存在的具体的物理标志和体现。⼀般PCB包括以下三类信息:进程标识信息;处理器状态信息;进程控制信息。
由程序段、相关的数据段和PCB三部分构成了进程实体(⼜称进程印像),⼀般,我们把进程实体就简称为进程。
进程的特征:
1.动态性:进程的实质是程序的⼀次执⾏过程,进程是动态产⽣,动态消亡的。
2.并发性:任何进程都可以同其他进程⼀起并发执⾏。
3.独⽴性:进程是⼀个能独⽴运⾏的基本单位,同时也是系统分配资源和调度的独⽴单位。
4.异步性:由于进程间的相互制约,使进程具有执⾏的间断性,即进程按各⾃独⽴的、不可预知的速度向前推进。
⼆、线程的定义
线程:线程是进程中的⼀个实体,作为系统调度和分派的基本单位。
线程的性质:
1.线程是进程内的⼀个相对独⽴的可执⾏的单元。若把进程称为任务的话,那么线程则是应⽤中的⼀个⼦任务的执⾏。
计算机操作系统(第3版)课后习题答案(完整版)
1 1.试说明引起进程创建的主要事件。 答:引起进程创建的主要事件有:用户登录、作业调度、提供服务、应用请求。 1 2.试说明引起进程被撤销的主要事件。 答:引起进程被撤销的主要事件有:正常结束、异常结束(越界错误、保护错、非法指令、 特权指令错、运行超时、等待超时、算术运算错、I/O 故障)、外界干预(操作员或操作 系 统干预、父进程请求、父进程终止)。 1 3.在创建一个进程时所要完成的主要工作是什么? 答: (1)OS 发现请求创建新进程事件后,调用进程创建原语Creat(); (2)申请空白PCB; (3)为新进程分配资源; (4)初始化进程控制块; (5)将新进程插入就绪队列. 1 4.在撤销一个进程时所要完成的主要工作是什么? 答: (1)根据被终止进程标识符,从PCB 集中检索出进程PCB,读出该进程状态。 (2)若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真,指示该进程被 终止后重新调度。 (3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程。 (4)将被终止进程拥有的全部资源,归还给父进程,或归还给系统。 (5)将被终止进程PCB 从所在队列或列表中移出,等待其它程序搜集信息。 1 5.试说明引起进程阻塞或被唤醒的主要事件是什么? 答:a. 请求系统服务;b. 启动某种操作;c. 新数据尚未到达;d. 无新工作可做. 1 6.进程在运行时存在哪两种形式的制约?并举例说明之。 答: (1)间接相互制约关系。举例:有两进程A 和B,如果A 提出打印请求,系统已把唯一的 一台打印机分配给了进程B,则进程A 只能阻塞;一旦B 释放打印机,A 才由阻塞改为就 绪。 (2)直接相互制约关系。举例:有输入进程A 通过单缓冲向进程B 提供数据。当缓冲空时, 计算进程因不能获得所需数据而阻塞,当进程A 把数据输入缓冲区后,便唤醒进程B;反 之,当缓冲区已满时,进程A 因没有缓冲区放数据而阻塞,进程B 将缓冲区数据取走后便 唤醒A。 1 7.为什么进程在进入临界区之前应先执行 “进入区”代码?而在退出前又要执行 “退出 区”代码? 答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问 的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问, 并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为" 进入区"代码;在退出临界区后,必须执行" 退出区"代码,用于恢复未被访问标志,使其它 进程能再访问此临界资源。 18. 同步机构应遵循哪些基本准则?为什么? 答:同步机构应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待 原因:为实现进程互斥进入自己的临界区。 19. 试从物理概念上说明记录型信号量wait 和signal。
操作系统的基本功能
操作系统的基本功能
操作系统的基本功能:
处理机管理、存储器管理、设备管理和⽂件管理等。
1、处理机管理功能:
传统的多道程序系统中,处理机的分配和运⾏都是以进程为基本单位的。
1)进程控制:在设置有线程的OS中,进程控制还应包括为⼀个进程创建若⼲个线程,以提⾼系统的并发性。2)进程同步:其主要任务是为多个进程(含线程)的运⾏进⾏协调。协调⽅式:进程互斥⽅式和进程同步⽅式。3)进程通信:进程通信的任务是实现相互合作进程之间的信息交换。
4)调度:包括作业调度和进程调度。
2、存储器管理功能:
主要任务是:为多道程序的运⾏提供良好的环境,提⾼存储器的利⽤率,⽅便⽤户使⽤,并能从逻辑上扩充内存。具有内存分配和回收、内存保护、地址映射和内存扩充等功能。
3、设备管理功能:
具有缓冲管理、设备分配和设备处理以及虚拟设备等功能。
4、⽂件管理功能:
对⽤户⽂件和系统⽂件进⾏管理以⽅便⽤户使⽤,并保证⽂件的安全性。
应当具有对⽂件存储空间的管理、⽬录管理、⽂件的读/写管理以及⽂件的共享与保护等功能。
补充知识:
“机制与策略分离”原理:
机制:指实现某⼀功能的具体执⾏机构;
策略:在机制的基础上借助于某些参数和算法来实现该功能的与优化,或达到不同的功能⽬标。
OS-习题
1.什么是进程?它最少有几种状态?
2.进程与线程的主要区别是什么?
3.已知一个求值公式(A2+3B)/(B+5A),若A、B已赋值,画出该公式的求值过程的前
驱图。
4.设有一个作业有四个进程组成,这四个进程在运行时必须按图的次序,用P、V操作表
达四个进程的同步关系。
5.用P、V操作实现下述问题的解:桌子上有一个盘子,可以存放一个水果。父亲总是放
苹果到盘子中,而母亲总是放香蕉到盘子中;一个儿子专等吃盘中的香蕉,而一个女儿专等吃盘中的苹果。
6.哲学家甲、乙、丙、丁一起讨论问题,在讨论的间隙四位哲学家进餐,每人进餐时都需
要使用刀、叉各一把,餐桌上的布置如图所示。请用信号量及P、V操作说明这四位哲学家的同步、互斥过程。
7.请用信号量实现对某数据库的读者-写者互斥。要求:
a)读者和写者之间互斥,写者与写者之间互斥;
b)读者之间不互斥。
8.在公共汽车上,司机和售票员的活动分别是:
司机的活动:启动车辆;正常行车;到站停车。
售票员的活动:关车门;售票;开车门。
在汽车不断地到站、停战、行驶的过程中,这些活动由什么同步关系?用信号量和P、V操作实现他们的同步。
9.设有一个发送者进程和一个接收者进程,其流程图如图所示。s是用于实现进程同步的
信号量,mutex是用于实现进程互斥的信号量。试问流程图中的A、B、C、D四个框中应填写什么?假定缓冲区有无限多个,s和mutex的初值分别应为多少?
10. 有三个进程PA 、PB 、PC 协作解决打印问题:PA 将文件记录从磁盘读入内存的缓冲区
1,每执行一次读一个记录;PB 将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC 将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区的大小和一个记录的大小一样。请用P 、V 操作来保证文件的正确打印。 11. ★★★有一个仓库,可以存放A 和B 两种产品,但要求:
操作系统讲稿2012(第三章)
3.1进程的概念
一、程序的顺序执行与特征 1.程序:完成一定功能的、在时间上严格按前后顺序 执行的指令集合,它可以分成若干指令串。 2.程序的执行过程: 输入数据 ② 计算 ③ 输出结果 ① S1: a=51 S2: b=a*5 I C P S3: c=a+b S4: d=a+b*b+c*2 Repeat IR M[pc] pc pc+1 Execute (instruction IR) Until CPU Halt
(3)可再现性:只要程序的运行环境及输入条件相 同,输出结果肯定相同。
二、前趋图 前趋图(Directed Acyclic Graph): 是一个有向非循环图,图中每个节点可以表示一条语句, 一个程序或进程,节点之间的有向边表示节点之间的前 趋关系(Precedence Relation)或半序关系(Partial Order) ―→‖ ={ (Pi,Pj) j必须在Pi完成之后开始执行} |P 如果:(Pi,Pj)∈ →,则, Pi → Pj Pi称为Pj的直接前趋,Pj称为Pi的直接后继。 如果:Pi → Pk → …… → Pj Pi称为Pj的前趋,Pj称 为Pi的后继。 没有前趋的节点称为初始节点 。 没有后继的节点称为终止节点。
29 20480 30 20481 31 20482 32 20483 33 20484 34 20485 35 51206 36 51207 37 51208 38 51209 39 51210 40 51211
操作系统概论自考重点
操作系统概论
1. 引言
操作系统是计算机系统中最基本的软件之一,它负责管理和控制计算机硬件资源,并提供给应用程序一个简单、一致、高效的编程接口。本文将介绍操作系统的概念、功能、架构以及一些重要的概念和技术。
2. 操作系统的概念和功能
操作系统是一种系统软件,它位于计算机硬件和应用程序之间,负责协调和管理计算机系统的各种资源。操作系统的主要功能包括:
•进程管理:操作系统负责创建、调度和终止进程,并管理它们之间的通信和同步。
•内存管理:操作系统分配和回收内存,并提供虚拟内存管理功能,使每个应用程序都有足够的内存空间。
•文件系统:操作系统提供文件和目录的管理功能,使用户可以方便地存储和访问文件。
•设备管理:操作系统管理计算机的各种设备,如磁盘、打印机和网络接口等。•用户界面:操作系统提供了与计算机系统交互的用户界面,如命令行界面和图形用户界面。
3. 操作系统的架构
操作系统的架构可以分为单体结构、分层结构、微内核结构和虚拟机结构等多种形式。
•单体结构:操作系统的所有功能都集中在一个大的程序中,缺点是耦合度高、可维护性差。
•分层结构:操作系统按照功能划分成多个层次,每个层次提供一组相关的功能接口。优点是模块化、可维护性好。
•微内核结构:操作系统的核心功能被设计成一个小的内核,其他功能以服务的形式运行在内核之上。优点是可扩展性好、可靠性高。
•虚拟机结构:操作系统在硬件之上运行一个虚拟机,每个应用程序都在虚拟机中运行,相互之间互不干扰。优点是隔离性好、安全性高。
4. 操作系统的重要概念和技术
4.1 进程和线程
操作系统 读书笔记
读书笔记
——《操作系统》
《操作系统》
目录
1 操作系统发展史
2 进程和线程
3 内存管理
4 文件系统(Linux)
5 设备管理
1 操作系统发展史
1.1引言
操作系统诞生距今已经有了几十年的时间,它是计算机资源的管理者。最初的人们是没有操作系统来对计算机加以控制的,一直都处于人工管理方式来对计算机进行操作和管理,人机交互之间出现了人工手动的低速和计算机的高速处理形成了尖锐的矛盾,资源利用率非常的低,从而导致计算机的效率十分低下。为了解决人工干预和CPU速度不匹配的矛盾,提高计算机的使用效率,后来出现了世界上第一个的操作系统——脱机输入/输出,用户先将卡片输入到纸带机,然后通过卫星机的处理,将纸带的数据高速写入磁带,主机运行时再将磁带上的数据高速读入内存,输出也可以这样中转,由于数据的读取和写入是脱离主机运行的,所以这样的处理方式称为脱机输入/输出方式。虽然脱机输入输出方式进一步提高了计算机的运行效率,但是在计算机工作过程中还是需要人工进行干预,后来就出现了批处理系统。在批处理系统中,操作员将一批作业输入进磁带中,然后运行第一个程序,当第一个作业完成后自动读入下一个作业,直至所有作业全部完成。由于该类系统的内存中只能保持一个作业运行,所以这类系统又称为单通道批处理系统。到了20世纪60年代出现了多道批处理系统能够做到计算机内存中的作业并发执行。直到后来出现的分时操作系统能够让多个用户共同使用一个操作系统可以随时和计算机进行交互,并且让各个用户都感受不到其他用户的存
在。随着计算机技术的发展,越来越多的用户希望操作系统能够实时地对用户进行反馈,在1980年,为了让计算机能够实时地反馈,后来又出现了实时操作系统,对冶炼、发电、炼油、化工、机械加工等的自动控制起到了重要作用。
操作系统复习资料
第一章概述
基本概念
1.操作系统是配置在计算机硬件上的第一层软件,是现代计算机系统中最
为重要的系统软件。
2.操作系统的设计目标:有效性、方便性、可扩充性、开放性
3.操作系统的作用:1、用户与计算机系统的接口;2、计算机资源的管理
者
4.在操作系统引入多道程序设计技术,不但提供了CPU的利用率,增加
了系统的吞吐量,还实现了主机和外设的并行运行,提高了内存和I/O 设备的利用率
5.现代操作系统具有并发性、共享性、虚拟性、异步性的基本特征,其中,
并发性是操作系统的最为重要的特征。
6.并行性是指两个或多个事件在同一时刻发生;并发性是指在一段时间内
宏观上有多个程序在同时运行。
7.在主机直接控制下进行I/O操作的方式称为联机I/O方式,脱离主机控
制,由外围机控制完成的I/O操作称为脱机I/O方式。脱机I/O方式实现了CPU和I/O的并行操作,减少了CPU的空闲时间,提高了I/O操作的速度。
8.操作系统有以下几种类型:多道批处理系统、分时系统、实时系统、网
络操作系统和分布式操作系统。多道批处理系统的特点:多道、成批;
分时系统的特点:同时性、交互性、独立性、及时性;实时系统的特点:交互能力较弱,系统专用,响应时间更严格、及时、可靠性要求更高;
网络操作系统的特点:分布性、自治性、互连性、可见性;分布式操作
系统的特点:透明性、灵活性、可靠性、高性能、可扩充性。
9.操作系统的主要功能。
处理器管理:进程控制、进程同步、进程通信、调度;
存储器管理:内存分配与回收、内存保护、地址映射、内存扩充;
设备管理:缓冲管理、设备分配、设备处理;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OS中的进程/线程同步机制
1 常用并发机制
1.1 信号量(Semaphore)
用于进程间传递信号的一个整数值,在信号上只可以进行三种操作,即初始化、递减和递增,这三种操作都是原子操作。递减操作用于阻塞一个进程,递增操作用于解除一个进程的阻塞。信号量也称为计数信号量或一般信号量
1.2 二元信号量(Binary Semaphore)
只取0值和1值的信号量。
1.3 互斥量(Mutex)
类似于二元信号量。关键在于为其加锁(设定值为0)的进程和为其解锁(设定值为1)的进程必须为同一个进程。
1.4 条件变量(Cond)
一种数据类型,用于阻塞进程或线程,直到特定的条件为真。
1.5 管程(Monitor)
一种编程语言结构,它在一个抽象数据类型中封装了变量、访问过程和初始化代码。管程的变量只能由管程自身的访问过程访问,每次只能有一个进程在其中执行,访问过程即临界区。管程可以有一个等待进程队列。
1.6 事件标志(Event Sign)
用作同步机制的一个内存字。应用程序代码可为标志中的每个位关联不同的事件。通过测试相关的一个或多个位,线程可以等待一个或多个事件。在全部所需位都被设定(AND)或至少一个位被设定(OR)之前,线程会一直被阻塞。
1.7 信箱/消息(Mailbox)
两个进程间交换信息的一种方法,也可用于同步。
1.8 自旋锁(Spin Lock)
一种互斥机制,进程在一个无条件循环中执行,等待锁变量的值可用。
2 常用进程/线程同步机制介绍
2.1 Windows OS中常用进程/线程同步机制
2.1.1 临界区(Critical Section)
可用于进程和线程同步。
保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。
临界区包含两个操作原语:
EnterCriticalSection()进入临界区
LeaveCriticalSection()离开临界区
EnterCriticalSection()语句执行后代码将进入临界区以后无论发生什么,必须确保与之匹配的LeaveCriticalSection()都能够被执行到。否则临界区保护的共享资源将永远不会被释放。虽然临界区同步速度很快,但却只能用来同步本进程内的线程,而不可用来同步多个进程中的线程。
MFC提供了很多功能完备的类,我用MFC实现了临界区。MFC为临界区提供有一个CCriticalSection类,使用该类进行线程同步处理是非常简单的。只需在线程函数中用CCriticalSection类成员函数Lock()和UnLock()标定出被保护代码片段即可。Lock()后代码用到的资源自动被视为临界区内的资源被保护。UnLock后别的线程才能访问这些资源。
2.1.2 互斥量(Mutex)
进程和线程都可用的一种同步机制。互斥量跟临界区很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。当前占据资源的线程在任务处理完后应将拥有的互斥对象交出,以便其他线程在获得后得以访问资源。互斥量比临界区复杂。因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享。
互斥量包含的几个操作原语:
CreateMutex()创建一个互斥量
OpenMutex()打开一个互斥量
ReleaseMutex()释放互斥量
WaitForMultipleObjects()等待互斥量对象
2.1.3 信号量(Semaphore)
进程和线程都可用的同步机制。
信号量对象对线程的同步方式与前面几种方法不同,信号允许多个线程同时使用共享资源,这与操作系统中的PV操作相同。它指出了同时访问共享资源的线程最大数目。它允许多个线程在同一时刻访问同一资源,但是需要限制在同一
时刻访问此资源的最大线程数目。在用CreateSemaphore()创建信号量时即要同时指出允许的最大资源计数和当前可用资源计数。一般是将当前可用资源计数设置为最大资源计数,每增加一个线程对共享资源的访问,当前可用资源计数就会减1,只要当前可用资源计数是大于0的,就可以发出信号量信号。但是当前可用计数减小到0时则说明当前占用资源的线程数已经达到了所允许的最大数目,不能在允许其他线程的进入,此时的信号量信号将无法发出。线程在处理完共享资源后,应在离开的同时通过ReleaseSemaphore()函数将当前可用资源计数加1。在任何时候当前可用资源计数决不可能大于最大资源计数。
PV操作及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量S 是一个整数,S大于等于零时代表可供并发进程使用的资源实体数,但S小于零时则表示正在等待使用共享资源的进程数。
P操作申请资源:
(1)S减1;
(2)若S减1后仍大于等于零,则进程继续执行;
(3)若S减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转入进程调度。
V操作释放资源:
(1)S加1;
(2)若相加结果大于零,则进程继续执行;
(3)若相加结果小于等于零,则从该信号的等待队列中唤醒一个等待进程,然后再返回原进程继续执行或转入进程调度。
信号量包含的几个操作原语:
CreateSemaphore()创建一个信号量
OpenSemaphore()打开一个信号量
ReleaseSemaphore()释放信号量
WaitForSingleObject()等待信号量
2.1.4 事件(Event)
事件对象也可以通过通知操作的方式来保持线程的同步。并且可以实现不同进程中的线程同步操作。
信号量包含的几个操作原语:
CreateEvent()创建一个信号量
OpenEvent()打开一个事件
SetEvent()回置事件
WaitForSingleObject()等待一个事件
WaitForMultipleObjects()等待多个事件WaitForMultipleObjects 函数原型:
WaitForMultipleObjects(
IN DWORD nCount, // 等待句柄数
IN CONST HANDLE *lpHandles, //指向句柄数组
IN BOOL bWaitAll, //是否完全等待标志
IN DWORD dwMilliseconds //等待时间
)