【操作系统】 1、计算机系统概述

news/2025/2/22 0:35:22/

在这里插入图片描述

1.1 操作系统的基本概念

从操作系统的角度上来划分计算机体系结构:
计算机体系结构
这里注意一点: 编译器属于应用程序。

操作系统:是指控制管理计算机系统的 硬件软件 资源,合理的组织、调度计算机的工作与资源分配,进而为用户和其他软件提供 方便接口与环境的程序集合。
操作系统是计算机系统最基本的系统软件。(软件的分类 :系统 /应用)



1.1.2操作系统的特征

  • 并发
  • 共享
  • 虚拟
  • 异步

1.并发

我们在理解并发时,要建立两个前提: 多道程序环境单处理机环境

同时也要区分并发(concurrence)和并行(parallel)的区别。

  多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而在每一时刻,单处理机环境中,实际只能有一个程序在执行。
从微观角度上说,这些程序其实是分时交替执行的。
操作系的并发实际上是通过分时得以实现的。这其实是时分复用的一种表现。

//TODO后续会补充甘特图

2. 共享

系统中的资源可供内存中多个并发执行的进程共同使用。

java 的多线程模型 以及JVM中对这种资源共享的场景使用非常多,比如在JVM中 的运行时数据区,粗略的可以分为线程共享的和线程独占的区域
线程共享区包括:
--- 堆,方法区
线程独占的区域包括:
---JVM栈(局部变量表,操作数栈,方法返回地址,动态链接,其他信息),本地方法栈,PC寄存器。这里补充一句:堆内的Eden区 根据不同的JVM 可能会分出一部分作为TLAB,而它是线程私有的 。

资源共享会存在很多内存安全问题,这些等到进程调度和进程同步问题再继续深入。

共享分为两种方式:

  1. 互斥共享
    一段时间内,只允许一个进程访问该资源。比如打印机,磁带。我们称这种资源为 临界区。
  2. 同时访问
    在同一时间段内由多个进程 "同时"访问,这里的"同时"是宏观上的,微观上仍然是并发的。

总结:没有真正的共享(即 同一时刻,多个进程一起去访问某一资源,为什么?其实一起读还好,如果微观上,同时修改某一资源,就会造成ABA,脏读,等乱七八的问题,这又涉及到原子性问题,暂时不深入)。

并发和共享是 OS 最基本的两个特征,两者之间互为存在的条件:

  1. 资源共享 是以程序并发为条件的
  2. 系统若不能堆资源共享提供有效的管理,则必会影响程序的并发执行

3.虚拟

把物理上的一个实体 变为若干个逻辑上的对应物。

比如 一个处理器,通过划分时间片的方式,让多个进程在一段时间内,交替运行,形成了一种 多道程序"同时"工作的错觉。而每个用户感觉都有一个处理器(CPU) 都在为自己服务,这就是时分复用技术,称之为 虚拟处理器

再比如,我们一个游戏的大小 50G,而内存只有8G,不可能把游戏全部资源一股脑加载到内存中,通过虚拟存储技术,进行内存的调度,扩充,让终端用户觉得更大的内存容量,这其实就是一种虚拟存储器。这是一种空分复用技术。

4.异步
先啰嗦一句:
我们在写Java的时候,涉及到线程竞争临界资源时,最简单的办法,就是通过一个关键字synchronized 来实现线程互斥访问。
那么请问,这个单词实际含义是什么?
千万不要搞混这两个单词:
synchronized :同步。(解决异步性产生错误的一种手段,它的实现本质其实是管程)
Asynchronism:异步。

那么到底什么是操作系统的异步?
多道程序环境允许多个程序的并发执行,但是由于资源有限,进程的执行并不是一贯到底的,而是走走停停,它以不可预知的速度向前推进,这就是进程的异步性。(具体还是要通过进程调度算法去进一步理解,所谓的 不可预知性)

这就导致一个问题——幂等性。
简单来说,就是异步性使得操作系统运行在一种随机的环境下,可能会导致进程产生与时间相关的错误(比如我们希望ABC三个进程的执行顺序是确定的,但是每次程序运行结果却不一致,或者对全局变量访问的顺序不一致,导致程序出错)。所以,保证操作系统在相同的运行环境下,多次运行进程后得到的结果是相同的。



