操作系统的定义和作用
定义:操作系统是计算机系统中的一个系统软件,是一些程序模块的集合。
作用:
(1)资源管理:能尽量有效、合理的方式组织和管理计算机资源。其中包括各种软硬件资源,CPU、内存、设备、时钟、网卡、文件等
资源管理的方式:
1、跟踪记录资源使用情况
2、确定资源分配策略
3、实施资源的分配和回收
4、提高资源的利用率
5、保护资源使用
6、协调多个进程对资源请求的冲突
(2)提供服务:为用户提供一组功能强大、方便使用的命令和系统调用(用户和计算机交互的两种方式)
(3)对硬件机器进行拓展(对应操作系统的虚拟性,见下文):屏蔽硬件的一些繁琐操作和实现细节,将其包装成一些简单的操作,使硬件对程序员透明,对硬件进行抽象。
操作系统的特征
1、并发:能处理多个同时性的活动。并发与并行不同,并行指的是不同的程序在多个硬件部件上同时执行;但并发指的是同一个套硬件执行多个程序,在宏观上,不同的程序同时执行,但在微观上,同一时刻实际上只有一个程序在执行
2、共享:操作系统与多个用户的程序共同使用就计算机系统中的(有限的)资源。
互斥共享(如打印机)
同时共享(如可重入代码、磁盘文件等)
引发的问题:资源分配难以达到最优,如何保护资源?
3、虚拟:一个物理实体映射为若干个对应的逻辑实体——分时或分空间。
虚拟是操作系统管理资源的重要手段,可以提高资源利用率。
如:CPU——每个进程的“虚处理机”
存储器——每个进程都有独立的虚拟地址空间(代码+数据+堆栈)
显示设备——多窗口或虚拟终端
4、随机:操作系统必须随时对以不可预测的次序发生的时间进行响应和处理。
多个进程并发执行,“走走停停”,无法预知每个进程的运行快慢
也因此,难以重现在某个时刻的系统出现状态,包括难以重现同一个错误,这给操作系统的调试带来了很大的困难。
操作系统的架构
不同的系统有着不同的架构,如WINDOWS、UNIX、LINUX等,下面只是一些大致的架构,可能和具体的实现有所不同
1、内核模块:
(1)硬件抽象层:屏蔽了硬件的细节
(2)内核层:处理不同体系结构之间的功能,如线程管理、线程调度、终端处理、文件系统等
(3)设备驱动程序层:包括各个文件系统驱动程序,设备驱动程序等
(4)系统调用接口:与用户模块交互的通道
2、用户模块:
(1)动态链接库、环境子系统(WINDOWS独有)
(2)用户进程
(3)库函数
(4)应用程序
操作体统分类
根据需求和目的,操作系统的分类方式也有多种,以下是一种分类方式,根据工作方式和场景等来分类
1、批处理操作系统:用户把作业交给操作员,操作员将一批作业交给系统,那么操作系统会依次、顺序执行每个作业。一旦开始执行,用户无法对系统进行任何干预,即不能有任何交互。
(1)单道批处理系统:内存中只能有一个作业
(2)多道批处理系统:内存中可以有多个作业同时存在,以能够充分利用计算机的资源。
缺陷:由于慢速的输入输出,使得CPU在大部分时间处于空闲状态
解决方案:
(1)卫星机:卫星机完成面向用户的输入输出(读入纸带或卡片),中间结果暂存在磁盘或磁带上。由操作员将磁盘或磁带交给一部处理性能强的计算机来计算,计算结果暂存在磁盘或磁带中,由操作员将磁盘或磁带到另一个卫星机上来打印。
注:以上过程实际上涉及到了3台计算机,两台卫星机分别负责输入和输出的工作,而一个较强计算能力的机器专门负责计算,将慢速的输入输出和快速的计算进行分离,以提高CPU利用率。
(2)spooling技术:spooling技术将上述案例中三台计算机完成的任务合成到了一台计算机中。
spooling技术:是一个批处理系统实现通常采用的技术。又称为假脱机技术。
思想:利用磁盘作为缓冲,将输入、计算、输出分别组织成独立的任务流,是I/O和计算真正的并行
过程:
(1)用户作业加载到磁盘上的输入井
(2)按照某种调度作业选择几个搭配得当的作业,调入内存。
(3)作业运行的结果输出到磁盘上的输出井
(4)运行的结果从磁盘上的输出井送到打印机
时至今日,有些设备上依旧在使用spooling技术,如打印机。每一页可以认为是一个作业,一个文档被输入到打印机请求队列中(输入井),打印进程从输入井中读取数据负责打印。
2、分时操作系统:将CPU的时间划分为若干个片段,即时间片。操作系统以时间片尾单位,轮流为每个终端用户服务,每次服务的时间一个时间片,给每个用户的错觉是计算机上没有其他的用户,系统由其独占。
3、通用操作系统:分时操作系统和批处理系统相结合。分时优先、批处理在后。白天分时给大家用,晚上的时候用户不使用终端的时候再把大部分CPU用来处理批作业,因为分时系统对即时性要求较高,而批处理对响应时间要求不高。
4、实时操作系统:指计算机能及时响应外部事件的请求,在规定的严格时间内做出响应,高可靠性。
5、个人计算机操作系统:追求界面友好,功能丰富
6、网络操作系统:追求相互通信、资源共享
7、分布式系统:以计算机网络为基础,或者以多个处理机为基础,基本特征是处理分布在不同计算机上,允许若干个计算机相互协作来完成同一项任务。处理能力增强、速度更快、对用户透明,即用户感觉不到分布式的存在。
8、嵌入式系统:它们是一个大设备的一部分,运行在嵌入式设备中。