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

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

操作系统的概念:

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

一台电脑的产生步骤:

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操作系统后会发现操作系统提供了各种各样的功能,比如记事本,任务管理器,然而这些功能并不是必不可少的,即使没有任务管理器,我们仍然可以使用计算机。

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

大内核和微核:

操作系统的体系结构:

类比:

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


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


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


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

相关文章
|
存储 Linux API
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
在计算机系统的底层架构中,操作系统肩负着资源管理与任务调度的重任。当我们启动各类应用程序时,其背后复杂的运作机制便悄然展开。程序,作为静态的指令集合,如何在系统中实现动态执行?本文带你一探究竟!
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
|
弹性计算 运维 安全
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
|
运维 JavaScript 应用服务中间件
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
本文介绍了OS Copilot在ECS上 Alibaba Cloud Linux的安装与使用,并对其多项参数进行了功能测评。OS Copilot是为操作系统提供智能化辅助的工具,支持自动化任务、智能推荐、故障排查等功能。安装时需检查是否已安装(`rpm -q os-copilot`),若未安装则用`yum install os-copilot`命令安装,并配置AccessKey信息连接阿里云服务。通过测试不同参数命令,如`-t`参数,展示了其自动化执行和智能生成回答的能力,显著提升运维效率。
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
663 0
|
弹性计算 监控 安全
实测阿里云操作系统控制台:功能、诊断与优化
阿里云操作系统(AliOS)是阿里巴巴专为物联网和智能设备开发的操作系统,提供高效、安全、智能化的解决方案。本文介绍了如何开通和使用阿里云的云服务器ECS,包括注册、选择操作系统、创建用户及授权等步骤。通过控制台,用户可以实时监控设备状态、管理组件、进行性能诊断,并优化资源使用。掌握这些功能有助于提升系统管理和数据处理能力,满足物联网场景的多样化需求。建议进一步丰富系统健康指标和观测功能,以提供更好的用户体验。
764 24
|
人工智能 弹性计算 运维
深度评测阿里云操作系统控制台:功能全面,体验卓越!
阿里云操作系统控制台是阿里云提供的高效、稳定、易用的云运维管理平台,结合百万服务器运维经验,提供系统资源监控、问题分析和故障解决功能。用户可通过该平台进行ECS实例管理、组件安装、健康检查、系统诊断及订阅管理等操作,支持API、SDK、CLI等多种管理方式。其界面简洁明了,操作流程直观易懂,适合各层次用户使用。推荐指数:★★★★★(5/5)。
1280 9
|
弹性计算 运维 Java
OS-Copilot参数功能全面测试报告
作为一名运维工程师,我主要负责云资源的运维和管理。通过使用OS Copilot的-t/-f/管道功能,我顺利解决了环境快速搭建的问题,例如Tomcat的快速部署。具体步骤包括购买ECS服务器、配置安全组、远程登录并安装OS Copilot。使用-f参数成功安装并启动Tomcat,自动配置JDK,并通过|管道功能验证了生成内容的正确性。整个过程非常流畅,极大提升了工作效率。
295 12
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
1811 0
Vanilla OS:下一代安全 Linux 发行版
|
Ubuntu Unix Linux
操作系统的最强入门科普(Unix/Linux篇)
下期文章,小枣君会重点聊聊Windows和macOS那条线。敬请关注! 如果大家觉得文章不错,还请帮忙多多转发!谢谢!
|
Web App开发 缓存 Rust

热门文章

最新文章

推荐镜像

更多