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

这篇具有很好参考价值的文章主要介绍了【操作系统】 1、计算机系统概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

1.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实现对计算机资源的扩充

扩充裸机。



1.2 操作系统的发展与分类

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

错题汇总:
1、分时系统的一个重要性能是系统响应时间,对操作系统的(C)因素进行改进,有利于改善系统的响应时间。
A 加大时间片
B 采用静态页式管理
C 优先级+非抢占式调度算法
D 代码可重入

解析: 优先级区分不同的作业、进程,有利于系统从后备队列或就绪队列中优先选取重要的任务进行处理,非抢占式 更避免了抢占式造成次要作业,进程的饥饿现象。

2、分时系统追求的目标:A
A、比较快速的响应用户 B、提高吞吐量 C、 充分利用内存 D、充分利用IO

解析:思考一个问题,为什么会出现实时系统?直白的说,就是分时系统,不能在规定时间内,完成用户想要的处理结果。一个字,就是慢。
批处理系统其实已经达到吞吐量高,系统内存、资源利用率高的条件了。

PS:当你解决一个问题陷入僵局,跳出这个圈子,看一看它的上下文环境,背景环境。




1.3 操作系统运行环境

1.3.1 处理器的运行模式

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

两种程序

计算机系统中,通常CPU执行两种不同性质的程序:

  • 操作系统内核程序
  • 程序自编的应用程序

前者是后者的管理者,因此需要执行一些特权指令,而被管理的应用程序,出于安全考虑,不能执行这些指令。

两种指令

1.特权指令
用户不可以直接使用,如IO指令,内存清零,这些指令影响重大,只允许 管理者——操作系统内核来执行。

2.非特权指令
允许用户直接使用的指令,比如加法指令 、减法指令 load、store、 inc 等等,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这样也是为了防止用户程序对系统造成破坏。

这里我们补充一下 一条程序到底是如何运行起来的。

我们通过高级语言编写的语言,不管是Java 还是C++,通过编译器将其进行预处理->编译->汇编->链接  等操作,最终根据不同操作系统生成不同格式的可执行文件,比如window 的.exe 。这个具体过程究竟是什么样的呢?


简单来说:
高级语言通过一系列词法分析语义分析等操作,再通过编译器,将从我们能理解的高级语言,转换成 中间语言助记符号(汇编指令,指令),再从这种中间语言 转换成 机器码 (二进制1010101。。),然后逐条的将这些机器码放到CPU上执行。

两种运行状态

CPU将运行模式划分成 内核态 和用户态,
处于内核态的时候,说明此时正在运行的是 内核程序,此时可以执行 特权指令。
处于用户态时候,说明此时运行的是 应用程序,此时只能执行非特权指令。

注意 切换到用户态的指令 是特权指令,而从用户态切换到内核态的 陷入指令(trap、访管指令)是非特权指令。

内核态–>用户态: 执行一条特权指令—修改PSW(程序状态字)的标志位为“用户态”,此动作意味着操作系统将主动让出CPU使用权限

用户态–>内核态: 由中断引发,硬件自动完成变态过程,触发中断信号 意味着操作系统将强行夺回CPU的使用权限

内核

根据分层和结构化的软件设计思想
一些与硬件关联较为密切的模块,如 时钟管理、中断处理、设备驱动处于最底层。
运行频率较高的程序 如进程管理、存储器管理、设备管理等。
这两部分构成了操作系统的内核。

内核是计算机上配置的底层软件,它管理着系统的各类资源,可以看作是链接应用程序和硬件的一座桥梁,主要包括以下4个方面:

  • 时钟管理
  • 中断机制
  • 原语
  • 系统控制的数据结构及处理
    • 进程管理
    • 存储器管理
    • 设备管理


1.3.2 中断和异常的概念

【操作系统】 1、计算机系统概述
没有中断机制,就不可能实现操作系统,不可能实现并发机制。
引入中断机制的初衷是 为了提高多道程序环境中 CPU的利用率。

【操作系统】 1、计算机系统概述
图片来自于王道



1.3.3 系统调用

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

强调几点:

  • 系统调用是需要使用特权指令的,所以系统调用的处理需要操作系统的 内核程序负责完成,要运行在 内核态
  • CPU状态切换 是由硬件完成的,而不是操作系统。
  • 保存断点和程序状态字(PSW) 是由CPU硬件完成的。

PS: 这一部分知识需要结合计算机组成原理来理解,有些操作属于操作系统和计算机硬件共同完成。


1.4 操作系统的结构

  1. 分层法
  2. 模块化
  3. 宏内核
  4. 微内核
    将内核中最基本的功能保留在内核,那些不需要内核态执行的功能 移到用户态执行,降低了内核设计的复杂性。
    那些移出内核的操作系统代码根据分层原则被划分成若干个服务程序,他们相互独立执行,交互则借助微内核进行通信。

