操作系统

发布时间 2024-01-11 15:55:29作者: 当尖草北平铲

第一章

os的作用是什么?
  1. 管理硬件资源
  2. 提供用户界面:
  3. 文件管理:
  4. 进程管理:
  5. 资源分配和调度:
  6. 提供网络支持:
os的基本特性是什么?
  1. 并发性:操作系统能够同时管理多个任务,实现多任务并发执行,提高系统资源的利用率。
  2. 共享性:操作系统能够有效地管理和分配系统资源,使多个应用程序能够共享硬件资源,如内存、处理器、输入输出设备等。
  3. 虚拟性:操作系统能够创建虚拟的资源,如虚拟内存、虚拟处理器等,以提高系统的灵活性和资源利用率。
  4. 异步性:操作系统能够处理来自不同应用程序的异步事件,如中断、信号等,以及处理不同速度设备的异步数据传输。
  5. 持久性:操作系统能够管理数据的持久存储,包括文件系统的管理和数据的备份与恢复。
  6. 用户界面:操作系统提供用户与计算机系统交互的界面,包括图形用户界面(GUI)或命令行界面。

 

第二章

进程的概念是什么?

操作系统中的进程是指正在运行的程序的实例。每个进程都有自己的内存空间、执行状态、标识符、优先级等属性。进程是操作系统进行资源分配和调度的基本单位,它可以独立地运行、暂停、恢复和终止。

在操作系统中,每个进程都有一个独立的地址空间,包括代码段、数据段、堆栈等,进程之间的地址空间是相互隔离的,这样可以确保进程之间不会相互干扰。操作系统通过进程管理来实现多任务处理,即使在单个处理器系统中,也可以同时运行多个进程,通过快速地在不同进程之间进行切换,实现看似同时运行的效果。

操作系统通过对进程的管理和调度来实现多个程序同时运行,提高系统的资源利用率和响应速度。操作系统负责创建、暂停、恢复和终止进程,并分配系统资源给进程,以确保系统的稳定性和高效性

常见的进程状态包括:

 

  1. 新建(New):当一个进程刚被创建时,它处于新建状态,操作系统为其分配资源并初始化进程控制块。
  2. 就绪(Ready):当进程已经准备好运行,但还未获得处理器的执行时间时,它处于就绪状态。在多道程序设计环境中,可能有多个进程处于就绪状态,等待操作系统的调度。
  3. 运行(Running):当进程获得处理器的执行时间,正在执行指令时,它处于运行状态。
  4. 阻塞(Blocked):当进程由于等待某种事件(如I/O操作、信号等)而无法继续执行时,它处于阻塞状态。
  5. 终止(Terminated):当进程执行完成或者由于某种原因被终止时,它处于终止状态。

进程在这些状态之间进行转换,常见的状态转换包括:

  1. 从新建状态到就绪状态:当操作系统为进程分配资源并初始化后,进程进入就绪状态,等待被调度执行。
  2. 从就绪状态到运行状态:当进程获得处理器的执行时间,可以开始执行时,它从就绪状态切换到运行状态。
  3. 从运行状态到阻塞状态:当进程由于等待某种事件而无法继续执行时,它从运行状态切换到阻塞状态。
  4. 从阻塞状态到就绪状态:当进程等待的事件发生,可以继续执行时,它从阻塞状态切换到就绪状态。
  5. 从运行状态到终止状态:当进程执行完成或者由于某种原因被终止时,它从运行状态切换到终止状态。

pv操作,信号量机制

第三章

调度算法:先来先服务调度,短作业优先调度,优先级调度,高相应比优先调度
实时调度:最早截至时间优先
什么是死锁?

死锁是指在多个进程或线程之间,彼此相互等待对方释放资源或信号而无法继续执行的情况。当多个进程或线程都持有一些资源,并且互相等待对方释放资源时,就可能发生死锁。死锁会导致程序无法继续执行,造成系统资源的浪费。要解决死锁问题,可以使用资源分配策略、避免循环等方法来避免死锁的发生。

银行家算法,正确的安全序列

第四五章

访问时间计算:分区式和分页式
  1. 分区式内存管理:
    • 访问时间计算:在分区式内存管理中,访问时间通常是通过计算内存地址和分区大小来确定的。如果内存地址落在某个分区内,访问时间可以通过简单的加法运算得出,即内存地址加上分区的起始地址。
    • 例如,如果一个程序的内存地址是0x1000,而分区的起始地址是0x800,分区大小为0x1000,那么访问时间可以通过简单的加法计算得出:0x1000 - 0x800 = 0x800。
  1. 分页式内存管理:
    • 访问时间计算:在分页式内存管理中,访问时间通常通过页表来确定。当程序访问内存时,系统会根据页表将逻辑地址转换为物理地址,从而确定访问时间。
    • 例如,如果一个程序的逻辑地址是0x1000,经过页表转换后得到物理地址是0x2000,那么访问时间即为0x2000。

地址变换

第六章

