




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章操作系统概述,计算机系统由硬件,系统程序和应用程序组成,Questions,你知道有哪些操作系统?你用过哪些操作系统?,Windows系列,Linux,Unix,MaxOS,AIX,Minix,VxWorks,DOS、FreeBSD、PalmOS、TinyOS、MVS,内容提要,什么是操作系统操作系统的功能操作系统的历史操作系统的结构各种典型OS的系统结构操作系统的设计和实现Minix操作系统概述,1.什么是操作系统,什么是操作系统?给个例子作为扩展了的机器虚拟机(自顶向下):以使用软盘为例,从复杂的驱动过程到简单的文件操作。作为资源管理器跟踪使用状况,满足和协调多个程序对软硬件资源的使用要求,提高利用率(自底向上)被竞争使用的系统资源多种多样,如CPU、内存、I/O和文件等。,2.操作系统的功能,OS的功能有哪些?管理者对内用户接口对外,3.操作系统的历史,第一代(1945-55)真空管和插板:无OS可言第二代(1955-65)晶体管和批处理:批处理OS第三代(1965-80)IC和多道程序:应用的逐步广泛和逐步升级的要求:兼容机的产生(IBM360)关键技术的出现:多道程序-起因和实现方法(p.7);Spooling;分时-交互的需要和随之带来的保护问题;小型机的成长和UNIX的出现第四代(1980-现在)个人计算机:PC的廉价、方便和广泛使用OS:DOSWINDOWS;UNIX;网络OS;分布式OS;MINIX的历史和LUNIX;,MINIX的历史,UNIXVersion6,源代码免费,许多大学在将OS时分析验研究UNIX的代码。AT&T在发布第7版本时,禁止在课程中研究其源代码,只讲理论AndrewS.Tanenbaum写了与UNIX完全兼容,单内核全新的OSMINIX。Minix没有借用Unix的一行代码Minix更加模块化,文件系统不是OS的一部分,而是作为一个用户程序在运行Minix注重可读性,Unix注重效率,MINIX的历史(续),Minix用C编写,容易移植Minix很短小,SmallisbeautifullMinix出现不久就出现了面向MInix的新闻组,数周之内就有40000用户订阅,很多人建议增加功能,二作者坚持不采纳,以保持其短小。芬兰的学生LinusTorvalds决定编写一个类似Minix的系统Linux,面向适用,而非教学,,Linux的历史,LinusTorvalds在Minix的新闻组中发布想开发一个OS,出于爱好最初是能在i386上运行的类UNIX的OS1999年发布Linux的2.4版本的内核Linux的出现,产生了一种文化:精髓是知识和技术应该为全人类共享。,4.操作系统的结构,整块式系统层次式系统虚拟机系统C/S系统,(1)操作系统的结构-整块式系统,操作系统系统调用执行过程,操作系统的结构-整块式系统,整块式系统:无结构,整个OS是一组过程的集合。但仍然有kernelcall,相应地有核心态和用户态(p.28),有一定的模块结构,monolithicsystemormodularsystem,模块结构的特点,模块结构的特点:模块由众多服务过程(模块接口)组成,可以随意调用其他模块中的服务过程优点:具有一定灵活性,在运行效率高缺点:功能划分和模块接口难保正确和合理;模块之间的依赖关系(功能调用关系)复杂(调用深度和方向),降低了模块之间的相对独立性不利于修改,(2)操作系统的结构-层次式系统,层次式系统:上层软件基于下层软件之上。THE系统(p.29),分层结构或虚拟机(续),从资源管理观点出发,划分层次在某一层次上代码只能调用低层次上的代码,使模块间的调用变为有序性系统每加一层,就构成一个比原来功能更强的虚拟机有利于系统的维护性和可靠性但是效率差,(3)操作系统的结构-虚拟机系统,虚拟机系统:多道程序和方便的界面。VM/370(p.30)(裸机硬件的精确复制);在pentium上运行老的DOS程序。是否使用exokernel来实现虚拟机。,(4)操作系统的结构-C/S系统,C/S系统:尽可能把OS所做的工作放到特定的用户程序中完成(客户进程/服务器进程)。P.32的C/S结构和分布式C/S。机制和策略分离。,Kernel的全部工作是处理客户和服务器之间的通信,Client-ServermodelorMicrokernel,微内核(micro-kernel):将更多操作系统功能放在核心之外,作为独立的服务进程运行;服务进程(或称作“保护子系统”)客户进程(系统客户和应用客户)需支持多进程本地过程调用(LPC,LocalProcedureCall):一种进程之间请求-应答式的消息(Message)传递机制。消息:是一定格式的数据结构。,操作系统的结构-C/S系统,每一部分较小,易于管理,一个部分崩溃,不会导致整个系统的崩溃;适合于分布式系统;,5.各种典型OS的系统结构,Linux的结构传统的UNIX结构现代UNIX结构WindowsNT体系结构Windows2000体系结构,Linux的结构,传统的UNIX结构,现代UNIX结构,WindowsNT体系结构,简化的Windows2000体系结构,简化的Windows2000体系结构,6.操作系统的设计和实现,1)DesignGoals设计目标UsergoalsOSshouldbeconvenienttouse,easytolearn,reliable,safe,andfast用户目标-操作系统应该便于使用,易学,可靠,安全并且快捷SystemgoalsOSshouldbeeasytodesign,implement,andmaintain,aswellasflexible,reliable,error-free,andefficient.系统目标-操作系统应该容易设计、实现和维护,还要灵活、可靠、无错误和高效,2)操作系统的设计原则,可维护性:容易修改与否称为可维护性;有三种可能的维护:改错性维护:改正已发现的错误;适应性维护:修改软件,使之适应新的运行环境(硬件环境和软件环境);如:操作系统的移植。完善性维护:增加新功能;可靠性:可靠性包括两方面:正确性:正确实现所要求的功能和性能;稳健性:对意外(故障和误操作)作出适当的处理;可理解性:易于理解,以方便测试、维护和交流;性能:有效地使用系统资源;尽可能快地响应用户请求;,3)MechanismsandPolicies机制和策略,机制确定怎样做事,策略决定要做什么,例如构建定时器是一个确保保护CPU的机制,但是决定对一个特殊的用户定时器设置多长是一个策略决定把策略从机制中分离(separation)是非常重要的原则,如果策略在后期要改变,它允许最大的灵活性(flexibility)基于微内核(Microkernel-based)的OS利用机制与策略相分离的思想到一个极致(extreme),通过实现原语构建块的基本集合,几乎与策略无关,允许增加更多的先进机制和策略,4)语言选择,传统上用汇编语言编写,现在可用高级语言编写用高级语言编写代码:canbewrittenfaster.编码快ismorecompact.更紧凑iseasiertounderstandanddebug.容易理解和调试以高级语言编写的OS更容易移植AnOSisfareasiertoport(movetosomeotherhardware)ifitiswritteninahigh-levellanguage.,5)SystemGeneration(SYSGEN)系统生成,操作系统被设计在任何类型的机器上运行;系统必须能在每一特定的机器上配置SYSGEN程序得到硬件系统特定配置的信息自举(Booting)-通过调入内核启动计算机(startingacomputerbyloadingthekernel.)自举程序(Bootstrapprogram)-存储在ROM中的代码,能够定位内核,调入内存,并开始其运行(codestoredinROMthatisabletolocatethekernel,loaditintomemory,andstartitsexecution.),7.Minix操作系统概述,Minix系统结构图Minix的代码结构组织与数据结构定义头文件的定义与组织各个部分简介,顺序进程模型,进程基本状态,顺序进程模型,Minix系统结构图,第一层,第二层,第三层,第四层,I/O任务,服务器进程,用户进程,系统核心,进程管理,第一,捕获陷入和中断、保存和恢复寄存器、调度以及向高层提供一个独立顺序进程模型第二,处理消息机制:检查目标进程的合法性、定位物理内存中的发送和接收缓冲区,以及向发送方接收方拷贝数据。,Minix系统结构图,第一层,第二层,第三层,第四层,I/O任务,服务器进程,用户进程,系统核心,进程管理,任务:IO进程,每类设备有一个IO进程,也称作“设备驱动程序“。第二层的任务和第一层的代码链接形成二进制程序,称作内核(kernel);第一层代码可以访问任意的内存,以及处理器,被赋予较任务更高的特权级,Minix系统结构图,第一层,第二层,第三层,第四层,I/O任务,服务器进程,用户进程,系统核心,进程管理,包含向用户进程提供有用服务的进程,特权级较低,不能直接访问IO端口,,1)代码结构组织,1)代码结构组织,进程管理,系统核心代码kernel/,独立代码模块mm、fs.,源代码,头文件,头文件的定义与组织,头文件有哪些功能?功能1:定义数据结构、定义函数接口功能2:宏定义,例如常量、错误代码功能3:设定编译开关,控制运行过程功能4:设定硬件开关,适应硬件环境功能5:设定配置开关,限定功能范围头文件的用法举例,软件的体系结构观点,Minix的公共头文件组织,适应底层硬件环境如何区别CPU的差别?适应编译环境如何遵循ANSI、POSIX等标准,适应不同编译环境?控制运行流程如何设定内部开关,控制有效范围和运行流程?适应应用环境如何实现可移植性,同时提供用户配置接口?实现基本功能为保持系统运行稳定和性能卓越而进行的定义与实现,与硬件环境相关的头文件,针对CPU和设备驱动的宏定义include/minix/config.h(2600行)针对键盘布局、硬盘分区的头文件include/minix/keymap.h、partition.h针对IBM硬件平台的专有头文件include/ibm/diskparm.h,partition.h,代码结构与数据结构,与编译环境相关的头文件,遵循ANSI规范的头文件include/ansi.h、stdlib.h遵循POSIX规范的头文件include/unistd.h、string.h、signal.h、fcntl.h、termios.hinclude/sys/types.h、ioctl.h、sigcontext.h、ptrace.h、stat.h、dir.h、wait.h,代码结构与数据结构,POSIX,PortableOperatingSystemInterface(可移植操作系统界面),与OS系统实现相关的头文件,基本数据类型与系统限制include/limits.h,errno.h系统实现所需头文件include/a.out.h可执行文件格式系统相关的数据类型和内部调用include/minix/const.h、type.h、syslib.h、callnr.h、com.h、boot.h,代码结构与数据结构,头文件的组织方法,分类保存头文件include/:最基本的公共头文件(不依赖软硬件环境)include/sys:遵循系统规范的头文件(Posix规范)include/minix:实现系统内部功能的头文件include/ibm:针对特定硬件平台的头文件头文件分类组织思想的讨论与反思分目录保存头文件,保持系统结构清晰,便于引用分类别定义头文件,便于代码维护和扩展对复杂系统而言,头文件的组织和定义是第一个难题,代码结构与数据结构,头文件中的玄机,预编译选项的应用实现自定义的系统配置与编译器相互结合,实现外部环境侦测实现功能的扩展与限制(termios.h)组合形成的复杂应用(Minix中的Errorcode定义举例)头文件的实现规范防止重复引用的错误(const.h分析)支持不同语言的结合头文件的包含次序全局变量的定义与实现(Table.c分析),代码结构与数据结构,Minix中的进程管理,使用通用的顺序进程模型使用三条原语发送和接收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信阳航空考试题目及答案
- 三甲医院住院医师规范化培训全科师资培训考试题及答案
- 2025年航天质量知识试题及答案
- 维修电工考级考证试题题库及答案
- 2025年风机检修培训试题及答案
- 安全用电考试题及答案
- smt基础知识考试试题及答案
- 跨国企业劳动合同制定与海外员工权益保障合同
- 高新技术研发项目资金拨付合同
- 2025公务员省考面试题及答案
- 乡镇综合执法工作培训
- 2025新会计法培训
- 小儿麻醉危机管理方案
- 成人床旁心电监护护理规程
- 本科生科研管理制度
- 大输液产品研究报告
- 2025版技术服务合同协议
- GB 5768.1-2025道路交通标志和标线第1部分:总则
- 江西红色文化考试试题及答案
- 食品仓库记录管理制度
- 企业团委管理制度
评论
0/150
提交评论