操作系统第一章知识点小结
第一章 操作系统概述
1.1操作系统的概念,功能和目标
资源管理者(接下来的4给章节就是对这四个功能的详细学习)
处理机处理: 处理机管理因为是为进程分配处理机资源,也称为进程管理。
存储器管理: 存储器管理的对象是主存,也称内存。它的主要功能包括分配和回收主存空间、提高主存利用率、扩充主存、对主存信息实现有效保护。
文件管理: 主要涉及文件的逻辑组织和物理组织,目录的结构和管理。所谓文件管理,就是操作系统中实现文件统一管理的一组软件、被管理的文件以及为实施文件管理所需要的一些数据结构的总称
设备管理:
1.缓冲管理
为达到缓解CPU和I/O设备速度不匹配的矛盾,达到提高CPU和I/O设备利用率,提高系统吞吐量的目的,许多操作系统通过设置缓冲区的办法来实现。
2.设备分配
设备分配的基本任务是根据用户的I/O请求,为他们分配所需的设备。如果在I/O设备和CPU之间还存在设备控制器和通道,则还需为分配出去的设备分配相应的控制器和通道。
3.设备处理
设备处理程序又称设备驱动程序。其基本任务是实现CPU和设备控制器之间的通信。
4.设备独立性和虚拟设备
用户向系统申请和使用的设备与实际操作的设备无关
向用户提供服务:
命令接口: (允许用户直接使用)
1.联机命令接口(交互式命令接口):一组联机命令,终端处理程序、命令解释程序,比如CMD中的指令 time指令
2.脱机命令接口:比如.bat文件,把指令列成指令清单,一次执行
程序接口: (允许用户通过程序间接使用)
由一组系统调用组成,(程序接口=系统调用)
GUI: 图形用户接口
1.2标题操作系统的特征(4个哦)
并发(concurrence) : 指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发是指宏观上在一段时间内有多道程序在同时运行,而微观上这些程序是在交替地执行。
资源共享(resource—sharing) : 指多个并发进程共享计算机系统中的资源。被共享的资源可以是诸如CPU、内存、磁盘和打印机等硬件资源;也可以是软件资源,如文件和数据。
虚拟(virtual): 所谓虚拟是指把一个物理上的实体,映射为若干个逻辑上的对应物。前者是实的,实际存在的;后者是虚的,只是用户的一种感觉。例如,在多道程序系统中,虽然只有一个CPU,但通过分时使用后给用户的感觉是每道程序都有一个CPU在为之服务。亦即多道程序设计技术可把一台物理CPU虚拟为多台逻辑上的CPU。
时分复用共享:当一种资源在时间上复用时,不同的程序或用户轮流使用它。比如分时操作系统下的CPU
**空分复用共享:**让同一个频段在不同的空间内得到重复利用。虚拟磁盘技术:一台电脑上只有一个硬盘,使用虚拟磁盘技术可以将一个硬盘虚拟为多个硬盘。例如电脑上的C、D、E、F盘
异步(asynchronism): 指一组事件在多次出现时,它们出现的时间和次序没有一定规律。在多道程序环境下,异步是指每道程序均以人们不可预知的速度向前推进。
1.3操作系统的发展与分类
每个新出现的操作系统都是为了解决上一代操纵系统的缺点
手工操作系统阶段: 特点:一道程序独占机器且有人工干预的情况。
单道批处理系统
单道批处理系统引入了脱机输入/输出技术(用磁带完成),但是每次只能往内存中输入一道程序,监督程序(这是操作系统的雏形)负责控制程序的输入输出。
过程:多个用户把程序写在纸带上,然后通过外围机录入到磁带中,监督程序会控制程序的输入和输出,每次只允许计算机内存中存在一道用户程序。
流程大概这样:这个磁带的功能,也被映射到了缓冲技术的思想上。
由于磁带录入到处理器中的速度比纸带快得多,所以单道批处理系统一定程度上缓和了人机速度矛盾,资源利用率有所提升,
主要优点: 缓和了一定程度的人机速度矛盾,资源利用率有所提升。
主要缺点: 内存中仅能有一道用户程序运行,只有该程序运行结束后才能调入下一道程序,CPU有大量的空闲时间是在等待I/O完成,资源利用率依然很低。
在这里要解释一下,什么叫"CPU有大量的时间是在空闲等待I/O完成",I/O其实就是输入/输出(Input/Output)。这句话的意思就是,程序在输入输出的时候,什么事情都不做,必须等输入输出完成,该程序才做接下来的事情。
举个现实的例子:你去买宵夜,你和奶茶小贩说:"老板,我要一杯奶茶"后,你就在那里等,而不是去买其他的东西。
在这里,你就是CPU,奶茶小贩就是输出设备,而你向奶茶小贩说了你的需求(这就是CPU要输出设备做的事)后,你没做其他的事情,而是站在那里等,那这个等的时间就是空闲时间,其实你可以在这个空闲时间做其他事情。
多道批处理系统(操作系统正式诞生)
每次往计算机内存中输入多道程序,并引入了中断技术,由操作系统负责管理这些程序的并发运行。
过程:和单道批处理系统差不多,只不过是可以向计算机内存中调入多道程序,让他们在计算机内存中并发运行。
主要优点:多道程序并发运行,共享计算机资源,资源利用率大幅提升,CPU和其他资源保存"忙碌"状态的时间增长。
主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后只能等待计算机处理完成,中间不能控制自己作业的执行)
这里举个例子说说:为什么多道批处理系统能使资源利用率大幅提升呢?
假如现在计算机中有3个设备,输入设备、CPU、输出设备,他们分别负责输入、计算、输出。
那现在有3个作业,每个作业需要1s输入,1s计算,1s输出。
假如采用单道批处理系统。那过程将如下图。
可以看出,
输入设备的工作区间为[0,1],[3,4],[6,7]。
CPU的工作区间为[1,2],[4,5],[7,8]。
输出设备的工作区间为[2,3],[5,6],[8,9]。
这些设备的工作区间都没有重叠。
整个过程用了9s。
假如采用多道批处理系统。那过程将如下图。
可以看出,
输入设备的工作区间为[0,3]。
CPU的工作区间为[1,4]。
输出设备的工作区间为[2,5]。
这些设备的工作区间有重叠,而且在[2,3]时,输入设备,CPU,输出设备都在工作。
整个过程用了5s。
从对比可以看出,多道批处理系统能使资源利用率大幅提升,也提升了工作效率。
分时操作系统
概述:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。T=QN(Q为时间片,往往时间片是固定的,N为用户数,用户数越多,响应时间越长)
(时间片就是一个很短的时间,比如50ms)
图示如下:
用户请求可以被即时响应,解决了人机交互问题,允许多个用户使用一台电脑,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点:不能优先处理一些紧急任务,操作系统对各个用户/作业都是完全公平的,循环地为每一个用户/作业服务一个时间片,不区分任务的紧急性(有时候我们需要某个作业被马上执行,比如导弹发射,如果不能实时操作,必将产生灾难性的后果)
实时操作系统
为了解决分时操作系统不区分任务的紧急性的问题,实时操作系统诞生了。
在实时操作系统的控制下,计算机系统接收到外部信号后能及时进行处理,并且要在严格的时限内处理完事件, 实时操作系统的主要特点是及时性和可靠性。
主要优点: 能优先响应一些紧急任务,某些紧急任务不需要时间片排队。
当然,实时操作系统也分为2类:
硬实时系统(必须在绝对严格的规定时间内完成处理,如导弹控制系统、自动驾驶系统)
软实时系统(能偶尔违反时间规定,如12306火车订票系统,有时候票的余量是不准确的,但是也不妨碍系统的正常运行)
其他几种操作系统
网络操作系统:网络操作系统伴随着计算机网络的发展而诞生,能把网络中的各个计算机有机地结合起来,实现数据传输等功能,实现网络中各种资源的共享(如文件共享)以及各台计算机之间的通信。
分布式操作系统: 主要特点是分布性和并行性,系统之中的各台计算机地位相同,任何工作都可以分布在这些计算机上,他们并行、协同完成这个任务。
个人操作系统: 如 Windows XP,windows 7,10,macOS,方便个人使用。
参考自:https://blog.****.net/qq_19018277/article/details/98206370
1.4操作系统的运行机制和体系结构
内核程序可以执行特权指令,也可以执行非特权指令。
指令的概念:
1) 时钟管理
在计算机的各种部件中,时钟是最关键的设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。诸如,在分时操作系统中,釆用时间片轮转调度的实现;在实时系统中,按截止时间控制运行的实现;在批处理系统中,通过时钟管理来衡量一个作业的运行程度等。因此,系统管理的方方面面无不依赖于时钟。
2) 中断机制
引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础。例如,键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代操作系统是靠中断驱动的软件。
中断机制中,只有一小部分功能属于内核,负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。
3) 原语
按层次结构设计的操作系统,底层必然是一些可被调用的公用小程序,它们各自完成一个规定的操作。其特点是:
它们处于操作系统的最底层,是最接近硬件的部分。
这些程序的运行具有原子性——其操作只能一气呵成(这主要是从系统的安全性和便于管理考虑的)。
这些程序的运行时间都较短,而且调用频繁。
通常把具有这些特点的程序称为原语(Atomic Operation)。定义原语的直接方法是关闭中断,让它的所有动作不可分割地进行完再打开中断。
系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可以定义为原语,使它们成为内核的组成部分。
1.5中断和异常
中断是指 CPU 对系统发生某事件时的这样一种响应:
CPU 暂停正在执行的程序,在保留现场后自动地转去执行该事件的中断处理程序;执行完后,再返回到原程序的断点处继续执行。
根据中断时 CPU 的活动轨迹。还可进一步把中断分为外中断和内中断。
通过判断中断信号来自CPU内部还是外部来判断属于哪种中断
外中断——就是我们指的中断——是指由于外部设备事件所引起的中断,如通常的磁盘中断、打印机中断等;
内中断——就是异常——是指由于 CPU 内部事件所引起的中断,如程序出错(非法指令、地址越界)。内中断(trap)也被译为“捕获”或“陷入”。
异常是由于执行了现行指令所引起的。由于系统调用引起的中断属于异常。
中断则是由于系统中某事件引起的,该事件与现行指令无关。
中断和异常
相同点:都是CPU对系统发生的某个事情做出的一种反应。
区别:中断由外因引起,异常由CPU本身原因引起。
引入原因
中断的引入——为了支持CPU和设备之间的并行操作
异常的引入——表示CPU执行指令时本身出现的问题
引发中断或异常的事件
中断——外部事件引起,正在运行的程序所不期望的
异常——内部执行指令引起
1.6系统调用
陷入指令(Traps),又叫做自陷指令或访管指令,出现在计算机操作系统中,用于实现在用户态下运行的进程调用操作系统内核程序,即当运行的用户进程或系统实用进程欲请求操作系统内核为其服务时,可以安排执行一条陷入指令引起一次特殊异常。
陷入指令在计算机操作系统的中断处理机制、系统调用机制中有重要作用。陷入处理机制需要开辟现场保护区,以保存发生系统调用时的处理器现场。