JOS Lab4 Note
刘嘉洋 1412620 南开大学软件学院
系统调度,IPC 和页面失效控制
MIT 这次实验是在 Lab3 进程和中断管理的基础上实现,目标是在他们的 JOS 操作系统 中实现多进程管理和进程间消息通信的功能。 在实验三中,我们知道进程是一个执行中的程序实例。利用分时技术,操作系统上同时 可以运行多个进程。分时技术的基本原理是把 CPU 的运行时间划分成一个个规定长度的时 间片(实验中一个时间片为 100ms),让每个进程在一个时间片内运行。当进程的时间片用 完时系统舅利用调度程序切换到另一个进程去运行。当一个进程在执行时,CPU 的所有寄存器中的值、进程的状态以及堆栈中的内容被称为该进程的上下文。当内核需要切换至另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的上下文,以便在再次执行该进程时,能够恢复到切换时的状态执行下去。 在操作系统的进程调度方式中有抢占式和非抢占式,本实验中采用抢占式进程调度,即 现行进程在运行过程中,如果有重要或紧迫的进程到达(其状态必须为就绪),则现运行进 程将被迫放弃处理机,系统较处理机立刻分配给新到达的进程,其需要时钟中断处理程序实现。其中如何产生多个进程以及如何进行进程切换是本实验的目标。
该实验可以分为 3 部分: 实现调度算法、创建新的进程环境和进程间通信。
第一部分通过循环轮转(Round-Robin)调度算法实现多用户进程;
第二部分通过实现类似于 Unix 进程创建的 fork()函数创建新的进程以及实现用户态下的缺页错误处理函数;
最后通过时钟中断实现用户进程间的消息通信等。