接下来会写一系列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. 。。。

Operating System-Kickoff:什么是操作系统&&操作系统的核心概念的更多相关文章

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

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

  2. How to Make a Computer Operating System

    How to Make a Computer Operating System 如何制作一个操作系统(翻译版) 原文地址:Github:How to Make a Computer Operating ...

  3. 计算机四级网络工程师--《操作系统(Operating System)》重点内容学习

    开篇语 今天开始看<操作系统>,没办法,计算机网络技术还算有点底子.至于操作系统要不是以前看过一些这方面的书籍,以及上学期学了单片机工作原理,我估计我真的是懵逼的!所幸,在网上找的233网 ...

  4. SI - 系统 - 操作系统简述 (Operating System)

    Unix 操作系统:System V.BSD Microsoft Windows Apple Mac OS Linux FreeBSD 安装 https://jingyan.baidu.com/art ...

  5. 快速了解 Robot Operating System(ROS) 机器人操作系统

     http://www.ros.org/ 关于ROS About ROS http://www.ros.org/about-ros/ 机器人操作系统(ROS)是用于编写机器人软件的灵活框架.目的在简化 ...

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

    操作系统(Operating System,OS) 是配置在计算机硬件上的第一层软件,是对计算机硬件系统的首次扩充,是一个计算机系统最基础,也是最重要的系统软件. 操作系统的作用 1 实现对计算机资源 ...

  7. China Operating System 电脑操作系统 2016全球互联网排名

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 电脑操作系统 China Operating System 2016全球互联网排名 == ...

  8. book-rev8 Chapter 0 Operating system interfaces

    Chapter 0 第0章 Operating system interfaces 操作系统接口 The job of an operating system is to share a comput ...

  9. Linux启动报错missing operating system

    用UltraISO制作了一个Red Hat Enterprise Linux Server release 5.7系统的U盘启动盘,然后在一台PC上安装,由于安装过程中在干别的事情,有些选项没有细看. ...

随机推荐

  1. K - Max Sum Plus Plus

    K - Max Sum Plus Plus Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  2. ibatis实现Iterate的使用 (转)

    <iterate         property="" /*可选,              从传入的参数集合中使用属性名去获取值,              这个必须是一 ...

  3. information entropy as a measure of the uncertainty in a message while essentially inventing the field of information theory

    https://en.wikipedia.org/wiki/Claude_Shannon In 1948, the promised memorandum appeared as "A Ma ...

  4. Delphi 7里Messages.pas里所有104种重定义消息种类,180种不同的消息名称

    Delphi 7里Messages.pas里所有消息.经统计,共104种重定义消息种类,方便使用,180种不同的消息名称.省得像VC里一样,处处自己解析wParam和LParam参数进行分析.有空我要 ...

  5. PBR探索

    原理 根据能量守恒,以及一系列光照原理得出微表面BRDF(Bidirectional Reflectance Distribution Function)公式 // D(h) F(v,h) G(l,v ...

  6. Linux mariadb(Mysql)的主从复制架构

    mysql的主从复制架构,需要准备两台机器,并且可以通信,安装好2个mysql,保持版本一致性 mysql -v 查看数据库版本 1.准备主库的配置文件  /etc/my.cnf 写入开启主库的参数[ ...

  7. VLFeat图像库在VS2012下的配置

         近期做课题所需,開始使用VLFeat图像库.      库下载链接:      http://download.csdn.net/detail/sunboyiris/7500097     ...

  8. sql 2008数据事务日志已满处理方法

    突然发现sql 2008出现错误:数据库 'mybase_db' 的事务日志已满.若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc ...

  9. activiti--5 -----------------Activiti 工作流 流程各个步骤所涉及到的表

    ACT_RE_*: 'RE'表示repository. 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等). ACT_RU_*: 'RU'表示runtime. 这些运行时的表,包含流程实例 ...

  10. ubuntu配置jdk环境

    简单记录如下: 1. 下载JDK并解压后,复制到想要放置的目录,本文以“/usr/lib/jdk”为例: 2. 编辑配置文件,可以是“/etc/profile”或者“~/.bashrc”. 输入命令“ ...