文章目录
引言
为了方便自己复习(上课没听讲,课后火葬场),根据学校的考纲整理知识点(仅是部分,并非全面),大家(特别是某四非邮专的同学们)可选择性食用,就不需要一个一个知识点搜了(下面的内容几乎全来自互联网其他我觉得合适的博客,也有一部分是来自于老师的PPT,全文后面有相关的链接,如果作者觉得侵权,可以联系我删除哇!)
第一章 概述
操作系统的定义
操作系统(Operation System, OS) 是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织和调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境,它是计算机系统中最基本的系统软件。
操作系统结构层次
用户可以直接和操作系统进行交互,但是大多数情况下都是通过应用软件与操作系统进行交互。硬件指的是CPU、内存、硬盘等资源。
多道程序系统、批处理系统、分时系统、实时系统的特点
多道程序系统
多道程序系统是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始和结束之间的状态。这就称为多道程序技术运行的特征:多道、宏观上并发、微观上串行。
特点
多道:计算机主存中同时存放几道相互独立的程序。
宏观并行:同时进入系统的几道程序都处于运行过程中,即它们都开始运行,但都未运行完毕。
微观串行:从微观上看,主存中的多道程序轮流或分时地占有处理机,交替运行。
批处理系统
在批处理系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”。然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
特点
多道:在内存中同时存放多个作业,一个时刻只有一个作业运行,这些作业共享CPU和外部设备等资源。
成批:用户和作业之间没有交互性。用户自己不能干预自己的作业的运行,发现作业错误不能及时改正。
批处理系统的目的是提高系统吞吐量和资源的利用率(系统吞吐量是指系统在单位时间内所完成的总工作量。能提高系统吞吐量的主要原因是仅当作业完成时或运行不下去时才进行切换,系统开销小)。
分时系统
分时系统一般采用时间片轮转的方式,使每一台计算机为多个终端用户服务。分时系统与多道批处理系统之间有着截然不同的性能差别,它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率。分时系统是指,在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。(一个系统可以同时为两个或两个以上的账户服务)。
特点
同时性:计算机系统能够被多个用户同时使用。
独立性:用户和用户都是独立操作系统的,在同时操作时不会发生冲突、破坏、混淆等现象。
及时性:系统能够以最快的速度将结果显示给用户。
交互作用性:用户能够和电脑脑进行人机对话。
实时系统
所谓“实时”,是表示“及时”,而实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。其应用需求主要在实时控制和实时信息处理。
特点
**高精度计时系统:**计时精度是影响是实时性的一个重要因素。在实时应用系统中,经常需要精确确定,实时地操作某个设备或执行某个任务,或精确的计算一个时间函数。这些不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。
**多级中断机制:**一个实时应用系统通常需要处理多种外部信息或事件,但处理的 紧迫程度有轻重缓急。有的必须立即作出反应,有的则可以延后处理。因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时响应和处理
**实时调度机制:**实时操作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务。但是,处理机调度并不能随心所欲的进行,因为涉及到两个进程之间的切换。只能在确保“安全切换”的时间点上进行,实时调度机制包括两个方面,一是在调度策略和算法上保证优先调度实时任务;二是建立更多“安全切换”时间点,保证及时调度实时任务。
操作系统分类
操作系统一般可分为三种基本类型,即批处理系统、分时系统和实时系统。
批处理系统
批处理(Batch Processing)操作系统的工作方式是:用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,之后输入到计算机中,在系统中形成一个自动转接的连续的作业流,然后启动操作系统,系统自动、依次执行每个作业。最后由操作员将作业结果交给用户。分为单道批处理系统和多道批处理系统。
单道批处理
系统对作业的处理是成批进行的,但内存中始终保持一道作业。该系统是在解决人机矛盾和CPU与I/O设备速率不匹配的矛盾中形成的。
- 顺序性:磁带上的各道作业是顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序,在正常情况下应完全相同,亦即先调入内存的作业先完成。
- 单道性:内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。
- 自动性:在顺利的情况下,在磁带上的一批作业能自动地逐个依次运行,而无需人工干预。
多道批处理
多道程序设计技术允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。它没有用某些机制提高某一技术方面的瓶颈问题,而是让系统的各个组成部分都尽量去“忙”,花费很少时间去切换任务,达到了系统各部件之间的并行工作,使其整体在单位时间内的效率翻倍。
多道程序设计的特点:
- 多道:计算机内存中同时存放多道相互独立的程序。
- 宏观上并行:同时进入系统的多道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕。
- 微观上串行:内存中的多道程序轮流占有CPU,交替执行。
在批处理系统中釆用多道程序设计技术,就形成了多道批处理操作系统。该系统把用户提交的作业成批地送入计算机内存,然后由作业调度程序自动地选择作业运行。
分时操作系统
分时(Time Sharing)操作系统的工作方式是:一台主机连接了若干个终端,每个终端有一个用户在使用。用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。用户根据上步结果发出下道命。分时操作系统将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。每个用户轮流使用一个时间片而使每个用户并不感到有别的用户存在。
在操作系统中釆用分时技术就形成了分时系统。所谓分时技术就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的感觉好像是自己独占一台计算机。
实时操作系统
实时操作系统(RealTimeOperatingSystem,RTOS)是指使计算机能及时响应外部事件的请求在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。实时操作系统要追求的目标是:对外部请求在严格时间范围内做出反应,有高可靠性和完整性。
为了能在某个时间限制内完成某些紧急任务而不需时间片排队,诞生了实时操作系统。这里的时间限制可以分为两种情况:如果某个动作必须绝对地在规定的时刻(或规定的时间范围)发生,则称为硬实时系统。如果能够接受偶尔违反时间规定,并且不会引起任何永久性的损害,则称为软实时系统。
实时系统与批处理系统和分时系统的区别:
- 专用系统:许多实时系统是专用系统,而批处理与分时系统通常是通用系统
- 实时控制:实时系统用于控制实时过程,要求对外部事件迅速响应,具有较强的中断处理机构
- 高可靠性:实时系统用于控制重要过程,要求高度可靠
- 事件驱动和队列驱动:实时系统的工作方式:接受外部消息、分析消息、调用相应处理程序进行处理
操作系统功能
扩展机器、管理资源(包括处理机管理、存储器管理、设备管理、文件管理、提供操作系统与用户之间的接口等。)
- 操作系统统一管理着计算机资源(处理器资源、IO 设备资源、存储器资源、文件资源)
- 操作系统实现了对计算机资源的抽象(操作系统通过调用资源管理软件提供的接口来管理资源)
- 操作系统提供了用户与计算机之间的接口(图像窗口形式、命令形式、系统调用形式)
操作系统接口类型
为了方便用户使用操作系统,其提供了两种接口:一种是用户接口,一种是程序接口
用户接口
该接口支持用户与OS之间进行交互,即由用户向OS请求提供特定的服务,系统则把服务的结果返回给用户;
程序接口
OS向编程人员提供了“程序与操作系统的接口”,简称程序接口,也称应用程序API(Application Programming Interface)。该接口是为程序员在编程时使用,系统和应用程序通过这个接口,可在执行中访问系统的资源和取得OS的服务,它也是程序能取得操作系统服务的惟一途径。大多数操作系统的程序接口是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序。
图形接口
采用了图形化的操作界面,用图标将系统的各项功能、文件直观逼真的表示出来,通过鼠标、菜单和对话框来完成相应的操作。
系统调用
概念
通常,在操作系统的核心中都设置了一组用于实现各种系统功能的子程序(过程),并将它们提供给应用程序调用。由于这些程序或过程是 OS 系统本身程序模块中的一部分,为了保护操作系统程序不被用户程序破坏,一般都不允许用户程序访问操作系统的程序和数据,所以也不允许应用程序采用一般的过程调用方式来直接调用这些过程,而是向应用程序提供了一系列的系统调用命令,让应用程序通过系统调用去调用所需的系统过程。
系统态和用户态
在计算机系统中,通常运行着两类程序:系统程序和应用程序,为了保证系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:系统态(也称为管态或核心态)和用户态(也称为目态)。操作系统在系统态运行,而应用程序只能在用户态运行。在实际运行过程中,处理机会在系统态和用户态间切换。相应地,现代多数操作系统将 CPU 的指令集分为特权指令和非特权指令两类。
特权指令
特权指令就是在系统态里运行的指令,其对内存空间的访问不受限制,既能访问用户存储空间,也能访问系统存储空间。特权指令只允许操作系统使用,不允许应用程序使用,否则会引起系统混乱。
非特权指令
非特权指令是在用户态里运行的指令,一般应用程序所使用的都是非特权指令,它只能完成一般性的操作和任务,不能对系统中的硬件和软件直接进行访问,其对内存的访问范围也局限于用户空间。这样,可以防止应用程序的运行异常对系统造成的破坏。
系统调用
一方面,由于系统提供了保护机制,防止应用程序直接调用操作系统的过程,从而避免了系统的不安全性。另一方面,应用程序又必须取得操作系统所提供的服务,否则应用程序基本上无法提供什么有价值的服务,甚至无法运行。所以系统调用出现了!它使应用程序可以通过系统调用的方法,间接调用操作系统的相关过程,取得相应的服务。
当应用程序中需要操作系统提供服务时,如请求 I/O 资源或执行 I/O 操作,应用程序必须使用系统调用命令。由操作系统捕获到该命令后,便将 CPU 的状态从用户态转换到系统态,然后执行操作系统中相应的子程序(例程),完成所需的功能。执行完成后,系统又将CPU 状态从系统态转换到用户态,再继续执行应用程序。系统调用在本质上是应用程序请求 OS 内核完成某功能时的一种过程调用。
系统调用的类型
一个操作系统有许多功能,可以从其提供的系统调用上体现出来。不同操作系统的性质不同,其所提供的系统调用之间也会有一定的差异。对于一般的系统调用分为:进程控制、文件操作、通信管理、系统维护等几大类。
进程控制类系统调用
这类系统调用主要用于对进程的控制,如创建一个新的进程和终止一个进程的运行,获得和设置进程属性等。
- 创建和终止进程的系统调用
- 获得和设置进程属性的系统调用
- 等待某事件出现的系统调用
文件操作类系统调用
- 创建和删除文件
- 打开和关闭文件
- 读和写文件
进程通信类系统调用
在 OS 中经常采用两种进程通信方式,即消息传递方式和共享存储区方式。当系统中采用消息传递方式时,在通信前,必须先打开一个连接。为此,应由源进程发出一条打开连接的系统调用 open connection,而目标进程则应利用接受连接的系统调用 accept connection表示同意进行通信;然后,在源和目标进程之间便可开始通信。可以利用发送消息的系统调用 send message 或者用接收消息的系统调用 receive message 来交换信息。通信结束后,还须再利用关闭连接的系统调用 close connection 结束通信。
用户在利用共享存储区进行通信之前,须先利用建立共享存储区的系统调用来建立一个共享存储区,再利用建立连接的系统调用将该共享存储区连接到进程自身的虚地址空间上,然后便可利用读和写共享存储区的系统调用实现相互通信。
操作系统硬件基础
没找到合适的资料,随便放一篇博客在下面吧:
常用的linux命令以及简单的shell编程
感觉老师课上没讲这些来着(不排除40分钟开小差,5分钟听课,没听到的情况)
虚拟机体系结构
虚拟机是一种通过软件镜像模拟,具有完整硬件系统功能,并运行在一个完全隔离环境的中的计算机系统。物理计算机资源共享以创建虚拟机;每个虚拟机同其他虚拟机隔离。
配有 CMS 的VM/370结构:
VM/370在裸机上运行,并具有多道程序功能。向上层提供了若干台虚拟机。虚拟机不具有文件等优良特征,仅仅是裸机硬件的精确复制品,包括了内核态/用户态、I/O功能、中断等。
参考资料:
批处理系统、分时系统、实时操作系统的特点和比较_马小超i的博客-CSDN博客_批处理系统和分时系统
操作系统分类_默默进步—一鸣惊人的博客-CSDN博客_操作系统的分类有哪些