OS中的进程线程同步机制

合集下载

《操作系统原理》(汤小丹)课后答案

《操作系统原理》(汤小丹)课后答案

第一章操作系统引论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 的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。

7.实现分时系统的关键问题是什么?应如何解决?答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。

解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。

操作系统填空题

操作系统填空题

操作系统填空题第二章程序顺序执行时的特征是:顺序性,封闭性,可再现性。

程序并发执行时的特征是:间断性,失去封闭性,不可再现性。

进程实体由程序段,相关数据段和PCB(进程控制块)三部分构成。

进程的特征有动态性,并发性,独立性,异步性。

进程控制块中的信息包括:进程标识符,处理机状态,进程调度信息,进程控制信息。

处理机状态也称为处理机的上下文。

处理机中的寄存器主要包括通用寄存器、指令计数器、程序状态字PSW、用户栈指针。

进程控制主要包括程序和数据的地址、进程同步和通信机制、资源清单、链接指针等功能。

进程控制一般是由OS的内核中的原语来实现的。

处理机的执行状态分成系统态和用户态两种。

批处理系统中,通常会在程序的最后安排一条Holt指令表示运行已经结束。

引起进程终止的事件有正常结束、异常结束、外界干预。

同步机制应遵循的规则有空闲让进、忙则等待、有限等待、让权等待。

进程之间高级通信机制有共享存储器系统,消息传递系统,管道通信,客户机-服务器系统。

管道机制必须提供互斥、同步、确定对方是否存在这三方面的协调能力。

进程的两个基本属性是动态性和并发性。

程序并发执行所需付出的时空开销有创建进程、撤销进程、进程切换。

线程运行时的三种基本状态有执行状态、就绪状态、阻塞状态。

多线程OS中的进程属性包括进程是一个可拥有资源的基本单位、多个线程可并发执行、进程已不是可执行的实体。

线程的实现方式有内核支持线程KST、用户级线程ULT、组合方式。

硬件同步机制包括关中断、利用Test-and-Set指令实现互斥、利用Swap指令实现线程互斥。

关中断不能在多处理机系统中使用。

硬件同步机制实际上是实现了多个处理机之间的同步。

信号量机制实际上是实现了进程和线程之间的同步。

信号量属于进程级的通信机制。

指令级同步机制是由硬件实现的。

信号量机制分为整型信号量、记录性信号量、AND型信号量、信号量集四种。

文件读写是原子操作。

信号量集机制一次操作多个信号量,是为了避免死锁。

5、CPU的线程与操作系统的线程有何关系?操作系统中的进程和线程是什么关系?

5、CPU的线程与操作系统的线程有何关系?操作系统中的进程和线程是什么关系?

5、CPU的线程与操作系统的线程有何关系?操作系统中的进程和线程是什么关系?CPU中的线程和操作系统(OS)中的线程即不同,在调度的时候⼜有些关联。

CPU中的线程,我们叫它们Thread,和OS中的线程的名字⼀样。

它来⾃同步多线程(SMT,Simultaneous Multi-threading)的概念。

我们现在在Intel的CPU上看到它,实际上这并不是Intel的发明创造。

它最早起源于学术圈,在硬件上IBM实现也⽐Intel早。

最早Intel使⽤了这种技术时候就叫做SMT,但后⾯改叫做HT (Hyper Threading),可能是这样更清楚(毕竟最多两个thread,⽐IBM怪物要少),更朗朗上⼝吧。

我们现在看到CPU,很多都⽀持HT,经常看到的2C4T的意思就是2核4线程(core,Thread)。

1个内核中的thread是对称的和对等的,在软件上没有任何区别,BIOS也只有通过⼀些特殊⼿段才能区分。

实际上,2C4T中的4个thread调度起来没有本质区别,它们都有⾃⼰单独的⾝份证号码:APIC ID。

调度起来只要知道别⼈的APIC ID,就⽤⾃⼰的Local APIC寄存器发出两个IPI(Inter-Processor Interrupts)就好了,那个被指明的倒霉蛋就莫名其妙的开始被调度去指定的地址执⾏指令了(尽管是实模式)。

当然也可以⼴播IPI让所有别的thread都去执⾏指定任务。

