华科操作系统 | OS实验&课设 | Ubuntu

操作系统 | 实验 | 课设| Ubuntu

实验

实验一

实验内容

  • 在Linux(建议麒麟版本)下裁剪和编译Linux内核,并启用新内核。(其他发行版本也可以)
  • 在Linux(建议麒麟版本)内核中增加3个新的系统调用,并启用新的内核,并编写应用程序测试。(其他发行版本也可以)
  • 在Windows下,编写“算命大师.bat”批处理程序,输入出生年月日,输出属相和星座。
  • 在Linux下,编写“算命大师”脚本程序,输入出生年月日,输出属相和星座

实验记录和答案

https://gvqnmru1asr.feishu.cn/wiki/MncGwdbeHilzIkkwHoVc2g16nob?from=from_copylink

实验二

实验内容

  • 在Linux/Windows下创建2个线程A和B,循环输出数据或字符串。
  • 在Liunx下创建(fork)一个子进程,实验wait/exit函数
  • 在Windows/Linux下,利用线程实现并发画圆画方。
  • 在Windows或Linux下利用线程实现“生产者-消费者”同步控制
  • 在Linux下利用信号机制(signal)实现进程通信
  • 在Windows或Linux下模拟哲学家就餐,提供死锁和非死锁解法。

实验记录和答案

https://gvqnmru1asr.feishu.cn/wiki/JvAew81TSi7LabkM7tFcTxXznpc?from=from_copylink

实验三

实验内容

  • Windows/Linux模拟实现FIFO或LRU页面淘汰算法。
  • Linux下利用/proc/pid/pagemap计算某个变量或函数虚拟地址对应的 物理地址等信息。建议优麒麟或麒麟系统。
  • 研读并修改Linux内核的缺页处理函数do_no_page 或页框分配函数 get_free_page,并用printk打印调试信息。
    • 注意:需要编译内核。建议优麒 麟或麒麟系统。

实验记录和答案

https://gvqnmru1asr.feishu.cn/wiki/VKiQwKeNTiKoDukiX3RcMD2Znlb?from=from_copylink

实验四

实验内容

  • 编写一个Linux内核模块,并完成模块的安装/卸载等操作。
  • 在Linux平台编写一个字符设备的驱动程序和测试用的应用程序。
    • 驱动程序的功能:可以接收应用程序调用write输入的整数,并用read输出 最近输入的两个整数的和或最大值。
  • 在Linux平台编写一个字符设备的驱动程序和测试用的应用程序。
    • 驱动程序的功能:内部维护一个32字节的缓冲区,应用程序可以多次调用 read或write函数读写该缓冲区。
    • read或write操作相互之间无关联,但要 求每次read或write要接着上操作的位置继续。如果读写失败返回错误。

实验记录和答案

https://gvqnmru1asr.feishu.cn/wiki/TUIKwX2jqiju0ik5pU6c5pXnnlf?from=from_copylink

课设

课设内容

  1. 编写设备(含缓冲区)驱动程序,并支持应用程序对其缓冲区的读写

    1. 设备的缓冲区大小可调(例32字节),缓冲区逻辑上是环形缓冲区;
    2. 缓冲区按序读/写,每个字节读/写过程中不重复且不遗漏;
    3. 编写若干个应用程序读或写设备缓冲区(读/写数目不定且程序乱序运行)
      • 应用程序读缓冲区时:有新数据读就读,否则就被阻塞,直到有可读数据才被唤醒应用程序写缓冲区时:
      • 有空位写就写,否则就被阻塞,直到有空位时才被唤醒;
    4. 驱动程序内部维护缓冲区的读/写,确保适时阻塞或唤醒相应进程
    5. 实验现象:观察缓冲区的变化与读/写进程的阻塞/唤醒的实际
    6. 提示
      • 内设固定大小缓冲区BUFFER,读/写不遗漏不重复
      • 实现设备的阻塞和非阻塞两种工作方式
      • 读指针pRead,写指针pWrite
  2. 编写或复制至少4个应用程序进行读/写测试(可选:用echo/cat命令代替具有读/写设备功能的应用程序)

    1. 编写不少于2个读/写的测试应用程序
    2. 观察缓冲区变化与读/写进程的阻塞/被唤醒的同步情况。
    3. ps命令 查看进程状态:阻塞中……

课设记录

https://gvqnmru1asr.feishu.cn/wiki/AWTowekjxiftmPkhRqxcVXN2nhf?from=from_copylink

课设报告

https://gvqnmru1asr.feishu.cn/wiki/XgoSwdU0jiMSt9khqWmcSrmInLf?from=from_copylink