zoukankan      html  css  js  c++  java
  • [OS] 操作系统课程(三)

    • 工具
      • 源码阅读:understand
      • 源码文档自动生成工具:Doxygen
      • 编译环境:gcc
      • 运行环境:x86机器或QEMU
      • 调试工具:QEMU+(GDB or IDE)
      • IDE:Eclipse-CDT
    • 设计思路
      • 外设:IO管理/中断管理
      • 内存:虚存管理/页表/缺页处理/页替换算法
      • CPU:进程管理/调度器算法
      • 并发:信号量实现同步互斥应用
      • 存储:基于链表/FAT的文件系统
    • 实验内容(对应源码行数)
      • 1 OS启动、中断与设备管理:0200~1800
      • 2 物理内存管理:1800~2500
      • 3 虚拟内存管理:2500~3200
      • 4 内核线程管理:3200~3600
      • 5 用户进程管理:3600~4300
      • 6 处理器调度:4300~5100
      • 7 同步互斥:5100~6400
      • 8 文件系统:6400~9999

     

    •  实验内容
      • Lab1:Bootloader/Interrupt/Device Driver
        • Bootloader启动操作系统
        • 操作系统启动前的状态和要做的准备工作
        • 运行操作系统的硬件支持
        • 操作系统如何加载到内存
        • 两类中断:外设中断,中断陷阱

      • Lab2:物理内存管理
        • 理解x86分段/分页模式,了解操作系统如何管理连续空间的物理内存

     

      • Lab3:虚拟内存管理
        • 了解页表机制和换出(swap)机制
        • 故障中断,缺页故障处理,基于页的内存替换算法

     

      •  Lab4:内核线程管理
        • 如何利用CPU高效完成工作
        • 创建相对用户进程更简单的内核态线程
        • 对内核线程进行动态管理

     

      •  Lab5:用户进程管理
        • 用户态进程创建、执行、切换和结束的动态管理过程
        • 用户态通过系统调用得到内核态的内核服务的过程

     

      •  Lab6:进程调度
        • 理解操作系统调度过程和调度算法

     

      • Lab7: 同步互斥
        • 进程间如何进行信息交换和共享
        • 同步互斥的具体实现及对系统性能的影响
        • 死锁产生的原因,如何避免
        • 哲学家吃饭问题

      

    •  Lab8:文件系统
      • 文件系统的具体实现,与进程管理的关系
      • 缓存对操作系统IO访问的性能改进
      • 虚拟文件系统(VFS)
      • buffer cache和disk driver间的关系

      

    参考

    实验楼

    https://www.shiyanlou.com/courses/221/learning/?id=709

  • 相关阅读:
    MySQL进阶:主主复制+Keepalived高可用
    Zabbix 5.0:磁盘自动发现和读写监控
    Zabbix 5.0 优化建议
    容器进阶:OCI与容器运行时
    openresty快速安装
    ansible:playbook详解
    Shell:如何遍历包含空格的文本
    Linux性能优化:内存使用情况分析
    Shell:如何写一个多选菜单的脚本
    算法路漫漫(二) 递归与归并
  • 原文地址:https://www.cnblogs.com/cxc1357/p/12347709.html
Copyright © 2011-2022 走看看