考研操作系统-1.计算机系统概述

王道考研操作系统-1.计算机系统概述

操作系统

是指控制和管理整个计算机系统的硬件和软件资源,合理地组织调度计算机的工作和资源的分配;提供给用户和软件方便的接口和环境;是计算机系统中最基本的系统软件。
应包括:
1)能有效地组织和管理四大资源的软件
2)合理地对各类作业进行调度和控制它们运行的软件
3)方便用户使用计算机的软件

计算机系统自上而下大致可以分为4部分:用户、应用程序、操作系统和硬件。如下图:​

  1. 操作系统的基本特征

    • 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。操作系统的并发性是通过分时得以实现的。在多道程序环境下,一段时间内,宏观上有多道程序在同时执行,而微观上这些程序仍是分时交替执行的。操作系统就是伴随着“多道程序技术”而出现的。因此,操作系统和程序并发是一起诞生的。在内存中的多个程序都分别建立一个进程,它们就可以并发执行,这样提高系统资源的利用率和系统的吞吐量。
      并行是指两个或多个事件在同一时刻同时发生。并行性需要有相关硬件的支持,如多流水线或多处理机硬件环境。
      单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
      多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

    • 共享:指系统中的资源可供内存中多个并发执行的进程共同使用。(调入内存的进程是当前执行的进程,它们共享系统资源)

      互斥共享:当进程A要访问某资源时,必须先提出请求。若此时该资源空闲,系统便可将之分配给请求进程A使用。此后若再有其他进程也要访问该资源,只要A未用完就必须等待。仅当A进程访问完并释放系统资源后,才允许另一进程对该资源进行访问。这种资源共享方式称为互斥式共享。
      把这种在一段时间内只允许一个进程访问的资源,成为临界资源(或独占资源)。

      同时访问:允许在一段时间内由多个进程“同时”对它们进行访问。“同时”是宏观意义上,微观上进程对该资源的访问是交替进行的。“同时”访问的典型资源是磁盘设备(访问文件等),一些用重入码编写的文件也可被“同时”共享,即允许若干个用户同时访问该文件。

    • 并发和共享的关系:
      并发性指计算机系统中同时存在着多个运行着的程序。
      共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。

      并发和共享是多用户(多任务)OS的两个最基本的特征。它们是互为存在的条件

    • 虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。前者是实际存在的,后者是用户感受到的。

      时分复用技术,虚拟处理机技术,是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器的。利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU。它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。提高了处理机的效率。

      空分复用技术,虚拟存储器技术。将一台机器的物理存储器变为虚拟存储器,从逻辑上扩充存储器的容量。是利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。提高内存的利用率。

    • 异步:是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是以不可预知的速度向前推进。如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。

操作系统功能

  1. 操作系统作为计算机系统资源的管理者
    在一个计算机系统中,通常都含有多种硬件和软件资源。归纳起来可将这些资源分为四类:
    1)处理机管理
    2)存储器管理
    3)文件管理
    4)设备管理

  2. 操作系统作为用户与计算机硬件系统之间的接口

    用户可通过三种方式使用计算机,即通过命令方式、系统调用方式和图标——窗口方式来实现与操作系统的通信,并取得它的服务。
    1)命令接口分为联机命令接口和脱机命令接口。

    • 联机命令接口又称交互式命令接口,适用于分时或实时系统的接口。可以理解为“用户说一句(命令),系统做一句(命令)”,强调了交互性。cmd,shell。
    • 脱机命令接口又称批处理命令接口,适用于批处理系统,由一组作业控制命令组成。可以理解为“用户说一堆(命令),系统做一堆(命令)”,用户不能直接干预作业运行。bat文件。

    2)程序接口(广义指令)
    可以在程序中进行系统调用来使用程序接口。用户间接使用使用程序接口(系统调用)来请求OS中的服务。用户程序非系统调用。

    系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在核心态。

    3)图标——窗口
    一般是图形用户界面(GUI),如Windows、安卓等的图形化操作界面

  3. 补充

    操作系统作为最接近硬件的层次
    没有任何软件支持的计算机成为裸机。覆盖了软件的机器称为扩充机器,又称之为虚拟机。

    操作系统为编程人员提供的接口是程序接口,即系统调用。
    用户程序只能通过系统调用的方式来请求内核为其服务,间接地使用各种资源。
    系统缓存由操作系统管理,操作系统不提供管理系统缓存的系统调用。
    系统开机后,操作系统的程序会被自动加载到内存中的系统区,这段区域是RAM。
    库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),库函数属于用户程序而非系统调用,是语言或应用程序的一部分,可以运行在用户态。

    系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在核心态。未使用系统调用的库函数,其执行效率通常要比系统调用的高。使用系统调用时,需要上下文的切换及状态的转换(用户态->核心态)
     

