接下来会写一系列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. [ubuntu]安装adobe air

    修改安装文件为可执行权限: sudo ./AdobeAIRInstaller.bin 提示错误: <code> Adobe AIR could not be installed. Inst ...

  2. 《编程导论(Java)&#183;1.1.2 颠倒的世界(柏拉图法则)》

    假设你读<编程导论(Java)·1.1.2 颠倒的世界(柏拉图法则)>感到无趣,请尝试评价这个段子. 3. Classes Classes drive me crazy. That mig ...

  3. 忘记apple id如何更新应用?

    最近ytkah的app有很多更新提示,之前注册的apple id好久没登录了,突然提示说登录需要验证安全问题,哪还记得噢,最要命的是邮箱收到的加密邮件也需要验证.重新注册一个吧,这次要注意保存相关信息 ...

  4. CONVERT_DATE_INPUT

    [转自http://www.cnblogs.com/VerySky/articles/2226862.html] 通过 Function Module 将外部日期转换为内部日期所属 Function ...

  5. Yii2之事件处理

    通过事件(Event)处理,可以在某个特定时刻执行指定的代码,可以解耦代码,同时也增加了可维护性,通常,事件在客户端软件中比较好理解,比如onClick,onFocus,当点击按钮,获取到焦点时执行指 ...

  6. [原创] hadoop学习笔记:重新格式化HDFS文件系统

    所谓的重新格式化HDFS文件系统,实际意味着重新的创建一个HDFS文件系统.也就是说,必须将先前的已经有的文件系统配置删除.如下: 笔者采用的是最小化安装 这个是core-site.xml配置 这个是 ...

  7. ruanjiangongcheng1

    软体工程的方法有很多方面的意义.包括专案管理,分析,设计,程序的编写,测试和质量控制. 软体设计方法可以区别为重量级的方法和轻量级的方法.重量级的方法中产生大量的正式文档. 著名的重量级开发方法包括I ...

  8. CSS缎带效果

    1. [代码]ribbon.html     <!DOCTYPE HTML><html><head><style type="text/css&qu ...

  9. java.sql.SQLException: Column count doesn't match value count at row 1 Query: insert into category values(null,?,?,?) Parameters: [1111111, 1111, 软件]

    java.sql.SQLException 问题: java.sql.SQLException: Column count doesn't match value count at row 1 Que ...

  10. Merkle 树——空间换时间,分而治之的hash表,通过根节点是由它的两个子节点内容的哈希值组成来校验数据完整性,定位篡改的数据位置

    Merkle 树 图 1.5.6.1 - Merkle 树示例 默克尔树(又叫哈希树)是一种二叉树,由一个根节点.一组中间节点和一组叶节点组成.最下面的叶节点包含存储数据或其哈希值,每个中间节点是它的 ...