更多相关内容见:实际上CPU中Thead有多少,操作系统并不⾃⼰探测,是BIOS通过ACPI报告给OS的,那么BIOS是怎么知道有多少个Thread呢?就是通过⼴播IPI让各个thread⾃⼰来签到的,是不是很简单?操作系统中的ThreadOS中的Thread有⾃⼰的栈空间,和同⼀进程中的其他线程共享地址空间等等,这些基本知识因为⼴为⼈所知,这⾥就不罗嗦了。

此Thread⾮彼Thread操作系统中的进程可以很多,进程中的线程就更多了,常常有⼏⼗个上百个。

OS基本内容总结

OS基本内容总结

OS基本内容总结.doc操作系统(OS)基本内容总结引言操作系统(Operating System,简称OS)是计算机系统中最基本的系统软件,它管理计算机硬件资源并为用户和其他软件提供时间和空间上的服务。

本文档将对操作系统的基本内容进行总结,包括操作系统的定义、功能、类型以及主要的操作系统概念。

操作系统的定义操作系统是计算机系统中的一个系统软件,它负责管理计算机硬件资源,提供用户界面,控制程序执行,并为计算机程序提供支持。

操作系统的功能1. 进程管理进程控制:创建、撤销进程,实现进程状态的转换。

进程同步:协调进程间的合作。

进程通信:进程间信息传递。

死锁处理:避免和解决进程间的死锁问题。

2. 内存管理内存分配:为程序分配内存空间。

内存保护:确保进程间的内存互不干扰。

地址转换:实现逻辑地址到物理地址的转换。

3. 文件系统管理文件存储空间的分配和管理。

目录结构的组织和管理。

文件的读写管理和存取控制。

4. 设备管理管理各种硬件设备,如打印机、磁盘等。

实现设备分配、设备处理和设备通信。

5. 用户接口提供用户与操作系统交互的界面,如命令行界面(CLI)和图形用户界面(GUI)。

操作系统的类型1. 批处理系统早期的操作系统类型,主要用于批处理作业。

2. 分时系统允许多个用户同时使用计算机资源,实现资源共享。

3. 实时系统能够及时响应外部事件,并在严格的时间限制内完成任务。

4. 网络操作系统支持网络环境下的资源共享和通信。

5. 分布式操作系统由多个物理或逻辑上分离的计算机组成,协同工作。

6. 微内核操作系统核心功能最小化,其他功能通过模块化的方式实现。

主要的操作系统概念1. 进程与线程进程:程序的执行实例,是资源分配的基本单位。

线程:进程中的一个实体,是程序执行的基本单位。

2. 并发与并行并发:多个进程在宏观上同时运行。

并行:多个进程在多台处理器上同时运行。

3. 死锁多个进程在运行过程中因争夺资源而造成的一种僵局。

操作系统简答题

操作系统简答题

第一章1.操作系统的目标是什么?答:方便性,有效性,可扩充性,开放性。

2.什么是计算机操作系统。

答:是计算机系统中的一个系统软件,能有效地组织和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够合理、方便、有效地使用计算机,使整个计算机系统能高效运行的一组程序模块的集合。

3.操作系统的三种基本类型是什么。

答:批处理操作系统,分时系统,实时系统4.试说明多道批处理操作系统的优缺点。

答:优点是资源利用率高,系统吞吐量大。

缺点是平均周转时间长,无交互能力。

5.试叙述多道程序设计的基本概念。

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

6.简述分时系统的工作原理和特征。

答:(1)分时系统采用时间片轮转法,将CPU的访问时间平均分给每个用户,使每个用户都可以访问到中央计算机资源。

(2)分时系统的特性:多路性,独立性,及时性,交互性。

7.操作系统的五大管理功能是什么?答:处理机管理、存储器管理、设备管理、文件管理、用户接口8.操作系统的四个基本特征。

答:操作系统的四个基本特征分别是:(1)并发性:在多道程序环境下,并发性是指宏观上在一段时间内有多道程序在同时运行。

但在单处理机系统中,每一时刻仅能执行一道程序,故微观上这些程序是在交替执行的。

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

根据资源属性不同分为互斥共享方式和同时访问方式。

(3)虚拟性:在操作系统中的所谓“虚拟”是指通过某种技术把一个物理实体变成若干个逻辑上的对应物。

(4)异步性:在多道程序环境下,允许多个进程并发执行,但由于资源等因素的限制,通常,进程执行并非“一气呵成”,而是以“走走停停”的方式运行。

第三章1.简述进程和程序的区别。

