ECE650-final review

本文详细介绍了操作系统用户空间与内核的交互,包括操作系统服务、中断处理、异常、信号和系统调用。重点讨论了中断分类、处理方式,以及进程管理与调度中的各种调度算法。此外,还涉及了保护与安全概念,如访问控制和安全策略。文章还涵盖了I/O处理,文件系统和虚拟内存管理的基础知识。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值