操作系统原理小结

对于计算机系统没有一个具体的清晰的逻辑结构,对于自己所学到的不能很好的连贯搭起来;

自己需要一个系统性的学习,会让自己看到的更清晰脉络

看完了陈向群老师的课 https://www.bilibili.com/video/av9555596?p=1
有了一些基础的认识,现在按自己的理解总结下。

清华大学操作系统(RISC-V)
https://next.xuetangx.com/course/thu08091002729/3175284

对操作系统的理解

  1. 设备结构分层: 硬件 -> 操作系统 -> 系统功能调用(框架层)-> 应用,操作系统是对硬件层的封装,及功能管理
  2. 操作系统包含功能:内存管理,文件管理,设备管理,网络,进程管理,网络
  3. CPU 的构成:运算器、寄存器、高速缓存(cache)、控制器、总线
  4. cpu 是由中断驱动(中断就是 cpu 的引擎),异常中断、中断、陷入机制,由用户态转到内核态需要应用层主动触发
  5. 中断:中断可指比如外接设备中断,异常中断是程序调用中断指令;系统内部有中断向量表、系统调用表,指引中断指令走到最终的实现函数
  6. 应用层的调用内核函数的方式:系统 api、系统调用、库函数

进程

  1. 进程是 cpu 的抽象,有了虚拟化技术,就支持了多进程
  2. 进程具体是指进程控制块 pcb,pcb 与进程一一对应,pcb 包含了进程相关信息,如 进程 pid、用户组、地址空间(proc/pid 内信息)
  3. 进程的控制状态:就绪、运行、等待、、挂起、终止、创建
  4. cpu 对多进程的支持:对每一个进程划分一个时间片,轮次执行
  5. 根据进程行为可将 cpu 划分为:io 密集型、cpu 密集型
  6. 进程表就是 pcb 的集合
  7. 管程是一个模块,是共享资源的数据结构及在其上操作的一组过程组成,是用来控制进程、线程的互斥的
  8. 线程互斥的基本操作:信号量、pthread(pthread 库 pthread_mutex pthread_cond)
  9. ipc 夸进程通信方式:消息传递、socket、共享内存、管道、远程过程调用
  10. 同步机制: liunx 的原子操作 atomic_t、屏障 barrier

内存

  1. 地址重定位:实现物理内存与虚拟地址的映射
  2. 多道程序设计是指允许多个进程同时进入内存,进程在内存内可以是不连续的块,逻辑内存相连接的物理内存不一定是连续的
  3. 内存管理单元 mmu
  4. 操作系统的驱动程序是烧制再 rom 内的,将系统加载起来后,系统是跑在 ram 内

虚拟存储技术

  1. 页表,页表项

文件与文件系统

  1. 文件存放在存储介质上,如 磁盘、U盘、光盘、rom、
  2. 磁盘的构成:磁头、磁面、扇区、磁道、磁柱、磁臂;扇区为 512 字节,多个扇区构成一个块(簇)
  3. 文件控制块 fcb 信息:文件名、文件所有权、文件大小、磁盘地址、块指针、
  4. 文件的目录是目录文件,这个文件是 root 根目录的树状结构
  5. 文件分配表 fat
  6. fcb 是存在系统内,当应用程序打开一个文件时,会给应用返回一个文件描述符或文件指针
  7. 创建文件实质上是创建一个 fcb
  8. chmod 711 file ,7 是指为当前文件主赋予文件所有权限,第一个 1 是指文件主的同组用户组赋予执行权限,第二个 1 为其他用户赋予执行权限

IO 管理

  1. IO 是各种设备与主设备连接,需要交互数据,这个都要通过 IO 管理器的处理

小结

概念很多,理解会有偏差,第一次跟着视频学习,需要多次及反复的学习研究