文章目录

  • 操作系统的定位
  • 设计操作系统的目的
  • 操作系统之上之下分别有什么
  • 管理的精髓:先描述,再组织

操作系统的定位

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

设计操作系统的目的

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

操作系统之上之下分别有什么

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

而单单只有这些硬件是不够的,还需要有一个软件来对这些硬件进行管理。例如,内存何时从输入设备读取数据?读取多少数据?内存何时刷新缓冲区到输出设备?是按行刷新还是全刷新?这些都是由软件进行管理的,而这个软件就是操作系统(Operator System)。

此时这里有一个问题:难道操作系统直接和底层硬件打交道吗?
举个例子,如果操作系统自己来完成键盘的读取操作,那么只要你的键盘读取方式进行了改变,那么操作系统的内核源代码就需要进行重新编译,这对操作系统来说维护成本太高了。
于是我们又在操作系统与底层硬件之间增加了一层驱动层,驱动层的主要工作就是单独去控制底层硬件的。例如,键盘有键盘驱动,网卡有网卡驱动,硬盘有硬盘驱动,磁盘有磁盘驱动。驱动简单来说就是去访问某个硬件,访问这个硬件的读、写以及硬件当前的状态等等,驱动层就是直接和硬件打交道的。而驱动一般是由硬件制造厂商提供的,或是由操作系统相关的模块进行开发的(例如网卡)。
此时操作系统就只需关心何时读取数据,而不用关心数据是如何读取的了,也就是完成了操作系统与硬件之间的解耦。

那操作系统究竟管理些什么呢?操作系统主要进行以下四项管理:

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


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

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

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

管理的精髓:先描述,再组织

要想学好操作系统,那么就必须正确理解到底什么是管理。

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

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

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

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

在这个过程中,校长根本没有见过这三名同学,就对其进行了管理,他根据的是什么?没错,他根据的是数据。

实际上,学校将我们每个学生的各种信息都进行了管理,基本信息、成绩信息以及健康信息等等。

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

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

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

初步认识操作系统(Operator System)相关推荐

  1. [No000035]操作系统Operating System之OS Interface操作系统接口

    接口(Interface) 仍然从常识开始- 日常生活中有很多接口:电源插座:汽车油门- 那什么是接口? 连接两个东西.信号转换.屏蔽细节- Interface: electrical circuit ...

  2. 了解操作系统,什么是操作系统Operation System?

    1.操作系统(Operation System,oS):是一个特殊的软件. 操作系统作为接口的示意图 1.没有安装操作系统的计算机,通常被称为裸机. 2.如果想在裸机上运行自己所编写的程序,就必须用机 ...

  3. 关于重装操作系统,显示system not found

    用U盘装完系统,然后电脑重启后黑屏,显示:Operatingsystem not found,字面意思就是'未找到操作系统' 原因:1.系统损坏 2.安装系统的分区未激活 如果确定系统没有损坏,那就进 ...

  4. 操作系统(Operating System,OS)

    热身知识: (1)操作系统也是一个程序,并且是一个很重要的程序. (2)功能:管理和控制计算机的活动. (3)如果一台计算机没有操作系统,那么应用程序将不能运行 (4)图解: 一.操作系统的三大任务 ...

  5. 【我在异世界学Linux】认识操作系统 | 理解管理 | 系统调用(System Call)

    文章目录 什么是操作系统 是什么 为什么要设计操作系统? 操作系统是怎么进行管理的 系统调用和库函数 | 理解操作系统内部 什么是操作系统 是什么 每个计算机系统都包含一个基本的程序集合,称之为操作系 ...

  6. 【Linux进程概念】冯 诺依曼体系结构 操作系统 进程 fork 进程状态 优先级

    文章目录 [写在前面] 一.冯 ? 诺依曼体系结构 ?? 体系结构 ?? 数据流向 ?? 实例 二.操作系统 (Operator System) ?? 概念 ?? 计算机体系及操作系统定位 ?? 管理 ...

  7. Linux---冯诺依曼体系结构和操作系统

    文章目录 前言 冯诺依曼体系结构 操作系统(Operator System) 概念 设计OS的目的 定位 总结 系统调用和库函数概念 总结 前言 正文开始! 冯诺依曼体系结构 我们现在大多数使用的计算 ...

  8. 【linux】冯诺依曼体系|操作系统|管理本质

    文章目录 1. 冯诺依曼体系结构 1. 为什么要有内存? 1. 若内存不存在 2. 若内存存在 结论1 2.在硬件层面,单机和跨单机之间数据流是如何流向的? 结论2 2. 操作系统(Operator ...

  9. tp设置打印机虚拟服务器,tp打印机服务器设置

    tp打印机服务器设置 内容精选 换一换 第二部分:ESXi主机的安装和配置注:本文所写的内容纯属实验测试之用,不涉及任何商业用途.安装ESXi主机在VMware-workstation中新建一台虚拟机 ...

最新文章

  1. 2018-2019-1 20165212 实验五 通讯协议设计
  2. 7p后摄像头抖动修复_节气门清洗后怠速还是抖动,到底什么毛病?
  3. 软件开发的“黑名单”规则设定:benchmark
  4. web中常见乱码问题详解
  5. ubuntu下安装linux分区大小,增加安装Ubuntu的分区大小?
  6. Nature | 基于66种癌症类型训练机器学习模型,绘制癌症基因潜在驱动突变图谱...
  7. Pytorch 之Tensor 初探
  8. git commit撤销_Git commit 提交一堆记录?试试撤回 commit 操作,你会爱上它
  9. K - Repeating Decimals(循环小数)
  10. HPE 发布严重的 RCE 0day 漏洞,影响服务器管理软件 SIM,无补丁
  11. 单元格赋值与联动 例:C1值赋予D1 ,并将D1的值传给图表元素联动
  12. python协同过滤电影推荐的论文_Netflix电影推荐系统Python实现(协同过滤+矩阵分解)...
  13. 计算机控制液压同步顶升系统,PLC多点控制液压同步顶升系统的运用
  14. Android 常用颜色值及半透明效果配置
  15. 《互联网周刊》发布2019快时尚品牌排行榜
  16. python最长的单词判断_Python 找出英文单词列表(list)中最长单词链
  17. 自己组装nas服务器万兆,阿文菌爱捡垃圾 篇二十一:组装一台小巧的8盘位万兆NAS,参考翼王使用永擎C236主板,E3是否还值得下手?...
  18. video添加第一帧作为播放前图片(此方法 已失效)
  19. Bootstrap项目之微金所
  20. Epidemic and Clinic

热门文章

  1. nvidia 专业显卡解码能力
  2. 假期一周学习计划_我在假期很烂-这周我做了什么
  3. 对v-for生成的元素添加不同的animate动画
  4. 复旦大学计算机科学技术学院期末,复旦大学计算机科学技术学院多媒体技术基础试题...
  5. 现在完成时与其他时态的区别
  6. 计算机开头,计算机论文开头
  7. 深度学习之昆虫种类识别
  8. 二战经典老歌(The Mass)+图文欣赏
  9. QPS从0到4000请求每秒,谈达达后台架构演化之路
  10. 想进世界顶尖投行 那我该上什么样的学校?