操作系统的发展与分类

  1. 手工操作阶段(此阶段无操作系统)

  2. 批处理阶段(操作系统开始出现)
    为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,出现了批处理系统。

    • 单道批处理系统(一个接一个地处理,减少机器空闲等待时间)
      主要特征:

      单道性。内存中仅有一道监督程序,每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。

      自动性。在顺利的情况下,作业能自动地逐个运行,而无须人工干预。

      顺序性。先调入内存的作业先完成。

      缺点:系统中的资源得不到充分的利用。是因为在内存中仅有一道程序,程序在发出I/O请求后,CPU便处于等待状态使CPU的利用率显著降低。

    • 多道批处理系统(操作系统正式诞生)
      为了进一步提高资源的利用率和系统吞吐量,引入了多道程序设计技术,形成了多道批处理系统。
      允许多个程序同时进入内存并允许它们在CPU中交替地运行,程序共享系统中的各种硬/软件资源。
      中断技术使得多道批处理系统和I/O设备可与CPU并行工作,提高了多道程序运行环境中CPU的利用率。
      特点:
      ①多道。计算机内存中同时存放多道互相独立的程序。
      ②宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。
      ③微观上串行。内存中的多道程序轮流占有CPU,交替执行。
      优点:
      ①资源利用率高。引入多道批处理能使多道程序交替运行,CPU处于忙碌状态;在内存中装入多道程序可提高内存的利用率,提高I/O设备的利用率。
      ②系统吞吐量高。系统开销小。
      缺点:
      ①平均周转时间长。作业要排队依次进行处理,而作业的周转时间较长,通常需几个小时,甚至几天。
      ②无交互能力。用户不能进行交互。
      与单道程序系统相比,多道程序系统的优点是CPU利用率高、系统吞吐量大以及I/O设备利用率高。

  3. 分时操作系统(解决了人机交互问题)
    分时技术,是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。一个时间片就是一段很短的时间。
    分时操作系统是指多个用户通过自己的终端同时共享一台主机,用户可以同时与主机进行交互操作而互不干扰,用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户。

    多路卡功能:及时接收多个用户键入的命令或数据。多路卡的作用是实现分时多路复用。

    实现及时处理则需要采用两种方式:
    作业直接进入内存。因为作业在磁盘上是不能运行的,所以作业应直接进入内存。
    采用轮转运行方式。系统规定每个作业每次只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行。

    分时系统的特征:
    ①多路性(同时性)。指允许多个终端用户同时使用一台计算机。
    ②独立性。指每个用户在各自的终端上进行操作,彼此之间互不干扰,给用户的感觉就像是他一人独占主机进行操作。
    ③及时性。指用户的请求在很短时间内获得响应。
    ④交互性。用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。

    优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
    缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

  4. 实时操作系统(有优先级)
    时操作系统最主要的特征是将时间作为关键参数。
    在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,要在严格的时限内处理完事件。资源利用率不是实时操作系统主要追求的目标,资源利用率低。实时系统的进程调度,通常采用抢占式的优先级高者优先算法。

    特点:及时性、可靠性

    主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。

    • 实时任务的类型:
      周期性实时任务和非周期性实时任务

      周期性实时任务:外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外部设备。
      非周期性实时任务:并无明显的周期性,但都必须联系着一个截止时间(最后期限)。它又分为:①开始截止时间,指某任务在某时间以前必须开始执行。②完成截止时间,指某任务在某时间以前必须完成。

    • 硬实时任务和软实时任务
      硬实时任务(HRT)是指必须满足任务对截止时间的要求,否则可能出现难以预测的后果。如导弹控制系统等。
      软实时任务(SRT)是指能接受偶尔违法时间规定的事情发生。如信息查询系统。

  5. 网络操作系统和分布式计算机系统
    网络操作系统是网络中各个计算机有机地结合起来,实现数据传送,资源共享和相互通信。
    分布式操作系统:主要特点是分布性和并行性。系统中各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
     

操作系统的运行环境

