当前位置: 代码迷 >> 综合 >> 《Operating System Concepts(操作系统概念)》课程学习(1)——Chapter 1 Introduction(第1章 绪论)
  详细解决方案

《Operating System Concepts(操作系统概念)》课程学习(1)——Chapter 1 Introduction(第1章 绪论)

热度:50   发布时间:2023-10-01 07:49:20.0

操作系统概念 Operating System Concepts

说起操作系统,我想在坐的各位同学都不会陌生。因为无论我们想用计算机干什么,首先要做的就是启动操作系统,任何软件的运行都离不开操作系统的支持。

比如大家最熟悉的就是Windows操作系统。

除了Windows操作系统,还有什么其它的操作系统?

可能有的同学还接触过Linux操作系统,Apple公司的Macintosh系统。(关于Macintosh操作系统还有一个有趣的小故事,现在我先不讲,一会儿我再讲)。

我们都知道操作系统是非常重要的, 《操作系统概念》这门课也是非常重要的。

《操作系统概念》是计算机专业的主干课,同时也是一门必修课,所以我们应该认真学习这门课。现在操作系统已经成为了一门考研统考课,所以有志于考研的同学就更应该认真学习了。

在正式开始学习这门课程之前,首先让我们针对这门课程思考3个问题。

three questions(3个问题)

What

what is the course? 这门课的主要内容是什么?

Why

why do we learn the course? 为什么要学习这门课?

How

how to learn? 如何学习这门课?

多年的学习经验让我养成了一个习惯,就是无论学什么课之前,都要先问自己3个W问题:What, Why, How。

What就是这门课的主要内容是什么?它是讲什么的?你能不能用一两句话,简明扼要地说清楚?

清楚了这门课的主要内容之后,接下来就要思考Why,就是为什么要学这门课。我记得有一句名言叫“兴趣是最好的老师”,如果连为什么要学这门课都搞不清楚,恐怕你很难对这门课发生兴趣,那么学习起来就会非常的痛苦。

当我们为学习一门课程找到了原因之后,剩下的就是问问自已HOW了,也就是如何学习这门课。学习是一项讲究方法的工作,如果掌握了正确的学习方法,你就会事半功倍,否则可能就会落个费力不讨好。

下面,我们就针对操作系统这门课,一起思考一下这3个问题。

What is the course?

操作系统的基本原理、组成结构、设计方法和实现技术

  • 进程管理 (Process Management)
  • 内存管理 (Memory Management)
  • 存储管理 (Storage Management)
  • I/O设备  (I/O System)

操作系统概念是一门涉及较多硬件知识的计算机系统软件课程,在计算机的软、硬件课程设置上,起着承上启下的作用。这门课不是给大家讲解操作系统如何使用的一门课,而是一门关于如何设计和实现操作系统的课程。从这门课,我们可以学到操作系统的基本原理、组成结构、设计方法和实现技术。具体包括进程管理、内存管理、磁盘管理和输入输出设备的管理

  • Process:过程,进程,对CPU的调度和分配。
  • Memory:记忆,内存。
  • I/O:输入输出。

Why to learn?

1、设计操作系统或者修改现有的系统。

2、加深对使用的OS的理解,有利于深入编程。

用户为了开发应用程序必须与操作系统打交道。

3、编程时借鉴操作系统的设计思想和算法。

操作系统中所用的许多概念和技巧可以推广应用到其他领域。

4、选择购买操作系统。

无论将来是否从事操作系统的开发工作,都可以从操作系统概念这门课中受益匪浅!

下面,分析一下,同学们学习操作系统的现实意义。

1、设计操作系统或者修改现有的系统

现有的操作系统,例如微软的Windows还有待于进一步完善,通过微软不断发布的补丁就可以看到这点。其实unix和linux也是在不断地修正自身的缺陷,或者为了满足新的需求而进行升级。北京时间2009年7月8日,Google正式宣布将开发操作系统Chrome,这意味着Google与微软之间的竞争已升级到了白热化阶段。因此,设计一个新的操作系统或者修改现有的操作系统就要求大量的,不仅掌握基本编程技术,还要精通操作系统原理的高级工程师来完成这项工作。

2、加深对使用的OS的理解,有利于深入编程

那么有的同学可能会问了,如果自己毕业后并不是进入微软或google这样的操作系统开发公司,那么学习操作系统对自己今后的工作是不是就没有用处呢?的确,很多同学毕业后,主要从事的工作还是在操作系统的基础上开发应用软件系统,而不是直接修改操作系统本身。但是开发应用软件系统,也有一个层次之分。深入地编程,往往是要与操作系统直接打交道的,也就是利用操作系统提供的API,调用计算机的底层功能,实现高级的软件功能。  举例:陈亮,月薪13K,赛门铁克 11K(Nod)。

3、编程时借鉴操作系统的设计思想和算法

