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

news2024/12/1 0:43:30

王道考研操作系统-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检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云 物联网平台 MQTT连接、数据传输

阿里云 物联网平台 MQTT连接、数据传输 1、设备连接阿里云 2、多设备之前的通信、数据流转 3、设备数据来源的读取。 基于C# winform 开发上位机,读取设备、仪器、MES或者电子元器件的数据,MQTT传输至阿里云平台,可视化界面构建界面&#…

Kafka应用Demo:指派分区订阅消息消费

环境准备 Kafka环境搭建和生产者样例代码与《Kafka应用Demo:按主题订阅消费消息》相同。 消费者代码样例 public class KafkaConsumerService {private static final Logger LOGGER LoggerFactory.getLogger(KafkaConsumerService.class);private static final S…

练习队列的相关操作:循环队列

1. 思路解析 循环队列就是在只有有限的空间时使用队列实现循环存储数据&#xff0c;有双向链表和数组两种选择&#xff0c;这里我们使用数组实现循环队列&#xff08;因为链表我不会 >-<&#xff09; 2. 相关函数及其实现 2.1 判空与判满 判空&#xff1a;直接返回头尾…

NX/UG二次开发—3D几何—多边形内部最大圆

多边形内部最大圆&#xff0c;为什么不能说最大内切圆&#xff1f;如果正方形或正凸多边形&#xff0c;最大内部圆是与边相切的&#xff0c;但对于不规则多边形&#xff0c;很多情况是正好经过一些凹点。 本次介绍在NX中计算封闭边界内部最大圆&#xff1a; 1、首先按顺序排序…

ASP.NET一种基于C2C模式的网上购物系统的设计与实现

摘 要 网络购物已经慢慢地从一个新鲜的事物逐渐变成日常生活的一部分&#xff0c;以其特殊的优势而逐渐深入人心。本课题是设计开发一种基于C2C模式的网上购物系统。让各用户使用浏览器进行商品浏览。注册用户可以轻松的展示自己的网络商店&#xff0c;能对自己的用户信息进行…

华为机试打卡 HJ2 计算某字符出现次数

要机试了&#xff0c;华孝子求捞&#xff0c;功德 描述 写出一个程序&#xff0c;接受一个由字母、数字和空格组成的字符串&#xff0c;和一个字符&#xff0c;然后输出输入字符串中该字符的出现次数。&#xff08;不区分大小写字母&#xff09; 数据范围&#xff1a; 1≤&a…

SM935,SM942,SM150和利时备件

SM935,SM942,SM150和利时备件。组态软件&#xff0c;可组态控制图、机柜布置图、电源分配图等&#xff0c;可编辑、编译、SM935,SM942,SM150和利时备件。工程师站组态的基本步骤&#xff1a;SM935,SM942,SM150和利时备件。 1. 根据生产现场的控制方案画出控制系统原理图 2. 根据…

自动秒收录网址导航分类目录模板

自动秒收录网址导航是一个以html5css3进行开发的免费版网址自动收录模板源码。 模板特点&#xff1a;全站响应式H5网站制作技术&#xff0c;一个网站适应不同终端&#xff0c;模板支持网址导航一键采集入库&#xff0c;免规则文章资讯智能批量采集内置伪原创&#xff0c;本地化…

笔记3:torch训练测试VGG网络

&#xff08;1&#xff09;利用Netron查看网络实际情况 上图链接 python生成上图代码如下&#xff0c;其中GETVGGnet是搭建VGG网络的程序GETVGGnet.py&#xff0c;VGGnet是该程序中的搭建网络类。netron是需要pip安装的可视化库&#xff0c;注意do_constant_foldingFalse可以防…

Redis数据结构扩容源码分析

1 Redis数据结构 redis的数据存储在dict.中&#xff0c;其数据结构为(c源码) ypedef struct dict { dictType *type; //理解为面向对象思想&#xff0c;为支持不同的数据类型对应dictType抽象方法&#xff0c;不同的数据类型可以不同实现 void *privdata; //也可不同的数据类…

[AutoSar]BSW_Diagnostic_004 ReadDataByIdentifier(0x22)的配置和实现

目录 关键词平台说明背景一、配置DcmDspDataInfos二、配置DcmDspDatas三、创建DcmDspDidInfos四、创建DcmDspDids五、总览六、创建一个ASWC七、mapping DCM port八、打开davinci developer&#xff0c;创建runnabl九、生成代码 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、…

Maven:继承和聚合

Maven高级 分模块设计和开发 如果在我们自己的项目中全部功能在同一个项目中开发,在其他项目中想要使用我们封装的组件和工具类并不方便 不方便项目的维护和管理 项目中的通用组件难以复用 所以我们需要使用分模块设计 分模块设计 在项目设计阶段,可以将大的项目拆分成若…

欢乐钓鱼大师攻略,兑换码怎么操作?

在努力钓鱼的同时&#xff0c;别忘了收获丰富的奖励和成就&#xff0c;这将是你在游戏中的最大动力和满足感。 完成任务和挑战&#xff1a; 游戏中有各种各样的任务和挑战等着你去完成。通过完成这些任务和挑战&#xff0c;你可以获得丰富的奖励和成就&#xff0c;提升自己的钓…

[Java EE] 文件IO(一):文件概念与文件系统操作

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …

android studio配置Http Proxy

1、问题描述&#xff1a; Error:Unable to tunnel through proxy. Proxy returns “HTTP/1.1 400 Bad Request” 解决&#xff1a;HTTP Proxy设置 1.File→Settings…→System Settings → HTTP Proxy → Auto-detect proxy settings”&#xff1b; 2.勾选下方“Automatic prox…

景源畅信电商:经营抖店需要电脑吗?

经营抖店是否需要电脑?这个问题看似简单&#xff0c;实则关乎着商家的运营效率和成本投入。在当前数字化、网络化的商业环境中&#xff0c;电脑已经成为了不可或缺的工具。那么&#xff0c;经营抖店究竟是否需要电脑呢?答案是肯定的。 一、高效处理订单 电脑能够高效地处理大…

【408真题】2009-03

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

【Linux】- Linux环境变量[8]

目录 环境变量 $符号 自行设置环境变量 环境变量 环境变量是操作系统&#xff08;Windows、Linux、Mac&#xff09;在运行的时候&#xff0c;记录的一些关键性信息&#xff0c;用以辅助系统运行。在Linux系统中执行&#xff1a;env命令即可查看当前系统中记录的环境变量。 …

代数结构:5、格与布尔代数

16.1 偏序与格 偏序集&#xff1a;设P是集合&#xff0c;P上的二元关系“≤”满足以下三个条件&#xff0c;则称“≤”是P上的偏序关系&#xff08;或部分序关系&#xff09; &#xff08;1&#xff09;自反性&#xff1a;a≤a&#xff0c;∀a∈P&#xff1b; &#xff08;2…

将Flutter程序打包为ios应用并进行安装使用

如果直接执行flutter build ios: Building com.example.myTimeApp for device (ios-release)...════════════════════════════════════════════════════════════════════════════════No vali…