微内核结构将操作系统划分为两大部分:微内核和多个服务器。操作系统的大部分功能都是在微内核外的一组服务器中实现的。(这些服务器往往都是以进程的方式实现)

微内核包括
[1] 与硬件处理紧密相关的部分
[2]一些较为基本的功能
[3]客户与服务器之间的通信

【操作系统】 1、计算机系统概述
单机环境下的客户/服务模式文章来源地址https://www.toymoban.com/news/detail-472963.html

  1. 外核

到了这里,关于【操作系统】 1、计算机系统概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机操作系统安全

    操作系统安全是计算机系统安全的重要组成部分,目的是保护操作系统的机密性、完整性和可用性。在当前的网络环境下,操作系统面临着许多威胁,如病毒、木马、蠕虫、黑客攻击等等。为了保护操作系统的安全,需要采取各种措施来防范这些威胁。本文将介绍一些常见的

    2024年02月02日
    浏览(49)
  • 计算机基础——操作系统

    作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录  前言 一.操作系统 1.操作系统简介  2.操作系统的主要功能 (1)资源管理 (2)人机交互  (3)程序控制 (4)进程管理

    2024年01月23日
    浏览(58)
  • 计算机操作系统-笔记

    第一章 引论 1. 操作系统定义 操作系统是运行在内核态的软件,它执行两个基本上独立的任务。 隐藏计算机底层硬件的实现,为用户及应用程序提供一个资源集的清晰抽象。 管理计算机硬件资源。 任何操作系统的核心是它可处理的系统调用集。这些系统调用集真实地说明了

    2024年02月20日
    浏览(57)
  • 计算机基础--->操作系统(4)【文件系统】

    文件系统主要负责管理和组织计算机存储设备上的文件和目录,其功能包括以下几个方面: 存储管理 :将文件数据存储到物理存储介质中,并且管理空间分配,以确保每个文件都有足够的空间存储,并避免文件之间发生冲突。 文件管理 :文件的创建、删除、移动、重命名、

    2024年02月08日
    浏览(76)
  • 计算机操作系统和进程

    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 ✨每日一语:心平能愈三千疾,心静可通万事理。 操作系统是一组做计算机资源管理的软件的统称 目前常见的操作系统有:Windows系列、Unix系列、Linux系列、OSX系列、Android系列、iOS系列、鸿蒙等 防止硬件被时空的应用程序滥用

    2024年01月23日
    浏览(61)
  • 计算机操作系统——页面置换算法

    声明 :本篇博客参考书籍《计算机操作系统》(西安电子科技大学出版社) 首先说说影响页面换进换出的效率的几个因素: (1)页面置换算法。该因素是影响页面换进换出效率的重要因素。一个好的页面置换算法可以使进程在运行过程中具有较低的缺页率,从而减少页面换

    2024年02月07日
    浏览(70)
  • 计算机操作系统实验:进程调度实验

    前言 二、实验目的 三、实验要求 四、实验原理 五、实验过程 六、代码详解 总结 计算机操作系统是管理计算机硬件和软件资源的核心软件,它负责为用户提供一个友好、高效、安全的使用环境。进程调度是操作系统的一个重要功能,它决定了进程在处理器上的执行顺序和时

    2024年02月07日
    浏览(57)
  • 计算机操作系统原理期末总复习

    1、现代操作系统的四个特征是什么?(4分) 并发、共享、虚拟、异步 并发 :两个或多个事件在 同一时间间隔内 发生。 共享 :内存中多个并发执行的进程共同使用系统中的资源。 2、操作系统内核的四个主要功能是什么?(4分) 内存管理、进程管理、设备管理、文件管理

    2024年02月10日
    浏览(67)
  • 【计算机操作系统学习资源汇总】

    做优秀资源的搬运工!阅读经典,传承经典! 每个人的水平和理解不同,因此总结的水平也不同,推荐阅读一手资源,有时间尽量啃书。 发现好的资源会持续更新… 看书的一点小建议 如何阅读《深入理解计算机系统》这本书? [读书笔记]CSAPP深入理解计算机系统 中英双语字

    2024年02月05日
    浏览(70)
  • Linux操作系统:开源的计算机革命

    引言: 在计算机科学领域,Linux操作系统已经成为了一个不可或缺的存在。自1991年由林纳斯·托瓦兹(Linus Torvalds)首次发布以来,Linux已经从一个个人项目发展成为全球最流行的开源操作系统之一。本文将详细介绍Linux操作系统的起源、特点、应用以及未来发展趋势。 一、

    2024年02月04日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包