操作系统进程管理OS211

操作系统进程管理OS211
返回本章首页
第2章 进程管理
2.1 进程的基本概念
2.1.1 程序的顺序执行及其特征 2.1.2 前趋图 2.1.3 程序的并发执行及其特征 2.1.4 进程的特征与状态 2.1.5 进程控制块
返回本章首页
第2章 进程管理
2.1.1 程序的顺序执行及其特性
由于各类软件的出现及日益复杂化,使得程序设 计的概念和方法有了很大的发展,在单道程序工 作环境中,我们把一个“程序”理解为“一个在 时间上按严格次序前后相继的操作序列”。
C2
P2
图2-1 (a)
第2章 进程管理
程序顺序执行的图示
对于程序段中的多条语句来说,也有一个执行顺序问题, 如对于包含下述三条语句的程序段:
S1: a=x+y; S2: b=a-5; S3: c=b+1;
可表示为:
S1
S2
S3
图2-1 (b)
第2章 进程管理
一切顺序执行的程序都具有下列特性: (1)顺序性。即每一操作都必须在上一个 操作结束之后开始。 (2)封闭性。程序运行时独占全机资源; 资源的状态(除初始状态外)只有本程序才 能改变它。程序一旦开始运行,其执行结果 不受外界因素影响。 (3)可再现性。只要执行时的环境和初始 条件相同,程序不论是连续执行还是“走走 停停”地执行,都将获得相同的结果。
P1→P2, P1→P3, P1→P4, P2→P5, P3→P5, P4→P6, P4→P7, P5→P8, P6→P8, P7→P9, P8→P9 或表示为: P={P1,P2,P3,P4,P5,P6,P7,P8,P9} →={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8), (P6,P8),(P7,P9),(P8,P9)}

计算机操作系统复习知识点汇总

计算机操作系统复习知识点汇总

