第6章 文件处理与进程控制
操作系统第6章 进程互斥与同步

Co-begin void Producer_i( ) (i=1,2…k) { item next_p; while(1){ produce an item in next_p P(empty); P(s); add next_p to buffer V(s); V(full); } } void consumer_j( ) (j=1,2…m) { item next_c; while(1){ P(full); P(s); remove an item from buffer to next_c V(s); V(empty); consume the item in next_c}} Co-end
• 进入临界段之前要申请,获得批准方可进入; • 退出临界段之后要声明,以便其他进程进入。
用程序描述: While(1){ entry_section; critical_section; exit_section; remainder_section; }
解决临界段问题的软件算法必须遵循:
准则1:不能虚设硬件指令或假设处理机数目。 准则2:不能假设n个进程的相对速度。 准则3:当一个进程未处于其临界段时,不应阻止 其他进程进入临界段。 准则4:当若干进程欲进入临界段时,应在有限时 间内选出一个进程进入其临界段。 用准则3,4不难推出下面原则 协调各进程入临界段的调度原则: • 当无进程处于临界段时,允许一个进程立即进入临界段。
3.实现临界段的硬件方法
利用处理机提供的特殊指令实现临界区加锁。 常见硬件指令有: ⑴ “Test_and_Set”指令 该指令功能描述为: int *target ( 限定为0,1) int Test_and_Set (int *target) { int temp; temp = *target ; *target = 1; return temp; }
操作系统第6章 文件管理(文件目录与目录文件)

具有相似的结构,它由用户所有文件的文件控制块组成。此外,
在系统中再建立一个主文件目录MFD(Master File Directory); 在主文件目录中,每个用户目录文件都占有一个目录项,其目录 项中包括用户名和指向该用户目录文件的指针。如图2所示:
2015/11/7
15
一 文件目录管理
图2
2015/11/7
●缺点:查找速度慢;文件不能重名。不便于实现文件共享。
文件名 文件名 1 文件名 2 … 物理地址 文件说明 状态位
2015/11/7
表1 单级目录
14
一 文件目录管理
【七】二级目录
●为了克服单级目录所存在的缺点,可以为每一个用户建立一个单 独的用户文件目录UFD(User File Directory)。这些文件目录
二级目录结构示意图
16
一 文件目录管理
●两级目录结构基本上克服了单级目录的缺点,并具有以下优点:
1) 提高了检索目录的速度。如果在主目录中有n个子目录,采用两 级目录可使检索效率提高n/2倍。
2) 在不同的用户目录中,可以使用相同的文件名。
3) 不同用户还可使用不同的文件名来访问系统中的同一个共享文件。 但当多个用户之间要相互合作去完成一个大任务,且一用户又需 去访问其他用户的文件时,这种隔离便成为一个缺点,因为这种 隔离会使诸用户之间不便于共享文件。
2015/11/7 11
一 文件目录管理
●当文件被打开时,要将磁盘索引结点拷贝到内存的索引结点中,便于
以后使用。在内存索引结点中又增加了以下内容: 1. 索引结点编号,用于标识内存索引结点。 2. 状态,指示i结点是否上锁或被修改。 3. 访问计数,每当有一进程要访问此i结点时,将该访问计数加1, 访问完再减1。 4. 文件所属文件系统的逻辑设备号。 5. 链接指针。设置有分别指向空闲链表和散列队列的指针。
操作系统复习资料大全——考试必备

