操作系统概述

1.1操作系统初步认识
桌面常见四大操作系统
在这里插入图片描述

linux操作系统目前在桌面上面也得到了广泛的应用
在这里插入图片描述
unix在服务器领域运用得更多一些
在这里插入图片描述
windows是絕大多是用户工作或学习上选择的操作系统

在这里插入图片描述
苹果操作系统

windows操作系统最早的一版
windows之windows1.0
微软公司首次在PC上尝试图形界面,1985发行
内核基于MS-DOS,在启动这个操作系统之前,要先启动MS-DOS
在这里插入图片描述
windows之WIN XP
发行于2001年8月25日
家庭版(Home)和专业版(Professional)是一个非常经典的操作系统

在这里插入图片描述
Mac操作系统
Mac系统是基于Unix内核的图形化操作系统
苹果产品专属操作系统

在这里插入图片描述
Linux之RedHat小红帽
RedHat以GUN/Linux为核心,发行RedHat Linux。
红帽子在多了linux版本当中,算是最稳定的一种
在这里插入图片描述
操作系统与普通的软件有巨大的差别,是大小的差别?复杂度的差别?还是功能的差别?操作系统能不能够被看成一个普通的软件或应用程序呢?

计算机没有安装操作系统那计算机能干什么呢?
计算机买回来就是为了来运行程序,那不装操作系统,计算机能不能运行应用程序呢?答案是能。
在这里插入图片描述
我们在安装操作系统的时候需要进入到award bios设置的主菜单里面,来更改一些系统参数,比如说计算机启动的设备,从U盘启动还是从硬盘启动还是从光驱启动,那我们就在上图的界面中做交互的设置。我们要给计算机起启动口令,那么也得在这个菜单中进行设置,我们要修改系统日期也在这里面进行配置,这个时候操作系统还没有加载起来,我们买回来计算机只要你加电,我们都能进到这样一个界面里去,这个时候还没有启动操作系统,那这个能说明计算机没有安装操作系统也能进行类似这样的应用程序,所以说没有安装操作系统,计算机依然可以安装应用程序,只不过这样的程序它的编写,以及把这样的程序安装在计算机系统中,都需要采用一些特别的方式。

没有安装操作系统的计算机普通用户能不能使用呢?
答案是不能,因为没有安装操作系统,它就不能使用office软件,不能够上网,不能够听音乐,不能够聊天不能够做正常的工作。所以说对于普通用户来说没有安装操作系统计算机不能正常的使用。
所以普通用户买了个新电脑后,要去买一个windows操作系统。

1.2操作系统功能和定义
操作系统到底有什么功能呢?
首先由了操作系统,我们可以利用可视化界面来操作计算机,我们可以通过双击应用程序的图标来运行一个程序,或者我们直接在文件管理器上面双击我们要运行的应用程序,或者我们在控制台上面直接输入我们要打开的程序名,来控制程序运行
如果没有操作系统,那我们就无法运行这个程序,无法启动这个程序,那么有操作系统支持我们可以同时运行多个程序。
我们通过任务管理器可以发现有多个程序同时在计算机里面并发运行,这也是操作系统的一个功能。
在这里插入图片描述

在一个就是我们可以进行系统的设置和配置,通过控制面板,通过设备管理器,对设备对系统参数进行配置。
在这里插入图片描述
在这里插入图片描述
操作系统也提供了一些辅助的管理软件、辅助的系统管理工具。

我们可以通过文件系统来存取信息。
在这里插入图片描述
那信息怎么取需要一定的保护机制,不能随意的提取,越权提取,操作系统也提供了存取保护的功能。
在这里插入图片描述
操作系统的基本功能:

  • 提供操作界面
  • 控制程序运行
  • 管理系统资源
  • 配置系统参数
  • 监控系统状态
  • 工具软件集合
    这些基本功能可以使用户更好更高效地操作计算机,让计算机的工作更稳定更可靠,这是我们对操作系统的一个基本的认识
    我们来思考一个问题这是一个应用程序,那么这个最简单的应用程序,它要运行,那操作系统要提供哪一些功能上面的支持呢?我们稍微分析一下这个程序在运行的时候,它有什么特别的地方需要操作系统来支持它?
    //Hello.c ->Hello.exe
main()
{
	char *Hello ="Hello"printf("%s",Hello);
	while(TRUE)
	{//死循环
		int i = 100}
}

