操作系统的发展和分类,概念,它的运行机制和体系结构,以及和它相关的特征,功能和目标,

简介: 操作系统的发展和分类,概念,它的运行机制和体系结构,以及和它相关的特征,功能和目标,

操作系统的概念:

首先,我们通过现实生活的一个实例来对计算机系统的层次结构进行初步认识:

一台电脑的产生步骤:

1:买一台裸机

2:安装Windows操作系统

3:安装qq等应用软件

4:使用qq等应用软件

下图为计算机系统的层次结构:



操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调用计算机的工作和资源的的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的软件。


听过上述这些专业术语,相信大多数人和我第一次听到它的反应是相同的,除了懵逼,没有其他了。


下面我们用最直观的例子理解一下操作系统到底是什么?


打开Windows操作系统的“任务管理器”(快捷键:Ctrl+Alt+Del)

操作系统的功能和目标:

操作系统作为系统资源的管理者:


这些资源包括软件,硬件文件等。

如下图所示,操作系统和裸机以及应用程序之间便建立了联系。

那么它是如何对系统资源进行管理呢?


举一个生活中最常见的例子:


当我们使用微信和朋友进行视频通话这一过程,需要经历3以下几个步骤:


step1:在各个文件夹中找到微信安装的位置(逐层打开文件夹,找到WeChat.exe这个程序(可执行文件)的存放位置)


step2:双击打开微信.exe(此时操作系统将该程序的相关数据放入内存)


step3:微信程序正常运行(对应的进程被处理机(CPU)处理)


step4:即可开始和朋友进行视频通话(需要将摄像头设备分配给进程)


进程是一个程序执行的过程,执行前需要将该程序放到内存中,才能被CPU处理。

操作系统作为用户和计算机硬件之间的接口:


命令接口:允许用户直接使用

程序接口:允许用户通过程序间接使用

GUI:现代操作系统最流行的图形用户接口

首先来看用户接口:

系统调用=系统调用命令=广义指令

联机命令接口实例(Windows系统):联机命令接口=交互式命令接口

step1:win键+R

step2:输入cmd,按回车,打开命令解释器


step3:尝试使用time指令

脱机命令接口实例(Windows系统):脱机命令接口=批处理命令接口

使用Windows系统的搜索功能,搜索C盘中的*bat文件,用记事本任意打开一个。


程序接口:如C:\Windows\System32\user32.dll程序员在程序中调用user32.dll(该调用过程即为系统调用)即可实现创建窗口等功能,只能通过用户程序间接使用。


GUI:图形用户界面。用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令,参数。

例:在Windows操作系统中,删除一个文件夹只需要把文件“拖拽”到回收站即可。

操作系统作为最接近硬件的层次:


需要提供的功能和目标:实现对硬件机器的拓展。


没有任何软件支持的计算机称为裸机,在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强,使用更方便的机器。


通常把覆盖了软件的机器称为扩充机器,又称之为虚拟机。


举个生活中的实例:


如果我们想要修建一座房子或者是一艘帆船,那么我们不仅需要原材料:锤子,锯子,钉子等等,还需要一名优秀的工匠,这里的原材料就相当于硬件,而优秀的工匠就相当于操作系统。



操作系统对硬件机器的拓展:通过优秀的工匠,这些简单的原料可以组织成房子,帆船…普通用户可直接使用工匠所提供的的成品,而不需要关注这些东西在底层是如何组织,工作的。


操作系统的特征:

并发性和共享性是操作系统最基本的两个特征,二者互为存在条件。

此外还有虚拟和异步这两个其他特征。

并发性:

指的是两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但在微观上是交替发生的。


还有一个和它比较容易混淆的名词—并行:指的是两个或多个事件在同一时刻同时发生。


同样,我们还是通过举例去认识这两个名词。


并发VS并行:


假设小渣和老渣每人都有两个女朋友,任务一:和一号约会,任务二:和二号约会。


理解了这两个概念之后,那么回归到我们的操作系统,操作系统的并发性即为计算机系统中同时存在着多个运行着的程序。


一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替进行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行)


事实上,操作系统就是伴随着“多道程序技术”而出现的,因此操作系统和程序并发是一起诞生的。


当今的计算机,一般都是多核CPU,比如Intel的第八代i3处理器就是4核CPU,这意味着同一时刻可以有4个程序并行执行,但是操作系统的并发性依然必不可少,当代人使用计算机绝对有4个以上的程序需要同时工作。