设备驱动程序功能?
  1. 提供设备访问接口:设备驱动程序向操作系统提供了一组标准的接口,使操作系统能够与设备进行通信。这包括读取和写入设备寄存器、发送控制命令、接收中断等操作。
  2. 硬件抽象:设备驱动程序隐藏了硬件设备的细节,向操作系统提供了一个统一的接口。这使得操作系统可以独立于具体硬件设备的细节进行设备控制,从而提高了系统的可移植性和可扩展性。
  3. 资源管理:设备驱动程序负责管理设备所需的资源,包括内存、中断、I/O端口等。它确保设备的资源分配和释放在操作系统中得到正确管理,避免了不同设备之间的资源冲突。
  4. 中断处理:设备驱动程序负责处理设备产生的中断,包括中断的注册、处理和清除。中断处理是设备驱动程序的重要功能之一,它确保设备能够及时地响应系统的请求。
设备驱动程序特点?
  1. 硬件相关性:设备驱动程序是与特定硬件设备密切相关的软件,它们必须针对特定的硬件设备进行开发,以确保与设备的兼容性和正确的操作。
  2. 系统内核模式:大多数设备驱动程序在操作系统内核模式下运行,因为它们需要直接访问硬件资源,并执行特权指令。这使得设备驱动程序具有更高的权限和更高的系统访问级别。
  3. 资源管理:设备驱动程序负责管理设备所需的资源,包括内存、中断、I/O端口等。它需要确保设备的资源分配和释放在操作系统中得到正确管理,避免了不同设备之间的资源冲突。
  4. 硬件抽象:设备驱动程序隐藏了硬件设备的细节,向操作系统提供了一个统一的接口。这使得操作系统可以独立于具体硬件设备的细节进行设备控制,从而提高了系统的可移植性和可扩展性。
  5. 中断处理:设备驱动程序负责处理设备产生的中断,包括中断的注册、处理和清除。中断处理是设备驱动程序的重要功能之一,它确保设备能够及时地响应系统的请求。
  6. 特定应用领域:设备驱动程序通常针对特定类型的设备,如网络适配器、显卡、声卡、磁盘控制器等。不同类型的设备需要不同的设备驱动程序进行管理和控制。
设备驱动程序处理过程?
  1. 初始化:设备驱动程序在系统启动时会被加载到内存中,并进行初始化。这个过程包括对设备寄存器、中断处理程序、资源分配等进行初始化设置,以便操作系统能够正确地与设备进行通信和控制。
  2. 设备注册:设备驱动程序通常需要向操作系统注册设备,以便操作系统能够识别和管理这些设备。注册的过程包括向操作系统提供设备的相关信息,如设备类型、I/O地址、中断向量等。
  3. 资源分配:设备驱动程序需要负责对设备所需的资源进行分配,包括内存、I/O端口、中断等。这个过程需要确保设备的资源分配不会与其他设备冲突,同时还要考虑系统资源的有效利用。
  4. 中断处理:设备驱动程序需要注册中断处理程序,以便能够及时地响应设备产生的中断。中断处理程序负责处理设备产生的中断,执行相应的处理逻辑,并通知操作系统相关的事件。
  5. 提供设备访问接口:设备驱动程序向操作系统提供了一组标准的接口,使操作系统能够与设备进行通信。这包括读取和写入设备寄存器、发送控制命令、接收中断等操作。
  6. 销毁和释放资源:在设备不再需要被操作系统管理时,设备驱动程序需要负责销毁设备的相关信息,并释放设备所占用的资源,以便其他设备或应用程序能够使用这些资源。

缓冲区:单和双

第七章

文件逻辑结构有哪些?
  1. 顺序文件结构(Sequential File Structure):顺序文件结构是最简单的文件组织形式,数据按照顺序依次存放在文件中,每个记录都紧跟在前一个记录的后面。记录之间的关系是按照物理存储顺序确定的,适合于顺序访问,但不适合于随机访问。
  2. 索引文件结构(Indexed File Structure):索引文件结构在顺序文件结构的基础上增加了一个索引表,索引表中包含了记录的关键字和对应记录在文件中的位置。通过索引表,可以实现对文件的随机访问,提高了检索效率。
  3. 随机文件结构(Random File Structure):随机文件结构是一种允许以任意顺序访问记录的文件组织形式。在随机文件中,记录的存储位置不依赖于记录的物理顺序,而是通过记录的关键字或地址进行定位。
  4. 索引顺序文件结构(Indexed Sequential File Structure):索引顺序文件结构是顺序文件结构和索引文件结构的结合,它通过在文件中维护一个索引表来提供对记录的随机访问,同时保留了原始的记录顺序。
  5. 多级索引文件结构(Multi-level Index File Structure):多级索引文件结构是对索引文件结构的扩展,通过多级索引表的组织,可以处理大规模的数据,提高了索引的检索效率。
  6. 散列文件结构(Hashed File Structure):散列文件结构通过散列函数将记录的关键字映射到文件的存储位置,实现了高效的随机访问。适用于对记录进行快速检索和更新的场景。
