[转]操作系统原理知识“妙”问“趣”答
我们每天都同操作系统打交道,了解一些操作系统原理上的知识是绝对有必要的,它可以让你了解操作系统内部是怎么工作的,为什么会出现这样那样的问题,为我们解决这些问题提供思路。
本文完全是为普通电脑用户写的,省略了所有难以理解的算法、原理,没有太多细节上的东西,只是针对普通电脑用户可能感兴趣的问题给出了实现思 想。写这些东西只是我的一相情愿,就怕我还是写得深了些,初学者读不懂。如果这10K文字能让你对操作系统有更深的了解,那也就不枉了这几个汗流浃背的夏 日午后了。
Q:什么是中断?
A:中断嘛,举个容易理解的例子吧。
比如莲莲和唐唐在下象棋,眼看莲莲就快招架不住了,正当此紧要关头,唐唐的女友来了,非要唐唐陪她上街买衣服不可(唐唐晕倒:-)),于是唐 唐不得不同莲莲商量,先把棋盘封了,待买完衣服后继续战斗。掌灯时分,唐唐带着满脸疲惫回到了棋盘前,结果莲莲不费吹灰只力便反败为胜。这就是整个中断过 程。我们来看看中断过程是如何发生的:
1)中断请求:唐唐的女友要他逛街
2)中断响应:唐唐准备放下棋局陪女友逛街
3)现场保护:先把棋盘封了
4)中断处理:唐唐陪女友逛街买衣服
5)恢复现场:把棋盘解封
6)中断返回:继续战斗
在计算机中,中断机制是非常重要的,它用于协调系统对各种外部事件的响应和处理,并且是实现多任务的必要条件。可以这么说,如果没有中断机制,就没有计算机。
噢,对了,如果唐唐把棋移到密室中下,不让他的女友打扰,这就叫“中断屏蔽”。
Q:RING3、RING0是什么意思?
A:这得从CPU指令系统(用于控制CPU完成各种功能的命令)的特权级别说起。在CPU的所有指令中,有一些指令是非常危险的,如果错用, 将导致整个系统崩溃。比如:清内存、设置时钟等。如果所有的程序都能使用这些指令,那么你的系统一天死机n回就不足为奇了。所以,CPU将指令分为特权指 令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序只能使用那些不会造成灾难的指令。形象地说,特权指令就是那些儿童 不宜的东东,而非特权指令则是老少皆宜。
Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3。Windows只使用其中的两个级别 RING0和RING3,RING0只给操作系统用,RING3谁都能用。如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令” 错误信息。尽管有CPU的特权级别作保护,遗憾的是WINDOW98本身漏洞很多,使用Windows 98的系统一天死机n回也是正常的。
Q:为什么要有操作系统?
A:哈哈,难道你还没感受到操作系统的魅力吗?因为有了象Windows这样优秀的操作系统,我们的机器才一天到晚地出问题――这个那个的问 题,我们才需要一天到晚地重装Windows,这样才使我们牢牢地记住了象微软这样的公司的名字,和象比尔盖茨这样优秀的程序员兼老板的名字……(以上文 字请斑竹删去)
好了,说正经的,尽管Windows不稳定,但绝对不能否认它是当今最优秀的操作系统之一。操作系统在计算机中起着重要作用,它为所有的应用 程序提供一个运行环境,并将应用程序同具体硬件隔离。比如在机器中换一块声卡,只需要重新安装一下声卡驱动程序就完事了,但如果没有操作系统,你就必须为 这块新的声卡重新购买所有的应用程序,以便这些应用程序能够认识这块声卡并能够使用它。
操作系统就象计算机的大管家,管理着计算机的各种资源,比如内存、磁盘、CPU等。应用程序想使用这些资源,都必须经过操作系统同意(资源申 请),并且由操作系统统一安排使用时间(资源分配),应用程序用完后必须将资源还给操作系统(资源回收),以便其他应用程序使用。就这样,计算机系统在操 作系统的管理下以最可能高的效率有条不紊地工作着。
Q:什么叫进程?进程同程序有什么区别?
A:进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程 可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就不必我多讲了吧,所 有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。
在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。
Q:什么是多任务?
A:在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。
多任务带来的好处是明显的,比如你可以边听mp3边上网,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。
Q:什么是“并发”?什么是“并行”?
A:俗话说,一心不能二用,这对计算机也一样,原则上一个CPU只能分配给一个进程,以便运行这个进程。我们通常使用的计算机中只有一个 CPU,也就是说只有一颗心,要让它一心多用,同时运行多个进程,就必须使用并发技术。实现并发技术相当复杂,最容易理解的是“时间片轮转进程调度算 法”,它的思想简单介绍如下:在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如10毫秒),这样用户根 本感觉不出来CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样。但实际上在任何一个时间内有且仅有一个进程占有CPU。
如果一台计算机有多个CPU,情况就不同了,如果进程数小于CPU数,则不同的进程可以分配给不同的CPU来运行,这样,多个进程就是真正同时运行的,这便是并行。但如果进程数大于CPU数,则仍然需要使用并发技术。
在Windows中,进行CPU分配是以线程为单位的,一个进程可能由多个线程组成,这时情况更加复杂,但简单地说,有如下关系:
总线程数<= CPU数量:并行运行
总线程数> CPU数量:并发运行
并行运行的效率显然高于并发运行,所以在多CPU的计算机中,多任务的效率比较高。但是,如果在多CPU计算机中只运行一个进程(线程),就不能发挥多CPU的优势。
值得注意的是,Windows 9x并不支持多CPU系统,如果在多CPU系统上安装Windows 9x,有再多的CPU也是白搭。
ps:对于操作系统的理解有比较形象的认识。。
本文完全是为普通电脑用户写的,省略了所有难以理解的算法、原理,没有太多细节上的东西,只是针对普通电脑用户可能感兴趣的问题给出了实现思 想。写这些东西只是我的一相情愿,就怕我还是写得深了些,初学者读不懂。如果这10K文字能让你对操作系统有更深的了解,那也就不枉了这几个汗流浃背的夏 日午后了。
Q:什么是中断?
A:中断嘛,举个容易理解的例子吧。
比如莲莲和唐唐在下象棋,眼看莲莲就快招架不住了,正当此紧要关头,唐唐的女友来了,非要唐唐陪她上街买衣服不可(唐唐晕倒:-)),于是唐 唐不得不同莲莲商量,先把棋盘封了,待买完衣服后继续战斗。掌灯时分,唐唐带着满脸疲惫回到了棋盘前,结果莲莲不费吹灰只力便反败为胜。这就是整个中断过 程。我们来看看中断过程是如何发生的:
1)中断请求:唐唐的女友要他逛街
2)中断响应:唐唐准备放下棋局陪女友逛街
3)现场保护:先把棋盘封了
4)中断处理:唐唐陪女友逛街买衣服
5)恢复现场:把棋盘解封
6)中断返回:继续战斗
在计算机中,中断机制是非常重要的,它用于协调系统对各种外部事件的响应和处理,并且是实现多任务的必要条件。可以这么说,如果没有中断机制,就没有计算机。
噢,对了,如果唐唐把棋移到密室中下,不让他的女友打扰,这就叫“中断屏蔽”。
Q:RING3、RING0是什么意思?
A:这得从CPU指令系统(用于控制CPU完成各种功能的命令)的特权级别说起。在CPU的所有指令中,有一些指令是非常危险的,如果错用, 将导致整个系统崩溃。比如:清内存、设置时钟等。如果所有的程序都能使用这些指令,那么你的系统一天死机n回就不足为奇了。所以,CPU将指令分为特权指 令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序只能使用那些不会造成灾难的指令。形象地说,特权指令就是那些儿童 不宜的东东,而非特权指令则是老少皆宜。
Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3。Windows只使用其中的两个级别 RING0和RING3,RING0只给操作系统用,RING3谁都能用。如果普通应用程序企图执行RING0指令,则Windows会显示“非法指令” 错误信息。尽管有CPU的特权级别作保护,遗憾的是WINDOW98本身漏洞很多,使用Windows 98的系统一天死机n回也是正常的。
Q:为什么要有操作系统?
A:哈哈,难道你还没感受到操作系统的魅力吗?因为有了象Windows这样优秀的操作系统,我们的机器才一天到晚地出问题――这个那个的问 题,我们才需要一天到晚地重装Windows,这样才使我们牢牢地记住了象微软这样的公司的名字,和象比尔盖茨这样优秀的程序员兼老板的名字……(以上文 字请斑竹删去)
好了,说正经的,尽管Windows不稳定,但绝对不能否认它是当今最优秀的操作系统之一。操作系统在计算机中起着重要作用,它为所有的应用 程序提供一个运行环境,并将应用程序同具体硬件隔离。比如在机器中换一块声卡,只需要重新安装一下声卡驱动程序就完事了,但如果没有操作系统,你就必须为 这块新的声卡重新购买所有的应用程序,以便这些应用程序能够认识这块声卡并能够使用它。
操作系统就象计算机的大管家,管理着计算机的各种资源,比如内存、磁盘、CPU等。应用程序想使用这些资源,都必须经过操作系统同意(资源申 请),并且由操作系统统一安排使用时间(资源分配),应用程序用完后必须将资源还给操作系统(资源回收),以便其他应用程序使用。就这样,计算机系统在操 作系统的管理下以最可能高的效率有条不紊地工作着。
Q:什么叫进程?进程同程序有什么区别?
A:进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程 可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就不必我多讲了吧,所 有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。
在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。
Q:什么是多任务?
A:在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。
多任务带来的好处是明显的,比如你可以边听mp3边上网,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。
Q:什么是“并发”?什么是“并行”?
A:俗话说,一心不能二用,这对计算机也一样,原则上一个CPU只能分配给一个进程,以便运行这个进程。我们通常使用的计算机中只有一个 CPU,也就是说只有一颗心,要让它一心多用,同时运行多个进程,就必须使用并发技术。实现并发技术相当复杂,最容易理解的是“时间片轮转进程调度算 法”,它的思想简单介绍如下:在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如10毫秒),这样用户根 本感觉不出来CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样。但实际上在任何一个时间内有且仅有一个进程占有CPU。
如果一台计算机有多个CPU,情况就不同了,如果进程数小于CPU数,则不同的进程可以分配给不同的CPU来运行,这样,多个进程就是真正同时运行的,这便是并行。但如果进程数大于CPU数,则仍然需要使用并发技术。
在Windows中,进行CPU分配是以线程为单位的,一个进程可能由多个线程组成,这时情况更加复杂,但简单地说,有如下关系:
总线程数<= CPU数量:并行运行
总线程数> CPU数量:并发运行
并行运行的效率显然高于并发运行,所以在多CPU的计算机中,多任务的效率比较高。但是,如果在多CPU计算机中只运行一个进程(线程),就不能发挥多CPU的优势。
值得注意的是,Windows 9x并不支持多CPU系统,如果在多CPU系统上安装Windows 9x,有再多的CPU也是白搭。
ps:对于操作系统的理解有比较形象的认识。。