操作系统讲稿.doc_第1页
操作系统讲稿.doc_第2页
操作系统讲稿.doc_第3页
操作系统讲稿.doc_第4页
操作系统讲稿.doc_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统教案 www.MSX 第一章 操作系统概论3.1 操作系统概念任何一个计算机系统都是由两部分组成:计算机硬件和计算机软件。 计算机硬件通常是由中央处理机 (运算器和控制器)、存储器、输入设备和输出设备等部件组成,它构成了系统本身和用户作业赖以活动的物质基础和工作系统。计算机软件包括系统软件和应用软件。系统软件如操作系统、连接装配程序、系统实用程序、多种工具软件等;应用软件为多种应用目的而编制的程序。没有任何软件之支持的计算机称为裸机(Bare Machine),它仅仅构成了计算机系统的物质基础,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机。裸机在最里层,它的外面是操作系统,经过操作系统提供的资源管理功能和方便用户的各种服务功能 将裸机改造成功能更强,使用更方便的机器,通常称之为虚拟机(virtual machine)。1从系统管理人员的观点来看:操作系统是计算机资源的管理者。2从用户的观点来看:引入操作系统是为了给用户使用计算机提供一个良好的界面,以使用户无需了解许多有关硬件和系统软件的细节,就能方便灵活地使用计算机 。 3 . 从发展的观点看:引入操作系统是为了给计算机系统的功能扩展提供支撑平台,使之在追加新的服务和功能时更加容易和不影响原有的服务与功能。 操作系统(operating system): 是计算机系统中的一个系统软件,它是这样一些程序模块的集合它们管理和控制计算机系统中的硬件及软件资源,合理地组织计算机工作流程以便有效地利用这些资源,为用户提供一个功能强大、使用方便和可扩展的工作环境,从而在计算机与其用户之间起到接口的作用。操作系统负责完成所有与硬件因素相关的(硬件相关)和所有用户共需的(应用无关)基本工作,从最底层统一提供通用的帮助和管理。3.2 操作系统的历史操作系统的发展和计算机的组成与体系结构相关,经历了四个发展阶段: 1946年50年代末:第一代,电子管时代,无操作系统。 1950年代末60年代中期:第二代,晶体管时代,批处理系统。 1960年代中期-70年代中期:第三代,集成电路时代,多道程序设计。 1970年代中期至今:第四代,大规模和超大规模集成电路时代,分时系统。 现代计算机正向着巨型、微型、并行、分布、网络化和智能化几个方面发展。1.2.1手工操作手工操作过程:先把程序纸带(或卡片)装上计算机,然后启动输入机把程序和送入计算机,接着通过控制台开关启动程序运行。计算完毕,打印机输出计算结果,用户卸下并取走纸带(或卡片)。第二个用户上机,重复同样的步骤。手工操作存在问题:上机完全是手工操作,手工操作的慢速度和计算机的高速度之间形成矛盾.唯一的解决办法是摆脱手工操作,实现作业的自动过渡。这就出现了批处理。 1.2.2单道批处理系统(simple batch processing)计算机发展的早期,没有任何用于管理的软件,所有的运行管理和具体操作都由用户自己承担,任何操作出错都要重做作业,CPU的利用率甚低。解决的方法有两个:首先配备专门的计算机操作员,程序员不再直接操作机器,减少操作机器的错误。另一个是进行批处理,操作员把用户提交的作业分类,把一批中的作业编成一个作业执行序列。每一批作业将有专门编制的监督程序(monitor)自动依次处理。 1批处理中的作业的组成:包括用户程序、数据和作业说明书(作业控制语言)。 “批”:供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用一组相同的系统软件(系统带)。 2两种批处理方式早期批处理分为两种:联机批处理和脱机批处理。 (1) 联机批处理 慢速的输入输出(I/O)处理仍直接由主机来完成。执行过程: a) 用户提交作业:对于作业、数据,用作业控制语言编写作业说明书; b) 作业以纸带或卡片为保存介质; c) 操作员合成批作业,通过输入设备(纸带输入机或读卡机)存入磁带; d) 监督程序根据系统资源情况读入一个作业; e) 从磁带读入汇编或编译程序,将用户作业源程序生成目标代码; f) 连接装配程序将目标代码变为可执行程序; g) 启动执行; h) 执行完毕,执行结果输出; i) 读入另一个作业,重复过程e-i; j) 一批作业完成后,处理下一批作业;联机批处理主要优点:解决了作业自动转接,减少了作业建立和手工操作时间。联机批处理存在问题:CPU 与I/O串行操作,输入输出时,CPU处于等待状态。(2)脱机批处理(缓冲技术的一种)脱机批处理显著特征是增加一台不与主机直接连接而专门用于与输入输出打交道的卫星机。利用卫星机完成输入输出功能。主机与卫星机可并行工作。卫星机:完成面向用户的输入输出(纸带或卡片),中间结果暂存在磁带或磁盘上。作业控制命令由监督程序来执行,完成如装入程序、编译、运行等操作。 脱机批处理主要优点:实现了作业自动过渡,改善了输入输出设备的利用率,提高了计算机的处理能力。脱机批处理存在问题:磁带需要手工拆装,系统的保护不够。 脱机批处理的实例:20世纪60年代初期,硬件获得了两方面(即通道和中断技术)的进展,导致操作系统进入执行系统(executive system)阶段。通道(channel)是一种专用处理部件,它能控制一台或多台输入输出设备工作,负责输入输出设备与主存之间的信息传输。它一旦被启动就能独立与CPU运行,这样可使CPU和通道并行操作,而且CPU和多种输入输出设备也能并行操作。 中断(interrupt)是指当主机接到外部信号时,马上停止原来工作,转去处理这一事件,处理完毕后,主机回到原来的断点继续工作。1.2.3 多道程序系统(multiprogramming system)早期的批处理可能出现两种情况: 对于以计算为主的作业,输入输出量少,外围设备空闲; 对于以输入输出为主的作业,主机空闲。单道运行:每次只调用一个用户作业程序进入内存并运行。多道程序合理搭配输入输出为主与计算为主程序交替运行,充分利用资源,提高系统效率。多道程序的运行特点: 多道:计算机内存中同时存放多道相互独立的程序。 宏观上并行运行:同时进入系统的几道程序都处于运行状态,但都未运行完。 微观上串行运行:各作业轮流使用CPU,交替执行。在批处理中采用多道程序设计技术,就形成了多道批处理系统。在当前运行的作业需做I/O处理时,CPU转而执行另一个作业。(I/O完成后是否立刻恢复执行,要等到其他程序再次I/O时)。单道程序工作示例多道程序工作示例多道程序系统的技术问题:(1)并行程序的运行需要共享软件硬件资源,需要同步和互斥机制。(2)多道程序需要提高内存的使用效率,需要覆盖技术、对换技术、虚拟存储等技术。(3)多道程序在内存中要保证系统程序存储区和用户程序存储区的安全可靠,需要内存保护。 1.2.4 分时系统(time-sharing system) 分时技术:把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分配给各联机作业使用。“分时”的含义:分时是指多个用户利用分时技术分享使用同一台计算机。多个程序分时共享硬件和软件资源(注意区分:硬件各部分的分时,如CPU和DMA使用总线和内存)。 分时系统:一般采用时间片轮转的方式,使一台计算机为多个终端服务。对每个用户能保证足够快的响应时间,并提供交互会话能力。 分时系统的特点:(1) 人机交互性好:在调试和运行程序时由用户自己操作。(2) 多用户同时性:多个用户同时使用。(3) 用户独立性:对每个用户而言,好象独占主机。多用户分时操作系统是当今计算机操作系统中使用最普遍的一类操作系统。1.2.5 实时系统(real-time system)实时系统是一种联机系统,主要用于工业过程控制、军事实时控制、金融等领域,包括实时控制、实时信息处理。主要特点是提供即时响应和高可靠性。要求:响应时间短,在一定范围之内;系统可靠性高。1.2.6 通用系统(general system)批处理系统、分时系统和实时系统是操作系统的三种基本类型。目前的操作系统,通常具有分时、实时和批处理两种以上的功能,又称作通用操作系统。通常把实时任务称为前台作业,批作业称为后台作业。将批处理和分时处理相结合可构成分时批处理系统。例如:UNIX操作系统:SUN公司的Solaris,IBM公司的AIX。 Windows操作系统:Microsoft公司的Windows系列。 Linux操作系统:Redhat,红旗Linux等。1.2.7 操作系统的进一步发展世纪年代,大规模集成电路的发展,一方面 迎来了个人计算机飞速发展,一方面又向网络化、分布式处理、巨型计算机、智能化方向发展。主要包括:个人计算机上的操作系统,嵌入式操作系统,网络操作系统,分布式操作系统,智能化操作系统。3.3 操作系统的基本类型随着计算机技术和软件技术长期发展,已形成了各种类型的操作系统,以满足不同的应用要求。操作系统分类主要讨论操作系统的内部特征。根据其使用环境和对作用批处理方式,操作系统有以下几种基本类型: 批处理操作系统(Batch Processing Operation System). 分时操作系统(Time Sharing Operating System). 实时操作系统(Real Time Operating System). 个人操作系统(Personal Operating System). 网络操作系统(NOS, Network Operating System). 分布式操作系统(Distributed Operating System)。1.3.1 批处理操作系统(Batch Processing Operation System)批处理的主要特征: 用户脱机使用计算机:作业提交后直到获得结果之前,用户无法与作业交互。 作业成批处理:采用成批处理作业。 多道程序并行:充分利用系统资源。多道批处理系统的资源利用效率特征是基于各作业对系统资源的需求差异得到的。多道批处理系统的优点是由于系统资源为多个作业所共享,其工作方式是作业之间自动调度执行。并在运行过程中用户不干预自己的作业,从而大大提高了系统资源的利用率和作业吞吐量。其缺点是无交互性,用户一旦提交作业就失去了对其运行的控制能力;又是批处理,作业周转时间长,用户使用不方便。1.3.2 分时操作系统(Time Sharing Operating System)分时(Time Sharing)是把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片(Time Slice) ,每个用户依次轮流使用时间片。分时技术:把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分配给各联机作业使用。分时操作系统(Time Sharing Operating System)是一种联机的多用户交互式的操作系统。一般采用时间片轮转的方式,使一台计算机为多个终端服务。对每个用户能保证足够快的响应时间,并提供交互会话能力。分时系统的特征: 交互性:系统能及时对用户的操作进行响应,显著提高调试和修改程序的效率:缩短了周转时间。 多用户同时性:多个用户同时工作,共享系统资源,提高了资源利用率。节省维护开支,可靠性高:笨终端至今仍在使用。促进了计算机的普遍应用,提高资源利用率:远地用户通过终端(较便宜)联机使用。 独立性:各用户独立操作,互不干扰。分时操作系统是一个联机的(online)多用户(multiuser)交互式(interactive)的操作系统。UNIX是当今最流行的一种多用户分时操作系统。1.3.3 实时操作系统(Real Time Operating System)实时操作系统(Real Time Operating System)是一种联机的用于实时控制和实时信息处理领域的操作系统,主要用于过程控制、事务处理等有实时要求的领域,其主要特征是实时性和可靠性。实时系统的特征(1)实时时钟管理:提供系统日期和时间、定时和延时等时钟管理功能;(2)过载保护:缓冲区排队,丢弃某些任务,动态调整任务周期;过载是指进入系统的任务数目超出系统的处理能力。(3)高度可靠性和安全性容错能力(如故障自动复位)和冗余备份(双机,关键部件)。实时系统与批处理系统和分时系统的区别(1)专用系统:许多实时系统是专用系统,而批处理与分时系统通常是通用系统。(2)实时控制:实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构。(3)高可靠性:实时系统用于控制重要过程,要求高度可靠,具有较高冗余。如双机系统。(4)事件驱动和队列驱动:实时系统的工作方式:接受外部消息,分析消息,调用相应处理程序进行处理。(5)可与通用系统结合成通用实时系统:实时处理前台作业,批处理为后台作业。1.3.4 通用操作系统可以同时兼有批处理,分时,实时处理和多重处理的功能,或其中两个以上功能1.3.5 个人计算机上的操作系统 目前个人计算机上使用的操作系统以windows系列和linux系统为主。1.3.6网络操作系统计算机网络是通过通信设施将物理上分散的具有自治功能的多个计算机系统互连起来的,实现信息交换,资源共享,可互操作和协作处理的系统。它具有这样的特征:1)计算机网络是个互连的计算机系统的群体。2)这些计算机是自治的,每台计算机有自己的操作系统,各自独立工作,它们在网络协议控制下协同工作。3)系统互连要通过通信设施(硬件,软件)来实现。4)系统通过通信设施执行信息交换,资源共享,互操作和协作处理,实现多种应用要求。互操作和协作处理是计算机网络应用中更高层次的要求特征。现代操作系统的主要特征之一就是具有上网功能。1.3.7 分布式操作系统 分布系统也可定义为通过通信网络将物理上分布的具有自治功能的数据处理系统或计算机系统互连起来,实现信息交换和资源共享,协作完成任务。但还是有一些区别:1)作为计算机网络,现在已制定了明确的通信网络协议体系结构及一系列协议族。2)分布式系统要求一个统一的操作系统,实现系统操作的统一性。在计算机网络中,实现全网的统一管理的网络管理系统已成为越来越重要的组成部分。3)系统的透明性。4)分布式系统的基础是网络。5)分布式系统还处在研究阶段,目前还没真正实用的系统。3.4 操作系统功能操作系统的基本功能:处理机管理、存储管理、设备管理、信息管理(文件系统管理)、用户接口。1.4.1 处理机管理 在多道程序或多用户的情况下,要组织多个作业同时运行,就要解决对处理机分配调度策略,分配实施和资源回收等问题。这就是处理机管理功能。1.4.2 存储管理存储管理主要工作:对内部存储器进行分配,保护和扩充。主要包括:(1) 存储分配与回收:内存分配所要解决的问题。(2) 存储保护:保证进程间互不干扰、相互保密;如:访问合法性检查、甚至要防止从“垃圾”中窃取其他进程的信息。(3) 地址映射(变换):进程逻辑地址到内存物理地址的映射。(4) 内存扩充(覆盖、交换和虚拟存储):提高内存利用率、扩大进程的内存空间。1.4.3 设备管理1)通道,控制器,输入输出设备的分配和管理。2) 设备独立性。1.4.4 信息管理 我们把程序和数据统称为信息或文件。信息的共享,保密和保护也是文件系统所要解决的。 1.4.5用户接口 操作系统向上提供两种接口:(1) 程序一级的接口:提供一组广义指令(或称系统调用、程序请求)供用户程序和其他系统程序调用。当这些程序要求进行数据传输、文件操作或有其他资源要求时,通过这些广义指令向操作系统提出申请,并由操作系统代为完成。(2) 作业一级的接口:提供一组控制操作命令(或称作业控制语言,或象UNIX中的shell命令语言)供用户去组织相控制自己作业的运行。作业控制方式典型地分两大类:脱机控制和联机控制。操作系统提供脱机控制作业语言和联机控制作业控制语言。作业:当前比较流行的虚拟PC软件主要有二款,Virtual PC和Vmware。作业内容:第一步,下载并安装Virtual PC 2007 正式版 第二步,在Virtual PC中安装Red Hat Linux 9.0操作系统将以上两步的安装过程,用屏幕截图及文字描述的方式,写成WORD文档。文档命名规则 :Virtual PC 2007安装过程by XXX:AAA基于Virtual PC的Red Hat 9.0安装过程 by XXX:AAAXXX为作者姓名或网名,AAA为作者学号。提交方式:将写好的文档以附件形式发送电子邮件至,邮件标题,写明班级学号及文档类型。每人限交一份文档,每种文档仅收前10份。收取作业时间截止于:9月9日24点。逾期不再收取。作业内容不得抄袭。奖励方式:对收取的作业,内容合格者,期末最终成绩加1分。每种文档评选一个优秀作业,期末最终成绩加2分。并将公布于www.MSX1.5 操作系统如何工作的 1.5.1 程序的启动和结束 程序执行的条件:1、该程序在内存中(程序装入主存)2、CPU中的程序计数器PC被置为该程序在内存中的起始执行地址(即,CPU执行的下一条指令是该程序的指令)程序的启动方式:1、 在图形界面中由用户操作启动。如:鼠标点击,键盘操作,快捷键等。2、 在命令解释器中由用户通过命令方式启动。Windows中,开始运行命令。如:“regedit”打开注册表DOS,C 命令。UNIX和Linux中的Shell3、 批处理方式。Windows下批处理程序的编写:/bbs/read.php?tid=44Linux下批处理程序的编写:/bbs/read.php?tid=454、 从一个程序中启动另一个程序。如:调用exec方法5、 纯粹由硬件装入程序并启动。6、 自启方式。自启程序:自装入并启动执行的程序。自启程序分为两部分,第一部分,引导程序。第二部分,主体程序。由引导程序,装入启动主体程序。引导程序由硬件装入启动,通常存在于ROM中。所有的操作系统都是自启程序。程序的结束:从用户程序回到操作系统做结束处理工作。如:释放内存空间,和所用设备,记录使用情况等。有正常结束和非正常结束正常结束,程序在完成任务后,在程序结束处调用一条指令返回操作系统,进行结束处理工作。如:exit(0);非正常结束,发生在运行过程中出现意料之外的错误。通过中断进入操作系统进行处理。1.5.2系统调用和中断高级语言库函数(API)操作系统函数调用系统调用汇编语言操作系统系统调用系统调用:用户程序中对操作系统的调用称为系统调用。使用户程序通过简单的调用,来实现一些硬件相关,应用无关的工作,从而简化了用户程序。独立程序:不需要操作系统帮助的程序(包括程序的启动和结束)非独立程序:需要操作系统帮助的程序系统调用的执行过程:INT(系统调用)用户程序中断向量表 硬件功能号:地址系统调用分支表系统调用代码中断状态切换用户态(目态)系统态(管态)系统调用的特点:1、 系统调用指令是由硬件决定的(即:CPU中的中断向量表)。的指令集中都有一条系统调用指令,又称访管指令但系统调用具体实现的功能由操作系统决定(即:操作系统中的,系统调用分支表,及系统调用代码)。因此:同一种计算机上的不同操作系统,系统调用指令是相同的。同一操作系统,在不同的计算机上,系统调用指令是不同的。2、 系统调用是动态连接的静态连接:程序在编译时,将被调用的程序嵌入到自身中。如:库函数调用动态连接:程序在执行的过程中,执行到调用指令时,才连接到被调用的程序并执行。如:动态连接库(dynamic link library,DLL),系统调用。由于操作系统是动态连接的,所以,缩短了用户程序,使用户程序和操作系统提供的系统调用功能相互独立。3、 系统调用的调用地址和返回地址不是固定的。系统调用的地址,由系统启动装载操作系统时,存放系统调用代码的位置决定,每次开机都可能存放在不同的位置上。返回地址,由用户程序中系统调用指令的位置决定。、安全接口在执行系统调用和从系统调用中返回时,要分别保存和恢复程序状态字PSW,并设置PSW中的系统态用户态标志位,进行系统态和用户态的切换。执行系统调用时,进入系统态。从系统调用中返回用户程序时,进入用户态。状态切换的目的:某些特权指令只能在系统态下执行。一些地址,只能在系统态下访问。从而限制了用户程序不能随意地进入操作系统区域,读写操作系统的内部代码,也限制了用户程序不能随意进入其它用户程序的区域。中断:是指计算机在执行程序的过程中,当遇到需要立即处理的事件时,立即暂停当前正在运行的程序,转去执行有关服务程序,处理完后自动返回原程序。发生中断的原因:系统调用,程序异常,IO事件完成,时间片结束,等等。可以归结为两大方面,一任务间切换的时候发生中断,二由用户态进入系统态时发生中断。中断的执行过程:保存现场,将PSW等现场信息放入堆栈中,然后转去相应的中断处理程序。中断结束返回时,恢复现场,从堆栈中取出PSW等现场信息。继续执行原程序。P31图1.171.5.为常用基本操作提供现成实用程序每个操作系统都提供少则几十条,多则几百条操作系统命令,这些命令是操作系统为用户的常用基本操作提供的现成程序,又称为操作系统实用程序。外部命令和内部命令 p27 第一段1.5.解决效率和安全的问题并发技术等操作系统用于提高效率的技术很多,如,并发,多道,虚存,分时,调度等,其中最基本的影响最大的是并发技术。并发的定义:是指一个时间段中有几个程序都处于启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。并发的基本思想:为了完全消除CPU与IO之间的相互等待,提出了并发技术。其本质思想是,当一个程序需要等待IO完成时,就让该程序退出CPU,而让另一个程序运行,当系统得到被等待的IO完成信号是,再通知前一个程序继续运行。提出并发技术的原因:改善CPU和IO设备的利用率是首要原因,此外,使单个用户可以同时运行几个程序以提高工作效率。使一个程序内部并发地执行,以加快程序执行速度。多个用户可同时访问一组数据,即,并发共享资源。 进程的定义:是一个程序的一次动态执行,或者说是一个正在执行中的程序。进程与程序的主要区别:1、 进程是动态的,程序是静态的。2、 程序仅仅是外存中的可执行目标程序的代码文件,进程则不仅包含所执行的程序代码,还包含所处理的数据与管理信息3、 一个程序可能对应多个进程,并发技术的实现及其带来的问题1、 如何解决现场信息的保存和恢复2、 CPU的调度问题3、 进程间的层次关系4、 进程间的同步互斥问题5、 进程安全问题3.1 处理机管理概述操作系统中负责管理CPU使用的那部分功能子集称为处理机管理功能或CPU管理功能。现代操作系统中通常处理机管理功能划分为三个层次:作业级,进程级,线程级。三个层次之间的关系:线程是最底层的,一个用户进程中可以有多个线程,同一进程内的线程间,能够并发,存在线程间通信,同步互斥等问题;进程是程序执行的基本单位,一个作业中,可以含有多个进程,进程间存在并发,存在进程间通信,同步互斥等问题。作业是最高一级,多任务系统中可以有多个用户的多个作业在并发地执行。处理机管理功能要解决这三个层次上的并发调度等问题。操作系统所要实现的功能处理机管理受的硬件特性的制约和用户使用要求的影响。2.1.1 CPU硬件的使用特性CPU是(中央处理器)是计算机的心脏,是计算机内部对数据进行处理并对过程进行控制的部件。一个计算机系统中可能只有一个CPU,也可能有多个CPU,称为多CPU系统或多处理机系统。CPU各种硬件使用特性中,与操作系统CPU管理相关的有:系统调用指令的设置和实现,中断机制,保护机制,机器状态字,是否支持多任务,任务切换相关机制等。1、相关指令与寄存器指令集是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志。CPU指令集分为两种精简指令集RISC(Reduced Instruction Set Computing)和复杂指令集CISC(Complex Instruction Set Computing)。它们之间的不同之处就在于RISC指令集的指令数目少,而且每条指令采用相同的字节长度,一般长度为4个字节,并且在字边界上对齐,字段位置固定,特别是操作码的位置。而CISC指令集特点就是指令数目多而且复杂,每条指令的长度也不相等。在操作上,RISC指令集中大多数操作都是寄存器到寄存器之间的操作,只以简单的Load(读取)和Sotre(存储)操作访问内存地址。因此,每条指令中访问的内存地址不会超过1个,指令访问内存的操作不会与算术操作混在一起。指令长度统一在功能上,RISC指令集也要比复杂指令集具有优势,精简指令集可以大大简化处理器的控制器和其他功能单元的设计,不必使用大量专用寄存器,特别是允许以硬件线路来实现指令操作,从而节约的处理器的制造成本。而采用CISC指令集的处理器是使用微程序来实现指令操作,在执行速度上不如RISC指令集。另外,RISC还加强了并行处理能力,非常适合于采用处理器的流水线、超流水线和超标量技术,从而实现指令级并行操作,提高处理器的性能。而且随着VLSI(Very Large Scale Integration超大规模集成电路)技术的发展,整个处理器的核心甚至多个处理器核心都可以集成在一个芯片上。RISC指令集的体系结构可以给设计单芯多核处理器带来很多好处,有利于处理器的性能提高。由于RISC指令集自身的优势,在处理器的高端服务器领域的处理器上得到了广泛的运用,而CISC指令集主要运用桌面领域的处理器产品中,比如Intel的Pentium系列和AMD的K8系列处理器。然而现在RISC指令集也不断地向桌面领域渗入,相信以后的处理器指令集会慢慢的向RISC体系靠拢。 与操作系统CPU管理和进程/线程管理相关的指令有,系统调用及返回指令,中断屏蔽与开放指令,机器状态字读写指令,停止CPU执行指令,栈弹出/压入指令。与操作系统CPU管理和进程/线程管理相关的寄存器有, 机器状态字寄存器,指令地址寄存器,栈指针寄存器。2、中断机制CPU都提供对中断机制的支持,包括基于中断类型的中断向量表(存放各种中断类型的中断处理程序入口地址,例如,段地址和端内偏移地址及特权级别标志等),基于中断级别的中断相应和中断屏蔽机制等。Intel体系结构中,中断是一个异步事件,分为内部中断(软件产生的)和外部中断(硬件产生的)异常是一个同步事件,当处理机在一条指令执行时查到一个或多个预定义的条件时产生。有三种类型:错误、陷入、中止。错误是通常可以被修正的异常中断。一旦修正,允许程序继续执行。中止是无法被修正的异常,发生中止时不允许引起异常的那个程序或任务继续执行。常出现在发生严重错误时。如:硬件错误。陷入是在机器状态字中的TF标志位为1时,CPU每执行一条指令后便发生一次的异常。用于跟踪调试,断点等。CPU每执行完一条指令后,就会检查该标志位,以确定是否激活一个中断。3、保护机制CPU都设有保护机制,以防止低优先级用户程序越权执行高优先级的指令或特权访问数据。典型的保护机制是两态划分(用户态和核心态),有的CPU划分的更细。4、任务切换机制多任务CPU中一个进程的现场内容包括所有通用和专用寄存器的内容。如:机器状态字,指令寄存器,所有段寄存器,栈指针等。RISC类的任务切换,大都由操作系统完成,而CISC类,如Intel系列由硬件完成。 2.1.2 用户对CPU的使用要求和操作系统CPU管理功能的工作任务CPU管理的内容主要由CPU的硬件特诊和用户的要求决定。其中以CPU数量和是否并发这两个因素影响最大。因此把CPU管理功能分为三种模型来讨论。单处理机但任务模型,单处理机多任务模型,多处理机多任务模型。CPU管理功能的主要内容有几个方面:1、 启动程序执行将CPU交给用户程序使用。实现程序执行的两个基本条件。在多任务模型中还要负责建立进程状态。2、 处理程序结束工作从用户程序收回的使用权。程序结束返回操作系统后要进行的收尾工作。3、 提高对的利用率,实现并发技术实现多个程序对的并发共享。进程的确立与划分;进程切换涉及到的现场保存于恢复、调度及中断处理工作;进程通信涉及到的互斥、同步、消息传送等。4、 向用户程序提供与使用相关的用户界面接口。提供相应功能的系统调用指令。如。在一个程序中启动另一个程序,程序的结束,信号操作的一组系统调用。5、 再多硬件背景下,负责多个的登录,分配与通信等管理工作。3.2 单任务模型单任务是指计算机系统中任何时候只有一个程序在运行。用户区任何时候都只有一个程序存在。不存在用户程序间的并发。就是一个单任务的系统。而是支持多任务的。单任务中存在用户程序与系统程序间的并发现象,所以单任务下虽然没有调度,进程状态,进程划分,进程通信等问题,但仍然有中断。作业:请从多个方面描述RedHat Linux与WindowsP操作系统的异同作业内容:请从多个方面描述两个系统之间的异同点,如:系统管理,应用领域,文件系统等等。请自由发挥!要论证详实,图文并茂。字数不低于字。文档命名规则 :从FFF看RedHat Linux与WindowsP操作系统的异同by XXX:AAAFFF为要描述的方面,XXX为作者姓名或网名,AAA为作者学号。提交方式:将写好的文档以附件形式发送电子邮件至,邮件标题,写明班级学号及文档类型。每位同学仅限从一个方面描述,每个方面的叙述仅收前份合格作业。收取总数为3份。收取作业时间截止于:9月23日24点。逾期不再收取。作业内容不得抄袭。奖励方式:对收取的作业,内容合格者,期末最终成绩加1分。将评选一个优秀作业,期末最终成绩加2分。并将公布于www.MSX。3.3 多任务模型多任务模型的功能与接口:1向用户提供多任务使用方式。2向用户程序提供与多任务相关的一组系统调用。进程模型的是显示围绕进程三态的转换进行的。2.3.1 进程三态转换分析运行态:进程正在使用CPU。等待态(阻塞态):进程正在等待I/O完成(或其他事件发生),不在使用CPU,也不能使用CPU。进程进入等待队列中。就绪态:进程不在使用CPU,但已准备好使用CPU(不再等待I/O或其他事件)。进程进入就绪队列中。三态转换示意图状态转换原因:、 就绪态进入运行态进程被调度程序选中、 运行态进入就绪态例如:时间片到、 运行态进入等待态例如:等完成、 等待态进入就绪态例如:结束从其他状态进入就绪态的进程需要置入调度队列(就绪队列),等待调度。根据的调度策略决定就绪队列中的哪个进程先使用CPU进入运行态。七态转换示意图2.3.2 进程模型实现机制建立进程的过程,p65图2.7 创建一个PCB赋予一个统一进程标识符 为进程映象分配空间 初始化进程控制块许多默认值 (如: 状态为 New,无I/O设备或文件.) 设置相应的链接如: 把新进程加到就绪队列的链表中进程控制块表(表)每个系统一张进程控制块表。PCB表的长度是有限的。每个进程的在表中占一行。每个进程所占的那一行,就是该进程的进程控制块(PCB)。中的内容:进程号、进程状态、进程调度优先级、现场信息、就绪队列指针、等待队列针、叶标或界址寄存器、打开文件表、记账信息,等。PCB表的组织方式有链表和索引两种链表式的PCB表索引式的PCB表2.3.3 进程空间结构1、程序的文件结构。可执行目标程序存放在外存中。由三部分组成:代码、静态初始化数据、头,包括外部连接数据,参数,日期,厂商,长度等,头的具体内容和格式由具体操作系统确定。2、进程空间结构。指进程在内存的所有代码、数据栈、以及有关信息的组合和总称。一个进程的内存空间而言,可以在逻辑上分成3个部份:代码区,静态数据区和动态数据区。动态数据区一般就是“堆栈”。“栈(stack)”和“堆(heap)”是两种不同的动态数据区,栈是一种线性结构,堆是一种链式结构。代码区:存放程序的二进制代码。由操作系统分配释放。静态数据区:存放全局变量和静态变量。初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。由操作系统分配释放。栈:存放函数的参数值,局部变量等。 由操作系统分配释放。栈是指可供程序使用的一部分动态内存空间,但是分配与释放顺序都是特定。栈是后进先出的。这就是说,你最近分配的那个存储对象将是第一个被删除的。 堆:可由程序动态申请的内存空间。由程序在运行时动态地分配,使用完可由程序释放,或进程结束后由操作系统来释放。如:用malloc方法申请的内存空间,还有New方法产生的数据的空间,都在这里分配。堆是指可供程序使用的一部分内存空间,也称为动态内存区域。在堆中,存储空间分配与释放的次序是没有限制的。这就是说,假设你顺序分配了三块空间,以后你可以按任何顺序去把它们销毁。堆管理器会替你管理一切。/main.cpp int a = 0; 静态数据区中的全局初始化区 char *p1; 静态数据区中的全局未初始化区 main() int b; 栈 char s = abc; 栈 char *p2; 栈 char *p3 = 123456; 123456在常量区,p3在栈上。 static int c =0; 全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *)malloc(20); /分配得来得10和20字节的区域就在堆区。 strcpy(p1, 123456); /123456放在常量区。实际上用户进程中有两个栈,一个用户态栈(在用户区),一个系统态栈(在系统区)。2.3.4 可抢先、不可抢先、完全可抢先可抢先是指当前进程在其时间片未用完时就可被更高优先级的进程抢用。不可抢先是指除非自愿或时间片到,当前进程不可以被更高优先级的进程抢用。完全可抢先是指在任何时间,不管当前进程处于用户态还是系统态都可以随时被更高优先级的进程抢用。实时操作系统经常要求完全可抢先。要实现完全可抢先,难在系统态中实现完全可抢先。按照可抢先的类型,可将操作系统分为以下4类:1、完全不可抢先或用户太不可抢先。2、内核(系统态)完全不可抢先。3、内核的部分可抢先。4、完全可抢先或内核完全可抢先。2.3.6 进程调度算法衡量CPU调度算法的标准有:CPU利用率,用户程序响应时间,系统吞吐量,公平合理性,设备利用率等。 先来先服务FCFS 轮转调度法RR赋予每个进程一段时间(时间片)。当进程处于运行态时将消耗时间片,当时间片用完,若进程还处于运行态,则被强行撤出,进入就绪队列,并再次赋予其时间片。该调度法常与先进先出或优先级算法结合使用。 优先级调度法给每个进程赋予一个优先级,带有最高优先级的进程最先执行。又分为静态优先级和动态优先级。动态优先级在不断地降低着处于运行态的进程的优先级,以防止优先级高的进程不断地执行。 短作业优先SJF占用CPU时间最短的进程先运行。事先要估计程序运行的时间 最短剩余时间优先剩余运行时间最短的进程最先运行。也要事先估计程序运行的时间 最高响应比优先HRN响应比最高的进程最先执行。响应比=1+等待时间/估计运行时间。该算法结合了FCFS和SJF算法。 多级反馈法(多重队列法)不同进程的时间片不同;进程采用动态优先级;优先级与时间片结合在一起,优先级越高,时间片越短。 策略驱动法为了保障用户间的公平 最晚时间限调度该算法保证在每个进程必须完成的最外时间限前运行完该进程。 二级调度法多了一个后备队列,由一个二级的调度程序来调度进程在二级队列和后备队列之间的转换。作业:如何在Linux下编写C+程序,并编译运行呢?作业内容:1、如何在Linux下编写C+程序,请自由发挥写一个范例程序。2、如何在Linux下编译并运行C+程序。将以上内容用屏幕截图及文字描述的方式,写成WORD文档。文档命名规则 :基于Linux编写C+程序by XXX:AAAXXX为作者姓名或网名,AAA为作者学号。提交方式:将写好的文档以附件形式发送电子邮件至,邮件标题,写明班级学号及文档名。文档仅收前30份。收取作业时间截止于:9月23日24点。逾期不再收取。作业内容不得抄袭。奖励方式:对收取的作业,内容合格者,期末最终成绩加1分。每种文档评选一个优秀作业,期末最终成绩加2分。并将公布于www.MSX3.4 进程模型实例分析int fork() 产生一个新的子进程,其子进程会复制父进程的数据与堆栈空间,并继承父进程的用户代码,组代码,环境变量、已打开的文件代码、工作目录和资源限制等。如果进程建立成功则在父进程会返回新建立的子进程代码(PID),而在新建立的子进程中则返回0。如果失败则直接返回-1范例:#include#includeusing namespace std;int main()int pid= fork();if(pid = =0)cout”this is child”0)cout”this is super”endl; /父进程执行内容elsecout”fork() error!”endl; /进程建立失败int execl(const char * path, const char * arg,.);执行参数path表示的文件路径所指定的程序,接下来的参数代表执行该程序时传递过去的argv(0)、argv1,最后一个参数必须用空指针(NULL)作结束。execl方法所执行的程序,将覆盖调用该方法的进程的代码。范例:#include#includeusing namespace std;int main()execl(“/bin/ls”,”-al”,NULL);cout”can you see this word?”endl;return 0;unsigned int sleep(unsigned int seconds);目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。若进程暂停到参数seconds 所指定的时间则返回0,若有信号中断则返回剩余秒数。范例#include#includeusing namespace std;int main()f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论