计算机系统中,通常CPU执行两种不同性质程序:一种是操作系统内核程序;另一种是用户自编程序(即系统外层的应用程序,或简称“应用程序”)。内核是操作系统最重要最核心的部分,也是最接近硬件的部分,操作系统的功能未必都在内核中,如图形化用户界面 GUI。甚至可以说,一个操作系统只要有内核就够了(eg:Docker—>仅需Linux内核)

CPU有两种状态,核心态(又称核心态、内核态)和用户态(目态)
处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令和非特权指令。
处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令。

特权指令,是指计算机中不允许用户直接使用的指令,如I/O指令、置中断指令、内存清零指令、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。
拓展:CPU 中有一个寄存器叫 程序状态字寄存器(PSW),其中有个二进制位,1表示“核心态”,0表示“用户态”。

内核态->用户态:执行一条特权指令——修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权。
用户态->内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。
注意:
操作系统内核需要运行在内核态。
操作系统的非内核功能运行在用户态。
所以采用微内核的话,需要频繁地在核心态和用户态之间切换。

中断和异常的概念
中断也称外中断,指来自CPU执行指令以外事件的发生,与当前执行的指令无关,时钟中断表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。

“中断”是让操作系统内核夺回CPU使用权的唯一途径。有时候应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令——陷入指令,该指令会引发一个内部中断信号。执行“陷入指令”,意味着应用程序主动地将CPU控制权还给操作系统内核。“系统调用”就是通过陷入指令完成的。

异常(内中断、例外、陷入(trap)),指源自CPU执行指令内部的事件,与当前执行的指令有关,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,异常不能被屏蔽,一旦出现应立即处理。

中断机制的基本原理:

不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/618744.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

清华发布Temporal Scaling Law,解释时间尺度对大模型表现的影响

众所周知, 语言模型调参! 预训练语言模型调参!! 预训练大语言模型调参!!! 简直就是一个指数级递增令人炸毛的事情,小编也常常在做梦,要是只训练几步就知道现在的超参…

拌合楼管理系统(十九)ini配置文件本地加密

前 言: 项目中,数据库服务器与程序不在一起,且不允许通过互联网直接访问数据库。 解决方法是通过web服务来做中间件来解决数据交互的问题。但如果web服务交互又存在身份验证问题,需要实现访问对应的接口是经过授权的,未…

考研数学|强化阶段怎么刷《660》《880》《1000》?

强化阶段想要刷好题,首先要选一本适合自己的题集! 一般在强化阶段,大家用多个最多的题集就是660题,880题还有1000题 660题的特点是只训练客观题,虽然题目的质量很高,但是训练面还是比较窄 880题是综合训…

华为交换机配置导出备份python脚本

一、脚本编写思路 (一)针对设备型号 主要针对华为(Huawei)和华三(H3C)交换机设备的配置备份 (二)导出前预处理 1.在配置导出前,自动打开crt软件或者MobaXterm软件&am…

C++ int 学习

在C语言中 & 是取地址符号; 在C中有 int& 这样的,这里的&不是取地址符号,而是引用符号; 引用是C对C的一个补充; 变量的引用就是变量的别名,讲的通俗一点就是另外一个名字; a的值…

transformer与beter

transformer与beter 解码和编码器含义tokizer标记器和one-hot独热编码编码解码--语义较好的维度空间矩阵相乘--空间变换编码理解如何构造降维的嵌入矩阵--实现到达潜空间上面是基础,下面是transformer正文自注意力机制注意力分数--上下文修正系数为什么需要KQ两个矩…

GO+树莓派+E53_IA1智慧农业模块

简介 之前手头上有小熊派的开发板, 有一个E53_IA1模块, 刚好用到树莓派上, 使用GO进行控制,实现智慧农业模块功能。 模块介绍 模块电路介绍 按硬件分成五块, 其中四块在本次用上了, 分别是 1. 补光模块&…

SpringBoot结合Canal 实现数据同步

1、Canal介绍 Canal 指的是阿里巴巴开源的数据同步工具,用于数据库的实时增量数据订阅和消费。它可以针对 MySQL、MariaDB、Percona、阿里云RDS、Gtid模式下的异构数据同步等情况进行实时增量数据同步。 当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.…

数据分析需要注意哪些法律法规

数据分析 前言一、数据处理过程二、数据收集阶段的法律规则数据收集应具备合法、正当、透明原则数据收集应坚持最小必要原则数据收集应遵守知情-同意规则数据收集应遵守目的明确性要求 三、数据储存的法律规则四、数据使用与处理的阶段的法律规则数据安全保护义务按照数据分级分…

