2020

147 阅读5分钟
  • 安全包含哪些方面
    1. 保密性
    2. 完整性
    3. 可用性
  • 进程的状态有哪些

    1. 创建
    2. 就绪
    3. 运行
    4. 阻塞
    5. 终止
  • DMA 是一个独立的硬件设备,允许数据在 I/O 设备和内存之间直接传输,而不需要 CPU 的直接参与

  • spin lock use busy waiting(严格轮换法)

  • 为什么进程间通信需要依赖操作系统?
    为了保障安全,不能让一个进程直接访问另一个进程的地址空间

  • 临界区(critical region):对共享内存进行访问的程序片段称为临界区。进程对临界区需要互斥访问

  • ****竞态条件race condition好的临界区互斥方案

    1. 任何两个进程不能同时处于其临界区
    2. 不应对CPU的速度和数量做任何假设。
    3. 临界区外运行的进程不得阻塞其他进程。
    4. 不得使进程无限期等待进入临界区。
  • 什么是进程
    进程是正在运行的程序的实例,包括程序计数器、寄存器和变量的当前值

  • 进程创建的四种情况
  1. 系统初始化
  2. 正在运行的进程执行一个创建新进程的系统调用(fork())
  3. 用户请求创建一个新进程
  4. 批处理作业初始化
  • 什么是TLB
    TLB是一种小型的硬件设备,称为转换检测缓冲区(Translation lookaside buffer),一种访问速度比内存快很多的高速缓存,可以加快虚拟地址到物理地址的转换。用来存放最近访问的页表项的副本,如果该页号在页表中对应的页表项在TLB中,就无须再访问页表,直接访问TLB,加速地址变换的速度。快表的查询速度比页表快很多。

  • 共享库也被称为动态库

  • 线程被成为轻量级进程

  • 五种实现忙等待的互斥方法

    1. 屏蔽中断:进程在进入临界区后立即频闭所有中断,离开之前再打开中断。
      操作简单,用户拥有屏蔽中断的权利。但是若中断忘记打开,整个系统可能终止。且仅能对一个CPU有效,其他CPU仍可以访问共享内存。

    2. 锁变量
      当一个进程想进入其临界区时,它首先测试这把锁。如果该锁的值为0, 则该进程将其设置为1并进入临界区。若这把锁的值已经为1, 则该进程将等待直到其值变为0。于是,0就表示临界区内没有进程,1表示已经有某个进程进入临界区
      缺点:假设一个进程读出锁变量的值并发现它为0,而恰好在它将其值设置为1之前,另一个进程被调度运行,将该锁变量设置为1。当第一个进程再次运行时,它同样也将该锁设置为1, 则此时同时有两个进程进入临界区中。

    3. 严格轮换法:严格一个替一个运行,在一个进程比另一个慢了很多的情况下,轮流进入临界区并不是一个好办法。这种情况违反了前面叙述的条件3:进程0被一个临界区之外的进程阻塞

image.png

  1. Peterson解法

    image.png 情况1: e738553966629681a4c811359b3c1f7.jpg 情况2: ad97d88c2a5bdb4ce110394f30a1b97.jpg

  2. TSL指令

image.png

image.png

image.png

  • semaphore 和 busy-waiting的异同
    同: 都是用于同步多进程间资源共享的访问
    异:
    1. semaphore允许进程阻塞,以等待共享资源可用,不浪费cpu周期

    2. busywaiting:则会反复检查共享资源的状态,直到可用。导致cpu利用率高,低效浪费

  • 对于配额列表,为什么它限制文件的数量
    配额列表用于限制用户或组在文件系统中所能创建的文件数量
    1. 可以避免系统资源被过度占用
    2. 可以提高文件系统的性能和响应速度。
    3. 保持文件结构的相对简单性,使文件系统更易于管理和操作。
    4. 限制恶意程序对文件系统的滥用,增强系统的安全性。

4e12da64e15404a612fbb088627ada5.jpg

image.png

  • The difference between Programmed I/O, Interrupt-driven I/o and I/O using DMA.
  1. Programmed I/O CPU 主动地向 I/O 设备发送请求,并等待设备的响应。在这种模式下,CPU 必须花费大量时间来等待设备完成操作,因此效率较低。
  2. Interrupt-driven I/O CPU 发出 I/O 请求后,可以继续执行其他任务,而不必等待设备响应。当设备完成操作时,会发送一个中断信号给 CPU,CPU 在中断处理程序中进行相应的处理。这样,CPU 可以充分利用等待 I/O 完成的时间执行其他任务,提高了系统的并发性和效率。
  3. Direct Memory Access DMA 是一个独立的硬件设备,允许数据在 I/O 设备和内存之间直接传输,而不需要 CPU 的直接参与
  • The difference between bitmap allocation and list allocation
    1. 比特图(位图):将一个大的内存划分为若干固定大小的块,每个位图块对应一个0或1,表示分配与否。在使用内存时,则连续查找多个空闲块,将其标记为已分配并且起始地址。
      • 分配和释放内存速度快
      • 需要占用额外内存来存储位图
    2. 链表:将内存块串成一条链,每个块都有一个数据结构,包含起始地址、大小和指向下一个块的指针。
      • 不需要额外内存,可以灵活管理内存块
      • 分配和释放较慢,遍历时间长

image.png

0f84abb45b182d15b40bd64d36937e9.jpg

4e3ae82ff96246317138efe0a4c6c8b.jpg

8f7c33614e270078bc6ca8a3af89080.jpg