首先,上面的源代码编译以后,它变成了一个可执行程序,在操作系统里面呢.exe是可执行程序的后缀。
那么这个可执行程序它这个文件放在哪里呢?
是的,我们把它放在硬盘上,那么硬盘它是个外设,这个.exe可执行文件,它就是以文件的方式存放在硬盘上面,操作系统要提供给我们一个接口,提供给我们一个手段帮我们把这个可执行程序放到硬盘上面,放在一个特定的目录下面,这是操作系统执行的一个功能。
那么这个.exe文件怎么启动呢?如何来运行呢?
应用程序必须先装进内存才能够被cpu运行,那么现在这个程序放在硬盘上面,那我们应该把它装到内存里面去,谁来完成这个装入操作呢?
操作系统
我们可以双击这个可执行程序的名字,或者双击这个可执行程序对应的图标,我们就可以让这个操作系统从硬盘上面装入到内存里面去启动它。这是操作系统的基本功能。
操作系统要给这个Hello.exe文件分配内存。
这些代码数据在内存里面没有地方存放,代码里面还有内存 的分配,所以操作系统要给这些应用程序分配一些内存。
那么如何来分配呢?
在代码里面还有一个printf()打印语句向屏幕上面打印一个hello字符串。
那么应用程序要在这个显示器上面要在这个显卡上面输出字符串,这个需要让操作系统给应用程序提供支持,让用户可以操作显卡在显示器上面显示这样一个字符串。这时操作系统要支持的设备的使用设备的分配驱动设备这样的功能。
一旦应用程序陷入到这个死循环里面,它会不会独占CPU,让其它应用程序都无法获得CPU不能运行呢?
所以操作系统一定要 有方法让所有的应用程序都能够顺利的运行,而不会因为这个程序而陷入死循环,而独占CPU。
这个程序运行结束之后如何做好这个善后工作?占有的内存把它释放给系统,如果每个应用程序使用完以后不把它的内存归还给系统,那么系统内存将会越来越少,可利用的内存也会越来越少。收回内存,应用程序退出系统这个工作也需要操作系统来完成。
Hello.exe文件如何存放?
Hello.exe程序如何启动?
如何为Hello.exe内存分配?
printf如若输出字符串?
while死循环会不会独占CPU?
程序结束如何退出系统?

操作系统功能之一:进程管理
操作系统最核心的功能就是进程管理(CPU管理)
Windows环境下多个“进程”在并发运行。
在这里插入图片描述
我们只有一个CPU那这个CPU它怎么能同时供应这么多的程序并发运行呢?而且系统中还有其他的进程。他们也在并发的运行。

在一个操作系统下面,很多的程序它们同时在共枪CPU,那么操作系统一定要有办法来管理多程序共抢CPU这样一种情形,在操作系统里面我们把正在运行的程序把它叫做进程,所以操作系统最核心的功能就是进程管理的功能。能够让多个程序多个进程并发。那么进程管理具体来说它有进程控制功能:创建进程、暂停进程、唤醒进程、撤销进程;还有进程调度,采用什么样的调度策略,来让一个进程被CPU调度。那么一个进程和另外一个进程相比优先级是一样的还是有差别?再一个是完成进程的通信

操作系统的功能二:内存管理
操作系统的第二个功能就是内存管理功能
内存管理分为内存分配、内存共享、内存保护、虚拟内存。

我们来看这样一个例子这样一个情形:
你有没有遇到过因为计算机的内存过小,导致一个程序无法运行或者运行失败的情况?
当我们运行大型的图形处理软件的时候需要大量的内存或者大型的网游也需要大量的内存。
因内存太小而导致程序无法运行呢?
在现代操作系统的支持下一个应用程序它不会因为内存太小导致程序无法运行,虽然说会应为内存太小而导致运行的速度比较慢 ,但是从理论上讲不会因为内存小而导致程序无法运行,因为现代操作系统它采用一种特殊的方式来管理内存。它总是保证程序可以运行。

再看一个小程序

