一、操作系统概述
1、操作系统的概念(什么是操作系统)
概念:操作系统 (Operating System, 0s) 是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配:以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。
2、操作系统的功能和目标(操作系统要做些什么)
执行一个程序前需要将该程序放到内存中,才能被CPU处理。
根据操作系统的定义,操作系统的三个特点:1)操作系统是系统资源的管理者、2)向上层提供方便易用的服务、3)是最接近硬件的一层软件。分别从操作系统的这三个特点分析操作系统的功能和目标:
1)资源管理者提供的功能:处理机管理、存储器管理、文件管理、设备管理。目标:安全、高效
处理机管理:第一项任务是处理中断事件,第二项任务是处理器调度,确保在多道程序或多用户的情况下,组织多个作业或任务执行。
存储器管理:主要任务是管理存储器资源,为多道程序运行提供有力的支撑。主要功能包括 存储分配、存储共享、存储保护、存储扩充。
文件管理:对系统的信息资源的管理。主要任务是对用户文件和系统文件进行有效管理,实现按名存取;实现文件的共享、保护和保密,保证文件的安全性;提供给用户的一套能方便使用文件的操作和命令
设备管理:主要任务是管理各类外围设备,完成用户提出的I/O请求,加快I/O信息的传送速度,发挥I/O设备的并行性,提高I/O设备的利用率,以及提供各种设备的驱动程序和中断处理程序,向用户屏蔽硬件使用细节。有以下功能:提供外围设备的控制和处理、提供缓冲区的管理、提供外围设备的分配、提供共享型外围设备的驱动、实现虚拟设备。
2)向上层提供方便易用的服务:
主要是采用封装思想:操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可。
使用对象 | 分类 | 详细分类 | 举例 | 特点 |
---|---|---|---|---|
直接给用户使用的 | GUI | 图形化用户接口 | windows、linux、ios图形化操作界面 | 用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。 |
直接给用户使用的 | 命令接口 | 联机命令接口(交互式命令接口) | windows-cmd | 用户说一句,系统跟着做一句 |
直接给用户使用的 | 命令接口 | 脱机命令接口(批处理命令接口) | windows的*.bat文件 | 用户说一堆,系统跟着做一堆 |
给软件/程序员使用的 | 程序接口 | 可以在程序中进行系统调用(也称:广义指令)来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。 | 写C语言“Hello world”程序时,在printf 函数的底层就使用到了操作系统提供的显式相关的“系统调用” |
命令接口和程序接口统称为:用户接口
3)作为最接近软件的层次:实现对硬件机器的扩展
-
裸机:没有任何软件支持的计算机成为。
-
虚拟机(扩充机器):覆盖了软件的机器。
-
在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
-
操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能。
-
普通用户无需关心这些硬件在底层是怎么组织起来工作的,只需直接使用操作系统提供的接口即可。
3、操作系统的4个特征
并发和共享为两个最基本的特征,互为存在条件
1)并发
-
并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
-
并行:指两个或多个事件在同一时刻同时发生。
-
注意(重要考点):
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行。
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。
2)共享
-
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
-
互斥共享方式(如摄像头设备的共享使用):系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。
-
同时共享方式(如硬盘资源的共享使用):系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问,所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)。
3)并发与共享的关系
-
并发性指计算机系统中同时存在着多个运行着的程序。
-
共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。
-
如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义。
-
如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。
4)虚拟
-
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
-
空分复用技术(如虚拟存储技术):一种多租户的虚拟化方式,通过共享未使用的物理资源,提供多个虚拟机的资源隔离,有效地提高了物理资源的利用率。
-
时分复用技术(如虚拟处理技术):微观上处理机在各个微小的时间段内交替着为各个进程服务
5)异步
-
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
-
由于并发运行的程序会争抢着使用系统资源,而系统中的资源有限,因此进程的执行不是一贯到底的,而是走走停停的,以不可预知的速度向前推进如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。
4、操作系统的发展与分类
1)手工操作阶段
工作方式:程序员需要在纸带上打孔,有孔代表1,无孔代表0,然后将纸带放入纸带机识别,识别完成后再将数据输入计算机处理.
主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低。
2)批处理操作阶段
-
单道批处理 (为了解决手工操作阶段缺点,人们引入了 脱机输入/输出 技术,并监督程序负责控制作业的输入/出。)
工作方式:将数据录入至磁带,再识别磁带,使得效率提升。
优点:缓解一定程度的人机速度矛盾,资源利用率有所提升。
缺点:内存中仅有一道程序运行,只有在该程序全部运行完后才能调入下一程序。CPU有大量的时间是在空闲等待输入/出完成,资源利用率依然很低。
-
多道批处理(操作系统开始出现! 为解决单道批处理问题,人们引入了 中断技术,使得各个程序并发执行,每次往内存中输入多道程序)
工作方式:每次向操作系统中读入多道程序。
优点:多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大。
缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。eg:无法调试程序/无法在程序运行过程中输入一些参数)
3)分时操作系统
工作方式:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
4)实时操作系统
工作方式:计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。
实时操作系统的主要特点:及时性和可靠性
主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
-
硬实时操作系统
特点:必须在绝对严格的规定时间内完成
举例:绝对严格的规定时间(如导弹、自动驾驶)
-
软实时操作系统
特点:能够接收偶尔的违反规定
举例:允许偶尔违反(12306火车订票)
5)网络操作系统
把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用
6)分布式操作系统
主要特点:分布性和并行性。
系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务
7)个人计算机操作系统
如 Windows XP、MacOS,方便个人使用