举例:

共享性:

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

所谓“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)。


举例:


互斥共享方式:使用QQ和微信视频,同一时间段内摄像头只能分配给其中一个进程。


同时共享方式:使用QQ发送文件A,同时使用微信发送文件B,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据,微观上看,两个进程是交替着访问硬盘的。


并发性和共享性的关系:

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


那么我们上述提到的微信和QQ同时发送不同的文件这一实例,发送的这一行为是并发进行的,而访问硬盘资源这一行为是共享的。


由此,我们可得出它们之间的关系:


如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义,如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。


虚拟:

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

举例:

假设QQ需要2GB内存,微信也需要2GB内存,而浏览器和迅雷需要256MB的内存…


而此时我们的电脑内存只有4GB的大小。


当他们在我的电脑上同时运行,所需要的内存大小远大于4GB,为什么还可以正常运行?


原因即为:这是虚拟存储器技术,实际只有4GB的内存,在用户看来似乎远远大于4GB,实际是采用了虚拟技术中的“空分复用技术”。


插播一条冷知识:一个程序需要放入内存并给它分配CPU才能执行。


上面我们提到一个单核处理机(CPU)同一时刻只能执行一个程序,那么此时有一个单核CPU的计算机,该计算机用户打开了以下软件:


既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?


原因即为:这是虚拟机处理技术,实际上只有一个单核CPU,在用户看来似乎有6个CPU在同时为自己服务,实际是采用了虚拟技术中的“时分复用技术”,微观上处理机在各个微小的时间段内交替着为各个进程服务。


异步性:

异步是指:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

还是采用上述我们已经提到的例子,此时,老渣要和两个女孩并发约会。

1号女孩提出两个要求:

1:陪她吃饭

2:把心给她

2号女孩提出两个要求:

1:把心给她

2:陪她吃饭

那么可能出现的约会方法有:



与1号2号的约会,相当于对两个进程的处理,每个进程都有各自需要执行的指令。


老渣的心相当于有限的系统资源,由于可分配的资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,因为你并不知道老渣的心什么时候能够归还给自己,只有将心归还给老渣之后,才能够给另一个女孩,显然如果失去了并发性,则系统只能串行的处理各个进程,每个进程的执行会一贯到底,只有系统拥有并发性,才有可能导致异步性。


操作系统的发展与分类:

手工操作阶段:

主要缺点:

用户独占全机,人机速度矛盾导致资源利用率极低

批处理阶段-------单道批处理阶段:


引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入,输出。

单道批处理系统的优缺点:

主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。

主要缺点:内存中仅能有一道程序运行,只有该程序运行结束后,才能调入下一道程序,CPU有大量的时间是在空闲等待I/O完成,资源利用率依然很低。

多道批处理系统:

主要优点:

多道程序并发执行,共享计算机资源,资源利用率大幅度提升,CPU和其他资源保持“忙碌”状态,系统吞吐量大。

主要缺点:


用户响应时间长,没有人机交互功能(用户提交自己的作业后就只能等待计算机处理完成,中间不能控制自己作业的执行)

为什么多道批处理系统能够使资源利用率大幅提升?

假设计算机需要处理三个作业:

作业一:输入一秒,计算一秒,输出一秒

作业二:输入一秒,计算一秒,输出一秒

作业三:输入一秒,计算一秒,输出一秒

若采用多道批处理技术:

分时操作系统:

计算机以时间片为单位轮流为各个用户或者作业服务,一个用户可通过终端与算机进行交互。

主要优点:用户请求可以立即被响应,解决了人机交互问题,允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

主要缺点:不能优先处理一些紧急任务操作系统,对各个用户或作业都是完全公平的,循环的为每个用户作业服务一个时间片,不区分任务的紧急性。


实时操作系统:

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

在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时间线内处理完事件,实时操作系统的主要特点是及时性和可靠性。

其他几种操作系统:

网络操作系统是伴随着计算机网络的发展而诞生的,能够把网络中各个计算机有机的结合起来,实现数据传送等功能,实现网络中各种资源的共享,如文件共享和各台计算机之间的通信,如Windows NT就是一种典型的网络操作系统,网站服务器就可以使用。


分布式操作系统主要特点是分布性和并行性,系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由他们并行协同完成这个任务。


个人计算机操作系统如Windows XP,MacOS方便个人用。


操作系统的运行机制与体系结构:

“指令”和“代码”的区别:

简单的说,“指令”就是处理器(CPU)能识别,执行的最基本命令,例如:加法指令就是让CPU进行加法运算。

两种指令,两种处理器状态,两种程序:

两种指令:

CPU如何判断当前是否可以执行特权指令?

两种处理器状态:

两种程序:

运行机制:

操作系统的内核:

举例:

当我们安装完Windows操作系统后会发现操作系统提供了各种各样的功能,比如记事本,任务管理器,然而这些功能并不是必不可少的,即使没有任务管理器,我们仍然可以使用计算机。

内核是计算机上配置的底层软件,是操作系统最基本,最核心的部分,实现操作系统内核功能的那些程序就是内核程序。

大内核和微核:

操作系统的体系结构:

类比:

操作系统的体系结构问题与企业管理问题很相似。


内核就是企业的管理层负责一些重要的工作,只有管理层才能够执行特权指令,普通员工只能执行非特权指令,用户态,核心态之间的切换相当于普通员工和管理层之间的工作交接。


大内核,企业初创时体量不大,管理层的人会负责大部分的事情,优点是效率高,缺点是组织结构混乱,难以维护。


微内核,随着企业体量越来越大,管理层只负责最核心的一些工作,优点是组织结构清晰,方便维护,缺点是效率低。

相关文章
|
2天前
|
编解码 自然语言处理 JavaScript
智谱发布GLM-OS概念及Agent产品,CogAgent-9B模型开源助力GUI交互场景
11月29日,智谱正式提出 GLM-OS 概念,并发布 AutoGLM 和 GLM-PC 两款 Agent 产品。近期GLM-PC 的基座模型—— CogAgent-9B 开源,供社区进一步开发。
|
2月前
|
API 数据处理 C语言
探索操作系统:从基础概念到实际应用
本文将带你进入操作系统的世界,了解它的基本概念、发展历程和应用场景。我们将一起探讨操作系统的核心功能、体系结构以及它在计算机系统中的重要作用。同时,我们还将介绍一些常见的操作系统类型,并分析它们的特点。最后,通过一个简单的代码示例,展示操作系统在实际应用中的重要作用。让我们一起揭开操作系统的神秘面纱,探索它的奥秘吧!
|
2月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
179 5
|
2月前
|
安全 算法 Unix
深入浅出操作系统:从基础概念到实践应用
【10月更文挑战第22天】本文旨在以浅显易懂的语言,为读者揭开操作系统的神秘面纱。我们将从操作系统的基本概念出发,逐步深入其核心功能与设计哲学,并通过具体代码示例,展示操作系统如何在实际中发挥作用。无论你是计算机科学的学生,还是对技术有浓厚兴趣的爱好者,这篇文章都将为你提供一次轻松愉快的操作系统之旅。
52 4
|
3月前
|
安全 Android开发 iOS开发
Android vs iOS:探索移动操作系统的设计与功能差异###
【10月更文挑战第20天】 本文深入分析了Android和iOS两个主流移动操作系统在设计哲学、用户体验、技术架构等方面的显著差异。通过对比,揭示了这两种系统各自的独特优势与局限性,并探讨了它们如何塑造了我们的数字生活方式。无论你是开发者还是普通用户,理解这些差异都有助于更好地选择和使用你的移动设备。 ###
64 3
|
3月前
|
Ubuntu Java Linux
Linux操作系统——概念扫盲I
Linux操作系统——概念扫盲I
60 4
|
4月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
111 12
|
4月前
|
存储 算法 安全
深入理解操作系统:从基础概念到代码实践
【9月更文挑战第23天】本文将带领读者深入探索操作系统的奥秘,从基础概念出发,逐步揭示操作系统的工作原理和设计哲学。我们将通过实际代码示例,展示操作系统如何与硬件交互、管理资源以及提供用户界面。无论你是计算机专业的学生还是对操作系统感兴趣的开发者,这篇文章都将为你打开一扇通往操作系统世界的大门。
84 16
|
3月前
|
缓存 算法 安全
探索操作系统的心脏:内核功能与性能优化####
在数字化时代,操作系统作为计算机系统的灵魂,其性能和稳定性直接影响用户体验。本文深入剖析了操作系统的核心——内核,探讨了其在资源管理、安全性和效率方面的关键作用,并提出了针对性能优化的策略,旨在为开发者和用户提供更高效、更安全的操作体验。 ####
|
2月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
68 0
Vanilla OS:下一代安全 Linux 发行版