Skip to content

Chap6 OS & Process/Thread Management

OS 的基本结构

操作系统

  • 实现对计算机资源的管理
  • 控制应用程序的执行
  • 提供应用程序访问计算机资源的接口
  • 实现对操作系统内核及应用程序的保护

CPU 特权级

  • 可分成核心态、用户态
  • 核心态(特权模式:具有较高特权,能执行一切指令,访问所有寄存器和存储器
  • 用户态(非特权模式:具有较低特权,只能执行规定命令,访问指定的寄存器和存储器
  • Arduino 处理器不支持不同特权级,树莓派、Pixhawk 处理器支持

进行 OS 层次设计,通常将一些与硬件紧密相关的模块,如中断处理程序、常用设备驱动程序以及运行频率较高的模块安排在紧靠硬件的软件层次中,并使之常驻内存,以提高操作系统的运行效率,称之为内核

实时操作系统(RTOS)评价体系:任务调度机制、内存管理、最小内存开销、最大中断禁止时间、任务切换时间

最大中断禁止时间和任务切换时间是最重要的技术指标

进程的基本概念

顺序执行:程序独占整个系统的所有资源,处理机严格按照程序所规定的顺序进行操作,只有在前一个操作执行完成后,才进行后续操作

并发执行:一组逻辑上互相独立的程序或程序段,在执行过程中其执行时间在客观上相互重叠

进程

  • 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是动态的、有生命的
  • 进程是系统中资源拥有者的基本单位

进程的状态及其转换

  • 就绪状态:进程分配到除 CPU 以外的所有必要资源后,只要再获得 CPU 便可立即执行
  • 执行状态:进程已获得 CPU、其程序正在执行的状态
  • 阻塞状态:正在执行的进程因发生某事件暂时无法继续执行时,便放弃 CPU 处于暂停状态

无法显示

Linux 进程的状态转换

运行状态、等待状态、停止状态、僵死状态

无法显示

进程互斥(mutual exclusion:指当有若干进程都要使用某一共享资源时,若该资源是临界资源,则任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放该资源

临界资源(critical resource:操作系统中将一次只允许一个进程访问的资源称为临界资源

临界区(critical section:把进程中访问临界资源的那段程序代码称为临界区。为实现对临界资源的互斥访问,应保证诸进程互斥地进入各自的临界区。必须在临界区前面增加一段用于进行上述检查的代码,我们把这段代码段称为进入区(Entry Section;相应地,在临界区后面也要加上一段称为退出区(Exit Section)的代码,用于将临界区正被访问的标志恢复为未被访问的标志。

临界区问题解决方法:软件方法(忙等待、信号量机制

进程 / 线程调度

CPU 约束进程:大量时间计算,少量 I/O I/O约束进程:大量I/O,少量时间计算

进程的执行是 CPU brust I/O brust 交替的过程

调度方式(decision mode)

  • 非抢占式(Non-preemptive)
    • 进程一旦被调度,则执行到结束或不能继续执行
  • 抢占式(Preemptive)
    • 当一个新的进程到达时
    • 当有进程从阻塞变为就绪时
    • 进程从核心态返回到用户态时(如中断、系统调用返回)

信号量

信号量机制:操作系统提供的装置,用于进行进程 / 线程的同步与互斥

原子操作(atomic operation:一个不可分割的操作,即一旦开始,就会完整执行完,不会被其他操作中断

生产者 - 消费者机制:用于描述两个或多个进程共享有限缓冲区的场景,生产者向缓冲区添加数据,消费者从缓冲区移除数据

进程通信

进程间通信:共享存储、消息传递(消息队列和信箱、管道

调度算法:分时系统

  • FCFS(first come first served):先来先服务,直至结束

  • RR(round robin):时间片轮转,时间片到时,将进程放入就绪队列的末尾,然后从队列头部取出一个进程运行,公平的调度策略,不会导致进程饥饿

  • Priority scheduling:基于优先级的调度

死锁

死锁

死锁:系统中存在一个进程集合,该集合中的每个进程都占用了一定数量的资源,并且在等待被集合中的其他进程占用的资源

死锁的条件

  • Mutual exclusion: 互斥
  • Hold and wait: 保持等待,申请资源时拥有其他资源
  • No preemption: 非剥夺,进程占有的资源只能由进程自己释放,不会被别的进程剥夺
  • Circular wait: 循环等待

看门狗

看门狗

看门狗定时器(Watchdog Timers:一种硬件机制,用于检测和恢复软件系统故障

  1. 看门狗定时器本质上是一个硬件计数器,它以固定速率向下计数至零
  2. 必须对软件进行修改,确保每条执行路径都能足够频繁地重新初始化该定时器,以防止计数器溢出(达到零值)并导致系统复位
  3. 如果计数器确实达到零,系统会判定发生故障。此时,看门狗定时器会向中央处理器(CPU)发送复位信号,使系统重新初始化
  4. 更宽泛地说,看门狗处理器会对主处理器的运行状态进行监控

评论区

如果有什么问题或想法,欢迎大家在下方留言~