欢迎来到天天文库
浏览记录
ID:34144899
大小:9.51 MB
页数:246页
时间:2019-03-03
《操作系统设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、现在还是很初始的草稿版本,需要进一步修订、改进和增加内容。如发现内容有问题或有好的建议请电邮告诉我们(chyyuu@gmail.com),谢谢!操作系统设计与实现TheDesign&ImplementationofOperatingSystem陈渝向勇清华大学计算机系2011年6月1第1章操作系统简介[要点(OSP):OS定义:位于1.2.1][要点(OSP):OS抽象:位于1.2.2]对于在校的学生和已经参加工作的工程师而言,能否以较小的时间和精力比较全面地了解操作系统呢?陆游老夫子说过“纸上得来终觉浅,绝知此事要躬行”,也许在了解基本的操作系统概念和原
2、理基础上,通过实际动手来一步一步分析、设计和实现一个微型化的操作系统,会发现操作系统原来如此,概念原理和实际实现之间有紧密的联系和巨大的差异。一方面现在的操作系统课本越来越庞大和抽象,反而忽视了实践。要知道,操作系统的设计实现是在没有教科书的情况下完成的。换句话说,现有操作系统的实现,再有操作系统的课本。而另一方面实际的操作系统相当庞大,如Linux、Windows等,都是上百万行的源代码规模,实现这些软件的目的是给人用的,不是给人学的。能否在这两方面找到一个平衡?早期的UNIX操作系统和MIT教授FransKaashoek博士等基于UNIXv6设计的xv
3、6操作系统给了我们启发:对一个计算机专业的本科生而言,设计实现一个操作系统有挑战但是可行!本书想进行这样的教学尝试,以设计实现一个微型但全面的“麻雀”操作系统—ucore为基本目标,以增量式地完成各种基于ucore操作系统的实验为实践过程,以在此过程中逐步介绍的操作系统的基本概念和原理为实践指导,做到有“理”可循和有“码”可查,最终让读者了解和掌握操作系统的原理、设计与实现。1.1应具备的背景知识和学习环境设计实现操作系统其实就是设计实现一个软件,所以本书的例子和描述需要读者学习过计算机原理课程、程序设计课程,掌握C语言编程(了解指针等的编程),对基于In
4、tel80386处理器体系结构有一定的了解,大致了解基于基于Intel80386的汇编语言。本书涉及的例子和实验可在Windows环境和Linux环境下采用命令行(CLI)方式和集成开发环境(IDE)方式进行编译和运行,所以,最好能够有一台PC计算机用于进行操作系统实验。1.2操作系统的概念1.2.1操作系统的定义操作系统是计算机系统机构中的一个系统软件,它的职能主要有两个:对下面(也就是计算机硬件),有效地组织和管理计算机系统中的硬件资源(包括处理器、内存、硬盘、显示器、键盘、鼠标等各种外设);对上面(应用程序或用户),提供简洁的服务功能接口,屏蔽硬件管
5、理带来的差异性和复杂性,使得应用程序和用户能够灵活、方便、有效地使用计算机。为了完成这两个职能,操作系统需要在其内部实现中合理地组织计算机中的软硬件资源的使用分配和处理流程,使整个计算机系统能高效地运行。21.2.2操作系统的抽象操作系统为了能够更好地管理计算机系统并对应用程序提供便捷的服务,在操作系统的发展过程中,计算机科学家提出了如下四个个抽象概念,奠定了操作系统的基础。操作系统原理中的其他概念基本上都可基于上述这四个操作系统抽象。中断(Interrupt)简单地说,中断是处理器在执行过程中的突变,用来响应处理器状态中的特殊变化。比如当应用程序正在执行
6、时,产生了时钟外设中断,导致操作系统打断当前应用程序的执行,转而去处理时钟外设中断,处理完毕后,再回到应用程序被打断的地方继续执行。在操作系统中,有三类中断:外设中断(DeviceInterrupt)、陷阱中断(TrapInterrupt)和故障中断(FaultInterrupt,也称为exception,异常)。外设中断由外部设备引起的外部I/O事件如时钟中断、控制台中断等。外设中断是异步产生的,与处理器的执行无关。故障中断是在处理器执行指令期间检测到不正常的或非法的内部事件(如除零错、地址访问越界)。陷阱中断是在程序中使用请求操作系统服务的系统调用而引
7、发的有意事件。在后面的叙述中,如果没有特别指出,我们将用简称中断、陷阱、故障来区分这三种特殊的中断事件,在不需要区分的地方,统一用中断表示。进程(Process)简单地说,进程是一个正在运行的程序。在计算机系统中,我们可以“同时”运行多个程序,这个“同时”,其实是操作系统给用户造成的一个“幻觉”。大家知道,处理器是计算机系统中的硬件资源。为了提高处理器的利用率,操作系统采用了多道程序技术。如果一个程序因某个事件而不能运行下去时,就把处理器占用权转交给另一个可运行程序。为了刻画多道程序的并发执行的过程,就要引入进程的概念。从操作系统原理上看,一个进程是一个具
8、有一定独立功能的程序在一个数据集合上的一次动态执行过程。操作系统中
此文档下载收益归作者所有