【初识操作系统——OS(Operator System)】

今天我心情有一些怪怪的,可是说不出来到底为什么...............................................................

文章目录

前言

一、【操作系统的介绍】

二、【操作系统在计算机中所处的位置】

三、【操作系统是如何进行管理的——先描述,再组织】

总结


前言

本篇博客介绍了什么是操作系统,以及操作系统在我们的计算机中扮演了什么角色,还有操作系统的本质,请耐心观看!


一、【操作系统的介绍】

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。它是计算机系统中负责管理硬件和软件资源的基础软件层。它作为用户和计算机硬件之间的接口,为用户和应用程序提供了一个方便、有效、统一的运行环境,常见的操作系统有:ios,windows.......

1、操作系统包括:

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等)

2、设计操作系统的目的:

  1. 与硬件进行交互,管理所有的软硬件资源。
  2. 为用户程序(应用程序)提供一个良好的执行环境。

3、操作系统的定位

简单来说,操作系统就是一款进行软硬件资源管理的软件。

二、【操作系统在计算机中所处的位置】

首先,我们肉眼可见的就是计算机实物,也就是计算机底层的硬件。这些硬件看似是一个个罗列出来的,但实际在底层都遵守冯诺依曼的组织形式。

而单单只有这些硬件是不够的,还需要有一个软件来对这些硬件进行管理

例如,内存何时从输入设备读取数据?读取多少数据?内存何时刷新缓冲区到输出设备?是按行刷新还是全刷新?这些都是由软件进行管理的,而这个软件就是操作系统(OS)

此时这里有一个问题:难道操作系统直接和底层硬件打交道吗?
当然不是,这里举个例子:

如果操作系统自己来完成键盘的读取操作,那么只要你的键盘读取方式进行了改变,那么操作系统的内核源代码就需要进行重新编译,这对操作系统来说维护成本太高了。于是我们又在操作系统与底层硬件之间增加了一层驱动层,驱动层的主要工作就是单独去控制底层硬件的。

例如,键盘有键盘驱动,网卡有网卡驱动,硬盘有硬盘驱动,磁盘有磁盘驱动。驱动简单来说就是去访问某个硬件,访问这个硬件的读、写以及硬件当前的状态等等,驱动层就是直接和硬件打交道的。而驱动一般是由硬件制造厂商提供的,或是由操作系统相关的模块进行开发的(例如网卡)。
此时操作系统就只需关心何时读取数据,而不用关心数据是如何读取的了,也就是完成了操作系统与硬件之间的解耦。

那操作系统究竟管理些什么呢?

操作系统主要进行以下四项管理:

  1. 内存管理:内存分配、内存共享、内存保护以及内存扩张等等。
  2. 驱动管理:对计算机设备驱动驱动程序的分类、更新、删除等操作。
  3. 文件管理:文件存储空间的管理、目录管理、文件操作管理以及文件保护等等。
  4. 进程管理:其工作主要是进程的调度。

而操作系统再往上就是我们用户所处的位置,在这里我们就可以用命令行或是图形化界面进行各种操作,这一层被称为用户层

但操作系统为了保护自己,对上只暴露了一些接口,而不会让用户直接访问操作系统,这一系列接口被称为系统调用接口

但这些系统调用接口对我们普通用户来说使用成本又太高了,因为要使用系统调用前提条件是你得对系统有一定了解。所以在系统调用接口之上又构建出了一批库,例如libc和libc++。实际上在语言级别上使用的各种库,就是封装了系统调用接口的,我们就是通过调用这些库当中的各种函数(例如printf和scanf)进行各种程序的编写,用来封装的这一层我们叫做,用户操作接口

所以整体的结构分布为如下形式:

三、【操作系统是如何进行管理的——先描述,再组织】

好了,我们知道操作系统在计算机中是用来管理底层硬件的,那在学习操作系统是如何对底层硬件进行管理的之前,我们要正确理解到底什么是管理。

我们知道操作系统是软件,它无法触碰或者接触到到硬件,所以无法像我们普遍认知的那样对硬件进行管理,这里它管理的方式实际上是管理那些硬件的属性或者数据,不仅针对操作系统,我们现实生活中也是这样。

这里我们举一个实际的例子来谈谈管理,现在给出三个角色:学生、辅导员和校长。很明显,校长在这三个人当中是管理者,学生是被管理者,那么辅导员充当什么角色呢?

仔细想想,实际上完成任何一件事都要经过两个过程,首先是决定要不要做这件事或是如何做这件事(决策),然后就是去做这件事情(执行)。校长作为管理者来管理学生,校长实际上就是那个做决策的人,但是校长作出决策后并不需要自己来执行,而是让辅导员去执行,所以辅导员的主要任务就是执行管理者的决策,我们通常将其称为执行者。

虽然说校长是管理学生的,但是我们在学校一般情况下是看不到校长本人的,那么校长是如何做到在不看到我们的情况下对我们进行管理的呢

假如现在校长要求辅导员将计算机成绩排名前十的学生的各科成绩以及平时表现记录拿过来,他将从这十名同学之中选出三名学生参加本次的编程大赛,当辅导员将资料拿来后校长选出三名学生说:“就这三个了,你找个老师对这三名学生进行一下强化训练,然后参加本次的编程大赛。”然后校长就什么也不管了。

在这个过程中,校长根本没有见过这三名同学,就对其进行了管理,他根据的是什么?没错,他根据的是数据(各科成绩以及平时表现记录)。实际上,学校将我们每个学生的各种信息都进行了管理,基本信息、成绩信息以及健康信息等等。

每一套信息都对应一名学生,校长通过对这些信息的管理就能做到对学生的管理。这么一套信息在C语言当中我们称之为抽象结构体,而在C++当中又叫做面向对象也就是类。
当学生的数量多起来了,校长就可以将全部学生的信息组织起来,当然组织的方式有很多种(链表、顺序表、树),而每种组织方式都有其自己的优势,于是就有了一门课程专门教我们管理数据的方式,那就是数据结构。这里我们假设校长以双链表的形式将学生的信息组织起来。

此时校长对各个学生的管理,实际上就变成了对这个双链表的增删查改。当有新生时直接向该双链表加入一个结点,当学生毕业后直接将学生信息从该双链表当中移除即可。

总结一下: 管理者管理被管理者,实际上是先将被管理者的各种信息进行描述,然后再将多个被管理者的描述信息根据某种数据结构组织起来,最后管理者管理被管理者实际上就是对数据结构的管理,即管理的精髓:先描述,再组织。

搞清楚管理以后,反映到操作系统上,其实管理的也是那些底层硬件的属性,在操作系统内部将这些底层硬件进行描述,最后将他们组织起来,无论是这些硬件,还是后面即将学习的进程,操作系统管理的方式都是,先描述,在组织

总结

本篇博客到这里就结束了,感谢观看!

.........................................................................可是病因不知道,我只想哭,只想哭,只想哭

                                                                                                              ————《黑色柳丁》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值