操作系统中的基础抽象

背景

计算机系统的物理资源 = 计算机存储类(处理器+内存) + 接口类(外存+外设)。

所以为了方便对物理资源的管理和控制,现代操作系统中引入了三个核心概念,由这三种核心概念形成了三种最基础抽象

进程 => 进程抽象 、虚存 => 虚存抽象 、 文件 => 文件抽象


进程抽象

进程

概念:是对进入内存的执行程序在处理器上操作的状态集的一个抽象。是并发和并行的操作的基础。每一个进程都是一个自治执行单元。

  • 为什么需要进程抽象

    处理器若要被时分复用,并被系统中的可执行进程共享。

  • 处理器如何被时分复用

通过OS提供进程调度和上下文切换

  • 为何OS要提供进程调度和上下文切换

    OS中有许多进程并发执行,所以OS必须提供进程调度和上下文切换功能。

进程抽象是处理器的一种抽象,在虚拟机界面上的抽象接口通过 OS提供进程控制的原语实现程序的运行

由于进程的执行依赖于内存和设备上的信息资源,所以还需要虚存抽象和文件抽象。


虚存抽象

为什么需要虚存抽象?

在创建进程时,OS对处理器和内存资源均有需求,所以需要一个特殊的抽象资源——虚拟存储器。

概念:

虚拟内存的本质是在物理内存的基础上创建一个新的抽象概念,所以虚存是内存的一种抽象。


虚拟存储器

原理(引用一位大佬写的博客)

实质:

虚存是通过结合对内存和外存的管理来实现的。

  • 在传统存储器中:进程内容直接在物理内存上运行
  • 虚拟存储器是将进程内容存储在磁盘上,使物理内存作为磁盘的高速缓存,以此为用户提供比物理内存空间大得多的虚拟内存空间。

影响:

使得在虚拟机界面上运行的应用程序不必考虑内存大小及地址映射问题,多个进程的虚存空间彼此隔离,具有很好的安全性。

效果:给用户造成一种像是独占一个硕大的连续地址空间,所编写的程序长度不受物理内存大小限制。

虚存抽象解决了进程对内存的依赖,但是程序和数据往往又被预先存储在设备上所以还需要对设备进行抽象。


文件抽象

概念:

文件是设备(对所有物理设备)的一种抽象,通过将文件中的字节映射到存储设备的物理快中来实现文件抽象。

好处:

对于信息的存储、检索、更新、共享、和保护带来方便。

总结

为什么要三种抽象?

防止硬件资源被失控的应用程序滥用以及屏蔽复杂的硬件资源操作细节,为应用程序提供使用硬件资源的简单且一致的方法。

三种抽象存在一种包含关系:

为什么要三种抽象?

防止硬件资源被失控的应用程序滥用以及屏蔽复杂的硬件资源操作细节,为应用程序提供使用硬件资源的简单且一致的方法。

三种抽象存在一种包含关系:

文件抽象是对设备的抽象,虚存抽象是对内存和设备(磁盘)的抽象,进程抽象是对处理器、内存和设备的抽象。

