博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Operating System-Kickoff:什么是操作系统&&操作系统的核心概念
阅读量:5082 次
发布时间:2019-06-13

本文共 1117 字,大约阅读时间需要 3 分钟。

接下来会写一系列Operating System(操作系统)的文章,今天先开个头。本文主要内容:

  1. 什么是操作系统
  2. 操作系统的核心概念
  3. 程序=数据结构+算法

一、什么是操作系统

1.1 操作系统是对硬件的抽象(abstracion)

操作系统的重要功能之一就是隐藏硬件,且把硬件的功能用漂亮高度抽象的接口展露个应用程序。

 

OS在整个计算机系统中的位置如上图所示。

抽象是管理复杂度的核心理念,操作系统完成了对硬件的抽象,这使得我们程序员从各种五花八门的硬件中解脱出来,使用操作系统所提供的尤美接口进行应用程序的编程。现代人每天都在使用电脑,感觉操作系统是给人用的,其实错了,操作系统是给应用程序用的,不是给人用的。操作系统所做的抽象是给应用程序降低复杂度的。

1.2 操作系统是一个资源管理器

大量的应用程序同时在操作系统上运行,这些应用程序都需要操作不同的资源,I/O,CPU,Memory等等。如何给这些应用程序分配资源,分配策略是什么,如果资源同时被不同的应用程序操作,如何保证这些资源的完整性,等等,这些都是操作系统要解决的问题。

举几个例子:

  1. 谁将得到CPU资源,使用多久
  2. 内存保护:应用A不会使得应用B的数据丢失

二、操作系统的核心概念

文章开始说了操作系统是对硬件的抽象,所以操作系统的核心概念都是对具体物理硬件的抽象,当本系列博文的终点也是下面的几个内容。

2.1 进程(线程)

进程(线程)是操作系统对CPU的抽象

2.2 虚拟内存(地址空间)

虚拟内存是操作系统对物理内存的抽象

2.3 文件

文件是操作系统对物理磁盘的抽象

三、程序=数据结构+算法

程序=数据结构+算法这句话怎么理解,其实可以通过操作系统来理解。

3.1 数据结构

数据结构即抽象,在操作系统中因为抽象,应用程序只需要关注线程,进程,文件,而无需关注这些背后的实现,也不用担心这些背后实现有可能会变化。在平时的应用程序编程中,我们提倡面向接口编程,这个接口即数据结构,当然也是抽象。

还有种种现在的高级语言,比如Java,C#,是更加搞级别的抽象,其编程语法在某种程度来说便是数据结构。

3.2 算法

算法即策略,即折中和权衡,我们处在一个资源有限的世界,这个相对好理解。在操作系统中这个折中和权衡体现的淋漓尽致

  1. cpu有限:谁该得到CPU,得到后拿多久合适
  2. 内存有限:什么时候应该把数据放在内存中,什么时候应该移除
  3. 缓存有限:那些数据应该放入CPU的缓存中,一级还是三级,什么时候应该替换,该替换那些数据
  4. 。。。

 

转载于:https://www.cnblogs.com/Brake/p/Operating_System_Kickoff.html

你可能感兴趣的文章
myeclipse集成jdk、tomcat8、maven、svn
查看>>
查询消除重复行
查看>>
Win 10 文件浏览器无法打开
查看>>
HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
查看>>
-bash: xx: command not found 在有yum源情况下处理
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
hiho1079 线段树区间改动离散化
查看>>
【BZOJ 5222】[Lydsy2017省队十连测]怪题
查看>>
第二次作业
查看>>
【input】 失去焦点时 显示默认值 focus blur ★★★★★
查看>>
Java跟Javac,package与import
查看>>
day-12 python实现简单线性回归和多元线性回归算法
查看>>
Json格式的字符串转换为正常显示的日期格式
查看>>
[转]使用 Razor 进行递归操作
查看>>
[转]Android xxx is not translated in yyy, zzz 的解决方法
查看>>
docker入门
查看>>
Android系统--输入系统(十一)Reader线程_简单处理
查看>>
监督学习模型分类 生成模型vs判别模型 概率模型vs非概率模型 参数模型vs非参数模型...
查看>>
Mobiscroll脚本破解,去除Trial和注册时间限制【转】
查看>>