文件共享方式有哪些?有什么优缺点?
  1. 本地文件共享(Local File Sharing):
    • 优点:简单易用,适用于小型网络环境,无需额外的网络设备或配置。
    • 缺点:只适用于局域网内的文件共享,无法实现远程访问和跨网络共享。
  1. 文件传输协议(FTP,File Transfer Protocol):
    • 优点:支持跨网络文件共享,具有较好的通用性和灵活性。
    • 缺点:传统的FTP协议在安全性上较弱,传输的数据未加密,存在安全风险。
  1. 网络文件系统(NFS,Network File System):
    • 优点:支持跨平台文件共享,提供了较好的性能和灵活性。
    • 缺点:需要专门的NFS服务器和客户端软件支持,配置和管理较为复杂。
  1. 服务器消息块(SMB,Server Message Block)/CIFS(Common Internet File System):
    • 优点:是Windows系统中常用的文件共享协议,支持跨平台共享,易于配置和管理。
    • 缺点:在跨平台共享时可能存在性能和兼容性问题。
  1. 分布式文件系统(DFS,Distributed File System):
    • 优点:提供了统一的文件命名空间,简化了对分布式文件的访问和管理。
    • 缺点:需要额外的分布式文件系统软件支持,配置和维护较为复杂。
  1. 云存储服务:
    • 优点:提供了高可用性、可伸缩性和灵活性,支持跨地域、跨平台的文件共享。
    • 缺点:需要考虑数据安全和隐私保护,以及与服务提供商的合规性问题。

第八章

物理结构->链接结构 FAT 文件分配表

第九章

操作系统的核心态和系统态的指令集是什么?

操作系统的核心态(也称为内核态、特权态)和用户态是指处理器执行指令时所处的两种不同的权限级别。在核心态下,处理器可以执行特权指令和访问系统资源,而在用户态下,处理器只能执行非特权指令和受限制的系统资源访问。

在 x86 架构的处理器中,核心态和用户态的指令集可以通过特权级别(Privilege Level)来区分,一般来说,x86 架构定义了四个特权级别(0-3),其中级别 0 最高,级别 3 最低。在核心态下(特权级别 0),处理器可以执行所有指令并访问系统资源,而在用户态下(特权级别 3),处理器只能执行非特权指令,并且对系统资源的访问受到严格的限制。

在 x86 架构中,特权级别 0 对应核心态,特权级别 3 对应用户态。处理器的指令集中有一些指令只能在核心态下执行,而另一些指令则可以在核心态和用户态下执行,但在用户态下执行时可能会受到限制。

总的来说,核心态和用户态的指令集是由处理器架构和操作系统设计共同决定的,核心态下的指令集包括所有特权指令和一部分非特权指令,而用户态下的指令集则是除特权指令外的其他指令。操作系统通过合理划分核心态和用户态的指令集,实现了对系统资源的合理管理和保护。

系统调用和过程调用的区别?
  1. 系统调用(System Call):
    • 系统调用是操作系统提供给应用程序访问系统功能和资源的接口。
    • 系统调用是应用程序与操作系统之间的接口,应用程序通过系统调用请求操作系统执行特权操作,如文件操作、进程管理、网络通信等。
    • 系统调用是由操作系统提供的,应用程序通过调用特定的系统调用函数来请求操作系统执行相应的操作。
    • 系统调用的执行需要切换到核心态(内核态),因为它涉及到对系统资源的访问和管理。
  1. 过程调用(Procedure Call):
    • 过程调用是在编程语言层面上的函数或过程调用,用于执行程序中的具体功能。
    • 过程调用是应用程序内部的调用,用于执行程序内部的逻辑功能。
    • 过程调用是由编程语言提供的,程序通过调用函数或过程来执行具体的逻辑功能。
    • 过程调用的执行在用户态下完成,不涉及对系统资源的访问和管理。
系统调用有几大类型?
  1. 进程控制:
    • 创建进程:请求操作系统创建新的进程。
    • 终止进程:请求操作系统终止当前进程的执行。
    • 等待进程:请求操作系统等待某个特定的子进程完成。
  1. 文件管理:
    • 创建文件:请求操作系统创建新的文件。
    • 打开文件:请求操作系统打开已有的文件以便读写。
    • 读写文件:请求操作系统对文件进行读取和写入操作。
    • 关闭文件:请求操作系统关闭文件。
  1. 设备管理:
    • 请求设备:请求操作系统使用某个设备,如打印机、磁盘驱动器等。
    • 释放设备:请求操作系统释放已经使用的设备。
  1. 信息维护:
    • 获取系统时间:请求操作系统返回当前的系统时间。
    • 获取进程或系统状态:请求操作系统返回有关进程或系统状态的信息。
  1. 通信:
    • 创建进程间通信通道:请求操作系统创建进程间通信的通道,如管道、消息队列等。
    • 发送消息:请求操作系统将消息发送到指定的进程。
    • 接收消息:请求操作系统接收来自其他进程的消息。