操作系统【概述篇】
秋招复习专用,纯属个人整理重点笔记。如果你在看,希望也对你有所帮助。所有笔试都是来自《计算机操作系统》汤小丹的第四版和王道考研的操作系统,如果想深入了解下去,请阅读原书。
因为本文主要是面向秋招,所以针对秋招高频会重点标记(标⭐)并会多整理一些,其他一些知识会稍微补充一下,不会重点介绍。
操作系统的目标与作用
基本概念
操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。
操作系统的目标
不同的操作系统,其目标的侧重点不相同。不过一般来说,可以分为以下几点
(1)有效性。
- 提高系统资源利用率。
- 提高系统的吞吐量。
(2)方便性。因为配置了操作系统的可以使我们的计算机更容易被使用。
(3)可扩充性。方便增加新的功能和模块,并能修改老的功能和模块。
(4)开放性。开放性是指系统能遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。
操作系统的作用
(1)OS作为用户与计算机硬件系统之间的接口。常用的三种使用方式如下:
- 命令方式
- 系统调用方式
- 图形、窗口方式。
(2)OS作为计算机系统资源的管理者。
- 处理机管理。用于分配和控制处理机
- 存储器管理。主要负责内存的分配和回收
- I/O设备管理。负责I/O设备的分配和操纵
- 文件管理。负责文件的存取、共享和保护
(3)OS实现了对计算机资源的抽象。对用户提供了一个对硬件操作的抽象模型,隐藏了那些不友好的交互操作。(用户只需要这些IO操作命令它来进行数据输入或输出,而无需关心 I/O 是如何实现的)
操作系统的发展动力
(1)不断提高计算机资源的利用率。
(2)方便用户。
(3)器件的不断更新换代。
(4)计算机体系结构的不断发展。
操作系统的发展过程
手工操作阶段
(1)人工操作方式
程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存。
缺点:
- 用户独占全机。计算机及其全部资源只能由上机用户独占。
- CPU等待人工操作。大大降低了计算机资源的利用率(当用户进行装带(卡)、卸带(卡)等人工操作时,CPU 及内存等资源是空闲的。)。
(2)脱机输入/输出方式
目的是为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾。主要是利用机器来解决人工操作慢的过程。
优点:
- 减少了CPU的空闲时间。
- 提高了IO速度。
单道批处理系统
单道批处理系统主要是把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序,在它的控制下使这这批作业能一个接一个地连续处理。
特征
(1)自动性。在磁带上的作业自动地逐个地依次运行,而无需人工干预。
(2)顺序性。磁带上的各道作业是顺序进入内存中。
(3)单道性。内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行。
优缺点
优点:引入批处理一定程度缓解了人机速度矛盾。
缺点:内存仅有一道作业运行,运行结束才调入下一道程序,CPU大量时间在等待IO完成,资源利用率依然很低。
多道批处理系统
概念
所谓多道批处理就是将用户所提交的作业都优先存放的外存上并排成一个队列(“后备队列”),然后由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
引入的好处
(1)提高CPU的利用率。
(2)可提高内存和I/O设备利用率。
(3)增加系统吞吐量。
优缺点
优点:1、资源利用率高;2、系统吞吐量大。
缺点:1、平均周转时间长;2、无交互能力。
需要解决的问题
(1)处理机管理问题;(2)内存管理问题;(3)I/O设备管理问题;(4)文件管理问题;(5)作业管理问题。
分时系统
分时系统是指在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式(时间片轮转)使用计算机,共享主机中的资源。
特征
(1)多路性。宏观上,是多个用户同时工作,共享系统资源;而微观上,则是每个用户作业轮流运行一个时间片。多路性即同时性,它提高了资源利用率,降低了使用费用,从而促进了计算机更广泛的应用。
(2)独立性。每个用户各占一个终端,彼此独立操作,互不干扰。
(3)及时性。用户可以在很短的时间内获得响应。
(4)交互性。用户可以请求系统提供多方面的服务,如文件编辑,数据处理和资源共享等。
缺点:因为不能实时处理一些信息引入实时系统。
实时系统
实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时与分时的特征比较
(1)多路性。实时控制系统的多路性则主要表现在系统周期性地对多路现场信息进行采集,以及对多个对象或多个执行机构进行控制。
(2)独立性。实时控制系统中,对信息的采集和对对象的控制也都是彼此互不干扰。
(3)及时性。等待的时间都是 人所能接收的。
(4)交互性。实时系统的交互仅限于访问系统中某些特定的专用服务程序。
(5)可靠性。要求系统具有高度的可靠性,采取了多级容错措施来保障系统的安全性以及数据的安全性。
其他系统
网络操作系统
各台计算机结合实现网络中各种资源共享通信
分布式操作系统
通信交换数据、同等低位、资源共享、构成子系统、任务可分布在多个计算机并行工作协同完成。
特征:(1)分布性;(2)并行性。
操作系统的基本特性⭐
并发性
并行与并发
我们一定要切记不要搞混了并发与并行这两个不同的概念:并行性市值两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。
(1)并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。
(2)而并发则是操作系统通过引入进程和线程才能去实现的。进程是指在操作系统中能独立运行并作为资源分配的基本单位。而线程则是独立运行和独立调度的基本单位。
共享性
所谓共享是指系统中的资源可供内存中多个并发执行的进程或者线程共同使用。而把这种资源共同使用则称为资源共享或者资源复用。
目前主要实现资源共享的方式有如下两种。
(1)互斥共享方式
一般来说,我们把一个进程访问完并释放该资源后,才允许另一进程对该资源进行访问的这种资源共享方式称为互斥式共享。而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。
(2)同时访问方式
操作系统还有另一类资源可以由多个进程同时对它们进行访问。这里的同时指的是交替地对该资源进行访问。典型的资源就是我们的“磁盘设备”。
并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。
虚拟技术
所谓的虚拟技术就是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。在操作系统上利用了两种方式实现虚拟技术,即时分复用技术和空分复用技术。
时分复用技术
多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片并快速切换。
空分复用技术
虚拟内存使用了空分复用技术,它将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。(同样的还有虚拟磁盘和虚拟存储器技术)
异步性
多个程序并发执行,资源有限,执行不是一贯到底,而是走走停停(争抢到资源和CPU才执行)
操作系统的主要功能⭐
处理机管理功能
处理机管理的主要功能是创建和撤销进程(线程),对诸进程(线程)的运行进行协调,实现进程(线程)之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)。具体的功能如下:
(1)进程控制。主要是为了作业创建进程,撤销已经结束的进程,以及控制进程在运行过程中的状态转换。现在还多了一个为进程创建多个线程和撤销已经完成任务的线程的功能。
(2)进程同步。进程同步的主要任务是为多个进程(包括线程)的运行进行协调。主要包括两种方式:进程互斥方式和进程同步方式。具体在后面篇幅会具体整理到相关知识点。
(3)进程通信。主要任务就是用来实现在相互合作的进程之间的信息交换。
(4)调度。主要分为作业调度和进程调度。作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首先是分配内存)。进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。
存储器管理功能
储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。存储器管理应具有内存分配、内存保护、地址映射和内存扩充等功能。
(1)内存分配。内存分配主要就是为每道程序分配内存空间,提高存储器的利用率。同时也允许动态增加内存的需求(允许正在运行的程序申请附加的内存空间)。为了实现内存分配,在机制中应具有这样的结构的功能:1、内存分配数据结构;2、内存分配功能;3、内存回收功能。
(2)内存保护。内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。一个简单的的内存保护机制就是设置两个界限寄存器。
(3)地址映射。存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。
(4)内存扩充。从逻辑上去扩充内存容量,让用户感受到的内存容量比实际内存容量大得多。系统必须具有内存扩充机制,用于实现请求调入功能和置换功能。
设备管理功能
完成用户的 I/O 请求,方便用户使用各种设备,并提高设备的利用率。主要包括缓冲管理、设备分配、设备处理、虛拟设备等。
文件管理功能
文件管理的主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理,以及文件的共享与保护等功能。
系统与用户的接口
(1) 用户接口。它是提供给用户使用的接口,用户可通过该接口取得操作系统的服务。
(2) 程序接口。它是提供给程序员在编程时使用的接口,是用户程序取得操作系统服务
的惟一途径。
操作系统的体系结构⭐
大内核: 大内核是将操作系统主要功能模块都作为一个紧密结合的整体运行在核心态,具有很高的性能。
微内核: 由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态。因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。
参考资料
《计算机操作系统》—— 汤小丹