操作系统作为计算机专业研究生考试的专业课,已经纳入专业课统考范畴,与数据结构、计算机组成原理、计算机网络并列,可见其重要性。但是,参加希赛教育计算机考研专业课辅导的学员普遍反映,操作系统没有逻辑性,学习起来比较枯燥,基本概念难以背下来。那么,在研究生考试的备考过程中,如何学习操作系统,如何学好操作系统呢?在本文中,笔者谈一些自己的看法,希望对考生能有所帮助!
操作系统怎么学,首先要想操作系统是怎么来的,在没有操作系统的年代里,人们是怎么编程的。这是首要的问题。INTEL官方的CPU文档,总是分为应用级编程、系统级编程、指令集这三块,其中系统级编程这一块最复杂,我不说内容,就单从文件的大小来看,IA-64编程手册的应用级编程卷是2MB,系统卷却有6MB。就连IA-32编程手册上的系统卷部分也远比应用卷的要多。当然这些内容我还没有看,不过从目录当中,觉得有很多相似的地方,比如CPU内存寻址、虚拟存储器管理、中断与保护等等,可以从INTEL的CPU文档上看出,各种CPU或机器虽然各有各的不同,各有各的特点,但是目前的CPU要解决的核心问题就是那么几块,要解决的就是象如何寻址内存,如何管理虚拟存储,如何实现中断,如何保护资源等等。
我们都很清楚,计算机的操作系统就是在为应用级编程提供服务,提供什么服务,就是提供象诸如如何内存寻址,如何管理虚拟存储器、如何进行中断,如何管理磁盘,等等。操作系统为我们做掉了系统级编程中最繁重的一块,所以我们在用应用级编程比如用C++编程的时候才会那么舒服,用int分配一个变量这内存地址就来了,某个函数要调用另一个函数执行的时候这执行行程就能跳到那个函数,内存不够了,没有关系,操作系统自动启动虚拟存储器(只不过慢了些),所以应用级编程是最舒服的,操作系统级编程比较难,而直接做单片机可能就是最难的了。因为即使就是操作系统级编程,可能很多有关CPU底层的东西也已经做掉了,你要做的可能就是要了解操作系统做掉了哪些功能,如何调用。
在没有操作系统的时候,程序员的日子可不象现在的那么好过,因为做每个程序,都需要你自己去分配管理内存,不但要考虑如何高效的管理内存,还要知道如何进行过程跳转等等这一大堆的的细活,而这些细活在不同的CPU上的实现方式也是不同的,直到把这些问题都解决了以后,你才开始真正考虑你的应用方面的程序逻辑如何去编的问题。当然了,虽然有关CPU底层的系统级实现细节不一样,但是大至CPU系统级这一部分要解决哪几块问题这是一样的,所以在INTEL的官方文档上,无论是IA-32还是IA-64这两个编程手册的系统卷上,都是那么几块内容。
既然系统级要解决的几个任务都是相同的,程序员在编程的时候都要考虑这几方面的内容,那么可能就会想,为什么不把这些程序要解决的相同的任务给提取出来呢,这就形成了操作系统,操作系统的内核的任务,就是专门负责解决早期计算机程序员每次编程都必须要解决的几项系统级任务,这样一来,留给应用级的担子就非常的轻了,忘记在哪里看过,好像以前的数据库系统是属于应用软件的,可能同样是因为每个应用软件连同操作系统都需要一个数据库,所以就把数据库系统给单独提了出来做为系统软件了。
|