操作系统中的基础抽象相关推荐

  1. 如何避免操作系统中多线程资源竞争的互斥与同步?

    作者 | 小林coding 来源 | 小林coding(ID:CodingLin) 前言 先来看看虚构的小故事 已经晚上 11 点了,程序员小明的双手还在键盘上飞舞着,眼神依然注视着的电脑屏幕. 没办 ...

  2. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  3. 庖丁解牛Linux内核分析01:操作系统工作原理基础

    目录 1 存储程序计算机工作模型 2 IA-32汇编基础 2.1 寄存器概述 2.1.1 通用寄存器 2.1.2 段寄存器 2.1.3 标志寄存器 2.2 数据格式 2.3 寻址方式 2.3.1 立即 ...

  4. 操作系统——Liunx系统基础知识

    摘要 本博文主要是介绍操作系统基础的相关知识和原理. 一.基本的计算机硬件知识 在1945年冯诺依曼和其他计算机科学家们提出了计算机具体实现的报告,其遵循了图灵机的设计,⽽且 还提出⽤电⼦元件构造计算 ...

  5. 深度linux系统任务栏毛玻璃,操作系统中常见的「毛玻璃」效果是怎么设计出来的?...

    原标题:操作系统中常见的「毛玻璃」效果是怎么设计出来的? Matrix 首页推荐 Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考.我们会不定期挑选 Matrix ...

  6. 1 - 操作系统发展史及其基础知识

    操作系统发展史及其基础知识 参考内容:https://www.cnblogs.com/linhaifeng/p/6295875.html:百度百科:写在此处的目的是巩固老师所讲知识,课后为了方便复习 ...

  7. 计算机科学的本质与操作系统中十条哲学原理

    这篇博文源于我在公司的一次技术分享 .没有涉及到具体的操作和原理的讲解,而是从更高一层哲学的抽象探讨的. 到了哲学层面的东西,看似很虚,但我认为它比具体的细节更加重要,所谓为学日益为道日损. 哲学是对 ...

  8. 操作系统中的文件管理系统

    文件系统(file system)是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法.操作系统中负责管理和存 ...

  9. 论数学在计算机科学中的基础作用

    论数学在计算机科学中的基础作用 课题引入 计算机基础与数学联系十分紧密.当今更为火爆的网络软件开发等信息界的精英,大部分是数学出身,数学在计算机中的应用是不言而喻的. 大部分高校的计算机系所开设的数学 ...

  10. 先来先服务算法代码_程序员算法与数据结构基础中的基础,栈与递归

    在此之前,我们介绍了动态规划.深度优先搜索等基础算法,但是,有部分好友评论说,难度太难了,我们知道动态规划的自顶向下跟深度优先搜索一般都用递归实现,今天我们就先来讲讲算法与数据结构中,基础中的基础递归 ...

最新文章

  1. 关于yum库的相关问题
  2. 使用 Cufon 渲染网页字体
  3. 这样统计代码执行耗时,才足够优雅!
  4. 软链接和硬链接的解读
  5. C# DataTable 用法
  6. 【Kylin】60-20-040-集成-Kylin集成LDAP
  7. HDU-2063-过山车(二分匹配)
  8. 学习总结:即时通讯项目里面的语音处理-文件模式录音
  9. 动态规划-自底向上的 0-1 背包问题
  10. 用广义线性模型进行数据分析(下)
  11. TX2入门(10)——TensorRT(1)(tx2端inference)
  12. .net core 中的[FromBody]和[FromFrom]的区别
  13. linux 离线安装dtc,DTC使用小结-cuter-电子技术应用-AET-中国科技核心期刊-最丰富的电子设计资源平台...
  14. Flutter 功能最全的JsonToDart工具
  15. Axure 9 实战案例,动态面板的应用 5,官网首页自动轮播广告
  16. [系统工具]VMware Workstation 10.0 官方中文版 (附注册机/序列号)
  17. 职业精神:薪水到底谁来决定
  18. ARCENGINE开发经典贴(转)
  19. FL Studio21新版终于有内置的强大混响插件了
  20. catia 斑马线分析,汽车A级曲面定义标准及检查分析

热门文章

  1. 通过财务报表读懂美股
  2. setoolikt制作钓鱼网站
  3. c语言 项目 轮子,程序员们为什么热衷于发明轮子?
  4. 角度与弧度的转换 C语言
  5. 不同的国际学校课程毕业后可申请什么学校
  6. google浏览器被360导航劫持
  7. excel冻结窗格怎么同时冻结行和列
  8. 回顾来路,不忘初心;心之所向,砥砺前行
  9. VBA每日一练(2),将txt 的部分/全部内容 导入到EXCEL
  10. 一阶电路实验报告心得_实验九实验报告(二)--一阶动态电路的响应测试