1.1.3 操作系有的目标和功能

  • 处理机管理
  • 存储器管理
  • 设备管理
  • 文件管理
  • OS还需要向用户提供接口
  • OS 还可以扩充机器

1.OS作为计算机系统的资源管理者

  • 处理机管理
  • 存储器管理
  • 设备管理
  • 文件管理

2.OS作为用户和计算机硬件之间的接口

  • 命令接口、

    • 联机命令接口(交互式命令接口)
      适用于分时或实时操作系统 比如我们常见的Linux shell 命令行的单一命令输入,执行。

    • 脱机命令接口(批处理命令接口)
      适用于批处理系统,一次执行多道命令

  • 程序接口
    程序接口由一组系统调用(也称为广义指令)组成,用户通过在程序中使用这些系统调用来请求操作系统为其服务。如各种外设,申请分配和回收内存。

3.OS实现对计算机资源的扩充

扩充裸机。


//待续


http://www.ppmy.cn/news/173801.html

相关文章

带有 Utopia Messenger 的免费 ChatGPT 助手

全世界都喜欢 ChatGPT!而且这个工具从未如此易于访问。没有限制、没有VPN、没有代理和佣金。现在您可以使用 Utopia Messenger 的传奇聊天的全部功能。 ChatGPT是每个线上用户的必备工具。它为我们提供任何所需的数据,生成内容,并解决多项任…

基础数论实际应用场景

文章目录 基础数论文章结构1. 底层工作原理2. 实际应用场景2.1 密码学2.2 安全协议2.3 整数分解 3. 实现步骤3.1 选择合适的质数3.2 设计算法3.3 实现安全协议4.1 随机化4.2 分治策略4.3 并行化4.4 近似算法 基础数论 文章结构 引言:简要介绍数论的概念和应用场景…

蓝牙基础知识总结

蓝牙基础知识总结 蓝牙版本概述 蓝牙各个版本发布时间: 版本 规范发布时间 增强描述 0.7 1998-10-19 Baseband,LMP 0.8 1999-1-21 HCI,L2CAP,RFCOMM 0.9 1999-4-30 OBEX与IRDA的通用性 1.0Draft 1999-7-5 SDP,TCS 1.0A 1999-7-26 第一个正式版本…

寻路大数据:海量数据与大规模分析

寻路大数据:海量数据与大规模分析(Google大数据专家力作超豪华译者|作序者真正梳理趋势与生态|方案与工具选型|应用场景与价值挖掘的独家内参) 【美】Michael Manoochehri(迈克尔.马诺切里)著 戴志伟等 译 ISBN …

转载GitHub28.7k星的更好地提问ChatGPT方法

转自:GitHub - f/awesome-chatgpt-prompts:此存储库包括 ChatGPT 提示策展,以便更好地使用 ChatGPT。 充当 Linux 终端 贡献者: f 参考: Building A Virtual Machine inside ChatGPT 我希望你充当Linux终端。我将键入…

科技牛人:“别人家的孩子”牛在哪里!

记得小时候,爸妈为了不让我们玩耍,经常说:你看看别人家的孩子学习成绩那么好都没出去玩,再看看你自己!貌似“别人家的孩子”永远比自己强。不过要是真的较真起来,“别人家的孩子”还真有了不起的地方。 下面…

操作系统笔记-----第一章 基本概述

第1章 操作系统概述 第1章 操作系统概述操作系统的基本概念操作系统的主要功能操作系统的发展历史操作系统设计目标 操作系统的基本概念 你知道哪些操作系统? 操作系统“无处不在”,非常重要 个人电脑:台式机、笔记本、手机、Pad等&#x…

便利的无线信号传输解决方案

通过使用不须经过许可的60 GHz射频毫米波段,可实现前所未有的多千兆数据速率,为短距离非接触式连接开辟了新的机会。这种板对板非接触式连接技术,可以去除电子设备中的柔性电缆,并避免工业电子系统中因为转弯和弯曲而承受机械应力…