另外,我们知道,现在的集成开发环境已经将底层的编程技术封装得很好了。即使不是计算机科班出身的同学,只要是对软件编程感兴趣的,也可以编写出自己需要的应用程序。那么,我们这些科班出身的同学的优势在哪儿呢?如果,对于同样的一个软件功能,我们能用更短的程序实现,或者我们的程序所采用的算法复杂度更低,或者具有更好的可扩展性,那么我们就更有竞争力,就更有可能在将来的工作竞聘中胜出!操作系统实际上也是一个软件系统,只是这个软件系统特别的复杂,所以在开发过程中隔入很多经典的设计思想和算法,如果能在我们编程时借鉴这些经典的思想和算法,就能编写出比别人优秀的程序。

因此,无论你将来是否从事操作系统的开发工作,都可以从操作系统这门课中受益匪浅。

Your goals

基 本 目 标

1、对操作系统的基本概念、基本结构及运行环境有深入的认识;

2、深入到操作系统的内部,理解并掌握操作系统的基本原理、设计方法及实现技术;

高 级 目 标

3、系统级编程能力的提高;

4、思维方式的学习,权衡(Trade Off);

5、了解操作系统的演化过程、发展研究动向。

当我们知道了为什么要学习这门课之后呢,就应该明确自己的学习目标。我给大家设立了两个级别的目标:基本目标和高级目标。基本目标包括两条:

1、对操作系统的基本概念、基本结构及运行环境有深入的认识;

2、深入到操作系统的内部,理解并掌握操作系统的基本原理、设计方法及实现技术;

实际上,这两条基本目标就是要求我们对课程的主要内容熟练掌握。当然这也是我们最后考试的主要考查内容。

除了这两条基本目标以外,同学们还应该给自己设立更高级的学习目标。一个是提高系统级编程能力。前面我们已经讲过了什么叫“系统级编程能力”,就是深入编程的能力。

与计算机领域的其他发展(如硬件系统、其他软件)一样,操作系统的每一步发展都是权衡的结果:

  • 可能性与必要性的权衡
  • 性能与代价的权衡
  • 安全与效率的权衡

如果有的同学通过本课的学习,对操作系统的研究产生了兴趣,立志于从事操作系统的研发工作,还应该通过本课程的学习了解操作系统的演化过程和发展研究动向。如果谁能达到这个目标,老师就很欣慰了。

操作系统概念课程的特点:

  • 实践性强(从实践总结出原理);
  • 抽象层次高;
  • 概念多、涉及面广:涉及到计算机科学的很多领域(计算机体系结构/硬件、软件设计、程序设计语言、数据结构、算法、网络)。

当我们明确这门课的主要内容,以及为什么要学习这门课之后,接下来就要针对操作系统概念这门课,采用正确的学习方法。那么,这门课程有什么特点呢?  

1、实践性强。因为操作系统的基本原理都是从实践中总结出来的,所以呢,操作系统是一门实践性很强的课程,它不仅要求学生掌握操作系统的理论知识,也要求培养学生实际动手能力。  

2、抽象层次高。和编程语言的学习相比,操作系统概念具有较高的抽象层次。我们学习C语言时,几乎每学一条语句就能够在计算机上验证,如果只学一条Print语句,也能实现HelloWorld的功能。但是操作系统中的很多概念和原理就很难进行直观的验证了。  

3、概念多、涉及面广:涉及到计算机科学的很多领域(计算机体系结构/硬件、软件设计、程序设计语言、数据结构、算法、网络)

因此,学好操作系统概念并不是一件轻松的事。

How to learn?那么我们应该如何把它学好呢?

  • 按时上课,认真听讲,理解原理;
  • 阅读参考书,扩展视野;
  • 阅读代码,分析实例;
  • 上机实践;
  • 记笔记,思考,讨论,提问;
  • I hear and I forget, I see and I remember, I do and I understand.
  • Learn OS concepts by coding them!

教材

《操作系统概念 第七版》(影印版)Operating System Concepts,Abraham SilberschatZ etc.编著,高等教育出版社,2007年3月

参考书目

《计算机操作系统  第三版》 汤小丹、梁红兵 哲凤屏、汤子瀛等,西安电子科技大学出版社,2007年;

《操作系统—内核与设计原理》 William Stallings,电子工业出版社,2003年3月;

《现代操作系统》 Andrew S.Tanenbaum,机械工业出版社,1999年11月;

《操作系统教程》 孟静,高等教育出版社,2001年5月;

=======================================================

以上内容是引论;以下内容是第一章的开始,即绪论。

=======================================================

Chapter 1 Introduction(第1章 绪论)

Chapter1 Introduction

操作系统的概念(What Is an Operating System?) 批处理操作系统(Batch Systems) 分时操作系统(Time-Sharing Systems) 个人操作系统(Personal-Computer Systems) 并行操作系统(Parallel Systems) 实时操作系统(Real-Time Systems) 分布式操作系统(Distributed Systems)

  相关解决方案