操作系统-概念复习

计算机系统概述

操作系统定义: 管理计算机硬件和软件资源,组织资源分配,为用户提供接口和环境的程序集合。

操作系统特征: 并发、共享、虚拟、异步。

库函数与系统调用的区别与联系: 库函数中会有系统调用,库函数是程序的一部分,可以在用户空间执行。系统调用是操作系统的一部分,必须要在内核态执行。有系统调用的库函数执行效率通常要低于普通的库函数(系统调用要转入内核态运行,转换费时间)

批处理、分时、实时操作系统各有什么特点: 批处理一次处理一批作业,cpu效率较高,但是难以交互。分时系统可以交互,但是有时会响应慢,不太适用于及时性要求高的场景,比如航天控制中。实时操作系统可以及时响应优先级高的任务,适用于对实时性要求高的场景。

为什么要区分核心态和用户态两种模式,在什么情况下进行两种方式的切换: 因为安全,保护系统程序。中断产生时用户态转为核心态,中断返回用户程序时,核心态转为用户态。

为什么说出现中断和通道技术之后,多道程序概念才变得有用: 多道程序并发执行是指有的程序正在CPU上执行,而另一些程序正在IO设备上进行传输,二者同时进行节省了时间。通道是一种控制一台或者多台外部设备的硬件装置,可以和CPU独立运行,仅在IO的开始和结束需要CPU介入。而如果没有通道技术,在IO时CPU就需要一直询问IO状态,这样就无法完成IO和CPU并行工作。而如果没有中断机制,IO开始或结束时CPU也无法去控制,同样无法并行工作。

并行与并发的区别: 并行是指两个事件在同一时刻发生,并发是指两个事件在同一时间间隔发生。

进程与线程

为什么要引入进程,进程是如何解决问题的: 为了更好地描述和控制程序的并发执行,实现操作系统的并发和共享性。进程把识别程序运行状态的一些变量放在了PCB中,通过PCB能够更好的了解进程状态。

什么是进程,进程由什么组成: 进程是程序的一次执行,由PCB,程序段和相关数据段构成(PCB是进程存在的唯一标志)。

进程的特征: 独立性、异步性、动态性、并发性。

进程的五种状态以及转换:

创建完成
运行结束
获得CPU时间片
时间片用完
等待资源
获得资源
创建态
运行态
销毁态
就绪态
阻塞态

为什么进程之间的通信必须借助于操作系统的内核功能?简单说明进程通信的几种主要方式:
每个进程都有自己的内存空间,在操作系统和硬件的地址保护下,进程无法访问其他进程的地址空间,所以必须借助操作系统的系统调用来实现进程通信。主要有共享内存区、消息传递(消息队列)、管道系统、共享文件来实现。

什么是多线程,多线程和多任务有什么区别: 多线程是指在一个程序中定义多个线程并运行他们。多任务是针对操作系统而言的,指的是操作系统同时执行的程序个数,多线程是针对程序而言的,是指同时运行这个程序的线程数。
在这里插入图片描述
操作系统对应多个程序为多任务,而程序对应多个线程为多线程。

为什么要进行处理机调度: 如果没有处理机调度,那么要等到当前进程执行完之后才能轮到下一个进程执行。在实际情况中,前一个进程往往会因为等待IO等操作被阻塞,后一个进程继续等待的话会造成CPU空闲,因此可先让等待IO的进程释放CPU资源执行就绪进程。这样提高了处理机的利用率。

调度算法有哪几种: 先来先服务、短作业优先、优先级调度、高响应比优先、时间片轮转、多级反馈队列调度。

为什么说多级反馈队列调度算法能比较好的满足各类用户的需要?
对于终端型用户来说,能够得到及时的响应。对于短作业用户来说,短作业优先。对于长作业用户来说,能够避免饥饿。

同步机制应该遵循的准则: 空闲让进、忙则等待、有限等待、让权等待

管程定义: 管程包括内部共享数据机构的说明、对该数据结构进行操作的一组过程、初始化该数据结构的语句。

引入管程的原因: 为了避免分散在各处的PV语句造成混乱,也为了便于管理。

死锁
在这里插入图片描述
进程同步、互斥的区别与联系: 并发进程的执行会产生相互制约的关系:一种是进程之间竞争使用临界资源,只能让他们逐个使用,这种现象是互斥。另一种是进程之间协同完成任务,在关键点上等待另一个进程,这就是进程同步。

内存管理

在这里插入图片描述
快表是硬件,并且不在内存中。因此访问一次快表不算在访问内存的次数中

分页和分段的对比: 分页是从计算机管理的角度考虑的,目的是提高内存利用率,对用户透明,每页大小都相等。分段是从用户和程序员的角度提出的,以方便编程、信息保护、共享、动态增长和动态链接等多方面。

为什么要进行内存管理: 在引入多道程序之后,程序共享的除了CPU还有主储存器,为了避免内存共享内存数据的混乱,引入了内存管理。

页式管理每个页表项的下限如何决定: 以普通页式管理为例。计算机32位逻辑地址空间,字节为编址单位,一页4KB。那么逻辑空间大小为 2 32 B 2^{32}B 232B,地址空间内有 2 32 B / 4 K B = 2 20 页 2_{32}B/4KB = 2^{20}页 232B/4KB=220 所以这 2 20 2^{20} 220页需要的位数为20位才能保证容纳所有页面。 20 b / 8 ≈ 3 B 20b/8\approx3B 20b/83B,所以每个页表项大小应该至少为3B才能容纳下所有的页面。

多级页表解决了什么问题?又会带来什么问题? 多级页表解决了当逻辑地址空间过大时,页表长度大大增加的问题。采用多级页表时,一次访盘需要多次访问内存甚至硬盘,加大了访问时间。

在这里插入图片描述
为什么要引入虚拟内存: 多道程序共享CPU的情况下,也共享了内存。在运行程序数增加的情况下,需要比以前更大的内存,因此引入了虚拟内存,可以在逻辑上扩充内存。

虚拟内存空间的大小由什么决定:

  1. 虚拟空间的大小 ≤ 内存容量和外存容量之和
  2. 虚拟空间的大小≤计算机地址位数所能容纳的最大容量

虚拟内存是怎么解决问题的?会带来什么问题? 虚拟内存借用外存上的空间来扩展内存大小,需要通过一定的换入/换出来实现。但这样也会导致平均访存时间增加,若使用了不合适的置换算法,会导致系统效率的下降。

覆盖技术和虚拟技术有什么本质上的不同?交换技术与虚拟储存器中的调入/调出技术有何相同与不同之处?
覆盖技术和虚拟技术最本质的不同就是,覆盖技术的程序段的最大长度要受内存容量限制,而虚拟技术则不受这一限制。覆盖技术的相关细节需要程序员来设计,而虚拟技术则对程序无此要求。
交换与调入/调出技术的相同点就是,都需要在内存和外存之间进行调换。不同之处就在于交换以程序为单位,而调入/调出以页面(分段)为单位,不需要调动整个进程,更加灵活。

文件管理

有待更新

猜你喜欢

转载自blog.csdn.net/Kilig___/article/details/129708202