计算机操作系统复习知识点汇总第一章绪论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、并行和并发并行性和并发性是既相似又有区别的两个概念;并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多少个事件在同一时间间隔内发生..6、操作系统的主要功能;各主要功能下的扩充功能a. 处理机管理功能:进程控制;进程同步;进程通信和调度.b. 存储管理功能:内存分配;内存保护;地址映像和内存扩充等c. 设备管理功能:缓冲管理;设备分配和设备处理;以及虚拟设备等d. 文件管理功能:对文件存储空间的管理;目录管理;文件的读写管理以及文档的共享和保护7、操作系统与用户之间的接口a. 用户接口:是给用户使用的接口;用户可通过该接口取得操作系统的服务b. 程序接口:是给程序员在编程时使用的接口;是用户程序取得操作系统服务的惟一途径..第二章进程管理1、进程的定义、特征;进程实体的组成1进程是进程实体的运行过程;是系统进行资源分配的一个独立单位..2进程具有结构特征、动态性、并发性、独立性和异步性..3进程实体由程序段、相关的数据段和PCB三部分构成..2、进程的三种基本状态及其转换运行中的进程可能具有就绪状态、执行状态、阻塞状态三个基本状态..3、引起进程进入挂起状态的原因如下:a. 终端用户的请求b. 父进程请求c. 负荷调节的需要d. 操作系统的需要具有挂起状态的进程转换图— P394、创建进程的主要步骤a. 为一个新进程创建PCB;并填写必要的管理信息..b. 把该进程转入就绪状态并插入就绪队列之中..5、进程控制块PCB的作用1系统为了管理进程设置的一个专门的数据结构;存放了用于描述该进程情况和控制进程运行所需的全部信息..2系统利用PCB来控制和管理进程;所以PCB是系统感知进程存在的唯一标志3进程与PCB是一一对应的为什么说PCB是进程存在的唯一标志在进程的整个生命周期中;系统总是通过其PCB对进程进行控制;系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的;所以说;PCB是进程存在的唯一标志..6、进程控制块的组织方式链接方式、索引方式7、原语的定义、组成、作用原语是由若干条指令组成的;用于完成一定功能的一个过程;与一般过程的区别在于:它们是“原子操作”;是一个不可分割的基本单位;在执行过程中不允许中断..原子操作在管态下执行;常驻内存..原语的作用是为了实现进程的通信和控制;系统对进程的控制如不使用原语;就会造成其状态的不稳定性;从而达不到进程控制的目的..8、引起创建进程的事件用户登录、作业调度、提供服务、应用请求9、引起进程终止的事件正常结束、异常结束、外界干预10、引起进程阻塞和唤醒的事件请求系统服务、启动某些操作、新数据尚未到达、无新工作可做11、临界资源和临界区1临界资源是指每次仅允许一个进程访问的资源..属于临界资源的硬件有打印机、磁带机等;软件有消息缓冲队列、变量、数组、缓冲区等..诸进程间应采取互斥方式;实现对这种资源的共享..2每个进程中访问临界资源的那段程序称为临界区Critical Section;不论是硬件临界资源;还是软件临界资源;多个进程必须互斥地对它进行访问..12、同步机制应遵循的规则空闲让进、忙则等待、有限等待、让权等待13、进程通信的类型进程间通信机制包括:共享内存系统、消息传递系统以及管道通信系统..14、线程的定义、属性在多线程OS中;通常一个进程中包含多个线程;每个线程都是作为利用CPU的基本单位;是花费最小开销的实体..线程具有下述属性:1轻型实体—线程中的实体基本上不拥有系统资源;只是有一点必不可少的、能保证其独立运行的资源..2独立调度和分派的基本单位3可并发执行..4共享进程资源..15、进程和线程的比较a. 调度性..在传统的操作系统中;拥有资源的基本单位和独立调度、分派的基本单位都是进程;在引入线程的OS中;则把线程作为调度和分派的基本单位;而把进程作为资源拥有的基本单位;b. 并发性..在引入线程的OS中;不仅进程之间可以并发执行;而且在一个进程中的多个线程之间;亦可并发执行;因而使OS具有更好的并发性;c. 拥有资源..无论是传统的操作系统;还是引入了线程的操作系统;进程始终是拥有资源的一个基本单位;而线程除了拥有一点在运行时必不可少的资源外;本身基本不拥有系统资源;但它可以访问其隶属进程的资源;d. 系统开销..由于创建或撤销进程时;系统都要为之分配和回收资源;如内存空间等;进程切换时所要保存和设置的现场信息也要明显地多于线程;因此;操作系统在创建、撤销和切换进程时所付出的开销将显着地大于线程..16.进程与程序的区别①程序是静态的;进程是动态的;②进程更能真实地描述并发;而程序不能;③进程具有创建其他进程的功能;而程序没有④进程只是一次执行过程;有生命周期;而程序可作为软件资源长期保存;是相对长久的;进程是系统分配调度的独立单位;能与其他进程并发执行;17.进程互斥与同步的基本概念i.进程互斥:由于各进程要求共享资源;而有些资源需要互斥使用;因此各进程间竞争使用这些资源;进程的这种关系为进程的互斥..ii.进程同步:在并发执行过程中;合作完成同一个任务的多个进程;在执行速度或某些时序点上必须相互协调的合作;这种制约性关系叫作进程同步..18、同步机制应遵循的规则空闲让进、忙则等待、有限等待、让权等待19.常用的几种信号量机制整型信号量、记录型信息量、AND型信息量、信号量集..第三章处理机调度1、高级调度与低级调度的区别高级调度又称为作业调度或长程调度;调度对象是作业;作业调度往往发生于一个批作业运行完毕;退出系统;而需要重新调入一个批作业进入内存时;故作业调度的周期长;低级调度又称为进程调度和短程调度;调度物件为进程或内核级线程;进程调度的运行频率最高;是最基本的一种调度;多道批处理、分时、实时三类OS中必须配置这种调度..引入中级调度的主要目的:是为了提高系统资源的利用率和系统吞吐量2、低级调度的功能保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程3、进程调度方式1非抢占方式—实现简单、系统开销小、适用于大多数的批处理系统环境2抢占方式——原则:优先权原则、短作业进程优先原则、时间片原则4、同时具有三级调度的调度队列模型当在OS中引入中级调度后;人们可把进程的就绪状态分为内存就绪和外存就绪;类似的阻塞状态也可以同样划分..5、调度算法▲1、先来先服务FCFS2、短作业进程优先SJFSPF3、高优先权优先4、高响应比优先调度算法HRN..5、时间片轮转法1 要求:掌握算法思想..并能对前4种算法根据算法思想计算周转时间、平均周转时间、带权周转时间、平均带权周转时间;周转时间= 完成时间–到达时间=等待时间+服务时间2 掌握先来先服务、短作业进程优先、高响应优先调度算法三种算法性能评价:a.先来先服务算法即适合于作业调度也适用于进程调度;且算法较为简单;比较适合长作业或长进程不适合短作业或进程..b.短作业进程优先算法;能有效降低作业的平均等待时间;提高系统吞吐量..但该算法与用户做出的估计运行时间有很大的关系;对长作业进程不利;有利于短作业进程..c.高响应比优先调度算法;即照顾了短作业又考虑了长作业到达的先后次序;它不会使长作业长期得不到服务..6 高响应比优先调度算法优先权=等待时间+要求服务时间\要求服务时间响应比=等待时间+要求服务时间/要求服务时间=响应时间/要求服务时间7、最低松弛度优先调度算法即LLF算法该算法是根据任务紧急或松弛的程度;来确定任务的优先级..8、何谓死锁产生死锁的原因和必要条件是什么a.死锁是指多个进程因竞争资源而造成的一种僵局;若无外力作用;这些进程都将永远不能再向前推进;b.产生死锁的原因有二;一是竞争资源;二是进程推进顺序非法;c.必要条件是: 互斥条件;请求和保持条件;不剥夺条件和环路等待条件..互斥条件:一个资源一次只能被一个进程使用..请求和保持条件:保留已经得到的资源;还要求其它的资源..不剥夺条件:资源只能被占有者释放;不能被其它进程强行抢占..环路等待条件:系统中的进程形成了环形的资源请求链..9、处理死锁的基本方法1预防死锁—破坏产生死锁的四个必要条件中的一个或几个条件2避免死锁—破坏产生死锁的四个必要条件3检测死锁—通过系统设置的检测机构;及时检测出死锁的发生4解除死锁—撤销或挂起一些进程10、预防死锁的方法a.摒弃"请求和保持"条件b.摒弃"不剥夺"条件c.摒弃"环路等待"条件11、银行家算法▲要求掌握能够根据安全性检测算法;通过查找安全序列来判断某个时刻系统是否处于安全状态..能利用银行家算法来计算:当某进程提出资源请求时;系统是否分配..12、死锁检测掌握死锁定理的概念:当且仅当一组进程某个状态S的资源分配图是不可完全简化的;则说明S状态为死锁状态..知道在进行死锁的检测常用的工具是资源分配图;并通过对资源分配图的化简判断一组进程是否处于安全状态无环..第四章存储管理1、存储器按存储量、速度怎么划分至少应具有三级:最高层为CPU寄存器、中间为主存、最底层为辅存;较高档点的根据具体功能还可细分为:寄存器;高速缓存、主存储器、磁盘缓存;固定硬盘、可移动存储介质等6层..主存储器简称内存或主存:容量一般为数十MB到数GB;其访问速度远低于CPU执行指令的速度..为此引入寄存器和高速缓存;寄存器访问速度最快;价格昂贵;容量不大;高速缓存容量大于或远大于寄存器;从几十KB到几十MB;访问速度快于主存储器..2、程序的装入方式绝对装入方式、可重定位装入方式、动态运行时装入方式3、程序的链接方式分类静态链接、装入时动态链接、运行时动态链接4、对换的定义、分类、实现对换是把内存中暂时不能运行的进程或者暂时不用的程序和数据调到外存上;以便腾出足够的内存空间;再把已具备运行条件的进程或进程所需要的程序和数据调入内存..以整个进程为单位;称为“整体对换”或“进程对换”;以“页”或“段”为单位;分别称为“页面对换”和“分段对换”;又称为“部分对换”为了实现进程对换;系统必须能实现三方面的功能:对换空间的管理、进程的换出;以及进程的换入..6、基本分页存储管理方式重点考查1、分页的基本原理分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片;称为页面或页;将这些页面装入到内存一些不连续的内存块中..若将一个进程的所有页面一次全部装入到内存叫基本分页;若按进程的运行情况分多次部分装入到内存叫请求式分页..由于进程的最后一页经常装不满一块而形成不可利用的碎片;称为页内碎片系统为每个进程建立一张页面映像表;简称页表..页表的作用是实现从页号到物理块号的地址映射..2、分页系统的地址变换机构▲掌握:能根据给定的逻辑地址和页表内容转换出物理地址注意在进行地址变换前要注意判断页号是否越界;并能掌握地址变换机构图..7 、基本分段存储管理方式1、分段存储管理方式的引入原因引入分段存储管理方式;主要是为了满足用户和程序员的一些需要:方便编程、信息共享、信息保护、动态增长、动态链接2、分段系统的基本原理在分段存储管理方式中;作业的地址空间被划分为若干个二维段;每个段定义了一组逻辑信息;逻辑地址由段号和段内地址组成..每个段在表中占有一个表项;其中记录了该段在内存中的起始地址又称为“基址”..段表是用于实现从逻辑段到物理内存区的映射..将一个作业的这些段装入到内存一些不连续的区域中在分段中一个作业获得的地址空间是不连续的;但是每个段获得的空间是连续的..当将一个作业的所有段一次全部装入到内存的是基本分段;若按作业的运行情况分多次部分装入到内存的是请求式分段..在分段中也会出现碎片..8、分段系统的地址变换机构▲掌握:能根据给定的逻辑地址和段表内容转换出物理地址注意在进行地址变换前要注意判断段号和段地位移量是否越界..9、分段和分页的主要区别a. 分页和分段都采用离散分配的方式;且都要通过地址映射机构来实现地址变换;这是它们的共同点;b. 对于它们的不同点有三;第一;从功能上看;页是信息的物理单位;分页是为实现离散分配方式;以消减内存的外零头;提高内存的利用率;即满足系统管理的需要;而不是用户的需要;而段是信息的逻辑单位;它含有一组其意义相对完整的信息;目的是为了能更好地满足用户的需要;c. 页的大小固定且由系统确定;而段长度不固定;决定于用户所编写的程序;d. 分页的作业地址空间是一维的;而分段的作业地址空间是二维的.10、虚拟存储器的特征及其内部关联a. 虚拟存储器具有多次性;对换性和虚拟性三大主要特征;b. 其中所表现出来的最重要的特征是虚拟性;它是以多次性和对换性为基础的;而多次性和对换性又必须建立在离散分配的基础上..11、页面置换算法▲1、先进先出FIFO2、最佳置换算法OPT3、最近最久未使用LRU置换算法4、Clock置换算法5、最少使用LFU置换算法1要求:掌握算法思想、名称缩写..并能对前3种算法根据算法思想计算缺页中断次数和缺页中断率;参考书P150页和作业题..2掌握先进先出FIFO、最佳置换算法OPT、最近最久未使用LRU置换算法的性能评价–先进先出:实现简单;性能最差;与进程实际的运行不相适应;且有可能会出现Belady现象即在未给进程或作业分配它所要求的全部页面时;有时会出现分配给作业的内存块数增多;缺页次数反而会增多的奇怪现象–最佳置换算法OPT:理论上;性能最佳;实际上;无法实现;通常只用在研究其它算法时;做参考评价..最近最久未使用LRU置换算法:性能较好;实现复杂;需要硬件支持..12、分段保护采取以下措施保证信息安全:越界检查、存取控制检查、环保护机构第五章设备管理1、I/O设备按使用特性、传输速率、信息变换、共享属性如何分类按设备的使用特性分类:存储设备又称外存、后备存储器、辅助存储器;输入输出设备又可具体划分:输入设备键盘、鼠标、扫描仪、视频摄像、各类传感器、输出设备打印机、绘图仪、显示器、数字视频显示设备、音响输出设备、交互式设备按传输速率分类:低速设备键盘、鼠标、语音的输入输出设备;中速设备行式打印机、激光打印机;高速设备磁带机、磁盘机、光盘机..按信息交换的单位分类:块设备磁盘;字符设备交互式终端、打印机按设备的共享属性分类:独占设备;共享设备磁盘;虚拟设备2、设备控制器的组成设备控制器由以下三部分组成:1设备控制器与处理机的接口;该接口用于实现CPU 与设备控制器之间的通信;提供有三类信号线:数据线、地址线和控制线..2设备控制器与设备的接口;可以有一个或多个接口;且每个接口连接一台设备..每个接口都存在数据、控制和状态三种类型的信号..3I/O逻辑;用于实现对设备的控制..其通过一组控制线与处理机交互;处理机利用该逻辑向控制器发送I/O命令;I/O逻辑对收到的命令进行译码..3、I/O通道设备如何引入虽然在CPU和I/O设备之间增加了设备控制器后;已能大大减少CPU对I/O的干预;但当主机配置的外设很多时;CPU的负担仍然很重;为此;在CPU和设备控制器之间又增设了通道..I/O通道是一种特殊的处理机;它具有执行I/O指令的能力;并通过执行通道I/O程序来控制I/O操作..通道与普通处理机的区别:1没有自己的内存;且与主机共享主机内存2执行的指令单一;主要执行与I/O有关的指令..通道分为:字节多路通道主要连接低速字符设备;数组选择通道主要连接高速块设备;数组多路通道主要连接中高速块设备4、有哪几种I/O控制方式各适用于何种场合1I/O控制方式:程序I/O方式、中断驱动I/O控制方式、DMA I/O控制方式、I/O通道控制方式..2程序I/O方式适用于早期的计算机系统中;并且是无中断的计算机系统;中断驱动I/O控制方式是普遍用于现代的计算机系统中;DMA I/O控制方式适用于I/O设备为块设备时在和主机进行数据交换的一种I/O 控制方式;当I/O设备和主机进行数据交换是一组数据块时通常采用I/O通道控制方式;但此时要求系统必须配置相应的通道及通道控制器..5、DMA控制器的组成1DMA控制器由三部分组成:主机与DMA控制器的接口、DMA控制器与块设备的接口、I/O控制逻辑..2DMA方式与中断控制方式的区别:相同点是都是以块为单位进行传输..区别是:1CPU处理中断的时间:●中断控制方式:是在数据缓冲寄存器满之后要求CPU进行中断处理●DMA方式:是在所要求转送的数据块全部传送结束时要求CPU进行中断处理..这就大大减少了CPU进行中断处理的次数..2数据传送的完成者:●中断控制方式:是在中断处理时由CPU控制完成的;●DMA方式:是DMA控制器完成的..6、为了实现主机与控制器之间成块数据的直接交换;需设置DMA控制器中四类寄存器DR:数据寄存器;暂存从设备到内存或从内存到设备的数据MAR:内存地址寄存器DC:数据计数器;存放本次CPU要读或写的字节数CR:命令\状态寄存器;接收从CPU发来的I/O命令;或相关控制信息;或设备状态7、缓冲的引入原因操作系统引入缓冲机制的主要原因可归结为以下几点:1缓和CPU与I/O设备间速度不匹配的矛盾;2减少对CPU的中断频率;放宽对中断响应时间的限制;3提高CPU与I/O 设备之间的并行性..8、缓冲池的组成、工作方式三个队列:空缓冲队列、输入队列、输出队列四种工作缓冲区:1用于收容输入数据的工作缓冲区;2用于提取输入数据的工作缓冲区;3用于收容输出数据的工作缓冲区;2用于提取输出数据的工作缓冲区;9、SPOLLing系统的定义、组成、特点SPOOLing系统是对脱机I/O工作的模拟;其必须有高速随机外存通常采用磁盘的支持..SPOOLing系统主要有以下四个部分:1输入井和输出井;为磁盘上开辟的两大存储空间;分别模拟脱机输入/出时的磁盘;并用于收容I/O设备输入的数据和用户程序的输出数据;2输入缓冲区和输出缓冲区;在内存中开辟;分别用于暂存由输入设备和输出井送来的数据;3输入进程SPi和输出进程SPo;分别模拟脱机输入/出时的外围控制机;用于控制I/O过程;4I/O请求队列;由系统为各个I/O请求进程建立的I/O请求表构成的队列..SPOLLing系统的特点:提高了I/O的速度;将独占设备改造为共享设备;实现了虚拟设备功能..10、磁盘的类型和访问时间组成磁盘分为两类:固定头磁盘一般为大容量磁盘和移动头磁盘一般为中小型容量磁盘..磁盘访问时间=寻道时间+旋转延迟时间+数据传输时间11、磁盘磁盘调度算法▲1、先来先服务FCFS2、最短寻道时间优先SSTF3、扫描Scan算法又称为“电梯调度算法“4、循环扫描CScan算法1要求:掌握算法思想、名称缩写..并能根据算法思想计算碰头的寻道轨迹;寻道距离和寻道时间;参考书P194页和作业题..2掌握算法性能评价●先来先服务FCFS:公平、简单;平均寻道时间可能较长;●最短寻道时间优先SSTF:平均寻道时间比FCFS算法短;但可能会出现“饥饿现象”和“磁臂粘着”现象..●扫描Scan算法:消除了“饥饿”现象;但可能会出现“磁臂粘着”现象..●循环扫描CScan算法:改进了对于边缘区磁道访问的不公平;但可能会出现“磁臂粘着”现象..5.N-Step-Scan和FSCAN算法:可避免出现“磁臂粘着”现象..第六章文件管理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 的分时使⽤缩短了作业的平均周转时间;⼈机交互能⼒使⽤户能直接控制⾃⼰的作业;主机的共享使多⽤户能同时使⽤同⼀台计算机,独⽴地处理⾃⼰的作业。

