您的位置:首页 > 汽车 > 时评 > 初识操作系统

初识操作系统

2024/11/15 7:15:32 来源:https://blog.csdn.net/m0_73928695/article/details/139390116  浏览:    关键词:初识操作系统

操作系统概念

        操作系统是一个管理软硬件的软件。它通过管理好硬件资源和软件资源,从而实现对计算机用户提供良好的运行环境。作为一个程序员,了解操作系统是非常有必要的。

硬件

        要了解操作系统,首先必须了解硬件。因为硬件是计算机的基础,我们在计算机上做的所有操作最终都是硬件在执行工作。

        现在的计算机体系都是冯诺依曼计算机体系。冯诺依曼计算机的体系结构由五个基本部分组成:运算器、控制器、储存器、输入设备、输出设备。

其中的输入设备可以是:键盘,磁盘,麦克风,摄像头,网卡等;其中的输出设备可以是:显示器,磁盘,音响,网卡等;其中的存储器就是指的内存条;运算器和控制器通常是一起的叫做中央处理器,就是CPU;

        这些硬件设备都必须用 "线" 连起来才能协同工作,这些线被称为总线。 总线分为系统总线和I/O总线。计算机基础之总线与I/O总线_总线和io的比较-CSDN博客

        从上图可以看出,输入设备、输出设备、中央处理器他们都是通过存储器来进行数据交互的。为什么要这样设计呢?不可以去掉存储器,直接让输入设备、输出设备和中央处理器之间直接进行数据交互嘛?

        从理论上来说,直接让输入设备、输出设备和中央处理器之间直接进行数据交互是可行的。但是这样做有个问题,那就是输入设备、输出设备的数据传输速度和中央处理器比起来实在是太慢了。直接让输入设备、输出设备和中央处理器之间直接进行数据交互会导致计算机的处理效率极其低下。

        如果中央处理器的速度是纳秒,那么输入设备、输出设备的速度就是毫秒,之间差了10^6。导致中央处理器早就把数据处理完了,结果还得等输入设备、输出设备慢慢的输入输出。

        所以在中央处理器和输入设备、输出设备之间加入了一个中间人存储器。存储器的速度相当于微秒,处于中央处理器的速度和输入设备、输出设备的速度之间。存储器既充当数据的缓存器又加快了中央处理器输入输出数据的速度。极大的提升了计算机的处理效率,同时还把计算机的成本减低了。如果没有存储器我们想提高计算机的效率就不得不提高处理器和输入设备的速度,其中的成本是巨大的。

        所以冯诺依曼计算机体系的核心就是存储器——内存。我们计算机中执行的所有操作无非都是一种执行过程。先通过输入设备将数据输入到存储器中,中央处理器再去存储器里拿数据,中央处理器处理完数据后将计算结果输出到存储器中,最后输出设备从存储器中拿出计算结果。

        通过上面的推理得出计算机中的所有程序都必须先加载到内存中才能执行,就算是操作系统也不例外,因为这就是冯诺依曼计算机体系规定的。

软件

        操作系统是一个进行管理的软件。操作系统通过管理好软硬件资源给用户提供良好(稳定、高效、安全)的运行环境。

         操作系统通过管理好软硬件资源给用户提供良好的运行环境。但是操作系统是不相信任何用户的,如果用户想去调用操作系统来获取系统信息,那么就只能去调用操作系统给出的系统调用接口。

操作系统如何进行管理

管理就是对数据进行管理

        在我们的日常生活中,"管理"无处不在。对于我们来说,父母可以是我们的管理者,同时在学校层面校长也可以是我们的管理者。

        校长负责管理学校大大小小的事物,管个人,管班级,管学院。他只是一个人,他怎么能管这么多事情?而且通常我们连校长的面都没见过几次。

        当有同学因为挂科挂太多了,需要校长签字退学时。辅导员会向校长汇报这件事,然后校长签字,最后辅导员告诉那名同学被开除了。整个过程校长和那名同学连面都没见过,校长就管理好了那名同学的处理。

        所以,管理者和被管理者往往是不需要直接见面的。管理可以通过管理被管理者的数据被管理者进行管理。这是管理的一般逻辑,管理被管理者直接见面的时候无非也是想要获取被管理者的信息。

        对于操作系统来说,要管理软硬件资源,无非就是通过获取硬件的数据和软件的数据然后对他们进行相应的操作。

先描述在组织

        我们每个人入学的时候都会提交学籍档案给学校。我们每个人填的学籍档案的信息都是一样的,无非就是姓名,年龄,性别,身高什么的。然后这些数据会存入学校的数据库,方便以后查询。

        如果学校要选出身高最高的几名学生,只需要去遍历一遍数据库就可以得出结果。

        上面这个过程就是管理的基本逻辑。先描述好每个学生的属性,然后再把每个学生的属性组织起来。在说简单一点就是,创建一个学生的类,类中拥有各种各样的变量 (char name、int age、char sex),然后创建每一个学生的类对象,再把这些类对象存储到一个数据结构中方便管理,比如说链表。

        这个时候对选出身高最高的几名学生这个问题就转化为了求链表中身高属性最大的那几名同学。我们就只需要遍历一次链表就可以得出结果。

        面向对象也是同样的逻辑,先描述再组织。class类、struct结构体都是描述一个对象的关键字。利用数据结构可以把这些类对象组织起来,方便管理。算法则是我们实现某个功能,所对应数据结构的方法。不同的算法是依存于不同的数据结构的。

        所以在操作系统中管理任何对象最终都可以转化为对某种数据结构的增删查改。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com