1、操作系统教程(第5版)第1章 操作系统概论第一章 操作系统概论1.1 操作系统概观1.2 操作系统形成和发展1.3 操作系统基本服务和用户接口1.4 操作系统结构和运行模型 1.5 流行操作系统简介1.1.1操作系统与计算机系统 现代计算机系统是由硬件和软件 相互交织形成的集合体,构成一个解决计算问题的工具。硬件是软件运行的物质基础,软件能够充分地发挥硬件潜能并扩充其功能,完成各种应用任务,两者互相促进,相辅相成,缺一不可。计算机系统层次结构(1)财务系统财务系统航空订票航空订票上网浏览上网浏览电子商务电子商务科学计算科学计算(应用软件应用软件)用户用户n n用户用户4 4用户用户3 3用户用
2、户2 2用户用户1 1编译程序编译程序汇编程序汇编程序数据库数据库(支撑软件支撑软件)实用程序实用程序操作系统操作系统(系统软件系统软件)计算机硬件计算机硬件计算机系统层次结构(2)硬件层 操作系统层 支撑软件层 应用软件层 操作系统的主要目标 方便用户使用 扩大机器功能 管理系统资源 提高系统效率 构筑开放环境 操作系统与支撑及应用软件的区别 程序意图不同,各有不同任务,解决不同问题;具有控制与被控制的关系;操作系统是软件系统的核心,是各种软件的基础运行平台;通用操作系统提供共性功能支持,与硬件相关但和应用领域无关;支撑软件及应用软件不能直接而只能通过操作系统来使用计算机系统的物理资源。1.
3、1.2 操作系统资源管理技术资源复用(解决物理资源数量不足)资源虚拟(解决物理资源数量不足,提高服务的能力和水平)资源抽象(处理系统的复杂性,解决资源的易用性)资源管理技术1.资源管理(1)复用(1)空分复用共享-该资源可进一步分割成更多和更小的单位供进程使用。(2)时分复用共享-并不把资源进一步分割成更小的单位,进程可在一个时间段内独占使用整个物理资源。时分复用共享分类 时分独占式-进程获得时分独占式资源后,对资源执行多个操作,通常使用一个完整的周期后才会释放(如磁带)。时分共享式-时分共享式资源指进程占用该类资源使用后,很可能随时被剥夺,被另一个进程抡占使用(如处理器、磁盘机)。(2)虚拟
4、 是对资源进行转化、模拟或整合,把物理上的一个资源变成逻辑上的多个对应物(或物理上多个变成逻辑上一个)的一类技术。空分复用分割实际存在的物理资源,虚拟实现虚构假想的虚拟同类资源。资源虚拟的例子虚拟设备、虚拟主存、虚拟文件、虚拟屏幕(终端)、虚拟信道 。(3)抽象 资源抽象用于处理系统的复杂性,重点解决资源的易用性。资源抽象指通过创建软件来屏蔽硬件资源物理特性和接口细节,简化对硬件资源的操作、控制和使用的一类技术。单级资源抽象与多级资源抽象。设备抽象接口(隐蔽I/O操作实现细节)物理接口 设备 用户 I/O机器指令 I/O系统调用read(),write()I/O软件及设 备驱动程序 用户 物理
5、接口 设备 单级资源抽象例子 一个简单抽象,可用系统调用write()打包:void write(char*block,int len,int device,int track,int sector)load(block,length,device);seek(device,track);out(device,sector);多级资源抽象例子 int fprintf(fileID,”%s”,datum)write();(4)组合使用资源管理技术 对于一类资源,操作系统往往同时实施几种资源管理技术。例1-虚拟设备-抽象+虚拟。例2-虚拟主存-复用+虚拟。例3-虚拟屏幕-抽象+虚拟。2.操作系统中
6、三个基础抽象 进进 程(程(process)(进程是处理器的一种抽象)(进程是处理器的一种抽象)用户:运行应用程序,以进程方式执行 虚拟机界面虚拟机界面 fork、wait、exec.OS:进程及其管理 物理机界面物理机界面 进程调度和切换硬件:处理器进程是对于进入内存的执进程是对于进入内存的执行程序在处理器上操作的行程序在处理器上操作的状态集的一个抽象状态集的一个抽象。进程进程抽象的效果是让用户感觉抽象的效果是让用户感觉到有自己独享的处理器,到有自己独享的处理器,从而,可为用户提供多任从而,可为用户提供多任务操作系统和分时操作系务操作系统和分时操作系统。统。操作系统中三个基础抽象 虚虚 存存
7、(virtual memory)(虚存是内存的一种抽象)(虚存是内存的一种抽象)用户:运行应用程序,使用逻辑地址 虚拟机界面虚拟机界面 虚拟地址OS:虚存及其管理 物理机界面物理机界面 物理地址硬件:主存+辅存虚存抽象的效果是给用户造成假象,感觉独占了一个连续地址空间,编写应用程序的长度不受物理内存大小限制。虚存是通过结合对内存和外存的管理来实现的,把一个进程的虚存中的内容存储在磁盘上,用内存作为磁盘的高速缓存,以此为用户提供比物理内存空间大得多的虚拟内存空间。2.操作系统中三个基础抽象文件是通过将文件中的字节映射到存储设备的物理块中来实现文件抽象。文件抽象的效果是让用户感觉到总能满足自己对设
8、备上信息的存取需求,而且使用十分方便。基础抽象的包含关系 文件抽象 虚存抽象 进程抽象 处理器 内存 设备 3操作系统虚拟机 什么是操作系统虚拟机?操作系统虚拟机的组成:1)虚处理器 2)虚拟内存 3)虚拟辅存 4)虚拟设备操作系统虚拟机进程P1虚 虚 虚 虚处 内 辅 设理 存 存 备器 虚拟机1 进程Pn操作系统资源管理技术(复用、虚拟、抽象)虚 虚 虚 虚处 内 辅 设理 存 存 备器 虚拟机n处 内 辅 设 理 器 存 存 备 物理计算机 1.1.3操作系统定义和作用 操作系统定义 管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户方便有效地使用计
9、算机提供良好运行环境的一种系统软件。操作系统是基础运行平台 操作系统是最靠近硬件的一层软件,它把硬件裸机改造成为完善的虚拟机,使得机器功能得到扩展,运行环境得到改善,系统效率得到提高,安全性能得到保证。操作系统隔离其他上层软件,并为它们提供接口和服务,使得上层软件可以获得远较硬件所能提供的更多更强的功能上的支持。操作系统是软件系统的核心,它与硬件一起构成了各种软件的基础运行平台。ch1(os定义、功能、作用、接口和服务)系统实现系统实现 观点观点进程交互进程交互 观点观点资源管理资源管理 观点观点OSOS是资源是资源管理者管理者ch2(处理器管理)、ch4(存储管理)、ch5(设备管理)、ch
10、6(文件管理)OSOS是虚拟是虚拟机机ch1(os虚拟机、os结构、os运行模型)、ch7(安全与保护)ch2(进程、线程、调度)、ch3(同步、通信、死锁)系统角度系统角度动态观察方法静态观察静态观察 方法方法OSOS是程序执是程序执行的控制者行的控制者 用户角度用户角度OSOS是服务是服务提供者提供者服务用户服务用户 观点观点 研究和观察操作系统研究和观察操作系统 观察和研究操作系统总纲观察和研究操作系统的4种观点 服务用户观点 进程交互观点 系统实现观点 资源管理观点观察和研究操作系统4种观点细化(1)服务用户观点-操作系统作为用户接口和公共服务程序 (2)进程交互观点-操作系统作为进程
11、执行的控制者和协调者(3)系统实现观点-操作系统作为扩展机或虚拟机 (4)资源管理观点-操作系统作为资源的管理者和控制者操作系统既是“管理员”,又是“服务员”对内作为“管理员”,做好软硬件资源的管理、控制与调度,在裸机基础上形成虚拟机供应用程序使用,并对程序执行进行控制和协调,提高系统效率和资源利用率;对外作为“服务员”,是用户与硬件的接口和人机界面,为用户提供最友善的运行环境和最佳的服务,操作系统在管理好资源的基础上,向外提供强有力的服务;所以,资源管理是操作系统一项主要任务。OS作为用户接口和服务提供者 操作系统提供友善的人机接口,使得用户能够方便、可靠、安全、高效地使用硬件和运行应用程序
12、;操作系统对计算机硬件进行改造和扩充,为用户提供强有力的各种服务。OS作为程序执行的控制者和协调者 进程是支持程序执行的一种系统机制,进程是执行中的程序,系统以进程方式组织程序在计算机上运行;OS 需要提供机制,解决并发进程执行时产生的互斥、同步、通信和死锁问题。OS作为扩展机或虚拟机 把操作系统分成若干层次或模块,逐步添加到裸机上,形成操作系统虚拟机;操作系统把硬件的复杂性与用户隔离开来;操作系统与硬件组成一台功能显著增强,使用更加方便,安全可靠性更好的扩展机器或虚拟机。OS作为资源管理者和控制者 对软硬件资源进行资源复用、虚拟和抽象,管理各类资源,记录使用情况,确定分配策略,实施分配和回收
13、,满足用户对资源的需求和申请。提供机制协调应用程序对资源的使用冲突,研究资源使用的统一方法,为用户提供简单、有效的资源使用手段,在满足应用程序需求的前提下,最大限度地实现各种资源的共享,提高资源利用率。1.1.4操作系统功能和特性 操作系统中,能分配给用户使用的硬件和软件设施总称为资源,包括两类:硬件资源和信息资源。硬件资源又分:处理器、存储器、I/O设备等;信息资源又分:程序和数据等。操作系统也可定义为:是能使诸用户有效、方便地共享一套计算机系统资源的一种系统软件。操作系统主要功能 处理机管理 存储管理 设备管理 文件管理 网络与通信管理处理机管理(1)进程控制和管理;(2)进程同步和互斥;
14、(3)进程通信;(4)进程死锁;(5)线程控制和管理;(6)处理器调度,又分高级调度,中级调度和低级调度。存储管理(1)内存分配;(2)地址转换;(3)存储保护;(4)内存共享;(5)存储扩充。设备管理(1)提供设备中断处理;(2)提供缓冲区管理;(3)提供设备独立性,实现逻辑设备到物理设备之间的映射;(4)设备的分配和回收;(5)实现共享型设备的驱动调度;(6)实现虚拟设备。文件管理(1)提供文件的逻辑组织方法;(2)提供文件的物理组织方法;(3)提供文件的存取和使用方法;(4)实现文件的目录管理;(5)实现文件的共享和安全性控制;(6)实现文件的存储空间管理。网络与通信管理(1)网络资源管
15、理;(2)数据通信管理;(3)应用服务;(4)网络管理。1.1.4操作系统主要特性第一个特性-并发性第二个特性-共享性第三个特性-异步性 第一个特性-并发性(1)并发性-指两个或两个以上的事件或活动在同一时间间隔内发生。发挥并发性能够消除系统中部件和部件之间的相互等待,有效地改善系统资源的利用率,改进系统的吞吐率,提高系统效率。并发性使系统变得复杂化 如何从一个活动切换到另一个活动?怎样将各个活动隔离开来,使之互不干扰,免遭对方破坏?怎样让多个活动协作完成任务?怎样协调多个活动对资源的竞争?如何保证每个活动的资源不被其它进程侵犯?多个活动共享文件数据时,如何保证数据的一致性?第一个特性-并发性
16、(2)第一个特性-并发性(3)采用并发技术的系统称多任务系统。并发的实质是一个物理CPU(也可以多个物理CPU)在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。结论结论:实现并发技术的关键之一是如何对系统内的多个活动(进程)进行切换的技术。第一个特性-并发性(4)并行性指-指两个或两个以上的事件或活动在同一时刻发生。并行的事件或活动一定是并发的,但反之并发的事件或活动未必是并行的。并行性是并发性的特例,而并发性是并行性的扩展。第二个特性-共享性 共享指操作系统中的资源可被多个并发执行的进程所使用:透明资源共享:资源隔离与授权访问 显式资源共享:临界资源与独占访问
17、与共享性有关的问题:资源分配、信息保护、存取控制等,必须要妥善解决好。第三个特性-异步性(1)操作系统中的异步异步性处处可见:(1)进程何时执行?何时暂停?怎样的速度向前推进?都是异步(随机)的。(2)作业到达系统的类型和时间是随机的;(3)操作员发出命令或按按钮的时刻是随机的;(4)程序运行发生错误或异常的时刻是随机的;(5)各种各样硬件和软件中断事件发生的时刻是随机的第三个特性-异步性(2)异步性给系统带来潜在危险,有可能导致与时间有关的错误。操作系统的一个重要任务是必须确保捕捉任何一种随机事件,正确处理可能发生的随机事件,正确处理任何一种产生的事件序列,否则将会导致严重后果。1.2 操作
18、系统形成和发展 1.2.1 人工操作阶段 1.2.2 执行程序阶段 1.2.3多道程序设计与操作系统形成 1.2.4 操作系统分类1.2.1 人工操作阶段算题过程 人工把源程序用穿孔机穿制在卡片或纸带上 将准备好的汇编解释程序或编译系统装入计算机 汇编程序或编译系统读入人工装在输入机上的穿孔卡或穿孔带 执行汇编过程或编译过程,产生目标程序,并输出目标卡片迭或纸带 通过引导程序把装在输入机上的目标程序读入计算机 启动目标程序执行,从输入机上读入人工装好的数据卡或数据带 产生计算结果,执行结果从打印机上或卡片机上输出人工操作阶段缺点 用户上机独占全机资源,造成资源利用率不高,系统效率低下 手工操作
19、多,浪费处理机时间,也极易发生差错 数据的输入,程序的执行、结果的输出均联机进行,从上机到下机的时间拉得非常长1.2.2执行系统阶段(1)工作流程如下:操作员集中一批用户提交的作业,由管理程序将作业从纸带或卡片机输入到磁带上,每当一批作业输入完成后,管理程序自动把磁带上的第一个作业装入主存,并把控制权交给作业。当该作业执行完成后,把控制权缴回管理程序,管理程序再调入磁带上的第二个作业到主存执行执行系统阶段(2)执行系统的主存组织中 断 处 理设 备 驱 动作 业 定 序命令和JCL语言解释器用户程序区执行系统阶段(3)执行程序的主要功能:自动控制和处理作业流 提供一套操作命令 提供设备驱动和I
20、/O控制功能 提供库程序和程序装配功能 提供简单的文件管理功能 1.2.3多道程序设计与操作系统形成1.多道程序设计的概念多道程序设计的概念 中断与通道;多道程序设计是指允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法;从宏观上看:从微观上看:引入多道程序设计技术的目的:多道程序设计举例(1)单道算题运行时处理器的使用效率7878输入机输入机处理器处理器磁带机磁带机130130 150150228228280280 300300378378430430 450450时时 间间 多道程序设计举例(2)两道算题运行时处理器的使用效率 7878输入机输入机处理器处理器磁带机磁带机1
21、1130130150150228228280280300300378378430430450450时时 间间磁带机磁带机2 2打印机打印机P甲P乙P甲P乙多道程序设计的效果(1)52/52/(7878十十5252十十2020)35%35%(52+4252+42)/150 63/150 63 多道程序设计的效果(2)采用多道程序设计提高了系统效率,即增长了单位时间的算题量,但对每道程序来说,却延长了计算时间。多道程序设计技术提高资源利用率和系统吞吐率是以牺牲用户的响应时间为代价的。cpu利用率是主存中多道程序道数的函数多道程序设计的道数问题 程序等待I/O操作的时间占其运行时间的比例为p,当主存
22、中有n道程序时,所有程序都等待I/O的概率是pn,那么,CPU利用率=1-pn n称多道程序的道数或度数,可见CPU的利用率是n的函数多道提高效率的例子 假设计算机有1MB主存,操作系统占用200KB,其余空间允许四道程序共享。若80%时间用于I/O等待,则忽略操作系统开销时,CPU利用率=1-(0.8)4=59%。当增加1MB主存后,多道程序可从四道增加到九道,CPU利用率=1-(0.8)9=87%,第二个1MB主存可增加五道程序,能提高47%的CPU利用率。多道程序设计的优点与缺点 提高了CPU的利用率;提高了主存和I/O设备的利用率;改进了系统的吞吐率;充分发挥了系统的并行性。缺点是:作
23、业周转时间延长。2.多道程序设计系统与多重处理系统 多重处理系统是指配置了多个物理CPU,能真正同时执行多道程序的系统。要有效地使用多重处理系统,必须采用多道程序设计技术;反过来,多道程序设计不一定要求有多重处理系统支持。2.多道程序设计系统与多重处理系统 多重处理系统是指配置了多个物理CPU,能真正同时执行多道程序的系统。有效地使用多重处理系统,必须采用多道程序设计技术;反过来,多道程序设计不一定要求有多重处理系统支持。3.操作系统的形成(1)实现多道程序设计须解决三个问题:存储保护与程序浮动;处理器的管理和调度;系统资源的管理和调度。操作系统的形成(2)操作系统资源管理水平和操作自动化程度
24、进一步提高,表现在:1 实现了计算机操作过程自动化。2 资源管理水平有了提高。3 提供虚存管理功能。4 支持分时操作。5 文件管理功能有改进。6 多道程序设计趋于完善。1.2.4操作系统发展与分类 三种基本的操作系统类型:1.批处理操作系统。2.分时操作系统。3.实时操作系统。批处理操作系统 何谓“批”?作业流与批处理;何谓批处理操作系统(Batch OS);批处理操作系统IBM DOS/VS、DOS/VSE 批处理系统的主要特征:用户脱机工作 成批处理作业 多道程序运行 作业周转时间长 分时操作系统 为什么要有分时操作系统?何谓分时操作系统(Time Sharing Operating Sy
25、stem);分时操作系统CTSS、TSS、Multics、UNIX 分时系统的特征:同时性独立性及时性交互性分时与批处理操作系统的区别 目标不同 适应作业的性质不同 资源使用率不同 作业控制方式不同 实时操作系统(1)何谓实时操作系统何谓实时操作系统?三种典型的实时系统三种典型的实时系统:过程控制系统(生产过程控制)。信息查询系统(情报检索)。事务处理系统(银行业务)。实时操作系统(2)实时操作系统(Real Time OS)处理流程:数据采集 加工处理:操作控制:反馈处理:操作系统进一步发展 操作系统发展的主要动力:1 器件快速更新换代。2 计算机体系结构不断发展。3 提高系统资源利用率的需
26、要。4 让用户使用计算机越来越方便的需要。5 满足用户新要求,提供给用户新服务。各种操作系统 微机操作系统。网络操作系统。并行操作系统。分布式操作系统。嵌入式操作系统。多核操作系统。云操作系统。1.3操作系统基本服务和用户接口1.3.1 基本服务和用户接口1.3.2 程序接口与系统调用1.3.3 操作接口与系统程序1.3.4 Linux系统调用及实现机制1.3.1操作系统基本服务 1.基本服务 创建程序 执行程序 数据I/O 信息存取 通信服务 错误检测和处理 还具有其他功能:资源分配,统计,保护。2用户接口系统调用(程序接口)操作命令操作系统裸 机 应用程序系统程序(操作接口)1.3.2程序
27、接口与系统调用 什么是系统调用?系统调用的作用?系统调用是应用程序获得操作系统服务的唯一途径。内核的主体是系统调用的集合,内核可以看成是特殊的公共子程序。什么是系统调用?操作系统的功能通过一组称为系统调用(system call)的接口呈现给用户,内核提供一系列实现预定功能的内核函数,系统调用把应用程序的请求传达给内核,内核调用对应的内核函数完成请求所需处理后,再将处理结果返回给应用程序。系统调用的作用 系统调用是一种中介角色,把用户与硬件隔离开来,应用程序通过系统调用才能请求系统服务和使用系统资源,其作用有:一是内核可基于权限和规则对资源访问进行裁决,保证系统的安全性;二是系统调用封装资源抽
28、象,提供一致性接口,避免用户使用资源时可能发生的错误,且使编程方便效率高。API、库函数、系统调用 应用程序能直接使用系统调用吗?POSIX(Portable Operating System Interface for Computer Environment)标准;API和库函数 库函数和系统调用应用程序、库函数、系统调用的调用关系链调用fprintf()应用程序C函数库内核系统调用处理程序C库中的fprintf()封装程序用户态核心态sys_write()内核函数Linux系统程序、库函数、系统调用分层关系 用户 操作系统(进程管理、存储管理、文件管理、设备管理等)标准库函数(打开、关闭
29、、读、写、创建、撤销等)系统程序(实用程序)(汇编、编译、编辑、Shell等)用户接口库函数 接口系统调用 接口 硬件(处理器、存储器、磁盘、打印机、终端等)用户态核心态系统调用分类 (1)进程和作业管理:(2)文件操作:(3)设备管理:(4)主存管理:(5)信息维护:(6)通信:系统调用实现 一.是编写系统调用处理内核函数;二.是设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理内核函数,有的系统还包含系统调用自带参数的个数;三.是陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场。系统调用处理过程 System Call用户程序A0SUB0SUB1SUBiSUBn
30、A1AiAn系统调用处理子程序取系统功能号找入口地址表相应入口地址结束处理恢复现场A0A1AiAn保护CPU现场陷入指令系统调用陷入机构入口地址表系统调用参数传递一是由访管指令或陷入指令自带参数,直接参数 间接参数二是通过CPU的通用寄存器传递参数,或 在主存的一个块或表中存放参数,其首地址送入寄存器,实现参数传递。三是在主存中开辟专用堆栈区域传递参数。系统调用与函数调用的区别1)调用形式和实现方式不同。2)被调用代码的位置不同。3)提供方式不同。1.3.3操作接口与系统程序 1.作业控制方式 作业接口是操作系统为用户操作控制计算机工作和提供服务的手段集合,通常可借助操作控制命令、图形操作界面
31、(命令)、以及作业控制语言(命令)等来实现 作业控制方式联机作业控制方式与作业控制语言脱机作业控制方式与操作控制命令联机作业控制接口-操作控制命令 命令行方式 批命令方式 图形化方式脱机作业控制接口作业控制语言 批处理接口:作业控制语言JCL(Job Control Language)。用户使用JCL语句,把运行意图(需要对作业进行的控制和干予)写在作业说明书上,将作业连同作业说明书一起提交给系统。批处理作业的调度执行过程,系统调用JCL语句处理程序或命令解释程序。IBM 370使用JCL处理批作业的例子/HAROLD JOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLAS
32、S=B/COMP EXEC PGM=IEYFORT/SYSPRINT DD SYSOUT=A/SYSLIN DD DSNAME=SYSL,DISP=OLD,VOLUME=SER=123/SYSIN DD*/*/GO EXEC PGM=FORTLINK/SYSPRINT DD SYSOUT=A/FTOTF001 DD UNIT=SYSCP/GO SYSIN DD*/*/.命令解释程序 命令命令解释程序的实现:一是自带命令执行代码,收到命令后,便转向相应命令处理代码执行,可以使用“系统调用”帮助完成任务,由于用到终端进程的地址空间,故这类命令不宜过多;二是由专门“实用程序”实现,执行时把命令对应的
33、处理文件装入主存,完成命令功能。操作系统把两者结合起来,简单命令由命令解释程序直接处理;复杂命令由独立的实用程序完成。3.Linux命令解释器shell执行流程id0无有 读命令行 获命令名,按exec()组 织参数id=fork()终端进程Id=0有”&”吗Wait等子进 程结束 显示提示符”$”子进程exec()替换 进程映象 运行命令 文件 exit()出让 处理器 子进程 终止 子进程 运行4.系统程序(1)系统程序又称实用程序或支撑程序(Utilities),虽非操作系统的核心,但却必不可少,为用户程序的开发、调试、执行、和维护解决带有共性的问题或执行公共操作,操作系统以操作命令形式
34、向用户提供系统程序。它的功能和性能很大程度上反映了操作系统的功能和性能。系统程序(2)支撑程序的分类:文件管理 状态信息 程序设计语言支持 程序的装入和执行支持 通信 其它软件工具 1.3.4 Linux系统调用及实现机制(1)Linux系统调用执行流程int main()read();int read int$0 x80;Entry(system_call)push%eax SAVE_ALL Call*SYS_NAME(sys_call_table)(,%eax;)Entry(ret_from_sys_call)restore_all:RESTORE_ALLIret;asmlinkage l
35、ongsys_read()return;用户态内核态应用程序C库封装例程异常处理程序内核函数(2)Linux系统调用实现机制 1)系统调用初始化 set_system_gate(0 x80,&system_call)2)系统调用公共入口 system_call()是系统调用的公共入口,功能是:保护现场,进行正确性检查,根据系统调用号跳转到具体内核函数,该内核函数执行完毕时转向下一步。ret_from_sys_call(),完成返回用户空间前的最后检查,用RESTORE_ALL宏恢复现场并执行iret 指令返回用户断点。3)保护现场 系统调用处理时的核心栈内容SSESPEFLAGSCSEIP系统
36、调用号ESDSEAXEBPEDIESIEDXECXEBX.硬件 完成 软件 完成4)参数传递 系统调用参数在5个以下。依次存放在寄存器EBX、ECX、EDX、ESI及EDI中。系统调用返回值放在EAX中返回。系统调用参数超过5个时,存放在内存参数区,其地址通过寄存器传送。5)系统调用号和系统调用表(1)#define _NR_exit1#define _NR_fork2#define _NR_read3#define _NR_write4#define _NR_open5#define _NR_close6 系统调用号和系统调用表(2).data ENTRY(sys_call_table)/*
37、入口*/.long SYMBOL_NAME(sys_ni_syscall)/*0、空项*/.long SYMBOL_NAME(sys_exit)/*1*/.long SYMBOL_NAME(sys_fork)/*2*/.long SYMBOL_NAME(sys_read)/*3*/.long SYMBOL_NAME(sys_write)/*4*/.long SYMBOL_NAME(sys_open)/*5*/.long SYMBOL_NAME(sys_close)/*6*/转跳语句为:call*SYMBOL_NAME(sys_call_table)(,%eax,4)1.4 操作系统结构和运行模
38、型 1.4.1 操作系统结构分类 1.4.2 操作系统结构设计 1.4.3 操作系统内核 1.4.4 操作系统运行模型1.4.1 操作系统结构分类(1)操作系统设计呈现出以下特征:复杂程度高,生成周期长,正确性难保证。操作系统结构设计有三层含义:一、是研究操作系统整体结构,如功能如何分块,相互如何交互,及考虑构造它的过程和方法;二、是研究操作系统程序局部结构,包括数据结构和控制结构;三、是操作系统运行时的组织,如系统是否组织成进程或线程?在系统空间还是在用户空间运行?操作系统结构分类(2)1.单体式结构 2.层次式结构 3.虚拟机结构 4.微内核结构整体式结构操作系统 系统服务系统服务应用程序
39、应用程序应用程序应用程序 裸裸 机机层次式结构操作系统 THETHE操作系统层次结构操作系统层次结构5 5层层 系统操作员(进程)系统操作员(进程)4 4层层 用户进程用户进程3 3层层 I/OI/O管理管理2 2层层 进程与操作员间通信进程与操作员间通信1 1层层 内存和磁鼓管理内存和磁鼓管理0 0层层 中断处理、定时器管理中断处理、定时器管理 、处理器调度,提供多、处理器调度,提供多 道程序环境。道程序环境。虚拟机结构操作系统应用程序 应用程序 应用程序 CMS CMS CMS VM/370 System/370裸机 370虚拟机系统调用陷阱陷阱I/O指令微内核结构操作系统1.4.2 Li
40、nux操作系统结构设计 Linux采用单体式结构设计:1)系统设计时作为一个单独的大过程;2)系统运行时是一个大二进制映像;3)引入加载模块和卸载模块机制。Linux 内核有以下部分组成:1)核心部分:进程调度、进程通信和管理、主存 和虚存管理、VFS和文件管理、设备驱动和管理 、网络驱动和管理等。2)外围部分:shell、图形用户界面和一组实用工具。Linux内核子系统及其依赖关系 虚存管理和主存管理网络管理和网络驱动VFS和文件管理设备管理和设备驱动进程管理和进程通信进程调度 块设备 内存字符设备 网卡硬件层硬件层软件层Linux内核子系统依赖关系举例 进程调度,其他子系统大都依赖于它;进
41、程管理与虚存管理之间的依赖关系;进程通信与虚存管理之间的依赖关系;VFS与网络子系统之间的依赖关系;VFS与虚存管理之间的依赖关系;VFS与设备管理子系统之间的依赖关系。1.4.3操作系统内核 1.内核的概念 内核(kernel)是作为可信软件来提供支持进程并发执行的基本功能和基本操作的一组程序模块。内核通常驻留在内核空间,运行于核心态,具有访问硬设备和所有主存空间的权限,是仅有的能执行特权指令的那部分程序。在内核的支撑下,机器功能得到扩展、进程运行环境得到改善,安全性得到保证,系统效率得到提高。内核分类:单内核和微内核。Linux单内核结构 用户态 系统库(函数库)应用程序 系统调用接口 模
42、块内核(进程管理、存储管理、文件管理、设备管理、网络管理)设备 驱动 计算机硬件核 心态单 内核2.内核的功能(1)中断处理。(2)时钟管理。(3)短程调度。(4)原语管理。3.内核的属性 内核是由中断驱动的;内核是不可抢占的;内核可以在屏蔽中断状态下执行;内核可以使用特权指令。4.虚拟机的特性(1)虚拟机没有中断,因而,进程设计者不再需要有硬件中断的概念,用户进程执行中无需处理中断。(2)虚拟机为每个进程提供一台虚处理器,每个进程就好象在各自的私有处理器上顺序地推进,实现了多进程并发执行。(3)虚拟机为进程提供功能强大的指令系统,即它们能够使用机器非特权指令和系统调用所组成的新的指令系统。5
43、.机制与策略分离(1)在策略与机制分离的操作系统中,解决应用问题均可分成两部分:“提供及实现确定的功能(机制),常常将机制作为系统的可信软件来实现”和“如何使用这些功能(策略),可在不可信的环境中定义策略”。机制与策略分离(2)例子1:调度机制与策略分离的例子;例子2:安全机制与策略分离的例子;例子3:模块动态加载和卸载机制与策略分离的例子。机制与策略分离的原则:(1)机制由OS实现,策略留给用户完成;(2)机制放在底层,策略放在高层;(3)机制集中在少数模块,策略可散布在系统多处。1.4.4 操作系统运行模型(1)操作系统本身是一组程序,也在处理器上运行,那么,操作系统程序是否组织成进程?它
44、是如何控制的、怎样执行的呢?它在什么模式下运行呢?从操作系统的运行方式来看,可分成:1)嵌入应用进程中运行模型;2)作为独立进程运行模型。操作系统运行模型(2)嵌入应用进程中嵌入应用进程中运行模型运行模型核心态用户态内核函数内核函数内核函数应用进程应用进程进程切换函数应用进程操作系统的运行模型(3)作为独立进程运行模型作为独立进程运行模型微内核(进程切换函数)应用进程OS函数用户态核心态应用进程OS函数应用进程OS函数1.5流行操作系统简介1.5.1 UNIX操作系统家族1.5.2 自由软件和Linux操作系统1.5.3 IBM系列操作系统1.5.1 UNIX操作系统(1)1 雏形阶段 2 成
45、型阶段 3 商业化阶段 4 标准化阶段 UNIX操作系统(2)V1(71V1(71年年)V3(73V3(73年年)V6(75V6(75年年)V7V7、V8V8 V9 V9V10(89V10(89年年)Plan9 Plan91BSD(781BSD(78年年)2BSD(782BSD(78年年)3BSD(793BSD(79年年)4BSD(804BSD(80年年)4.2BSD4.2BSD4.3BSD4.3BSD4.4BSD(934.4BSD(93年年)2.9BSD2.9BSD2.10BSD2.10BSD2.11BSD2.11BSD V7(78 V7(78年年)PWBPWBPWB2PWB2systems
46、ystemsystemsystem.2(84.2(84年年).3(87.3(87年年).3.2.3.2SVR4(89)SVR4(89)Xenix Xenix Xenix2 Xenix2 SCO SCO IBM AIX IBM AIX SUN OS SUN OS Solaris Solaris OSF1 OSF1 Mach MachDec OSFDec OSFDigital UNIXDigital UNIXTur64 UNIXTur64 UNIXHP UXHP UX Linux LinuxUNIX操作系统(3)UNIX体系结构 包含四个基本组成部分:内核(Kernel)、Shell、文件系统 公
47、用程序UNIX操作系统(4)UNIX主要特点UNIX发展趋势计算机发展史上,没有哪个程序设计语言像C那样得到如此广泛的流行,也没有哪个操作系统像UNIX那样获得普遍的青睐和应用,对整个软件技术和软件产业都产生了深远的影响,1983年Ritcchie和Thompson共同获得了ACM图灵奖和软件系统奖。1.5.2自由软件和Linux操作系统 商业软件 共享软件 自由软件 自由软件是指遵循通用公共许可证GPL(General public License)规则,保证您有使用上的自由、获得源程序的自由,可以自己修改的自由,可以复制和推广的自由,也可以有收费的自由的一种软件 GNU的含义是GNU is
48、 not UNIX的意思,由自由软件的倡导者Richard stallman先生指导并启动的一个组织成立了自由软件基金会 GNU写出一套和UNIX兼容,但又是自由软件的UNIX系统,GNU 完成了大部分外围工作,包括外国命令gcc/gcc+,shell等,最终Linux内核为GNU工程划上了一个完美句号Linux操作系统 Linux是由芬兰藉科学家Linus Torvalds于1991年编写完成的操作系统内核。许多人对Linux进行改进、扩充、完善,做出 了关 键 性 贡 献。Linux由最初一个人写的原型变成在Internet上由无数志同道合的程序高手们参与的一场运动。Linux操作系统的技
49、术特点。1.5.3 IBM系列操作系 1.IBM操作系统发展历史 2.几种IBM操作系统简介 (1)OS/390 (2)Z/OS (3)OS 操作系统教程(第5版)第2章 处理器管理高等教育出版社出版2014年1月第二章 处理器管理2.1 处理器状态 2.2 中断技术2.3 进程及其实现2.4 线程及其实现2.5 Linux进程2.6 处理器调度2.7 Linux调度算法2.1处理器状态2.1.1处理器2.1.2程序状态字2.1.1 处理器状态寄存器(1)计算机系统的处理器包括一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,比主存容量小,但访问速度快。这组寄存器所存储的信息与程序的
50、执行有很大关系,构成了处理器现场。寄存器(2)通用寄存器-EAX,EBX,ECX和EDX 指针及变址寄存器-ESP,EBP,ESI及EDI 段选择符寄存器-CS、DS、SS、ES、FS、GS 指令指针寄存器和标志寄存器-EIP、EFLAGS 控制寄存器-CR0,CR1,CR2和CR3 外部设备使用的寄存器寄存器(3)EAXEBXECXEDXAXBXCXDXESPEBPESIEDISPBPSIDI寄存器(4)CSDSSSESFSGSIPEFLAGSCR0CR1CR2 CR32.特权指令与非特权指令(1)机器指令的集合称指令系统(1)数据处理类指令;(2)转移类指令;(3)数据传送类指令;(4)移