全球首例!猪肾移植患者死亡,人类科技与伦理或将面临挑战?

全球首例猪肾移植患者的离世,如同一颗重磅炸弹,在医学界激起千层浪花,让原本充满希望的“死而复生”异种器官移植技术再次被推至风口浪尖。 今年3月,一场与命运的较量在麻省总医院悄然落幕。全球首位接受转基因猪肾移植的患者理查…

Boss让你设计架构图,你懵逼了,解救你的参考图来啦。

架构图是指用于描述系统或软件的结构和组成部分之间关系的图形表示。 它是一种高层次的图示,用于展示系统的组件、模块、接口和数据流等,以及它们之间的相互作用和依赖关系。架构图通常被用于可视化系统的整体设计和组织结构,帮助人们理解系…

数据结构(四)——二叉树和堆(下)

制作不易,三连支持一下呗!!! 文章目录 前言一、二叉树链式结构的实现总结 前言 这篇博客我们将来了解普通二叉树的实现和应用,对大家之前分治和递归的理解有所挑战。 一、二叉树链式结构的实现 1.前置说明 在学习二叉…

对Windows超融合S2D的一些补充

先说一个不知道算不算BUG的例子,下面这个存储池是用两台服务器各2块10G建立的,除去系统保留的部分,显示还有13G可用。 但如果使用其新建虚拟磁盘会显示可用的空间为0 然后我又各增加了一块10G硬盘进池,变成了可用空间为30.5GB …

“二代”接班进行时:达利食品许阳阳揭秘“零食大王”成长密钥

“二代接班”早已不是一个新鲜话题。近年来,随着时间的推移,那些伴随改革开放和中国制造崛起的民营企业,更多的正在经历或已完成“二代接班”。 “毛巾王子”家的洁丽雅,最近因大手笔签约多位代言人而引起讨论的九牧王&#xff0…

基于Unity为Vision Pro 构建游戏的4个关键

为Vision Pro开发游戏时需要考虑的四个关键概念:输入的自然性、物理尺寸的真实匹配、交互空间的充足性以及Unity组件的有效利用。 AVP交互小游戏(Capsule Critters)作者分享了使用Unity构建的几个核心关键: Bounded - 游戏定义:Bounded(有限)是Unity的术语,指的是游戏作…

[AIGC] 几道 redis数据结构相关面试题

文章目录 7. 数据类型的实现8. 什么是空间预分配以及惰性空间释放,SDS 是怎么实现的9. 为什么说 SDS 是二进制安全的呢10. 说说 redis 里的对象11. 使用 RedisObject 的好处12. RedisObject 的具体结构是什么 7. 数据类型的实现 8. 什么是空间预分配以及惰性空间释放…

Tomcat添加服务以及设置开机自启

下载地址连接 Index of /dist/tomcat👓 注意点:不要出现中文路径 #环境变量 CATALINA_HOMED:\apache-tomcat-7.0.62 TOMCAT_HOMED:\apache-tomcat-7.0.62 JAVA_HOMED:\tool\jdk1.8.0_111 PATH%CATALINA_HOME%\bin;%CATALINA_HOME%\lib;%CATALINA_HOME%\…

【JVM基础篇】类加载器分类介绍

文章目录 类加载器什么是类加载器类加载器的作用是什么应用场景类加载器的分类启动类加载器用户扩展基础jar包 扩展类加载器和应用程序类加载器扩展类加载器通过扩展类加载器去加载用户jar包: 应用程序加载器 Arthas中类加载器相关功能 文章说明 类加载器 什么是类…

车载测试:为什么你投十份简历,只有一两家公司约你?

最根本的原因,就是一方在汲汲渴求,而恰恰另一方呈现出的关键点让其怦然心动。求者心中有所想,而应者恰恰展现了求者所想的那一面。这就是个中奥妙。 程序员在找工作时,在一开始有三件事情会对能否获得面试机会至关重要&#xff1…

C++笔记(STL标准库)

1.STL六大部件 容器 Containers分配器 Allocators:帮容器分配内存算法 Algorithms迭代器 Iterators:算法通过迭代器操作容器里的数据,是一种泛化的指针适配器 Adapters:修改或扩展已有类或函数的接口以满足特定的需求仿函数 Func…