void main(void{
	int i = 0;//i是循环序号
	int *p = NULLwhile(true)
	{
	//申请100M内存
	p=int *)malloc(100*1024*1024);
	if(p == NULLreturn//申请失败就结束程序
		i=i+1//循环序号i加1
		printf(“第%次申请成功 100M 内存!\n”,i);
		
	i = i + 1}
}

这个程序它的功能是什么呢?
malloc这个函数是用来分配内存的,分配多少内存呢?(10010241024)这个单位是字节,所以分配 了100M内存。所以代码的本质就是通过while循环不断去循环分配100M内存,直到失败退出程序为止!当分配100M内存失败的时候就return返回。
这个程序的作用显而易见就是不断分配内存试图耗尽内存,那这个程序运行起来,它会不会让应用程序崩溃呢?因为内存不够而导致应用程序崩溃甚至是操作系统崩溃。
我们来做一个测试
假设内存为1G,对于这样的计算机 上面代码的while循环可以循环几次呢?
我们把程序编译运行,下图是程序运行的实验结果:
在这里插入图片描述
一共循环了19次,那一共累积申请了多少内存呢?一次申请100M,19次就申请了1.85G。
我们的实际内存只有1G,但这个应用程序却申请到了1.85G的内存,远远超过了实际内存,而这个应用程序还没有崩溃,操作系统更没有崩溃,因为如果操作系统崩溃了,那这张实验结果图是截取不到的。

我们把上面的程序复制四份,再连同现有的程序一共是5个程序,把这5个程序同时运行,那结果如何?是不是每个程序都可以申请到1.85G呢?5个程序同时运行会不会让系统崩溃呢?

结论呢是不会,而且每个应用程序依然可以申请到1.85G内存。那么以此申明,操作系统采用了特殊的方式,来让一个对内存需求很大的应用程序,能够在较小的内存空间里面顺利运行,原因是什么呢?

就是因为操作系统能够对系统内存进行一个有效的管理。

操作系统的功能三:设备管理
设备的分配和调度
设备无关性
设备传输控制
设备驱动

操作系统第三个功能是设备管理功能,计算机上面接了很多外设,各种外设它们的功能、特性、操作方式各不一样,应用程序通过使用操作系统提供的接口,间接去使用操作系统的各种外设,操作系统它就负责管理外设,给应用程序分配设备,调度设备。

设备管理具体的功能包括设备的分配和调度;实现设备的无关性、实现设备和cpu之间的数据传输,或设备与内存间数据传输;设备传输控制;还有设备的驱动。

操作系统的功能四:文件管理
存储空间管理
文件的操作
目录的操作
文件和目录的存取权限管理

文件是用户在计算机里面存取信息最常用最普遍的信息存续方式,文件管理的功能包括存储空间的管理,硬盘空间的管理,硬盘空间的分配;还有文件的操作、目录的操作新建文件,删除文件,新建目录,删除目录;还有文件和目录存取权限的管理,不同的用户对文件和目录的权限可能是不一样的,有的是只读的,有的是不能访问的,有的可写有的不可写。

操作系统至少有4个管理功能,进程管理功能、内存管理功能、设备管理功能和文件管理功能。

操作系统与普通软件的差别就在于功能上面的差别,一个软件它是不是操作系统,我们有一个标准来判断,这个软件能不能够管理进程,能不能够管理内存,一个软件有这样两个功能我们就说这个软件是一个操作系统,但是一个实用的操作系统除了进程管理除了内存管理还要有设备管理功能和文件管理功能,当然不是每一个操作系统都一定要有设备管理功能和文件管理功能。比如有一些嵌入式操作系统,在一些特定的应用场合可以不要设备管理功能,可以不要文件管理功能,但是对于我们linux操作系统,windows操作系统,这种桌面操作系统或者通用的操作系统必须要有设备管理功能和文件管理功能,甚至还要包括网络管理功能、分布式管理功能还有图形界面。所以一个实用的操作系统,一个通用的操作系统可能需要更多的功能。
一个操作系统区别于普通软件的核心的两个功能是进程管理功能和内存管理功能。

我们知道操作系统的功能我们还要知道操作系统的定义。
操作系统是一个大型的系统程序

  • 提供用户接口,方便用户控制计算机
  • 负责为应用程序分配和调度软硬件资源,并控制与协调应用程序并发活动,帮助用户存取和保护信息
    没有操作系统普通用户办法使用计算机,所以普通用户使用计算机本质上面是使用操作系统,使用操作系统提供的图形界面、命令,这种交互方式来控制计算器使用计算机
    操作系统的定义中第一个关键词就是接口另一个是负责为应用程序分配和调度软硬件资源应用程序在应用过程中,可能需要使用各种外设使用各种底层的信号,底层的软件资源,那么这都有操作系统来代劳,帮它分配,帮它调度,并且要控制和协调应用程序的并发活动,我们要让多个应用程序并发运行,共享CPU共享资源,帮助用户存取和保护信息,所以这是操作系统中第二个关键词分配和调度软硬件资源。
    操作系统我们可以简单定义为第一个提供接口,第二个分配和调度软硬件资源。

操作系统在整个计算机中的地位起到一个承上启下的作用。
在这里插入图片描述
上图标识了整个计算机系统的软硬件,底下是硬件;最上面是应用程序;中间是系统程序;系统程序里面最核心的就是操作系统。操作系统覆盖在硬件上面,它为上层的应用程序屏蔽了硬件细节,应用程序要使用硬件资源必须要通过操作系统的代劳,这是操作系统在整个计算机系统中的定位,处在中间的层面承上启下。

1.3操作系统发展历史

操作系统的发展有两大动力,第一个是用户的需求不断地提升,第二个是硬件技术的进步,硬件技术进步了 我们希望操作系统也能够进步能够更好的利用硬件的性能,充分的发挥硬件的性能,
计算机的硬件发展经历了四个典型阶段
- 电子管时代【1946 - 1955】
- 晶体管时代【1955 - 1965】
- 集成电路时代【1965 - 1980】
- 大规模集成电路时代【1980-至今】

这四个时代硬件性能发生了跨越式的发展,同时也要求操作系统能够有更好的发展,能够充分的发挥硬件的性能。
硬件的发展它的运行速度、存储容量、和工作的稳定性可靠性上面都得到了逐步的提高。

我们中国的超级计算机排名位于世界前列。
在这里插入图片描述
在这里插入图片描述
上图是对计算性能要求都很高的应用包括对内存的需求。

**操作系统发展的四个典型阶段

  • 手工操作(无操作系统)50年代早期
  • 单道批处理系统 50年代
  • 多道批处理系统 60年代
  • 分时系统 60年代中**
    在这里插入图片描述
    上图是一台数字电子计算机ENIAC,这一台计算机需要多个人来操作。,与我们常见的计算机的形态有很大的差异,这一台计算机需要多个用户来操作。这一台计算机油很多的控制面板、开关、接线柱,程序的启动工作程序的结束都需要系统管理员进行手动的操作。

我们来看一下手工操作的一些特点:
1.手工操作(没有操作系统)
电子管 时代【1946 - 1955】
结构特点
硬件:电子管、接线面板(按钮、开关)
程序:二进制程序,打孔:纸袋和卡片

计算机的特点 硬件上面使用电子管使用大量的接线面板(按钮、开关、接线柱)用这些方式跟用户交互。程序这个软件用二进制程序,程序员直接用二进制编写程序,通过纸袋和卡片在上面打孔来记录0101这样的二进制代码来表示这个程序。

使用特点:
程序的准备/启动、结束:手工处理,繁琐耗时

程序在准备阶段我们要把内存模块装好,把输入模块装好,要把输出模块装好,各种参数要通过手工的接线来配置好,这个工作非常繁琐非常耗时。
一个程序在CPU上真正耗时的时间可能只要一分钟,但是可能需要59分钟来为这个应用程序做准备工作,来做善后工作,这是手工操作阶段使用上的特点。手工处理,手工做这个程序的准备启动结束工作非常的耗时。

缺点
效率低:CPU有效运行时间极低
用户独占
缺少交互

所以手工操作有以上一些缺点,第一个是效率低,CPU有效运行时间极低,整个计算机被占用了一个小时,CPU的运行时间可能只是1分钟,其它的59分钟都用于程序的准备工作和结束工作。所以CPU运行效率很低,CPU是最昂贵的硬件资源,但现在它的运行效率没有被充分的发挥;
第二个是用户独占计算机,用户占用这个计算器的过程中,其它用户就不能使用了。
再一个是缺少交互,无法和程序员建立连接和交互。
手工操作CPU运行效率非常的低,所以需要单道批处理系统的出现

2.单道批处理系统
工作特点
- 管理员实现讲多个作业输入到磁盘形成作业队列;
- 操作系统依次自动处理队列中的每个作业
- 装入 一 运行 一 撤出……
- 程序的装入和撤出:自动完成
- 运行完毕,通知用户取结果

管理员实现讲多个作业输入到磁盘形成作业队列;管理员事先准备好把多个作业几种到磁盘里面,形成队列,操作系统依次处理队列中的每一个作业。
怎么处理呢?
这一批队列每一个作业被自动的装入->然后运行->运行完以后自动的撤出。
一个作业处理完以后在循环处理下一个作业。
下一个作业再被自动装入运行撤出再处理下一个作业。这个过程是由操作系统自动完成的,与手工操作相比,单道批处理系统程序的装入和撤出自动完成,以前是手工完成的,效率低。那现在是自动完成的效率高。这批作业运行完以后,系统管理员会通知用户来取结果。
单道批处理系统的特点:

- 批量:作业队列

- 自动:识别作业,装入和撤出

- 单道:依次、串行

单道理批处理系统的特点我们用三个词来概括,第一个就是批量,每次处理一批作业,处理一个作业队列;第二个词是自动,每个作业它的识别,每个作业它的装入,每个作业它的撤出自动完成,而不是手工完成效率高;第三个词就是单道,所谓单道就是队列里面每个作业,它是依次被处理的,串行被处理的,这叫单道。就是在内存里面只有一个作业被运行,所有的作业是依次串起来运行的。
单道批量这两个词,这是单道批处理系统的来由。

单道批处理系统的背景

- 晶体管时代【1955 -1965】
- 1955年,IBM退出第一台晶体管计算机:典型机型7094
在这里插入图片描述
晶体管时代,IBM推出了第一台晶体管计算机:典型机型7094,那么这个操作系统的工作流程大致是这样的,上图(b)是一个读卡机,执行的是输入工作,把卡片里面的程序从卡片里面读到磁带里面,一批作业就输到磁带里面了。输完的磁带就交给7094这台主机来运行,主机会从磁盘里面,把磁盘里面的队列里面的作业一个一个在主机上面运行,这个结果写到另外一个磁盘里面,(f)图是一个打印机,打印机会把作业里面的作业结果打印出来所以(d)图就是一个单道理批处理系统。操作系统能够依次串行来处理,这个磁盘里面的每一个作业。
在这里插入图片描述
单道批处理系统它的CPU的利用情况是怎么样的呢?我们来分析一下,因为CPU总是最重要的硬件资源。它的利用效率高不高反应了操作系统工作效率。
在这里插入图片描述
一个程序在整个运行过程中,它有的时候在CPU上进行计算,有时候使用外设来进行输入和输出。上图是一个程序,这个程序首先在CPU上面运行,运行一段时间后它需要使用IO操作,IO操作完以后又使用CPU来进行运算,运算到了一定阶段,把结果打印出来,结果要输出,就要使用到外设,最后运行完成。

上图的曲线描述了这个应用程序它的运动过程,粗线表示应用程序在CPU上运行,细线表示在进行IO操作在进行外设操作。
中间的粗线表示操作系统在进行调度工作,应用程序需要用到外设的时候需要用到操作系统来完成IO的调度,上粗红线表示用户程序在CPU运行,中间红线表示是操作系统来进行调度;下方蓝线表示一个IO操作,从这个图上我们可以看到,红色的地方是CPU来运行;蓝色线部分是外设在工作,蓝线工作的时候CPU是空闲的;单道批处理系统CPU的应用情况就是:外设和CPU交替空闲和忙碌,CPU和外设利用效率低。

外设工作的时候CPU就空闲下来啦,所以单道批处理系统,它的应用效率呢非常低,上图中用户程序时间线没有红线的时间段都在空闲,那我们多么希望CPU空闲的时候能够被其它的程序所利用,那这样就能保证CPU尽量处在忙碌状态,这就需要一个新的操作系统,能够充分利用CPU的空闲时间。那这个系统就是多道批处理系统。

多道批处理系统

  • 定义:在内存中存放多道程序,当某道程序因为某种原因(例执行I/O操作时)不能继续运行而放弃CPU时,操作系统便调度另一程序投入运行。这样可以使CPU尽量忙碌提高系统效率。
  • 提高系统CPU利用率
  • 提供系统吞吐量
    多道批处理系统它的定义式在内存中存放多道程序当某道程序因为某种原因比如说执行IO操作的时候,不能继续运行而放弃CPU时,操作系统就调度另外一个程序投入运行,这样可以使CPU尽量处在忙碌状态,也就是说我们见缝插针的让另外一个程序来占用CPU,使得CPU尽量忙碌。通过这种方式让CPU的利用率得到提高,提高系统的吞吐量。

在这里插入图片描述
我们来看多道程序相互穿插的运行过程。我们用两个程序和这个例子来看看CPU的利用效率。
上图中,程序A是黑色,程序B是红色后面运行,蓝色是操作系统,下面磁盘操作和磁带操作是两个外设操作,程序A在运行的时候会使用磁盘操作这个外设,程序B运行过程中会执行磁带的操作。

我们来看看这两个程序是如何 交叉相互穿插使用CPU的,程序A首先运行,程序A运行的时候由于要使用磁盘操作,操作系统在第一条蓝色线的时间段调用磁盘操作,程序A在这个地方离开了CPU,在第一掉黑色时间段的结束点离开了CPU,操作系统它就见缝插针让程序B在红色时间线起始点去占用CPU运行,程序A在使用外设使用这个磁盘的时候,程序B正在CPU上运行,我们可以看到CPU和外设在并发运行,程序B在CPU上运行,充分利用尽量不让CPU空闲。程序A使用完磁盘操作以后它再回到这个内存上面继续运行。

我们再看第一条程序B的红色时间线,我们再看一下程序B,程序B在第一条红色时间线结束点的时候也需要使用到外设操作,它需要使用到磁带操作,那它就必然会离开CPU,离开CPU之后它就处于空闲状态,操作系统会让程序A占用CPU继续运行,直到最后两个应用程序结束。

这个例子我们可以看到AB两到程序相互穿插运行,当一个程序离开CPU之后,那么另一个程序会在合适的时候会立即来占用CPU,使CPU尽量处于忙碌状态。让CPU和外设能够运行使CPU和外设都尽量处于忙碌状态。提高了CPU的使用效率。这是多道程序相互穿插,使CPU的利用效率得到提高。
多道批处理系统的特点

  • 多道:内存同时存放多道程序

  • 并行:宏观上

  • 串行: 微观上

多道批处理系统我们可以使用三个词来概括,第一个多道,内存里面同时运行多道程序,这是第一个特点,另一个是运行,在宏观上面呢,多个程序都在想前推进。但是在串行上面在微观上面他们是串行的,因为CPU只有一个,处在微观上面任何一个时刻都只有一个程序在占用CPU,多道批处理的系统的特点:多道、并行、串行

多道批处理系统的缺点

- 作业处理时间长
- 交互能力差
- 运行过程不确定
多道批处理系统也有一些缺点,第一个是作业的处理时间变长了;第二个是交互能力差,在运行过程中用户如何交互;第三个是运行过程不确定,程序什么时候能够回到CPU运行,这和其它程序占用CPU的情况有关系,如果一个程序正在占用CPU那另外一个程序基本的IO操作已经完成那么它也不能马上回到CPU上面继续运行,所以对运行过程不确定。

1.4分时技术和分时操作系统

60年代硬件的两个重大进展
中断技术

- CPU受到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断(断点)继续原来的工作。

通道技术

- 专门处理外设与内存之间的数据传输的处理机。

在六十年代的中期,计算机的硬件有两个重大发展,一个是中断技术,一个是通道技术。
中断技术指的是CPU收到一个外部信号这往往就是一个中断信号,会停止当前工作,转去处理该外部时间,处理完毕后回到原来工作的中断处也就是断点继续原来的工作。
CPU支持这种中断技术,CPU中断当前工作之后,后面它能够回到这个中断的地方继续完成原来的工作。
第二个是通道技术,通道技术是专门处理外设与内存之间的数据传输的处理机。就是能够支持外设和内存之间直接交换数据。
中断技术和通道技术的出现能够让CPU能够让计算机系统以更快更灵活的方式来处理任务和处理函数。
那么操作系统也应该有更好的性能,能够充分发挥硬件的性能。这时就出现了分时操作系统。
分时操作系统的背景
事务性任务的涌现

  • 交互性高

  • 响应快速

要求支持多任务/多用户

分时操作系统出现的背景包括事务性任务的涌现,那何为事务性的任务呢?
事务性的任务与科学计算的任务是对应的,科学计算型它的任务它的特点就是耗CPU,在CPU上面进行大的运算,而事务性任务的特点就是交互性,交互性高,用户在整个应用程序过程中,需要不断和程序进行交互输入和输出很频繁,第二件事要求快速的响应。用户在硬盘上面完成的输入,希望计算机能够很快的给出一个结果也就是响应快速,之前的批处理系统都不能支持交互性,响应速度都非常慢,所以需要新的操作系统出现,第二个要求支持多任务多用户,多个用户多个任务能够并发。这都需要新的操作系统出现。
在一个就是出现了多终端计算机。
那何为多终端计算机呢?

多终端计算机
高性能主机+多个终端

  • 主机:运算,CPU+内存
  • 终端:输入和显示
    主机采用分时技术轮流为每个终端服务。每个终端都感觉到是”独占“主机!

在这里插入图片描述

在这里插入图片描述
上图为一个多终端的计算器它有一个高性能的主机,然后带有多个终端,主机主要完成运算,它有性能很好的CPU,还有容量很大的内存,终段只有很简单的输入和输出,比如说这个键盘和显示器,那这个终端没有处理能力,这一些终端,它们通过一些串口,通过串口线远程连接到主机上面,那么这个串口线可以是在一个校园里面,可以是一个城区,一个城市可以通过这个终端这个串口线连到主机上面,多个终端共享主机上面的CPU,响应主机的计算资源,主机它会采用一种分时技术轮流为每个终端服务,让每个终端都感觉到自己”独占“了主机。
这个分时技术轮流为每个终端提供服务,那每个终端都感觉到自己独占了主机。
分时技术
概念

  • 主机以很短的”时间片“为单位,把CPU轮流分配给每个终端使用,直到全部作业被运行完。

  • 由于时间片很多,再终端数量不多的情况下,每个终端都能很快重新获得CPU,使得每个终端都能得到及时响应。

    - 等待周期 = 时间片 X 终端数量

时间片是一个很短的时间单位,比如说50ms,每个终端接受到50ms的服务之后,就把CPU交给下一个终端,下个终端执行50ms之后再把CPU交给下个终端,每个终端都是轮流使用50ms,然后再循环再循环。这是分时技术的一个基本概念,直到所有的作业被运行完。
由于时间片很短,在终端数量不多的情况下,每个终端都能很快重新获得CPU,使得每个终端都能得到及时响应。每个终端它需要等待多久才能等到CPU为它服务呢?
这个等待的时间等待的周期我们可以算就是时间片来乘以终端的数量,假如时间片是50ms终端数量是10个,那就意味着每一个终端只需要再等待,50ms X 10 等待这么一段时间就能够再次获得主机来运行,所以对于每个终端来说它的响应性能够得到保证,这是分时技术的基本概念。
分时系统的特点
多路调制性

  • 多用户联机使用同一台计算机

独占性

  • 用户感觉独占计算机

交互性

  • 及时响应用户的请求

分时系统的特点多路调制性,多个用户联机使用同一台计算机使用同一台主机,
独占性要让每个用户都感觉独占了计算机,每个用户都不需要等待太长的时间就可以获得主机的CPU,或者主机的服务,让每个用户都感觉到自己在独占计算机,交互性能够及时的响应用户的请求。

大型分时系统的实践:Multics项目
1962年由APRA支持:有MIT、BELL和G.E参与。
开发一种’公用计算服务系统’
MULTiplexed Information and Computing Service
同时支持波士顿地区所有分时用户

在操作系统研究的历史中,第一个大型分时系统的实践项目是Multics项目,它是由美国的国防部支持的项目,由MIT(麻省理工学院),BELL(贝尔实验室),G.E(通用电气)三家来参与。
这是一种”公用计算机服务系统“,同时支持波士顿地区所有的分时用户,这是最早分时系统的实践。

UNIX
第一个实用化的分时操作系统

- 第一个真正体现操作系统领域各种先进概念和技术的操作

革新和创造

- 实现操作系统的可移植性

- 实现了硬件无关性

- 引进了”特殊文件“(Special File)的概念

  • 把外设看作文件,实现对外设统一管理

UNIX是一个真正实用化的分时操作系统,UNIX它把当时操作系统各种先进的概念和技术做了一个集成。
UNIX是Multics项目中诞生出来的,他实现了一些革新和创造,实现了操作系统的可移植性,实现硬件无关性,这个操作系统的可移植性和硬件无关性
对我们目前操作系统的设计都是有指导意义的,有实践意义,引进了特殊文件的概念,把外设当文件来处理,实现对外设统一处理。我们现在的操作系统windows,linux,unix都是把外设当做文件来处理,所以说unix操作系统对我们现今的操作系统有很多启示和借鉴意义。
在这里插入图片描述
unix操作系统最早是贝尔实验室的技术人员研发出来的,后面主要有两大分支衍生出来各种各样的unix版本,unix主要是应用在服务器领域,应用在桌面领域也未尝不可。
1.5典型操作系统类型

操作系统的进一步发展(分时系统的衍化)

  • 微机操作系统
  • 多处理机操作系统
  • 网络操作系统
  • 实时操作系统
  • 嵌入式操作系统

第一个典型的分时操作系统就是unix,我们目前主流的操作系统,他们都是分时操作系统的衍化,上方这些操作系统都不是一些新的类型,它们都属于分时操作系统,只是在某些应用场合有一些加强会有一些优化。微机操作系统、多处理操作系统、网络操作系统、实时操作系统、嵌入式操作系统
微机操作系统
背景:

  • 随着大规模集成电路发展,进入个人计算机(PC)时代。

1973年:CP/M操作系统
- Control Program/Microprocessor
- 良好的层次结构:BIOS把操作系统和硬件分隔
- 易学易用
微机操作系统随着大规模集成电路的发展,计算机由原来的大型计算机、大型主机逐步向家庭用户办公用户衍生出现了个人计算机也就是(PC)机,可以处理各种事务办公娱乐。
最早在PC机上面出现的操作系统是CP/M操作系统,这个操作系统具有良好的层次结构,它提出了BIOS这个概念基本输入输出系统,BIOS把操作系统和硬件分隔,我们买计算机的时候上面就带有这个bios。操作系统在BIOS基础上面控制硬件,所以BIOS分隔了操作系统和硬件之间的直接联系,让操作系统有更好的可连接性,CP/M易学易用,是当时最主流的PC机的操作系统。
**微机操作系统
苹果Mac OS和Macintosh(1976年
- Mac OS 是运行Macintosh系列电脑上的操作系统。
- Mac OS是首个配有图形界面和鼠标的操作系统
在这里插入图片描述
必须要提的就是苹果的Mac OS,苹果Mac OS是最早配有图形界面和鼠标的操作系统。第一次再商业创造上面最成功,带有图形界面和鼠标的操作系统。
在一个就是微软的MS DOS(80年代)
微机操作系统
MS DOS(80年代)
磁盘操作系统
单用户任务
MS DOS 预装在IBM PC 上

MS DOS 是八十年代使用最广泛的PC操作系统,它是一个磁盘操作系统,这个 D就表示磁盘(disk),它是个单用户的操作系统,MS DOS 预装在IBM PC上面,这两个就是我们所说的黄金搭档。
微机操作系统
微软Windows操作系统
1985年 11月,Windows 1.0 正式上市
1992年04月,发表Windows 3.1
1993年 05月,发表WindowsNT
Windows 95,CE,98,2K,XP,Win7,WIN10,…
Windows 占有PC市场的巨大份额

后面退出的就是windows操作系统,图形界面,图形元素,支持鼠标,支持菜单,这样的交互方式。Windows1.0第一个版本是1985年发布的,后面Windows3.1,WindowsNT,它们都是一些具有跨时代意义的版本,现在的主流系列是win10,Windows在桌面系统在PC市场上面具有巨大的市场份额。我们可以说windows操作系统就是PC操作系统的卫冕之王。
实时操作系统
产生背景

  • 实时事务:军事,工业控制,智能仪器等
  • 要求:某些任务要优先紧急处理

特点

  • 强调作业完成的时限

实时操作系统产生的背景是因为有一些实时事务需要处理,在军事上面,在工业控制上面,在只能仪器仪表这些领域具有大量的实时事务,实时事务的特点呢就是某些任务要求优先被紧急处理,被实时的响应,那么这个时候需要操作系统能够快速处理一些优先任务一些紧急任务,实时操作系统的特点就是它强调作业的完成时间,它的作业有没有及时完成是衡量这个作业成功的最重要的标准,如果作业完成了,但是你延迟了,依然被认为失败。
硬实时系统: 时限要求严格
火炮控制系统
航空航天
制导系统
目标识别和跟踪
工业控制
汽车电子系统


实时系统根据对时限的严格要求分为硬实时系统,对时限的要求非常严格
向火炮控制系统,航空航天,制导系统,目标识别和跟踪,工业控制,汽车电子系统这些都有严格的时限要求。
软实时系统:时限要求不是太严格 ,尽量快
网络视频
互动网游
广播
通讯

当然也存在一些实时系统对时限要求不是太严格,只是要求尽量的快,这叫软实时系统,像网络视频,互动网游,广播,通讯都属于软实时系统。
嵌入式操作系统
嵌入式操作系统≈实世操作系统
嵌入式系统
软硬件可以裁剪,软硬件一体化的系统

嵌入式操作系统有时候被等同于实时操作系统,但是嵌入式操作系统它的范围它的概念比实时操作系统要大,是约等于不是等于。
嵌入式系统主要用在嵌入式操作系统里面,嵌入式系统它是软硬件一体化的系统,比如说 我们的手,机家电,数码相机都属于嵌入式系统,它的软件它的硬件都是定制的。
当然不是所有的嵌入式系统都有嵌入式操作系统一些高端的嵌入式系统需要操作系统支持。
比如手机就是典型的嵌入式操作系统
典型的嵌入式操作系统

  • Andriod
  • Linux
  • ucOS
  • ucLinux
  • vxWorks
  • WinCE
    典型的嵌入式操作系统,安卓是大家耳熟能详的,我们在手机里面平板里面都是Andriod安卓操作系统。还有Linux操作系统,这个Linux与我们常说的Linux稍有不同,平常说的Linux是桌面上运行的Linux,而我们这里说的Linux它是用在嵌入式里的Linux,它们的内核最基本的内核是相同的只不过桌面应用的时候需要加上一些系统管理工具,需要加上用户界面,设备管理模块,在嵌入式里面使用到的Linux可能是经过了裁剪,与PC上使用的Linux在功能上面在模块上面就会有些差异,ucOS、ucLinux,vxWorks、WinCE都是我们常见的嵌入式操作系统。

网络操作系统

  • 普通操作系统+网络通信+网络服务。
  • UNIX/LINUX/WINDOW
    网络操作系统功能
  • 透明存取
  • 存取控制

在这里插入图片描述
网络操作系统并不是什么新的操作系统,是在普通操作系统的基础上面加上网络通信和网络服务功能,我们常用的UNIX/LINUX/WINDOW操作系统都属于网络操作系统,都具有网络的功能。

网络操作系统功能简单来说是提供网络资源的透明存取,第二个是要提供存取控制。

适合学习的小型开源操作系统
MinixOS

  • Andrew S.Tanenbaum编写
  • 荷兰/阿姆斯特丹/Vrije 计算机科学系
    在这里插入图片描述
    两个开源的操作系统,我们在做实验在做课外学习的过程中都可以用,第一个是MinixOS,这是一个小型的开源系统,作者是Andrew现实,它写了上图右边的教材。

Minix OS 特点
开放源代码给教学和科研人员
MINIX = Mini UNIX

  • 约12000行

微内核架构(MIcrokernel)
类UNIX操作系统
这个操作系统的特点呢开放源码之所以取名Minux实际上就是MINI +UNIX的缩写就是小型版简化版本的UNIX,代码只有一万多行,如果一个源代码超过了3万行,我们一般很难去掌握这个源代码。
MINIX OS采用了微内核架构,是一个非常先进的内核架构,是一个类UNIX的操作系统。
http://www.minix3.org/

在这里插入图片描述
上方链接是操作系统的官网,可以上去吧源代码给下载下来。

Linux操作系统是目前应用范围最为广泛的操作系统,不管是在PC领域还是在服务器领域。Linux是一个开源的操作系统,Linux是芬兰一个大三的学生在课后做的课后作业,他编写的一个操作系统,最早版本是Linux0.1,最新的源代码可以在下方的网址中找到.

https://www.kernel.org/
在这里插入图片描述最新的源代码代码量相当的庞大,我们要去掌握这个源代码可以说非常困难,几乎是不可能,如果找到早期一两万行的源代码那我们就还可以掌握。

Linux版本:发行版

在这里插入图片描述

日常使用过程中,我们经常会下载不同版本的发行版,Linux版本有两种说法一种是指Linux内核版本,内核是开源的,发行版本是不开源的,有些还是要收费的,红帽子是大型服务器领域里面用的比较多的,性能非常好,像平常用的比较多的ubuntu,它们都是在相同的内核上面,加上了不同的管理工具、辅助工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值