7.实现分时系统的关键问题是什么?应如何解决?答:关键问题是当⽤户在⾃⼰的终端上键⼊命令时,系统应能及时接收并及时处理该命令,在⽤户能接受的时延内将结果返回给⽤户。

解决⽅法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收⽤户从各个终端上输⼊的数据;为每个终端配置缓冲区,暂存⽤户键⼊的命令或数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 //等待时间)参数nCount指定了要等待的内核对象的数目,存放这些内核对象的数组由lpHandles来指向。

fWaitAll对指定的这nCount个内核对象的两种等待方式进行了指定,为TRUE时当所有对象都被通知时函数才会返回,为FALSE则只要其中任何一个得到通知就可以返回。

dwMilliseconds在这里的作用与在WaitForSingleObject()中的作用是完全一致的。

如果等待超时,函数将返回WAIT_TIMEOUT。

2.2 Linux OS 中常用进程/线程同步机制Linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。

2.2.1 互斥锁首先进程初始化:int pthread_mutex_init(pthread_mutex_t * mutex ,const pthread_mutex_attr_t *mutexattr)。

然后再进行加锁,加锁的时候有两种方式,一种是阻塞加锁:int pthread_mutex_lock(pthread_mutex *mutex);另一种是非阻塞加锁:int pthread_mutex_trylock( pthread_mutex_t *mutex)。