操作系统学习指导书操作系统课程组信息工程学院计算机系第1章操作系统引论知识点总结1、什么是操作系统操作系统:是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。
1) OS是什么:是系统软件(一整套程序组成,如UNIX由上千个模块组成)2) 管什么:控制和管理系统资源(记录和调度)2、操作系统的主要功能操作系统的功能:存储器管理、处理机管理、设备管理、文件管理和用户接口管理。
1) 存储器管理:内存分配,地址映射,内存保护和内存扩充2) 处理机管理:作业和进程调度,进程控制和进程通信3) 设备管理:缓冲区管理,设备分配,设备驱动和设备无关性4) 文件管理:文件存储空间的管理,文件操作的一般管理,目录管理,文件的读写管理和存取控制5) 用户接口:命令界面/图形界面和系统调用接口3、操作系统的地位操作系统是裸机之上的第一层软件,是建立其他所有软件的基础。
它是整个系统的控制管理中心,既管硬件,又管软件,它为其它软件提供运行环境。
4、操作系统的基本特征操作系统基本特征:并发,共享和异步性。
1) 并发:并发性是指两个或多个活动在同一给定的时间间隔中进行。
2) 共享:共享是指计算机系统中的资源被多个任务所共用。
3) 异步性:每个程序什么时候执行,向前推进速度快慢,是由执行的现场所决定。
但同一程序在相同的初始数据下,无论何时运行都应获得同样的结果。
5、操作系统的主要类型多道批处理系统、分时系统、实时系统、个人机系统、网络系统和分布式系统1) 多道批处理系统(1) 批处理系统的特点:多道、成批(2) 批处理系统的优点:资源利用率高、系统吞吐量大(3) 批处理系统的缺点:等待时间长、没有交互能力2) 分时系统(1) 分时:指若干并发程序对CPU时间的共享。
它是通过系统软件实现的。
共享的时间单位称为时间片。
(2) 分时系统的特征:同时性:若干用户可同时上机使用计算机系统交互性:用户能方便地与系统进行人--机对话独立性:系统中各用户可以彼此独立地操作,互不干扰或破坏及时性:用户能在很短时间内得到系统的响应(3) 优点主要是:响应快,界面友好多用户,便于普及便于资源共享3) 实时系统(1) 实时系统:响应时间很快,可以在毫秒甚至微秒级立即处理(2) 典型应用形式:过程控制系统、信息查询系统、事务处理系统(3) 与分时系统的主要区别:4) 个人机系统(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、下面过于程序的描述,正确的是(C)A. 程序执行的最终结果受到外界因素的影响,跟初始条件无关B. 程序执行的最终结果跟速度有关C. 程序是按前后次序相继地进行计算机操作序列集合,是一个静态的概念;D. 程序只能通过顺序执行2、程序的顺序执行有以下特点(B)A. 顺序性、封闭性、独立性B. 顺序性、封闭性、可再现性C. 顺序性、封闭性、随机性D. 顺序性、随机性、独立性3、现代操作系统的特点(D)A. 程序的并发执行;B. 系统所拥有的资源被共享;C. 用户随机地使用系统资源;D. 以上三者都是。
4、多道程序系统中的程序执行的特点为(A)A. 独立性、随机性、资源共享性;B. 顺序性、封闭性、可再现性;C. 顺序性、封闭性、随机性;D. 顺序性、随机性、独立性;5、PCB所包含的信息中,下列说法不正确的是(D)。
A. 描述信息B. 控制信息C. 资源信息D. CPU信息6、下面哪项不属于进程的基本状态:(C)A. 阻塞状态B. 就绪状态C. 挂起状态D. 执行状态7、在单CPU系统中,任一时刻处于执行状态的进程有几个(A)A.1 B.2 C.3 D.无法判断8、就绪状态分为内存就绪和外存就绪,这种方式的好处是(A)A. 明显提高内存的利用效率B. 降低系统开销C. 降低系统复杂性D. 降低系统参数和状态转换过程9、下面说法错误的是:(D)A.就绪状态进程得到除CPU以外其他资源,只要调度得到处理机,便可立即执行B.只有处于就绪状态的进程经调度选中之后才可以进入执行状态C.处于外存就绪状态的进程只有先成为内存就绪状态后,才可执行D.从一个状态到另一个状态的转换只要使用不同的控制过程就可以实现10、关于进程状态之间的转换原因,下列说法错误的是:(D)A.由系统唤醒,进程由阻塞态进入就绪态B.因为申请某资源忙或者I/O设备忙,进程由执行态进入阻塞态C.因时间片用完,进程由执行态进入就绪态D.进程经由一段时间的等待后,可以自动由就绪态到执行态11、()就是系统使用一些具有特定功能的程序段来创建、撤销进程以及完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。
操作系统概论 第6章 并发进程 课件

进程的交互:竞争与协作
并发进程之间的竞争关系
共享资源
进程的互斥
并发进程之间的协作关系
进程的相互合作
进程的同步
进程的交互:竞争与协作
第一种是竞争关系
资源竞争的两个控制问题:
一个是死锁(Deadlock)问题
一个是饥饿(Starvation) 问题
既要解决饥饿问题,又要解决死锁问题
CPU利用率= 40/80 = 50%
DEV1利用率=18.75%
DEV2利用率= 31.25%
程序并发执行
在并发环境下
CPU利用率=89% DEV1并发环境下利用=33% DEV2并发环境下利用=66%
并行和并发
在单CPU系统中,系统调度在某一时刻只能让一个 线程(进程)运行,虽然这种调度机制有多种形式(大 多数是时间片轮巡为主),但无论如何,要通过不断 切换需要运行的线程让其运行的方式就叫并发 (concurrent)。 而在多CPU系统中,可以让两个以上的线程(进程) 同时运行,这种可以同时让两个以上线程同时运行 的方式叫做并行(parallel) 多道程序设计和并发的关系
程被置成等待信号量s的状态 */
end; procedure V(var s:semaphore); begin s := s + 1; /* 把信号量加1 */ if s <= 0 then R(s); /* 若信号量小于等于0,则释放
一个等待信号量s的进程 */
end;
p、v操作
(1) p操作 对信号量s的 p操作记为 p(s)。p(s)是一个不可分割的原语 操作,即取信号灯值减1,若相减结果为负,则调用p(s)的进程 被阻,并插入到该信号量的等待队列中,否则可以继续执行
计算机操作系统复习知识点汇总

计算机操作系统复习知识点汇总第一章绪论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.1操作系统的概念操作系统的特征:并发性,共享性,随机性。
研究操作系统的观点:软件的观点,资源管理的观点,进程的观点,虚拟机的观点,服务提供者的观点。
操作系统的功能:1.进程管理:进程控制,进程同步,进程间通信,调度。
2.存储管理:内存分配与回收,存储保护,内存扩充。
3.文件管理:文件存储空间管理,目录管理,文件系统安全性。
4.设备管理5.用户接口UNIX是一个良好的、通用的、多用户、多任务、分时操作系统。
1969年AT&T公司Kenneth L.Thompson 用汇编语言编写了Unix第一个版本V1,之后Unix用C语言编写,因此事可移植的。
1.3操作系统分类1.批处理操作系统:优点是作业流程自动化较高,资源利用率较高,作业吞吐量大,从而提高了整个系统的效率。
缺点是用户不能直接与计算机交互,不适合调试程序。
2.分时系统:特点是多路性,交互性,独占性,及时性。
3.实时操作系统4.嵌入式操作系统5.个人计算机操作系统6.网络操作系统7.分布式操作系统8.智能卡操作系统1.4操作系统结构1.整体式结构2.层次结构3.微内核(客户机/服务器)结构:①可靠,②灵活(便于操作系统增加新的服务功能),③适宜分布式处理的计算机环境第二章操作系统运行机制2.1中央处理器寄存器:用户可见寄存器:数据寄存器(通用寄存器),地址寄存器,条件码寄存器。
控制和状态寄存器:程序计数器,指令寄存器,程序状态字。
目态到管态的转换唯一途径是通过终端和异常。
管态到目态的转换可以通过设置PSW指令(修改程序状态字)实现。
PSW包括:①CPU的工作状态代码②条件码③中断屏蔽码2.2存储体系存储器设计:容量,速度,成本存储保护:①界地址寄存器(界限寄存器):产生程序中断-越界中断或存储保护中断②存储键2.3中断与异常机制分类:中断:时钟中断,输入输出(I/O)中断,控制台中断,硬件故障中断异常:程序性中断,访管指令异常2.4系统调用系统调用程序被看成是一个低级的过程,只能由汇编语言直接访问。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在该程序中,首先使用fork()函数创建一个子进程, 然后在子进程里使用execlp()函数。从程序中可 以看到,这里的参数列表列出了在shell中使用的 命令名和选项。 将文件保存为execlp.c,使用交叉编译命令armlinux-gcc进行交叉编译: [root@localhost test]# arm-linux-gcc -o execlp execlp.c 将其下载到嵌入式系统开发板上运行该程序,运行 结果如下所示: [root@localhost test]# ./execlp execlp execlp.c proid proid.c
2、write函数
• write函数用于向打开的文件实现写入数据的操作。 写操作的位置从文件的当前位移量处开始。若磁 盘已满或超出该文件的长度,则write函数返回错 误值。 • 调用write函数所需要的头文件: • #include <unistd.h> • 其函数原型为: • ssize_t write(int fd, void *buf, size_t count); • 函数返回值为已写入数据的字节数,若返回-1则 出错。
6.1.3 read函数、write函数和 lseek函数
1、read函数
• read函数从打开的文件中读取数据。 • 调用read函数所需要的头文件: # include <unistd.h> • 其函数原型为: • ssize_t read(int fd, void *buf, size_t count); • 函数返回值为读到数据的字节数,若返回 值为0,则已经到达文件尾,若返回-1则为 出错。
2、系统调用
• 所谓系统调用是指操作系统提供给用户程 序调用的一组“特殊”接口,用户程序可 以通过这组“特殊”接口来获得操作系统 内核提供的服务。例如用户可以通过进程 控制相关的系统调用来创建进程、实现进 程调度、进程管理等。
3、文件处理
• Linux系统的文件处理,主要是指进行打开 文件、读文件、写文件及关闭文件等I/O操 作。大多数情况下,只需用到5个函数: open、read、write、lseek 和close。这 几个函数不需要经过缓冲就能立即执行, 因此,被称之为不带缓存的I/O操作,即每 一个函数都只调用内核中的一个系统调用。
3、System函数
system函数可以在一个程序的内部启动另一 个程序,从而创建一个新进程。system函 数所需要的头文件为: #include <stdlib.h> 其函数原型为: int system(const char *string);
4、进程调用的应用示例
【例6-8】设已有C语言的源程序Hello.c,现 编写一个程序,在程序中自动编译Hello.c, 并运行编译后的执行文件Hello。 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 int main() 5 { /* 调用system函数编译命令 */ 6 system("gcc -o Hello Hello.c");
【例6-6】应用execlp函数列出当前目录下的所有文件。
1 #include <unistd.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 int main() 5 { 6 if (fork() == 0) 7 { 8 int ret; 9 /*调用execlp()函数,这里相当于调用了"ls -l"命令*/ 10 ret = execlp("ls", "ls", "-l", NULL); 11 } 12 return 0; 13 }
【例6-4】 获取当前进程的进程号PID。 1 2 3 4 5 6 7 #include <stdio.h> #include <unistd.h> int main() { printf(“PID = %d \n”, getpid()); return 0; }
将程序保存为proID.c,使用交叉编译命令 arm-linux-gcc进行交叉编译: [root@localhost test]# arm-linux-gcc -o proID proID.c 将其下载到嵌入式系统开发板上运行该程序: [root@localhost ex5]# ./proID PID = 3061 注意,每次执行结果都不一定相同。
2、exec函数族
在嵌入式Linux中并没有exec函数,而是有六种以 exec开头的函数,统称exec函数: #include <unistd.h> int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const char *path, const char *arg, ..., char *const envp[]); int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]); int execve(const char *path, char *const argv[], char *const envp[]);
3、创建进程
• 创建新进程的函数为fork( ),其函数原型为: • pid_t fork(void); • fork调用失败则返回-1,调用成功的返回值为进 程号。 • fork函数被调用后会返回两次。一次是在父进程 中返回,另一次是在子进程中返回,这两次的返 回值是不一样的。在子进程中返回0值,而在父进 程中返回子进程的进程号PID。 • 在执行fork()之后,同一进程有两个拷贝都在运行, 也就是说,子进程具有与父进程相同的可执行程 序和数据(简称映像)。
从上述运行结果中可以看出fork函数的特点,概括 起来就是“调用一次,返回两次”,在父进程中调 用一次,在父进程和子进程中各返回一次。第一次 的返回值PID = 0是在子进程中返回的进程号,第 二次的返回值PID = 4138是在父进程中返回子进程 的进程号。
6.2.2 进程控制
1、调用exec函数运行执行程序
4、示例
• 【例6-2】创建一新文件,然后对此文件进 行读写操作。 • 设计思路与分析: • (1)创建新文件 • (2)将指定内容写进文件 • (3)读取文件内容 • (4)关闭文件
6.2 进程与进程控制
6.2.1 进程
1、什么是进程
• 进程是一个具有独立功能的程序的一次动态执行 过程。简言之,进程就正在执行的程序。 • 例如,打开一个Windows资源管理器是在执行一 个进程,运行一个浏览器阅读WEB网页也是在执 行一个进程等。
6.1.2
open函数和close函数
1、open函数
• open函数用于打开或创建文件。 • 调用open函数所需要的头文件如下: #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> • 其函数为: • int open(const char *pathname, int oflag, int perms ) ; • 函数返回值:若文件打开成功则返回文件 描述符,若出错则返回-1。
第6章 文件处理与进程控制
本章要点
1、文件描述符的概念 2、系统调用的基本概念 3、文件读写等处理方法 4、进程的概念 5、进程控制与进程间的通信 6、嵌入式Linux中对串口的操作
6.1嵌入式Linux的文件处理
6.1.1
文件描述符及文件处理
• 1、文件及文件描述符 • 由于在Linux下设备和目录都看作是文件, 因此,Linux中的文件有4种类型:普通文 件、目录文件、链接文件和设备文件。 • Linux的内核利用文件描述符访问文件。文 件描述符是非负整数,它是一个索引值, 并指向内核中每个进程打开文件的记录表。 当打开一个现存文件或新建一个文件时, 内核会向进程返回一个文件描述符。当读 写文件时,也需要使用文件描述符来指定 待读写的文件。
【例6-5】创建一个进程。
1 #include <stdio.h> 2 #include <unistd.h> 3 #include <sys/types.h> 4 int main() 5 { 6 pid_t pid; 7 pid = fork( ); 8 printf(“PID = %d \n”, pid); 9 return 0; 10 }
2、close函数
• close函数用于关闭一个打开的文件,所需 要的头文件为: • #include <unistd.h> • 其函数为: • int close(int fd); • 函数返回值:若成功为0,若出错为-1。 • 关闭文件函数close的参数fd为文件描述符。
3、示例
• 【例6-1】用可读写方式新建源自打开)一个 文件。 详见教材• 为了让子进程能运行另外的执行程序,需要用到 exec函数。当进程调用一种exec函数时,该进程 的用户空间代码和数据完全被新程序替换,从新 程序的启动例程开始执行。 • exec函数提供了一个在进程中启动另一个程序执 行的方法。它可以根据指定的文件名或目录名找 到可执行文件,并用它取代原调用进程的数据段、 代码段和堆栈段,在执行完后,原调用进程的内 容除了进程号外,其他全部被新的进程替换了。 也就是说,调用exec并不创建新进程,所以调用 exec前后该进程的进程号PID并未改变。