- 安全包含哪些方面
- 保密性
- 完整性
- 可用性
-
进程的状态有哪些
- 创建
- 就绪
- 运行
- 阻塞
- 终止
-
DMA 是一个独立的硬件设备,允许数据在 I/O 设备和内存之间直接传输,而不需要 CPU 的直接参与
-
spin lock use busy waiting(严格轮换法)
-
为什么进程间通信需要依赖操作系统?
为了保障安全,不能让一个进程直接访问另一个进程的地址空间 -
临界区(critical region):对共享内存进行访问的程序片段称为临界区。进程对临界区需要互斥访问
-
****竞态条件race condition好的临界区互斥方案
- 任何两个进程不能同时处于其临界区
- 不应对CPU的速度和数量做任何假设。
- 临界区外运行的进程不得阻塞其他进程。
- 不得使进程无限期等待进入临界区。
-
什么是进程
进程是正在运行的程序的实例,包括程序计数器、寄存器和变量的当前值
- 进程创建的四种情况
- 系统初始化
- 正在运行的进程执行一个创建新进程的系统调用(fork())
- 用户请求创建一个新进程
- 批处理作业初始化
-
什么是TLB
TLB是一种小型的硬件设备,称为转换检测缓冲区(Translation lookaside buffer),一种访问速度比内存快很多的高速缓存,可以加快虚拟地址到物理地址的转换。用来存放最近访问的页表项的副本,如果该页号在页表中对应的页表项在TLB中,就无须再访问页表,直接访问TLB,加速地址变换的速度。快表的查询速度比页表快很多。 -
共享库也被称为动态库
-
线程被成为轻量级进程
-
五种实现忙等待的互斥方法
-
屏蔽中断:进程在进入临界区后立即频闭所有中断,离开之前再打开中断。
操作简单,用户拥有屏蔽中断的权利。但是若中断忘记打开,整个系统可能终止。且仅能对一个CPU有效,其他CPU仍可以访问共享内存。 -
锁变量
当一个进程想进入其临界区时,它首先测试这把锁。如果该锁的值为0, 则该进程将其设置为1并进入临界区。若这把锁的值已经为1, 则该进程将等待直到其值变为0。于是,0就表示临界区内没有进程,1表示已经有某个进程进入临界区
缺点:假设一个进程读出锁变量的值并发现它为0,而恰好在它将其值设置为1之前,另一个进程被调度运行,将该锁变量设置为1。当第一个进程再次运行时,它同样也将该锁设置为1, 则此时同时有两个进程进入临界区中。 -
严格轮换法:严格一个替一个运行,在一个进程比另一个慢了很多的情况下,轮流进入临界区并不是一个好办法。这种情况违反了前面叙述的条件3:进程0被一个临界区之外的进程阻塞
-
-
Peterson解法
情况1:
情况2:
-
TSL指令
- semaphore 和 busy-waiting的异同
同: 都是用于同步多进程间资源共享的访问
异:-
semaphore允许进程阻塞,以等待共享资源可用,不浪费cpu周期
-
busywaiting:则会反复检查共享资源的状态,直到可用。导致cpu利用率高,低效浪费
-
- 对于配额列表,为什么它限制文件的数量
配额列表用于限制用户或组在文件系统中所能创建的文件数量- 可以避免系统资源被过度占用
- 可以提高文件系统的性能和响应速度。
- 保持文件结构的相对简单性,使文件系统更易于管理和操作。
- 限制恶意程序对文件系统的滥用,增强系统的安全性。
- The difference between Programmed I/O, Interrupt-driven I/o and I/O using DMA.
- Programmed I/O CPU 主动地向 I/O 设备发送请求,并等待设备的响应。在这种模式下,CPU 必须花费大量时间来等待设备完成操作,因此效率较低。
- Interrupt-driven I/O CPU 发出 I/O 请求后,可以继续执行其他任务,而不必等待设备响应。当设备完成操作时,会发送一个中断信号给 CPU,CPU 在中断处理程序中进行相应的处理。这样,CPU 可以充分利用等待 I/O 完成的时间执行其他任务,提高了系统的并发性和效率。
- Direct Memory Access DMA 是一个独立的硬件设备,允许数据在 I/O 设备和内存之间直接传输,而不需要 CPU 的直接参与
- The difference between bitmap allocation and list allocation
- 比特图(位图):将一个大的内存划分为若干固定大小的块,每个位图块对应一个0或1,表示分配与否。在使用内存时,则连续查找多个空闲块,将其标记为已分配并且起始地址。
- 分配和释放内存速度快
- 需要占用额外内存来存储位图
- 链表:将内存块串成一条链,每个块都有一个数据结构,包含起始地址、大小和指向下一个块的指针。
- 不需要额外内存,可以灵活管理内存块
- 分配和释放较慢,遍历时间长
- 比特图(位图):将一个大的内存划分为若干固定大小的块,每个位图块对应一个0或1,表示分配与否。在使用内存时,则连续查找多个空闲块,将其标记为已分配并且起始地址。