阻塞加锁是当锁被占用时,进程/线程将会被挂起等待(忙等待),而非阻塞加锁则会返回一个EBUSY的信号并将进程/线程加入等待队列,等待锁的占用被解除。

当进程/线程执行完毕后,会进行解锁(前提是锁必须为lock状态,且解锁时必须由加锁进程/线程进行解锁):int pthread_mutex_unlock(pthread_mutex *mutex);最后是销毁锁(此时锁必需unlock状态,否则返回EBUSY):int pthread_mutex_destroy(pthread_mutex *mutex);2.2.2 条件变量条件变量的整个执行过程和互斥锁比较像,首先是初始化条件变量:int pthread_cond_init(pthread_cond_t *cond,pthread_condattr_t *cond_attr); 注意:尽管POSIX标准中为条件变量定义了属性,但在Linux中没有实现,因此cond_attr值通常为NULL,且被忽略。

然后设置等待函数,等待函数有两类,一类是无条件等待:int pthread_cond_wait(pthread_cond_t *cond,pthread_mutex_t *mutex);另一类是计时等待:int pthread_cond_timewait(pthread_cond_t*cond, pthread_mutex * mutex , const timespec *abstime);无论哪种等待方式,都必须和一个互斥锁配合,以防止多个线程同时请求(用pthread_cond_wait() 或 pthread_cond_timedwait() 请求)竞争条件(Race Condition)。

mutex互斥锁必须是普通锁(PTHREAD_MUTEX_TIMED_NP)或者适应锁(PTHREAD_MUTEX_ADAPTIVE_NP),且在调用pthread_cond_wait()前必须由本线程加锁(pthread_mutex_lock()),而在更新条件等待队列以前,mutex保持锁定状态,并在线程挂起进入等待前解锁。

在条件满足从而离开pthread_cond_wait()之前,mutex将被重新加锁,以与进入pthread_cond_wait()前的加锁动作对应。

从等待队列里激活进程/线程也有两类:(1)激活一个等待该条件的线程(存在多个等待线程时按入队顺序激活其中一个):int pthread_cond_signal(pthread_cond_t *cond);(2)激活所有等待线程:int pthread_cond_broadcast(pthread_cond_t *cond)。

最后是销毁条件变量:int pthread_cond_destroy(pthread_cond_t *cond); 只有在没有线程在该条件变量上等待的时候才能销毁这个条件变量,否则返回EBUSY。

相关文档
最新文档