ECE650-final review
1 User Space/Kernel Interaction
1.1 operating system services
- accounting – 根据用户或流程跟踪资源的使用情况
- protection & security – 保护独立进程; 用户安全
1.2 Interrupts
- 定义: 发送给处理器的输入信号,表示需要立即处理某一事件
- 它是一个request,要求处理器中断当前的执行,并切换到一个特定的事件处理代码
- 中断是通过实现委托delegation和异步asynchronicity来避免busy-wait机制的一个例子
来源
- hardware interrupts: 处理器外部设备发送的电子信号,如磁盘控制器或外设peripherals(e.g. 按下按键)
- software interrupts: 作为软件执行的结果而发出
普通中断:一些指令被设计用来调用操作系统,例如当它们被用来与设备驱动程序交互时
Exception:某些情况下,如程序执行错误会导致中断(如除零),操作系统将被调用来处理它
classification
handle
- HW: 请求主处理器接管,发现(jump to interrupt service routine),处理
- CPU内部 – under the hood
- handle multiple requests :通过polling投票(busy-wait,但在HW支持下完成)
- Interrupt controller:IPC -中断可编程控制器,一个特殊的硬件组件
1.3 exceptions
classification
- 处理器检测到:CPU在执行指令时检测到异常情况
- 故障faults:可以纠正,一旦纠正,程序可以恢复。示例:page faults
- Aborts:严重错误,如硬件故障。如果发生这种情况,进程将终止。
- 可编程序异常programmable exceptions:通常称为软件中断,用于实现系统调用和调试(也称为TRAPS)
1.4 signals – from SW to SW
- 用于通知进程事件(包括异常):进程之间或进程与内核之间IPC通信的基本形式
- 本质上是一种软件模拟中断机制的方法
- 包括同步和异步
handle
- 每个signal有默认的handler,kernel来run;也可以override来user-defined
1.5 system calls
- 类似于中断interrupt机制
- 系统调用会导致“trap”指令的执行,Trap将控制转移到interrupt vector中的一个位置,中断向量位置跳转到trap处理程序代码
- Trap处理程序代码改变到主管执行模式保存进程状态(如寄存器,pc),就像一个上下文切换
- 参数通常通过间接传递,例如,寄存器将一个内存地址存储到一个内存块中,which包含参数值
- 内核执行系统调用
- 恢复用户执行模式
- ’ Return from Interrupt '执行以恢复用户进程
2 Process Management & Scheduling
- OS通过Process Control Block (PCB)跟踪管理进程
操作系统保存的每个进程的数据结构(对象),包含: 进程状态,程序计数器,CPU寄存器,scheduling信息(例如,优先级,调度队列指针)-内存信息(例如,页表指针),accunting信息(例如,CPU时间,进程ID), I/O信息(例如,打开的文件列表,I/O设备) - 多线程进程:扩展PCB以存储每个线程的信息
- 由于硬件限制,可能会有更多的进程对比HW可以执行的:
至少1个HW线程(单CPU,单核)。几个SW线程通过时间切片+上下文切换并行运行
4核CPU: 4 HW线程,即真正的并行 - 具有多线程cpu的架构:
SMT -Simultaneous Multi-threading;每个单核CPU提供2个HW线程;与多核CPU的性能不一样 - OS scheduling queues:
OS使用队列结构来调度:PCBs链表
新创建的进程被放置在一个“new job”队列中,准备执行的进程被放置在“ready队列”中。
当前占用HW线程的进程被称为“running”;无法执行的进程,如正在等待的进程,被放置在“event队列”中,例如:由于页面故障等待磁盘,等待从键盘输入I/O - process states
- context switch time是性能overhead开销,取决于处理器中寄存器的数量和HW支持
- CPU sharing:
两个主要目标:1. 细粒度的CPU共享fine grained sharing of CPU提供并行性的假象(并发执行);2.效率:CPU处理和I/O活动之间交替;CPU突发bursts:快速; I/O爆发bursts:慢,在I/O完成时切换到另一个进程
- First Come, First Serve (FCFS or FIFO)
无优先non- preemptive的调度策略(Job在CPU上保持&#x