找往期文章包括但不限于本期文章中不懂的知识点:
个人主页:我要学编程(ಥ_ಥ)-CSDN博客
所属专栏: 操作系统
目录
操作系统的基本概念
操作系统的概念
在信息化时代的今天,计算机已经成为了我们日常的必需品,在使用计算机时,我们主要是使用其中的软件,软件是计算机系统的灵魂,而作为软件核心的操作系统,已与现代计算机系统密不可分、融为一体。计算机系统自下而上可大致分为4部分:硬件、操作系统、应用程序、用户。而操作系统作为最接近硬件层面的软件,管理计算机中各种硬件,为应用程序提供基础,并充当计算机硬件与用户之间的中介。同时,也会控制和协调应用程序对于硬件资源的分配和使用。
例如:将微信和QQ这两个应用程序下载到计算机上时,操作系统就得对两者进行硬盘资源的分配,可不能让它们同时占用同一块硬盘空间。这就体现了操作系统协调应用程序对于硬件资源的分配。
操作系统(OperatingSystem,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件。即系统资源的管理者、向上层提供方便易用的服务(例如,API之类的接口)、作为最接近硬件层面的软件。
正因为不同的操作系统对于同一个应用程序进行硬件资源的分配标准不同(还包括操作系统提供的API不同等),从而就会导致一个问题:运行环境不兼容。例如:在Windows系统上面能够编译通过的代码,在Linux系统上面就不能够编译通过。
操作系统的特征
操作系统是一种系统软件,但与其他系统软件和应用软件有很大的不同,它有自己的特殊性
即基本特征。操作系统的基本特征包括并发、共享、虚拟和异步。
并发
有一个最容易与并发混淆的概念,叫作并行。
并行:多个应用程序同时在CPU上面运行;并发:多个应用程序间隔着在CPU上面运行。但是由于这个间隔的时间是非常短的(理论上是纳秒级别,肉眼分辨不出来),也就导致我们看到的是多个应用程序"同时"在CPU上面运行。这里的"看"是通过程序运行的结果来推测的。
标准概念:并发性是指若干事件在同一时间间隔(例如,1秒)内发生,而并行性是指若干事件在同一时刻发生。
例如:在单核CPU的情况下(只能同时执行一个应用程序),程序在并发执行,我们就可以同时微信视频和QQ聊天。但是如果是串行执行(和打饭排队一样,一次执行一个程序),那么只能进行QQ聊天或者微信视频。
共享
共享是指系统中的硬件资源被并发执行或者并行执行的程序共同使用。
资源共享有两种方式:
1、互斥共享
系统重某些资源,如打印机,虽然可以让多个应用程序同时访问,但是为了打印的信息不混乱,应该规定在某个时间段内只能有一个程序进行访问(不可以并发、并行访问)。这种资源共享的方式被称为互斥共享,而这种资源,如打印机,被称为临界资源或者独占资源。
2、同时访问(分时共享)
系统的硬盘资源、内存资源,允许在同一时间内多个程序同时进行访问。这里的同时,还是并发执行。因此同时访问也被称为分时共享。同时,分时共享可以看作是对互斥共享的一种优化,是基于并发的。
虚拟
虚拟是指把一个物理上的实体变为若干逻辑上的对应物。
虚拟处理器技术,采用让多道程序并发执行的方法,来分时使用一个处理器的。此时,虽然只有一个处理器,但它能同时为多个用户服务,使每个终端用户都感觉有一个中央处理器(CPU)在专门为它服务。利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU,称为虚拟处理器。类似地,可以采用虚拟存储器技术将一台机器的物理存储器变为虚拟存储器,以便从逻辑上
扩充存储器的容量。当然,这时用户所感觉到的内存容量是虚的。把用户感觉到(但实际不
存在)的存储器称为虚拟存储器。
还可采用虚拟设备技术将一台物理I/O设备虚拟为多台逻辑上的I/O 设备,并允许每个用户占用一台逻辑上的I/O设备,使原来仅允许在一段时间内由一个用户访问的设备(即临界资源)变为在一段时间内允许多个用户同时访问的共享设备。
因此,操作系统的虚拟技术可归纳为:时分复用技术,如处理器的分时共享;空分复用技术,
如虚拟存储器。
异步
多道程序环境允许多个程序并发执行,但由于资源有限,程序的执行并不是一贯到底的,而
是走走停停的,它以不可预知的速度向前推进,即异步性。
异步性使得操作系统运行在一种随机的环境下,可能导致程序运行与时间有关的错误(该时刻程序运行的环境是这样,下一时刻的运行环境是那样)。然而,只要运行环境相同,操作系统就比须保
证程序多次运行后都能获得相同的结果。
总结:操作系统的特性在很大程度上是依赖于并发和共享的。只有支持并发,才可以实现资源共享、虚拟技术、程序异步。同时,如果不能实现对资源共享的有效管理,那么必将会影响到并发的执行,甚至无法执行并发。因此,又可以说 共享和并发是相互依存的。
操作系统的目标和功能
为什么会有操作系统呢?
举个例子:现在有一个人要开一家公司,但是他不想管理公司,因此他只能招一些管理人员来帮助他。那么这些管理人员就可以认为是操作系统。更为简单的理解就是,我们不想直接操作计算机(太过麻烦),因此雇佣了一个工人来帮我们操作。这个工人就是史前版操作系统,但是随着计算机越来越普及,家家户户可能都会有计算机,而工人的数量是有限的,那怎么办呢?这些工人就聚集到一起,通过开会讨论一致决定写一个类似他们自己的软件,既可以实现对计算机的底层操作,又可以让用户简单的和这个软件进行无障碍交流。因此,操作系统便真正诞生了,就是这个软件。
从上面也可以得知:操作系统出现的目的,是为了让用户更好地与计算机(硬件)进行交流。当然这里只是从最简单的层面来理解的,还包括一些其他的方面:资源管理、安全保障等。
操作系统的功能如下:
补充说明:
1、处理机和处理器不是一个概念。 处理器通常特指中央处理器(CPU),而处理机是包括了处理器在内的数据处理设备。
2、联机命令接口(交互式命令接口)是用户通过控制台或终端输入操作命令,向系统提出各种服务要求。用户每输入一条命令,控制权就转给操作系统的命令解释程序,然后由命令解释程序解释并执行输入的命令,完成指定的功能。之后,控制权转回控制台或终端,此时用户又可输入下一条命令。联机命令接口可以这样理解:“用户”说一句话,“工人”做一件事,并做出反应,这就强调了交互性。
脱机命令接口(批处理命令接口):可以看作是上面一组命令的组成。简单理解为:“用户” 将要做的事情全部打包成一张命令清单,然后交给系统来完成。我们电脑桌面上的应用图标和Windows系统中的 .exe 文件均是这样的“命令清单”。
3、程序接口:由一组系统调用(操作系统提供的系统函数)组成。户通过在程序中使用这些系统调用来请求操作系统为其提供服务,如使用各种外部设备、申请分配和回收内存及其他各种要求。
这里的系统函数就是我们在C语言阶段学习的Windows的API。例如:sleep函数等。
4、操作系统可以将裸机改造成了功能更多、操作更简单的机器,因此我们将覆盖了软件的机器称为扩充机器或者虚拟机器。
注意:
1、多道程序设计是对并发的是一个具体实现,在看到这个名词时,可以简单理解为并发。
2、操作系统既管理硬件资源(打印机等),同时也管理软件资源(文件(存储数据)的管理)。
3、操作系统的基本功能是对计算机资源的合理管控和分配,以让计算机更好的工作。如果操作系统连资源分配都做不好,那么应用程序就没有良好的运行环境,就会导致计算机在运行时,发生崩溃。
操作系统的发展与分类
手工操作阶段
这时候的计算机不像现在的计算机功能丰富多类,刚开始的计算机只是为了计算。在手工操作阶段,人们都是把要计算的数据全部用二进制的方式打在纸带或者磁带上面,然后再让计算机去读取上面的数据,进行计算处理,最后将计算的结果在纸带或者磁带上面打印出来,接着就是计算人员对照二进制表将打印的数据全部转换成我们日常生活中常用的十进制数据。
从上面可以看出,计算人员把数据写在纸带或磁带上面,再从上面读取数据。这个过程是非常耗费时间的,并且稍微出错就要更换纸带。与计算机的高效率相比,手工速度就很慢,因此这个阶段就被称作手工操作阶段。其特点是:1、由于用户独占全机,导致资源利用率极低;2、手工操作速度太慢,CPU长时间处于等待状态(计算时间非常快),CPU的利用率极低。
唯一的解决办法就是用高速的机器代替相对较慢的手工操作来对作业(用户的数据)进行控制。
由于上面的操作全部人工在完成,因此不存在操作系统的概念。
批处理阶段
为了解决人机速度矛盾及CPU和 I/O 设备之间速度不匹配的矛盾,出现了批处理系统。按发展历
程又分为单道批处理系统、多道批处理系统。
单道批处理系统
系统对作业的处理是成批进行的,但内存中始终保持一道作业。单道批处理系统是在解决人
机速度矛盾及 CPU 和 I/O 设备速率不匹配的矛盾中形成的。单道批处理系统的主要特征如下:
1、自动性。在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无须人工干预。
2、顺序性。磁带上的各道作业顺序地进入内存,各道作业的完成顺序与它们进入内存的顺
序在正常情况下应完全相同,亦即先调入内存的作业先完成。
3、单道性。内存中仅有一道程序运行,即监督程序(操作系统的雏形)每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。此时面临的问题是:每次主机内存中仅存放一道作业,每当它在运行期间发出输入/输出请求后,高速的CPU便处于等待低速的I/O完成的状态。为了进一步提高资源的利用率和系统的吞吐量,引入了多道程序技术。
多道批处理系统
多道程序设计技术允许多个程序同时进入内存并允许它们在CPU中交替地运行(这里就是对并发的具体实现),这些程序共享系统中的各种硬/软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。它不是采用某些机制来提高某一技术方面的瓶颈问题,而让系统的各个组成部分都尽量去“忙”,因此切换任务所花费的时间很少,可实现系统各部件之间的并行工作,使其整体在单位时间内的效率翻倍。
当然,多道批处理系统的设计和实现要比单道系统复杂很多,因为要充分利用各种资源,就
要涉及各种资源的调度问题。
多道程序设计的特点是多道、宏观上并行、微观上串行。
1、多道。计算机内存中同时存放多道相互独立的程序。
2、宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,
但都未运行完毕。
3、微观上串行。内存中的多道程序轮流占有 CPU,交替执行。
多道程序设计技术的实现需要解决下列问题:
1、如何分配处理器。
2、多道程序的内存分配问题。
3、I/O设备如何分配。
4、如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性与一致性。
在批处理系统中采用多道程序设计技术就形成了多道批处理操作系统。该系统把用户提交的
作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。
优点:资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;系统吞吐
量大,CPU和其他资源保持“忙碌”状态。
缺点:用户响应的时间较长;不提供人机交互能力,用户既不能了解自已的程序的运行情况,又不能控制计算机。
分时操作系统
所谓分时技术,是指把处理器的运行一个周期时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业(可以理解为多个正在应用程序)使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续运行。由于计算机速度很快,作业的处理也是非常快的,因此给每个用户的感觉就像是自己独占一台计算机。
分时操作系统是指多个用户通过终端(键盘、鼠标等设备)同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。因此,实现分时系统最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回用户,并且让多个用户感觉不到对方的存在。分时系统也是支持多道程序设计的系统,但它不同于多道批处理系统。多道批处理是实现作业自动控制而无须人工干预的系统,而分时系统是实现人机交互的系统,这使得分时系统具有与批处理系统不同的特征。
分时系统的主要特征如下:
1、同时性。同时性也称多路性,指允许多个终端用户同时使用一台计算机,即一台计算机与若干台终端相连接,终端上的这些用户可以同时或基本同时使用计算机。
2、交互性。用户能够方便地与系统进行人机对话,即用户通过终端采用人机对话的方式直接控制程序运行,与同程序进行交互。
3、独立性。系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样。
4、及时性。用户请求能在很短时间内获得响应。分时系统采用时间片轮转方式使一台计算
机同时为多个终端服务,使用户能够对系统的及时响应感到满意。
虽然分时操作系统较好地解决了人机交互问题,但在一些应用场合,需要系统能对外部的信
息在规定的时间(比时间片的时间还短)内做出处理(比如飞机订票系统或导弹制导系统),因
此,实时操作系统应运而生。
实时操作系统
为了能在某个时间限制内完成某些紧急任务而不需要时间片排队,诞生了实时操作系统。这里的时间限制可以分为两种情况:若某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统,如飞行器的飞行自动控制系统,这类系统必须提供绝对保证,让某个特定的动作在规定的时间内完成。若能够接受偶尔违反时间规定且不会引起任何永久性的损害,则称为软实时系统,如飞机订票系统、银行管理系统。
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并在严格的时限内处理完接收的事件。实时操作系统的主要特点是及时性和可靠性。
以上就是操作系统的发展历程。
注意:
1、中断技术:当一个程序所需要的资源,暂时不足时,CPU就会中断对此程序的执行,继而去执行另外的程序。因此CPU和其他的硬件设备(例如,打印机)可以并行工作(即使是在单核心的CPU中)。
2、CPU的处理数据的能力主要是依赖于其核心。一个CPU的核心数越多,通常其可以并行执行的程序也就越多。一个CPU多核心 != 多个CPU。
3、分时操作系统的主要追求目标是比较快速的响应用户。因为分时操作系统主要是在时间片内执行对应的程序,而这个效果就是直接指向用户的。可能有很多小伙伴认为是对硬件资源的高效使用,这个确实也是,但不是主要追求目标。
好啦!本期 初始操作系统篇(1)—— 操作系统的概念与分类 的学习之旅就到此结束啦!我们下一期再一起学习吧!
标签:操作系统,批处理,分类,系统,用户,CPU,初始,计算机 From: https://blog.csdn.net/2301_80854132/article/details/142714574