热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

操作系统:内存分层体系

什么是操作系统用户角度,操作系统是一个控制软件管理应用程序(为应用程序提供服务、杀死应用程序)资源管理(管理外设、分配资源)站在计算机内部,操作系统把CPU、磁盘、

什么是操作系统
  • 用户角度,操作系统是一个控制软件
  • 管理应用程序(为应用程序提供服务、杀死应用程序)
  • 资源管理(管理外设、分配资源)

站在计算机内部,操作系统把CPU、磁盘、内存这三部分物理资源抽象成进程、文件、地址空间,来给我们的应用程序使用。

操作系统层次结构:硬件之上,应用程序之下。

Kernel (操作系统内部组件),包括:

  • CPU调度器
  • 物理内存管理
  • 虚拟内存管理
  • 文件系统管理
  • 中断处理与设备驱动

OS kernel的特征:

  • 并发 :计算机系统中同时存在多个运行的程序
  • 共享:”同时”访问、互斥共享
  • 虚拟:利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
  • 异步:程序的执行不是一贯道底,而是走走停停,向前推进的速度不可预知。但只要运行环境相同,OS需要保证程序运行的结果也要相同。

计算机体系结构以及内存分层体系

计算机基本硬件结构:
这里写图片描述
CPU:完成对整个程序(软件)执行的控制。
内存:放置程序的代码和处理的数据。
I/O设备:硬盘、键盘、鼠标

内存的层次结构:
这里写图片描述

磁盘 (虚拟内存)、主存、缓存(CPU上的)

什么叫“内存的层次结构”?意思就是CPU要访问的指令或者数据在什么地方。
CPU可以访问的内存包括2大类:寄存器、cache(L1缓存、L2缓存)。都是位于芯片内部的,操作系统对它们无法直接管理的,它们速度很快,容量很小。

“主存”也就是我们的物理内存,放置我们的程序代码。一掉电数据就没有了。
硬盘:保持永久性数据。

操作系统要完成的4个目标

操作系统具体要完成的工作:

  • 抽象(逻辑地址空间)
  • 保护(独立地址空间)
  • 共享(访问相同内存)
  • 虚拟化(更多地址空间)

抽象:应用程序在运行的时候由操作系统有效管理,使得程序不必考虑太多底层的细节,不必考虑物理内存在什么地方,外设在什么地方。只需要访问一个连续的地址空间,我们把这个地址空间称之为逻辑地址空间。
保护:因为在我们的内存中可以运行多个不同的应用程序,我们需要保护多个进程之间的地址空间是需要隔离的。
共享:保障进程之间安全有效可靠的数据传递。
虚拟化:当内存有运行了很多应用程序之后,会出现内存不够的情况,如何让正在运行的程序获得它所需要的内存空间呢?把最需要放到内存的数据放到内存中,暂时不需要访问的数据可以放到硬盘上。


推荐阅读
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 本文深入探讨了Linux内核中进程地址空间的设计与实现,包括虚拟地址空间的概念、内存描述符`mm_struct`的作用、内核线程与用户进程的区别、进程地址空间的分配方法、虚拟内存区域(VMA)的结构以及地址空间与页表之间的映射机制。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
    本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
author-avatar
枫的Lilyxj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有